A fast, customizable application launcher built with GTK4 and Rust, designed for Linux desktop environments. Walker provides a clean, modern interface for launching applications, running commands, performing calculations, and more.
The following Elephant providers are implemented by default:
- Desktop Applications: Launch installed GUI applications
- Calculator: Perform mathematical calculations with = prefix
- File Browser: Navigate and open files with / prefix
- Command Runner: Execute shell commands
- Websearch: Search the web with custom-defined engines
- Clipboard History: Access clipboard history with : prefix
- Symbol Picker: Insert special symbols with . prefix
- Provider List: Switch between providers with ; prefix
- Menu Integration: Create custom menus with elephant and let walker display them
- Dmenu: Your good old dmenu ... with seamless menus!
- Arch Linux Packages: Search through available packages (official and aur), install or delete a target! List all exlusively installed packages.
- Todo List: create simple todo items with basic time tracking, scheduling and notifications
- Bluetooth: basic bluetooth management
- GTK4 (version 4.6+)
- gtk4-layer-shell
- Protocol Buffers compiler
- cairo
- poppler-glib
- make sure elephant is running before starting Walker
Add walker and elephant to the inputs of your configs flake.nix and set walker to follow elephant
You have 3 options for installing walker.
Option A (Home Manager Module): Import the home-manager module to your home-manager config and enable walker.
Option B (NixOS Module): Import the nixos module in your NixOS config and enable walker
Note: this option doesn't support the runAsService option; It is recommended that you launch the elephant and walker services using your desktop instead.
Option C (Package): Add inputs.walker.packages.<system>.default to your system packages or home-manager packages. replace <system> with your system architecture. Note: This option doesn't support configuration using nix.
Optionally, there is 2 binary caches which can be used by adding the following to you config:
Make sure elephant is running and you have providers installed. elephant-providerlist and f.e. elephant-desktopapplications.
Launch Walker with walker.
In order to improve startup performance, run a Walker service with:
If the service is running, you can either open Walker with:
or for an even faster launch make a socket call, f.e. with openbsd-netcat:
The downside of the socket call is that it does not handle any commandline options, so it's just a faster alternative to a simple walker call.
The following modifier keys are valid: ctrl, alt, shift, super.
To get a full list of possible key values, look here: GDK key-values.
F.e. pub const GDK_KEY_semicolon: c_int = 59; means that ctrl semicolon would be a valid keybind.
Configuration should be done in ~/.config/walker.
Check out the default config.
You can customize Walker's appearance by creating a custom theme. Checkout resources/themes/default for the default theme. Themes inherit the default theme by default, so if you just want to change the CSS, you can just create themes/yours/style.css.
You can customize rendering of list items for each provider individually, f.e. "item_files.xml" will define the layout for items sourced from the files provider.
Please refer to the GTK4 docs to checkout how to write *.xml files for GTK4.
You can set the default theme in your config.toml f.e. theme = "yours".
Please do not make PRs to fix single typos. Fix all or nothing.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.