From ca813f3eb2129d75278eedb03059031322ab82f0 Mon Sep 17 00:00:00 2001 From: "Mohamed C." Date: Tue, 3 Mar 2026 11:14:11 +0100 Subject: [PATCH] user dynamic --- modules/base/base.nix | 1 + modules/base/users/user.nix | 15 +++ modules/gnome/gnome-de/gnome-settings.nix | 128 ++++++++++++++++++++ modules/hosts/computer-mo/configuration.nix | 7 +- modules/platform/mkhost.nix | 8 ++ modules/users/mo.nix | 16 --- 6 files changed, 157 insertions(+), 18 deletions(-) create mode 100644 modules/base/users/user.nix create mode 100644 modules/gnome/gnome-de/gnome-settings.nix delete mode 100644 modules/users/mo.nix diff --git a/modules/base/base.nix b/modules/base/base.nix index 4632798..f5d26b0 100644 --- a/modules/base/base.nix +++ b/modules/base/base.nix @@ -9,6 +9,7 @@ nix-settings security shellapps + user version zsh ]; diff --git a/modules/base/users/user.nix b/modules/base/users/user.nix new file mode 100644 index 0000000..959c55b --- /dev/null +++ b/modules/base/users/user.nix @@ -0,0 +1,15 @@ +{ inputs, ... }: { + flake.nixosModules.user = { pkgs, user, fullname, ... }: { + users.users.${user} = { + isNormalUser = true; + description = fullname; + extraGroups = [ "networkmanager" "wheel" "video" "audio" ]; + shell = pkgs.zsh; + }; + home-manager.users.${user} = { + home.username = user; + home.homeDirectory = "/home/${user}"; + home.stateVersion = "25.11"; + }; + }; +} diff --git a/modules/gnome/gnome-de/gnome-settings.nix b/modules/gnome/gnome-de/gnome-settings.nix new file mode 100644 index 0000000..f4d0b92 --- /dev/null +++ b/modules/gnome/gnome-de/gnome-settings.nix @@ -0,0 +1,128 @@ +{ inputs, ... }: { + flake.homeManagerModules.gnome = { user, ... }: { + dconf.settings = { + "org/gnome/shell/keybindings" = { + focus-active-notification = []; + open-new-window-application-1 = []; + open-new-window-application-2 = []; + open-new-window-application-3 = []; + open-new-window-application-4 = []; + open-new-window-application-5 = []; + open-new-window-application-6 = []; + open-new-window-application-7 = []; + open-new-window-application-8 = []; + open-new-window-application-9 = []; + toggle-message-tray = ["N"]; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + help = []; + home = ["E"]; + screenreader = []; + magnifier = []; + magnifier-zoom-in = []; + magnifier-zoom-out = []; + }; + "org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = { + command = ["kgx --tab"]; + name = ["Console"]; + }; + "org/gnome/desktop/wm/keybindings" = { + activate-window-menu = []; + always-on-top = ["T"]; + begin-move = ["M"]; + begin-resize = ["R"]; + close = ["Q"]; + cycle-group = []; + cycle-group-backward = []; + cycle-panels = []; + cycle-panels-backward = []; + cycle-windows = []; + cycle-windows-backward = []; + lower = []; + maximize = []; + maximize-horizontally = []; + minimize = ["Down"]; + move-to-monitor-down = []; + move-to-monitor-left = []; + move-to-monitor-right = []; + move-to-monitor-up = []; + move-to-workspace-1 = []; + move-to-workspace-down = []; + move-to-workspace-last = []; + move-to-workspace-left = []; + move-to-workspace-right = []; + move-to-workspace-up = []; + show-desktop = ["D"]; + switch-applications = ["Tab"]; + switch-applications-backward = ["Tab"]; + switch-group = ["Tab"]; + switch-group-backward = ["Tab"]; + panel-run-dialog = ["Space"]; + switch-input-source = []; + switch-input-source-backward = []; + switch-panels = []; + switch-panels-backward = []; + switch-to-workspace-1 = []; + switch-to-workspace-down = []; + switch-to-workspace-last = []; + switch-to-workspace-left = []; + switch-to-workspace-right = []; + switch-to-workspace-up = []; + toggle-fullscreen = ["F"]; + toggle-maximized = ["Up"]; + toggle-on-all-workspaces = ["S"]; + unmaximize = []; + }; + "org/gnome/mutter" = { + experimental-features = ["variable-refresh-rate"]; + center-new-windows = true; + edge-tiling = true; + dynamic-workspaces = true; + }; + "org/gnome/desktop/interface" = { + font-name = "IBM Plex Sans 11"; + document-font-name = "IBM Plex Sans 11"; + monospace-font-name = "IBM Plex Mono 11"; + gtk-theme = "adw-gtk3"; + enable-hot-corners = false; + cursor-theme = "Adwaita"; + }; + "org/gnome/shell/extensions/rounded-window-corners-reborn" = { + border-width = -2; + skip-libadwaita-app = false; + }; + "org/gnome/shell/extensions/clipboard-indicator" = { + toggle-menu = ["V"]; + }; + "org/gnome/shell/extensions/azwallpaper" = { + slideshow-use-absolute-time-for-duration = true; + }; + "org/gnome/desktop/background" = { + color-shading-type = "solid"; + picture-options = "zoom"; + }; + "org/gnome/shell/extensions/nightthemeswitcher/commands" = { + enabled = true; + sunrise = "gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3' && gsettings set org.gnome.desktop.interface color-scheme 'default'"; + sunset = "gsettings set org.gnome.desktop.interface gtk-theme 'adw-gtk3-dark' && gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'"; + }; + "org/gnome/shell" = { + enabled-extensions = [ + "light-style@gnome-shell-extensions.gcampax.github.com" + "clipboard-indicator@tudmotu.com" + "AlphabeticalAppGrid@stuarthayhurst" + "rounded-window-corners@fxgn" + "appindicatorsupport@rgcjonas.gmail.com" + "nightthemeswitcher@romainvigier.fr" + "azwallpaper@azwallpaper.gitlab.com" + ]; + }; + }; + + #home.file.wallpaper = { + # recursive = true; + # source = ../../../assets; + # target = "Bilder/Wallpaper"; + #}; + }; +} diff --git a/modules/hosts/computer-mo/configuration.nix b/modules/hosts/computer-mo/configuration.nix index d2a1684..f0f7a45 100644 --- a/modules/hosts/computer-mo/configuration.nix +++ b/modules/hosts/computer-mo/configuration.nix @@ -1,5 +1,4 @@ -{ inputs, ...}: -{ +{ inputs, config, user, ... }: { flake.nixosModules.computer-mo = { imports = with inputs.self.nixosModules; [ base @@ -10,5 +9,9 @@ gnome mo ]; + + home-manager.users.${user}.imports = with config.flake.homeManagerModules; [ + gnome-settings + ]; }; } diff --git a/modules/platform/mkhost.nix b/modules/platform/mkhost.nix index ed51d7f..69220fa 100644 --- a/modules/platform/mkhost.nix +++ b/modules/platform/mkhost.nix @@ -1,9 +1,17 @@ { inputs, ... }: { flake.lib.mkHost = { system, user, host, extraModules ? [] }: + let + fullnames = { + mo = "Mohamed Chrayed"; + nadine = "Nadine Peukert"; + administrator = "Administrator"; + }; + in inputs.nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit user host; + fullname = fullnames.${user}; pkgs-unstable = import inputs.nixpkgs-unstable { inherit system; config.allowUnfree = true; diff --git a/modules/users/mo.nix b/modules/users/mo.nix deleted file mode 100644 index 6d05522..0000000 --- a/modules/users/mo.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ inputs, ... }: { - flake.nixosModules.mo = { pkgs, ... }: { - users.users.mo = { - isNormalUser = true; - description = "Mohamed Chrayed"; - extraGroups = [ "networkmanager" "wheel" "video" "audio" ]; - shell = pkgs.zsh; - }; - - home-manager.users.mo = { - home.username = "mo"; - home.homeDirectory = "/home/mo"; - home.stateVersion = "25.11"; - }; - }; -}