🦀 Rust 🪶 GTK4 📂 Open-Source ❄️ Hyprland
An automated application manager and tray utility for Hyprland.
- 🚀 Auto-Start Manager: Manage and delay application startup to ensure a smooth desktop experience.
- 📥 Hide to Tray: Minimize any application to a ToTray tray icon, keeping your workspace clean.
- 🪟 Workspace Rules: Automatically move specific applications to designated workspaces on launch.
- 🛠️ Flexible Actions: Support for
Close,Close2(double-close for apps with splash screens like discord),Workspace, andHideToTray. - 🖥️ GUI: Configure everything through a modern GTK4 interface.
- 🎛️ CLI: Add rules via command line.
totray --help - 🔔 Notifications: Optional desktop notifications for background actions.
- 📉 Low Overhead: Written in Rust for maximum performance and minimal resource usage.
- AppImage: Download the latest version from the Releases page. (run
chmod +x ToTray-v0.1.0.AppImageand then./ToTray-v0.1.0.AppImageand see Usage) - AUR:
yay -S totrayor
paru -S totray If you prefer to build from source, follow the instructions in the Build section.
To launch the settings GUI:
./totrayInside the GUI, click the "Install Desktop File" button to register the application and start using ToTray.
To start ToTray in the background (worker mode, usually used for autostart):
./totray --workerYou will need Rust and GTK4 development headers installed on your system.
sudo pacman -S --needed base-devel gtk4 pkg-configsudo dnf install gtk4-devel gcc pkg-configsudo apt install build-essential libgtk-4-dev pkg-config- Clone the repository:
git clone https://github.com/Agzes/totray.git cd totray - Build the release version:
cargo build --release
- The binary will be available at
target/release/totray.
You can add rules directly from your terminal:
# Hide Firefox to tray on launch
totray --add --name "firefox" --exec "firefox" --action "tray"
# Move Spotify to workspace 11
totray --add --name "spotify" --exec "spotify" --action "workspace" --workspace 11
# Close vesktop (double close to close splash and main window)
totray --add --name "vesktop" --exec "vesktop" --action "close2"--worker: Start only the backend worker (no GUI).--add: Add a new rule via CLI.-
--name <CLASS>: Window class name (find it viahyprctl clients).
-
--exec <CMD>: Execution command for the application.
-
--action <ACTION>: Action to perform (close,close2,workspace,tray).
-
--workspace <N>: Target workspace number (required forworkspaceaction).
--config-json: Print active rules in JSON format.--version-json: Print version info in JSON format.
- Open ToTray and go to "Settings"
- Click "Uninstall (Remove all traces)"
- Remove the AppImage file.
- Run
yay -Rns totrayorparu -Rns totray
ToTray monitors window events in Hyprland. When a window matching a defined Window Class appears, ToTray executes the assigned action.
- HideToTray: Moves the window to a
specialworkspace. The tray icon allows you to bring it back to your active workspace. - Auto-Start: Triggers the
exec-oncecommands defined in your rules with an optional global delay.
Distributed under the MIT License. See LICENSE for more information.
With ❤️ by Agzes
pls ⭐ project!
