Hati is a GNOME Shell extension designed to solve a specific problem: demonstrating software on Wayland. Traditional X11 overlay tools often fail or introduce lag on Wayland compositors. Hati integrates directly into the GNOME Shell rendering pipeline using GLSL shaders, ensuring zero latency and perfect frame synchronization.
It provides a highly customizable visual ring around your cursor, essential for:
- Teaching / Lectures
- Screen Recording
- Live Demonstrations
- Accessibility
hati_preview.mp4
| Category | Description |
|---|---|
| Performance | Memory: ~2-3MB. Render Time: ~4.7ms/frame. Zero Copy tracking. |
| Visuals | Dual-ring design (Solid/Dashed), Corner Radius (Squircle/Circle), dynamic Glow effects. |
| Interaction | Visual feedback for clicks: Pulse, Ripple, Glow Burst. Distinct Left/Right click colors. |
| Utilities | Spotlight Mode (dim screen except cursor), GPU Magnifier (instant zoom). Customizable shortcuts. |
| Config | Changes apply instantly. Shareable Presets (Import/Export JSON). Native GTK4 preferences window. |
Install via GNOME Extensions: Hati Cursor Highlighter.
- Download the latest release from Releases.
- Install via CLI:
gnome-extensions install [email protected]
- Restart GNOME Shell (Log out/in on Wayland).
- Enable the extension:
gnome-extensions enable [email protected]
You'll need following dependencies:
makezip
# Clone repository
git clone https://github.com/szymonwilczek/hati.git
cd hati
# Build and install
make installIf you don't have make installed, you can use the provided script:
./scripts/install.shSettings can be accessed via the Extensions app or by right-clicking the extension icon if enabled.
- Appearance: Shape (Circle/Square), Size, Colors, Opacity, Border Weight.
- Behavior: Auto-hide timeout, Inertia physics sliders.
- Utilities: Spotlight configuration, Magnifier zoom level & keys.
- Presets: Built-in collections, Import/Export functionality to share configs.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.