Commit Graph
47 Commits
Author SHA1 Message Date
Maxim Baz 90ffa7df27 Lex exec even when using custom opener
This fixes a few bugs I found related to custom opener.

Instead of sending the entire exec as a single argument, this properly
splits the command, trims trailing whitespaces, and lets the receiving
opener iterate over terms.
2021-12-25 17:59:45 +01:00
Kenny Levinsen 886d595f91 launcher: Migrate to SkimMatcherV2 2021-09-02 21:14:08 +02:00
Kenny Levinsen e04237b928 Use format string with panic 2021-09-02 21:13:57 +02:00
Kenny Levinsen 56f6b1668d cargo fmt 2021-03-04 00:23:09 +01:00
Kenny Levinsen 4c49407849 launcher: Ctrl-a, Ctrl-e, Home and End 2021-02-14 16:12:03 +01:00
Kenny Levinsen 07d8066d90 Bump wayland-rs to 0.28, key repeat 2021-02-14 16:12:03 +01:00
Kenny Levinsen ee2646f091 pulseaudio: Iterate until callback is received
Pipewire's pulseaudio server requires a different number of iterations
to get the callback through properly.

Set a flag from the callbacks, and iterate until the flag is set to
ensure that the right number of iterations are made.
2021-01-28 00:56:53 +01:00
Kenny Levinsen 2e49b98b82 date: Fix dimension calculations 2020-07-22 12:42:48 +02:00
Hilmar Gústafsson 12ea4e7f60 launcher: draw cursor for calc and shell modes 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson 91fdfcd2b6 launcher: set cursor position in self.leave 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson 2c8b27bb5a launcher: fix bug that resets cursor on enter 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson f6cebdeba4 launcher: remove stray println 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson 3b9aed089c launcher: Handle grapheme clusters correctly 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson 20e08f74ee cargo fmt 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson f1811475cd draw: Add method for drawing text with cursor 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson f25909b7f8 launcher: add cursor and basic operations 2020-07-22 01:44:06 +02:00
Hilmar Gústafsson 6690cda29f Use tab and left tab to navigate matches 2020-07-22 01:44:06 +02:00
Kenny Levinsen 24ec63a178 widgets: Allow widgets to fill remaining space
This is implemented by propagating the expected remaining space to all
widget draw calls. It is not currently as smart as it could be, but it
works well enough to let the last widget in a row/column fill things.

BarWidget-type widgets and the Launcher widget now fill remaining space
if their length is set to 0.
2020-06-14 17:01:42 +02:00
Kenny Levinsen 2f61da8690 clock: Use font metrics for size 2020-06-14 17:01:42 +02:00
Hilmar Gústafsson 48985c470a Configurable font support
Use fontconfig to load fonts. Fonts can be added to the `fonts` map in
the config, and referenced from individual widgets' configurations for
customizability.

Fonts default to values "mono" and "sans" if nothing is set.
2020-06-14 17:01:42 +02:00
Hilmar Gústafsson 1a62696662 Use DisplayDevice instead of BAT0 2020-06-03 13:20:59 +02:00
Kenny Levinsen 319bcdd355 Reduce cargo clippy warnings 2020-04-22 01:31:22 +02:00
Kenny Levinsen 300711affe Convert DateTime<Local> to NaiveDateTime
Use of DateTime<Local> can lead to excessive inspection of the system
timezone.

Instead, propagate only a timezone-compensated NaiveDateTime throughout
the widgets.
2020-04-22 00:52:08 +02:00
Kenny Levinsen 0577c023b8 clock/date: Feb 29 bug in nonsensical code 2020-02-29 00:11:49 +01:00
Kenny Levinsen aec80d1afd backlight: Avoid unnecessary parens 2020-02-29 00:11:49 +01:00
Kenny Levinsen 8877674f43 cargo fmt 2020-01-08 11:31:56 +01:00
Pedro Côrte-Real cf37611243 Make matches unique and smarter
Move the matching in the launcher to its own struct and make it so the
matches are unique and we don't end up with 2 or 3 matches for the same
program. Change the priorities so that they are bundled together with
the fuzzy matching score and thus very good keyword matches will beat
out very poor name matches.
2020-01-02 18:38:23 +00:00
Pedro Côrte-Real 5191952155 Simplify matching code in launcher 2020-01-02 17:53:37 +00:00
Pedro Côrte-Real 193f1d59fa Prioritize name matches above keywords in launcher
Keyword matches are always at a lower priority than name matches. It
would probably make sense to extend this into something smarter where
very good matches of keywords beat really poor matches of name.
2020-01-02 17:48:12 +00:00
Pedro Côrte-Real 809af580a9 Match on keywords in the launcher
In the launcher match not only on the program name but also on the
keywords specified in the desktop file.
2020-01-02 17:19:37 +00:00
Kenny Levinsen 2ba19f9e64 Allow backlight device to be specified 2020-01-01 17:18:42 +01:00
Kenny Levinsen b51fc8a1b0 Use global poll for UpowerBattery 2019-10-05 22:42:26 +02:00
Kenny Levinsen 0de3da162b widget: Add wait support
Widgets can now specify that they wish to wait on an fd or for a target
time to be reached.

This can be used to save a few worker threads.
2019-10-05 01:07:06 +02:00
Pedro Côrte-Real 510ad34183 Remove errant semicolon (#24) 2019-10-03 19:03:38 +02:00
Kenny Levinsen c676c0223b rustfmt 2019-10-02 16:25:43 +02:00
Sergey Smirnykh c695288d1e config: Make YAML/JSON modular and optional (#21) 2019-10-02 16:21:39 +02:00
Sergey Smirnykh b9ff6725cd alsa: Use ? operator instead of and_then 2019-10-02 16:20:10 +02:00
Kenny Levinsen 3572d22ba8 Add modifier support, enter/leave events 2019-10-02 16:20:10 +02:00
Kenny Levinsen 50e2ab25a5 launcher: Increase gap to font_size/2 2019-09-25 20:34:21 +02:00
Kenny Levinsen a1e36d9ac5 launcher: Space elements 3/8th of font-size 2019-09-25 20:27:50 +02:00
Sergey Smirnykh 1ae11bab29 Add ALSA widget (#18)
Add initial ALSA widget, and put both ALSA and PulseAudio behind feature flags.
2019-09-18 11:19:10 +02:00
Kenny Levinsen 4e9f0e566f launcher: Clear input buf when launching 2019-09-17 17:06:42 +02:00
Kenny Levinsen b94e80c346 pulseaudio: Ensure that both completion channels are read 2019-09-10 14:26:45 +02:00
Kenny Levinsen 9908392af1 clock: Sizing error 2019-09-07 00:37:01 +02:00
Kenny Levinsen 6679418696 rustfmt 2019-09-06 22:48:50 +02:00
Kenny Levinsen 61ad3e4d94 Remove deprecated libivy/bc features 2019-09-06 22:10:56 +02:00
Kenny Levinsen b53a909e1c Dynamic widget configuration and layout
1. Implement new layout API, replacing previous hard-coded layout.
2. Make the widgets (previously modules) configurable.
3. Split some widgets into smaller modules.
4. Configuration file (reluctantly JSON at time of writing).
5. More correct damage handling, copying damage to next buffer.
2019-09-06 21:54:04 +02:00