https://github.com/emonkak/geektray
A keyboard-oriented X11 system tray implementation
https://github.com/emonkak/geektray
linux systray x11
Last synced: 6 months ago
JSON representation
A keyboard-oriented X11 system tray implementation
- Host: GitHub
- URL: https://github.com/emonkak/geektray
- Owner: emonkak
- License: mit
- Created: 2021-12-24T15:50:40.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-04-26T16:27:23.000Z (about 2 years ago)
- Last Synced: 2024-04-26T17:41:32.188Z (about 2 years ago)
- Topics: linux, systray, x11
- Language: Rust
- Homepage:
- Size: 410 KB
- Stars: 4
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GeekTray


GeekTray is a yet another freedesktop.org system tray implementation for X11. It provides a keyboard-oriented UI that is higher affinity for tiling window managers.
## Features
- **Keyboard-oriented UI**
All of the actions are accessible both from a mouse and a keyboard.
- **Fully customizable**
All of the key bindings and the UI styling are fully customizable by the configuration file.
- **Lightweight GUI implementation**
GeekTray is a lightweight GUI implementaion written by Rust, which don't use any GUI toolkit such as GTK. There is only the dependencies of some low-level libraries.
## Requirements
- [XCB](https://xcb.freedesktop.org/)
- [xkbcommon](https://xkbcommon.org/) (with X11 support)
- [Pango](https://pango.gnome.org/) (1.57.0 or higher)
- [Cairo](https://www.cairographics.org/) (1.14 or higher)
## Installations
You can download the binary for Linux/amd64 from the [release page](https://github.com/emonkak/geektray/releases).
## Usage
GeekTray does not show any window on the screen when started for the first time. To show the window, you must use the key binding for it (Default: Super + \`).
### Default Hotkeys
| Key | Action | Global |
| ------------------------------------ | --------------------------------- | ------ |
| Super + \` | Toggle window | ✅ |
| Q | Hide window | |
| Escape | Hide window | |
| 1 | Select 1st item | |
| 2 | Select 2nd item | |
| 3 | Select 3rd item | |
| 4 | Select 4st item | |
| 5 | Select 5st item | |
| 6 | Select 6st item | |
| 7 | Select 7st item | |
| 8 | Select 8st item | |
| 9 | Select 9st item | |
| J | Select next item | |
| Down | Select next item | |
| Ctrl + N | Select next item | |
| K | Select previous item | |
| Up | Select previous item | |
| Ctrl + P | Select previous item | |
| L | Emit left click to selected item | |
| Return | Emit left click to selected item | |
| H | Emit right click to selected item | |
| Shift + Return | Emit right click to selected item | |
## Configuration
You can customize the key bindings and more by the configuration file. It is available in `$XDG_CONFIG_HOME/geektray/config.toml`. The configuration file is generated when geektray started for the first time.
## Known Bugs
### A title is blank for Wine's application tray icons
The tray icon window created by Wine isn't set a title. Additionally, The process that created window is not the application itself, but exeplorer.exe. So we can't get any information for the tray icon.
There is the [patch](https://github.com/emonkak/config/blob/master/gentoo/etc/portage/patches/app-emulation/wine-vanilla/systray-icon-title.patch) for Wine to work-around this issue.
## FAQ
### Is it supports freedesktop.org's StatusNotifierItem?
No, because there are few applications using StatusNotifierItem at this time.