From c4aa481b383d05210ddeab9dc4182ae2a1a452d6 Mon Sep 17 00:00:00 2001 From: ediblerope Date: Thu, 9 Apr 2026 14:35:56 +0100 Subject: [PATCH] Consolidate GNOME config into single settings/gnome.nix module Merge home-manager GNOME settings (dconf, keybinds, GTK CSS, wallpaper) from gnome-hm.nix into settings/gnome.nix so the entire DE config lives in one file and can be toggled with a single import. Co-Authored-By: Claude Opus 4.6 --- home-manager/fred.nix | 2 - home-manager/gnome-hm.nix | 100 ----------------------------------- settings/gnome.nix | 106 ++++++++++++++++++++++++++++++++++++-- 3 files changed, 102 insertions(+), 106 deletions(-) delete mode 100644 home-manager/gnome-hm.nix diff --git a/home-manager/fred.nix b/home-manager/fred.nix index 0536ee4..179da25 100644 --- a/home-manager/fred.nix +++ b/home-manager/fred.nix @@ -27,6 +27,4 @@ gtk-titlebar = false ''; - # Import gnome home manager config - imports = [ ./gnome-hm.nix ]; } diff --git a/home-manager/gnome-hm.nix b/home-manager/gnome-hm.nix deleted file mode 100644 index c2b0932..0000000 --- a/home-manager/gnome-hm.nix +++ /dev/null @@ -1,100 +0,0 @@ -{ config, pkgs, lib, osConfig, inputs, ... }: -{ - config = lib.mkIf (lib.elem osConfig.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) { - - home.file.".local/share/backgrounds/wallpaper.png".source = - "${inputs.self}/walls/wallpaper.png"; - - # Minimal titlebars — hide window buttons and shrink headerbar - home.file.".config/gtk-4.0/gtk.css".force = true; - home.file.".config/gtk-4.0/gtk.css".text = '' - headerbar { - min-height: 0; - padding: 0; - margin: 0; - } - headerbar .title { - font-size: 0; - } - ''; - home.file.".config/gtk-3.0/gtk.css".force = true; - home.file.".config/gtk-3.0/gtk.css".text = '' - headerbar { - min-height: 0; - padding: 0; - margin: 0; - } - headerbar .title { - font-size: 0; - } - ''; - - # GNOME dconf settings - dconf.settings = { - # Interface / theme - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - gtk-theme = "Adwaita-dark"; - enable-hot-corners = false; - accent-color = "purple"; - cursor-theme = "Adwaita"; - cursor-size = 24; - }; - - # Wallpaper settings - "org/gnome/desktop/background" = { - picture-uri = "file://${config.home.homeDirectory}/.local/share/backgrounds/wallpaper.png"; - picture-uri-dark = "file://${config.home.homeDirectory}/.local/share/backgrounds/wallpaper.png"; - picture-options = "zoom"; - }; - - # 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; - }; - }; - }; -} diff --git a/settings/gnome.nix b/settings/gnome.nix index b75a4e9..ef137e9 100644 --- a/settings/gnome.nix +++ b/settings/gnome.nix @@ -1,4 +1,4 @@ -{ config, pkgs, lib, ... }: +{ config, pkgs, lib, inputs, ... }: { config = lib.mkIf (lib.elem config.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) { # Enable Gnome @@ -7,7 +7,7 @@ services.desktopManager.gnome.enable = true; services.displayManager.gdm.wayland = true; boot.plymouth.enable = false; - + # Flatpak for ad-hoc app installs via Bazaar services.flatpak.enable = true; @@ -34,7 +34,7 @@ "$HOME/.local/share/icons" ]; }; - + # Set icon theme via dconf programs.dconf.profiles.user.databases = [{ settings = { @@ -47,8 +47,106 @@ }; }; }]; - + programs.xwayland.enable = true; programs.dconf.enable = true; + + # Home Manager GNOME settings + home-manager.users.fred = { config, ... }: { + home.file.".local/share/backgrounds/wallpaper.png".source = + "${inputs.self}/walls/wallpaper.png"; + + # Minimal titlebars — hide window buttons and shrink headerbar + home.file.".config/gtk-4.0/gtk.css".force = true; + home.file.".config/gtk-4.0/gtk.css".text = '' + headerbar { + min-height: 0; + padding: 0; + margin: 0; + } + headerbar .title { + font-size: 0; + } + ''; + home.file.".config/gtk-3.0/gtk.css".force = true; + home.file.".config/gtk-3.0/gtk.css".text = '' + headerbar { + min-height: 0; + padding: 0; + margin: 0; + } + headerbar .title { + font-size: 0; + } + ''; + + # GNOME dconf settings + dconf.settings = { + # Interface / theme + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + gtk-theme = "Adwaita-dark"; + enable-hot-corners = false; + accent-color = "purple"; + cursor-theme = "Adwaita"; + cursor-size = 24; + }; + + # Wallpaper settings + "org/gnome/desktop/background" = { + picture-uri = "file://${config.home.homeDirectory}/.local/share/backgrounds/wallpaper.png"; + picture-uri-dark = "file://${config.home.homeDirectory}/.local/share/backgrounds/wallpaper.png"; + picture-options = "zoom"; + }; + + # 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; + }; + }; + }; }; }