explaingit

navithecoderboi/lumi

20CAudience · developerComplexity · 3/5Setup · moderate

TLDR

A lightweight app dock for Linux Wayland window managers like Sway and Hyprland that shows your chosen app icons along the bottom of the screen with a running-app indicator and smooth hover animations.

Mindmap

mindmap
  root((Lumi dock))
    What it does
      App icon dock for Wayland
      Running app indicator dot
      Hover scale animation
    Configuration
      Single YAML file
      Icon list
      Corner rounding and padding
      Animation settings
    Requirements
      wlroots window manager
      Sway or Hyprland
      CMake and C++23
    Limitations
      No GNOME or KDE support
      No system tray
      Early stage project
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Add a macOS-style app dock to a Sway or Hyprland Wayland setup on Linux

USE CASE 2

Configure which app icons appear in the dock and tune hover animation size and lift via a YAML file

USE CASE 3

See at a glance which apps are currently running via the indicator dot beneath their icons

USE CASE 4

Build a minimal lightweight dock from source as an alternative to heavier panel solutions like Waybar

Tech stack

CCMakeWaylandwlrootsYAML

Getting it running

Difficulty · moderate Time to first run · 30min

Requires CMake, a C++23 compiler, and Wayland development libraries, only works on wlroots-based compositors like Sway or Hyprland.

No license information is provided in the explanation.

In plain English

Lumi is a dock for Linux desktops that use the Wayland display system. A dock is the row of app icons that typically sits along an edge of your screen, similar to what you see on macOS. Lumi positions itself along the bottom of the screen and shows icons for the apps you choose, with a small dot beneath any app that is currently running. The dock is built specifically for window managers that use a library called wlroots, which includes popular Wayland setups like Sway and Hyprland. It will not work on other types of Linux desktop environments such as GNOME or KDE, and it does not run on Windows or macOS. Configuration is done through a single YAML file stored in your home config folder. You list which app icons appear in the dock, set corner rounding, padding, icon size, spacing between icons, and the animation behavior when you hover your mouse over an icon. The hover animation scales the icon up and lifts it slightly, with settings to control how large it gets and how far it rises. All values have defaults, so you only need to specify what you want to change. Building the project from source requires CMake, a C++23-capable compiler, and a handful of Wayland development libraries. The build process is two commands. Once built, you run the resulting binary and it reads your config file automatically. The project is early-stage and small in scope. It focuses narrowly on being a lightweight dock rather than a full panel or taskbar, and the README does not mention features like system tray support, clock widgets, or app launchers beyond what icon clicking provides.

Copy-paste prompts

Prompt 1
I use Hyprland on Linux and want to set up Lumi dock. Walk me through building it from source with CMake and writing a minimal YAML config that shows my most-used apps.
Prompt 2
Show me a complete Lumi YAML config file that sets icon size to 48px, corner rounding to 12px, and a hover animation that scales icons to 1.3x and lifts them 10px.
Prompt 3
How does Lumi detect which apps are currently running on a wlroots compositor and display the indicator dot beneath their icons?
Prompt 4
I want to contribute a feature to Lumi. Walk me through the C codebase structure and how the Wayland layer-shell protocol is used to position the dock at the bottom of the screen.
Open on GitHub → Explain another repo

← navithecoderboi on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.