From bc71dd4f86b94d9489a9a8964ec00d6352b53752 Mon Sep 17 00:00:00 2001 From: ediblerope Date: Tue, 20 Jan 2026 08:38:40 +0000 Subject: [PATCH] Update and rename fred.nix to gnome-hm.nix --- home-manager/fred.nix | 12 ----- home-manager/gnome-hm.nix | 105 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 105 insertions(+), 12 deletions(-) delete mode 100644 home-manager/fred.nix create mode 100644 home-manager/gnome-hm.nix diff --git a/home-manager/fred.nix b/home-manager/fred.nix deleted file mode 100644 index edbdfd7..0000000 --- a/home-manager/fred.nix +++ /dev/null @@ -1,12 +0,0 @@ -# settings/fred.nix -{ config, pkgs, lib, ... }: # Add lib here! -{ - # Define the state version for Home Manager - home.stateVersion = "25.11"; - - # Packages for user - home.packages = with pkgs; [ - # - ]; - -} diff --git a/home-manager/gnome-hm.nix b/home-manager/gnome-hm.nix new file mode 100644 index 0000000..416902c --- /dev/null +++ b/home-manager/gnome-hm.nix @@ -0,0 +1,105 @@ +{ config, pkgs, lib, osConfig, ... }: +{ + config = lib.mkIf (lib.elem osConfig.networking.hostName [ "FredOS-Gaming" "FredOS-Macbook" ]) { + # Download wallpaper from GitHub repo and symlink it + home.file.".local/share/backgrounds/wallpaper.png".source = + let + wallpaperRepo = builtins.fetchGit { + url = "https://github.com/ediblerope/nixos-config"; + ref = "main"; + }; + in "${wallpaperRepo}/walls/wallpaper.png"; + + # 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"]; + }; + + # 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 = "kgx"; + 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; + }; + + # Rounded Window Corners extension + "org/gnome/shell/extensions/rounded-window-corners-reborn" = let + mkUint32 = lib.hm.gvariant.mkUint32; + mkVariant = lib.hm.gvariant.mkVariant; + mkTuple = lib.hm.gvariant.mkTuple; + mkEntry = name: value: lib.hm.gvariant.mkDictionaryEntry [name value]; + mkDict = attrs: mkVariant ( + lib.mapAttrsToList (name: value: mkEntry name value) attrs + ); + in { + global-rounded-corner-settings = [ + (mkEntry "padding" (mkDict { + left = mkUint32 4; + right = mkUint32 4; + top = mkUint32 4; + bottom = mkUint32 4; + })) + (mkEntry "keepRoundedCorners" (mkDict { + maximized = true; + fullscreen = true; + })) + (mkEntry "borderRadius" (mkVariant (mkUint32 7))) + (mkEntry "smoothing" (mkVariant 0.0)) + (mkEntry "borderColor" (mkVariant (mkTuple [ 0.5 0.5 0.5 1.0 ]))) + (mkEntry "enabled" (mkVariant true)) + ]; + }; + }; + }; +}