Crates.io | aphorme |
lib.rs | aphorme |
version | 0.1.19 |
source | src |
created_at | 2023-04-10 12:10:39.955787 |
updated_at | 2024-03-24 20:13:22.230567 |
description | A program launcher for X11 and Wayland |
homepage | https://github.com/Iaphetes/aphorme_launcher |
repository | https://github.com/Iaphetes/aphorme_launcher |
max_upload_size | |
id | 835082 |
size | 223,326 |
This is a Program Launcher written in Rust. For the moment it uses multiple different UI toolkits, namely:
Configuration->app_cfg->paths
)I started using egui for this, which is a great toolkit, but it has some limitations. So I thought I'd try some other toolkits. This I think is a reasonably simple UI, but with some quirks (like the keyboard scrolling) which I can use to compare ease of use and feature sets.
There are several reasons I wanted a new program launcher:
Most good program launchers like Rofi, Fuzzel etc. only support either X11 or wayland. Since I still sometimes switch between X11 and Wayland I wanted a launcher, that ran on both systems
There are some cool projects like Wofi that aim to port X11 programs to Wayland. However I found at least Wofi to have some bugs with my window setup.
I tend to take on huge projects which never end. I saw this as a comparatively simple project.
Allows piping a newline separated list into Aphorme, which will replace the normal program list. Useful for custom scripts e.g. a shutdown/reboot etc. script. Echoes the selected option.
Configuration is now found in $HOME/.config/aphorme/config.toml
Options for the gui.
Enable or disable icon loading. True by default.
Which GuiFramework to used. At the moment EGUI and ICED.
Note that at the moment ICED is not compiled into the launcher by default. To do so compile with the feature iced-ui
Forces window to remain in focus even if other windows try to grab focus.
Known issues: Doesn't work with egui + wayland.
Size of font. Also affects icon size.
X and Y dimensions of the launcher. Does not affect font size.
App spanning options.
List of additional paths to search. Home directory can only be denoted by using $HOME
Defaults to an empty list.
Search default paths. If paths is defined appends them to the default.
Defaults to true
Default paths are
"/usr/share/applications",
"/usr/local/share/applications",
"$HOME/.local/share/applications",
"/var/lib/flatpak/exports/share/applications"
Contains configuration for the preferred apps (aka. the last used apps)
Maximum weight allowed. Defaults to 10.
[gui_cfg]
icon = true
ui_framework = 'EGUI'
font_size = 12
window_size = [
300,
300,
]
[app_cfg]
paths = ["$HOME/Desktop"]
The egui ScrollArea does not allow for movement using the arrow keys. This means I had to implement that myself. The method I chose (just remembering the index) does however overwrite the scrolling using the mousewheel/touchpad gestures etc. This means I had to implement the scrolling with the scrollwheel myself, which 'fights' against the default scrolling. This causes minor visual glitches but so far no actual bugs
For previous versions see CHANGELOG.md