From 7791d3d9e500b69bc39a1cf27b885e3f41e3c65a Mon Sep 17 00:00:00 2001 From: rope Date: Sat, 16 May 2026 17:14:44 +0100 Subject: [PATCH] desktop: replace GNOME with XFCE fallback; fix keyring popup Remove GNOME DE (gnome-keyring, tracker, extensions, shell dconf settings) and replace with a lightweight XFCE fallback session so ly offers an alternative if Hyprland fails after an update. Add nautilus explicitly as a standalone package. Eliminates the keyring unlock prompt that appeared in Nautilus on Hyprland sessions. Co-Authored-By: Claude Sonnet 4.6 --- settings/gnome.nix | 90 +++++----------------------------------------- 1 file changed, 8 insertions(+), 82 deletions(-) diff --git a/settings/gnome.nix b/settings/gnome.nix index 8fa7128..6e70923 100644 --- a/settings/gnome.nix +++ b/settings/gnome.nix @@ -1,11 +1,10 @@ +# settings/gnome.nix — display manager, lightweight fallback session, GTK/Qt theming { config, pkgs, lib, inputs, ... }: { config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) { - # Enable Gnome services.xserver.enable = true; services.displayManager.ly.enable = true; services.displayManager.defaultSession = "hyprland"; - services.desktopManager.gnome.enable = true; boot.plymouth.enable = false; services.displayManager.ly.settings = { @@ -13,16 +12,16 @@ bigclock = true; }; + # Lightweight fallback session — if Hyprland fails after an update, + # ly will list XFCE as an alternative without pulling in GNOME's + # keyring, tracker, or other heavyweight background services. + services.xserver.desktopManager.xfce.enable = true; + # Flatpak for ad-hoc app installs via Bazaar services.flatpak.enable = true; - # Add extensions, packages, and terminal environment.systemPackages = with pkgs; [ - ghostty - gnomeExtensions.blur-my-shell - gnomeExtensions.just-perfection - gnomeExtensions.appindicator - gnomeExtensions.hot-edge + nautilus # file manager — works standalone without a GNOME DE adwaita-icon-theme gnome-themes-extra adwaita-icon-theme-legacy @@ -40,18 +39,6 @@ ]; }; - # mutter VRR — stylix handles theme/icon dconf entries - programs.dconf.profiles.user.databases = [{ - settings = { - "org/gnome/desktop/interface" = { - icon-theme = "WallpaperAdwaita"; - }; - "org/gnome/mutter" = { - experimental-features = [ "variable-refresh-rate" ]; - }; - }; - }]; - qt = { enable = true; platformTheme = "gnome"; @@ -61,15 +48,12 @@ programs.xwayland.enable = true; programs.dconf.enable = true; - # Home Manager GNOME settings home-manager.users.fred = { config, lib, pkgs, ... }: { # Stylix's qt target only supports qtct; disable it to silence the warning. stylix.targets.qt.enable = false; # Minimal titlebars — stylix manages the GTK theme; we layer our - # headerbar shrink on top via programs.gtk.*.extraCss. + # headerbar shrink on top via stylix.targets.gtk.extraCss. gtk.enable = true; - # gtk.gtk3.extraCss / gtk4.extraCss are no-ops once stylix owns the - # theme — extra CSS has to go through stylix.targets.gtk.extraCss. stylix.targets.gtk.extraCss = '' headerbar { min-height: 0; padding: 0; margin: 0; } headerbar .title { font-size: 0; } @@ -82,64 +66,6 @@ color: @headerbar_fg_color; } ''; - - # GNOME dconf settings — stylix owns colour-scheme, gtk-theme, - # cursor-theme and accent-color now. - dconf.settings = { - "org/gnome/desktop/interface" = { - enable-hot-corners = false; - }; - - # Wallpaper now set by stylix's gnome target. - - # Keyboard input sources - "org/gnome/desktop/input-sources" = { - sources = [ - (lib.hm.gvariant.mkTuple [ "xkb" "gb" ]) - (lib.hm.gvariant.mkTuple [ "xkb" "no" ]) - ]; - }; - - # Window manager keybindings - "org/gnome/desktop/wm/keybindings" = { - close = ["q"]; - toggle-fullscreen = ["f"]; - }; - "org/gnome/desktop/wm/preferences" = { - resize-with-right-button = lib.hm.gvariant.mkBoolean true; - button-layout = ""; - }; - - # Shell keybindings - "org/gnome/shell/keybindings" = { - show-screenshot-ui = ["s"]; - }; - - # Custom keybindings - "org/gnome/settings-daemon/plugins/media-keys" = { - home = ["e"]; - control-center = ["i"]; - custom-keybindings = [ - "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" - ]; - }; - - "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { - name = "Terminal"; - command = "ghostty"; - binding = "t"; - }; - - # Mouse acceleration - "org/gnome/desktop/peripherals/mouse" = { - accel-profile = "flat"; - }; - - # Just Perfection extension - "org/gnome/shell/extensions/just-perfection" = { - window-demands-attention-focus = true; - }; - }; }; }; }