feat: give yolo a distinct amber cursor
CI / lint (push) Successful in 30s
CI / eval (push) Successful in 1m56s

yolo's desktop is only ever seen through a Moonlight window, so its cursor
needs to be tellable apart from the client's at a glance. Bibata-Modern-Amber
differs in both colour and silhouette from Nordzy.

Threads the theme through an option rather than setting it in one place: it
was hardcoded in cursor.nix, in hl.env, in the setcursor autostart, and twice
more in darkman's mode scripts, which re-set it on every light/dark switch and
would have reverted the override.

Also drops a stale hl.env pointing HYPRCURSOR_THEME at rose-pine-hyprcursor,
which no host installs.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Miguel Palhas
2026-08-18 16:06:01 +01:00
parent de527df7c4
commit 8efd0a1139
4 changed files with 49 additions and 15 deletions
+12 -9
View File
@@ -1,4 +1,7 @@
{ pkgs, ... }:
{ pkgs, config, ... }:
let
inherit (config.custom.hyprland) cursorTheme cursorSize;
in
{
home.packages = with pkgs; [
dconf
@@ -15,14 +18,14 @@
'';
cursor-theme = ''
${pkgs.dconf}/bin/dconf write \
/org/gnome/desktop/interface/cursor-theme "'Nordzy-cursors'"
/org/gnome/desktop/interface/cursor-theme "'${cursorTheme.dark}'"
# Set environment variables for current session
export HYPRCURSOR_THEME="Nordzy-cursors"
export XCURSOR_THEME="Nordzy-cursors"
export HYPRCURSOR_THEME="${cursorTheme.dark}"
export XCURSOR_THEME="${cursorTheme.dark}"
# Update Hyprland cursor theme
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-cursors 24
${pkgs.hyprland}/bin/hyprctl setcursor ${cursorTheme.dark} ${toString cursorSize}
'';
noctalia-theme = ''
noctalia msg theme-mode-set dark
@@ -37,14 +40,14 @@
'';
cursor-theme = ''
${pkgs.dconf}/bin/dconf write \
/org/gnome/desktop/interface/cursor-theme "'Nordzy-white'"
/org/gnome/desktop/interface/cursor-theme "'${cursorTheme.light}'"
# Set environment variables for current session
export HYPRCURSOR_THEME="Nordzy-white"
export XCURSOR_THEME="Nordzy-white"
export HYPRCURSOR_THEME="${cursorTheme.light}"
export XCURSOR_THEME="${cursorTheme.light}"
# Update Hyprland cursor theme
${pkgs.hyprland}/bin/hyprctl setcursor Nordzy-white 24
${pkgs.hyprland}/bin/hyprctl setcursor ${cursorTheme.light} ${toString cursorSize}
'';
noctalia-theme = ''
noctalia msg theme-mode-set light
+6 -4
View File
@@ -1,17 +1,19 @@
{ pkgs, config, ... }:
let
cfg = config.custom.hyprland;
nordzy-cursors = pkgs.callPackage ../../../../pkgs/nordzy-cursors/package.nix { };
cursorSize = config.custom.hyprland.cursorSize;
cursorPackage = if cfg.cursorPackage != null then cfg.cursorPackage else nordzy-cursors;
cursorSize = cfg.cursorSize;
in
{
home.packages = [
nordzy-cursors
cursorPackage
];
home.sessionVariables = {
HYPRCURSOR_THEME = "Nordzy-cursors"; # Dark variant (default)
HYPRCURSOR_THEME = cfg.cursorTheme.dark;
HYPRCURSOR_SIZE = cursorSize;
XCURSOR_THEME = "Nordzy-cursors";
XCURSOR_THEME = cfg.cursorTheme.dark;
XCURSOR_SIZE = cursorSize;
};
+22 -2
View File
@@ -70,6 +70,26 @@ in
default = 24;
description = "Cursor size for XCURSOR_SIZE and HYPRCURSOR_SIZE";
};
cursorPackage = lib.mkOption {
type = lib.types.nullOr lib.types.package;
default = null;
description = ''
Package providing cursorTheme.dark/light under share/icons. null uses
the nordzy-cursors package built in ./cursor.nix.
'';
};
cursorTheme = {
dark = lib.mkOption {
type = lib.types.str;
default = "Nordzy-cursors";
description = "Cursor theme darkman selects in dark mode.";
};
light = lib.mkOption {
type = lib.types.str;
default = "Nordzy-white";
description = "Cursor theme darkman selects in light mode.";
};
};
shareOutput = lib.mkOption {
type = lib.types.nullOr lib.types.str;
default = null;
@@ -204,7 +224,7 @@ in
-- environment
hl.env("GDK_SCALE", "2.0")
hl.env("XCURSOR_SIZE", "${toString cfg.cursorSize}")
hl.env("HYPRCURSOR_THEME", "rose-pine-hyprcursor")
hl.env("HYPRCURSOR_THEME", "${cfg.cursorTheme.dark}")
hl.env("HYPRCURSOR_SIZE", "${toString cfg.cursorSize}")
-- Route Qt6 apps (incl. the xdph screen-share picker) through qt6ct so
-- the noctalia-generated color scheme actually applies. Without this
@@ -216,7 +236,7 @@ in
-- Import the Qt theme var too, so the dbus/systemd-activated
-- xdg-desktop-portal-hyprland (and its share-picker) inherit it.
hl.exec_cmd("dbus-update-activation-environment --systemd WAYLAND_DISPLAY XDG_CURRENT_DESKTOP QT_QPA_PLATFORMTHEME")
hl.exec_cmd("hyprctl setcursor Nordzy-cursors ${toString cfg.cursorSize}")
hl.exec_cmd("hyprctl setcursor ${cfg.cursorTheme.dark} ${toString cfg.cursorSize}")
hl.exec_cmd("hyprsunset")
hl.exec_cmd("noctalia")
-- kdeconnectd is only DBus-activated; nothing starts it at login,