From 726ef32d2631f15f991591ef6879925e08f442f6 Mon Sep 17 00:00:00 2001 From: "Henry J. Webster" Date: Sat, 1 Aug 2026 09:57:40 -0500 Subject: desktop: centralize Adwaita cursor theme, fix pointer cursor on kusanagi MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit kusanagi set XCURSOR_THEME=Bibata-Modern-Classic but never declared the theme in Nix — it only resolved while bibata-cursors lingered in an old nix-env profile. Once that was gone the theme fell off the icon path and the pointer/hand cursor disappeared. Standardize both hosts on Adwaita (matching the shared niri config.kdl): move XCURSOR_THEME/XCURSOR_SIZE and the adwaita-icon-theme package into the shared profiles/desktop.nix so the theme is always on the icon path. Drop the inert HYPRCURSOR_* vars (hyprcursor is unused under niri). Assisted-by: Claude:claude-opus-4-8 --- machines/enzo/desktop.nix | 6 +----- machines/kusanagi/desktop.nix | 7 ++----- profiles/desktop.nix | 11 +++++++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/machines/enzo/desktop.nix b/machines/enzo/desktop.nix index 294fe41..1324d85 100644 --- a/machines/enzo/desktop.nix +++ b/machines/enzo/desktop.nix @@ -7,11 +7,8 @@ # --- Fonts: enzo's monospace (base font packages come from the shared profile) --- fonts.fontconfig.defaultFonts.monospace = [ "Adwaita Mono" ]; - # --- Cursor --- + # --- Shell state paths (cursor theme is shared — see ../../profiles/desktop.nix) --- environment.sessionVariables = { - XCURSOR_THEME = "Adwaita"; - XCURSOR_SIZE = "24"; - # TODO: move to dotfiles LESSHISTFILE = "$HOME/.local/state/lesshst"; HISTFILE = "$HOME/.local/state/bash_history"; @@ -20,7 +17,6 @@ nix.settings.use-xdg-base-directories = true; environment.systemPackages = with pkgs; [ - adwaita-icon-theme yambar # text status bar xdg-user-dirs ]; diff --git a/machines/kusanagi/desktop.nix b/machines/kusanagi/desktop.nix index e4b2bc3..88fe9a9 100644 --- a/machines/kusanagi/desktop.nix +++ b/machines/kusanagi/desktop.nix @@ -95,13 +95,10 @@ fontDir.enable = true; }; - # --- Cursor / renderer --- + # --- Renderer --- + # (Cursor theme is shared — see ../../profiles/desktop.nix.) environment.sessionVariables = { GSK_RENDERER = "gl"; - XCURSOR_THEME = "Bibata-Modern-Classic"; - XCURSOR_SIZE = "24"; - HYPRCURSOR_THEME = "Bibata-Modern-Classic"; - HYPRCURSOR_SIZE = "24"; }; # --- User: desktop groups (niri essentials + printing). Hardware groups diff --git a/profiles/desktop.nix b/profiles/desktop.nix index e4a1fcc..6afd91d 100644 --- a/profiles/desktop.nix +++ b/profiles/desktop.nix @@ -141,6 +141,15 @@ in policies.PasswordManagerEnabled = false; }; + # --- Cursor --- + # Both hosts use the Adwaita cursor theme (package below). The theme name must + # resolve on the icon path, else clients fall back to a themeless arrow with no + # pointer/hand cursor. Matches the shared niri config.kdl cursor block. + environment.sessionVariables = { + XCURSOR_THEME = "Adwaita"; + XCURSOR_SIZE = "24"; + }; + # --- Common desktop tools (system-wide to stay username-agnostic) --- environment.systemPackages = with pkgs; [ ghostty # terminal — required to actually use the GUI @@ -151,6 +160,8 @@ in libnotify # notify-send gnupg # gpg pinentry-gnome3 # passphrase prompt for the gpg agent + adwaita-icon-theme # Adwaita cursor + icon theme on the icon path (both + # hosts set XCURSOR_THEME=Adwaita; without this the pointer cursor is missing) ]; # --- Fonts (base) --- -- cgit v1.3