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.
Walker offers multiple provider types for different use cases:
- 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.
# Clone the repository
git clone https://github.com/abenz1267/walker.git
cd walker
# Build with Cargo
cargo build --release
# Run Walker
./target/release/walker
You have two options of installing walker using Nix.
-
Using the package exposed by this flake
- Add to your flake
inputs.walker.url = "github:abenz1267/walker";
- Add
inputs.walker.packages.<system>.default
toenvironment.systemPackages
orhome.packages
- Add to your flake
-
Using the home-manager module exposed by this flake:
- Add to your flake
inputs.walker.url = "github:abenz1267/walker";
- Add
imports = [inputs.walker.homeManagerModules.default];
into your home-manager config - Configure walker using:
- Add to your flake
programs.walker = {
enable = true;
runAsService = true;
# All options from the config.json can be used here.
config = {
search.placeholder = "Example";
ui.fullscreen = true;
list = {
height = 200;
};
websearch.prefix = "?";
switcher.prefix = "/";
};
# If this is not set the default styling is used.
theme.style = ''
* {
color: #dcd7ba;
}
'';
};
Additionally, there is a binary caches at https://walker.cachix.org
and https://walker-git.cachix.org
which you can use with the following:
nix.settings = {
substituters = ["https://walker.cachix.org"];
trusted-public-keys = ["walker.cachix.org-1:fG8q+uAaMqhsMxWjwvk0IMb4mFPFLqHjuvfwQxE4oJM="];
};
nix.settings = {
substituters = ["https://walker-git.cachix.org"];
trusted-public-keys = ["walker-git.cachix.org-1:vmC0ocfPWh0S/vRAQGtChuiZBTAe4wiKDeyyXM0/7pM="];
};
- GTK4 (version 4.6+)
- gtk4-layer-shell
- Protocol Buffers compiler
- cairo
- poppler-glib
- make sure elephant is running before starting Walker
Launch Walker with:
walker --gapplication-service
To open it, simply call:
walker
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.
THE DEFAULT THEME CANNOT BE CHANGED.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
This is a beta version (1.0.0-beta) undergoing active development. Features and APIs may change before the stable 1.0 release.