Skip to content

Add cursor theme selection to the Style menu - #9539

Open
TheLinuxITGuy wants to merge 1 commit into
omacom:quattrofrom
TheLinuxITGuy:feat/cursor-theme-menu
Open

Add cursor theme selection to the Style menu#9539
TheLinuxITGuy wants to merge 1 commit into
omacom:quattrofrom
TheLinuxITGuy:feat/cursor-theme-menu

Conversation

@TheLinuxITGuy

Copy link
Copy Markdown

What

Adds a Style → Cursor submenu to choose and apply the system cursor theme.

  • omarchy-cursor-set <theme> — applies a cursor theme system-wide. If the theme is a Bibata variant (Bibata-Modern-*) that isn't installed yet, it downloads it from the Bibata Cursor GitHub release. It writes the chosen theme into a managed ~/.config/hypr/cursor.lua (Hyprland env), updates the X.org default index, applies it via gsettings and hyprctl setcursor, then fires the cursor-set hook.
  • omarchy-cursor-current — prints the active cursor theme (used for the ✓ checkmark in the menu).
  • Registers the new cursor command group.
  • Ships a default config/hypr/cursor.lua and wires require("hypr.cursor") into the user Hyprland config so the managed file is loaded on login; omarchy refresh hyprland refreshes it too.
  • Menu options: Bibata Modern Classic / Amber / Ice, Adwaita, Yaru.

Why

Lets users change the cursor from the Omarchy Style menu, downloading Bibata cursors on demand instead of requiring manual installation.

Testing

  • ./test/cli passes (command metadata, routing, group registration).
  • Menu JSONC validated against the shell's MenuModel.
  • Verified locally: each Bibata variant downloads and applies, and omarchy-cursor-current reports the active theme.

Note: the shell/acceptance suites require a running graphical session and were not run in the contributing environment.

Add omarchy-cursor-set and omarchy-cursor-current to download and apply
cursor themes (Bibata, Adwaita, Yaru), register the cursor command group,
and expose a Style > Cursor submenu. The setter writes the theme into a
managed hypr/cursor.lua and applies it via hyprctl and gsettings.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant