An open API service indexing awesome lists of open source software.

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

Awesome Lists containing this project

README

          

# GeekTray

![CI Status](https://github.com/emonkak/geektray/actions/workflows/ci.yml/badge.svg)

![Screenshot](extra/screenshot.png)

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.