From 5ee4a77d0a6dd23b080f30a08cb1b3d7cea360a0 Mon Sep 17 00:00:00 2001 From: seth Date: Sat, 28 Jan 2023 06:30:33 -0500 Subject: make managing desktops easier for user --- users/seth/desktop/default.nix | 6 ++ users/seth/desktop/gnome.nix | 128 +++++++++++++++++-------------- users/seth/home.nix | 10 ++- users/seth/options.nix | 2 +- users/seth/programs/default.nix | 14 +++- users/seth/programs/mangohud/default.nix | 27 +++++-- 6 files changed, 114 insertions(+), 73 deletions(-) create mode 100644 users/seth/desktop/default.nix diff --git a/users/seth/desktop/default.nix b/users/seth/desktop/default.nix new file mode 100644 index 0000000..904b6f0 --- /dev/null +++ b/users/seth/desktop/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./gnome.nix + # ./plasma.nix + ]; +} diff --git a/users/seth/desktop/gnome.nix b/users/seth/desktop/gnome.nix index ed62248..44f5eec 100644 --- a/users/seth/desktop/gnome.nix +++ b/users/seth/desktop/gnome.nix @@ -1,60 +1,70 @@ -{pkgs, ...}: { - home.packages = with pkgs; - [ - adw-gtk3 - ] - ++ (with pkgs.gnomeExtensions; [ - appindicator - blur-my-shell - caffeine - ]); - - dconf.settings = { - "org/gnome/shell" = { - favorite-apps = [ - "firefox.desktop" - "org.gnome.Nautilus.desktop" - "discord.desktop" - ]; - }; - - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - }; - - "org/gnome/desktop/wm/keybindings" = { - switch-windows = "['Tab']"; - switch-windows-backward = "['Tab']"; - }; - - "org/gnome/shell" = { - disable-user-extensions = false; - enabled-extensions = [ - "appindicatorsupport@rgcjonas.gmail.com" - "appindicatorsupport@rgcjonas.gmail.com" - "caffeine@patapon.info" - ]; - }; - }; - - gtk = { - enable = true; - - theme = { - name = "adw-gtk3"; - package = pkgs.adw-gtk3; - }; - - gtk3.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - - gtk4.extraConfig = { - Settings = '' - gtk-application-prefer-dark-theme=1 - ''; - }; - }; +{ + config, + pkgs, + ... +}: let + inherit (config.seth) desktop; + homePackages = + if desktop == "gnome" + then with pkgs; [adw-gtk3] ++ (with pkgs.gnomeExtensions; [appindicator blur-my-shell caffeine]) + else []; + dconfSettings = + if desktop == "gnome" + then { + "org/gnome/shell" = { + favorite-apps = [ + "firefox.desktop" + "org.gnome.Nautilus.desktop" + "discord.desktop" + ]; + }; + + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + + "org/gnome/desktop/wm/keybindings" = { + switch-windows = "['Tab']"; + switch-windows-backward = "['Tab']"; + }; + + "org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = [ + "appindicatorsupport@rgcjonas.gmail.com" + "appindicatorsupport@rgcjonas.gmail.com" + "caffeine@patapon.info" + ]; + }; + } + else {}; + gtkConfig = + if desktop == "gnome" + then { + enable = true; + + theme = { + name = "adw-gtk3"; + package = pkgs.adw-gtk3; + }; + + gtk3.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + + gtk4.extraConfig = { + Settings = '' + gtk-application-prefer-dark-theme=1 + ''; + }; + } + else {}; +in { + home.packages = homePackages; + + dconf.settings = dconfSettings; + + gtk = gtkConfig; } diff --git a/users/seth/home.nix b/users/seth/home.nix index 1ca1ac7..401a208 100644 --- a/users/seth/home.nix +++ b/users/seth/home.nix @@ -1,10 +1,16 @@ -_: { +{config, ...}: let + sysDesktop = with builtins; + if config ? config.sys.desktop + then config.sys.desktop + else ""; +in { imports = [ - ./desktop/gnome.nix ./options.nix + ./desktop ./programs ./shell ]; seth.devel.enable = true; + seth.desktop = sysDesktop; } diff --git a/users/seth/options.nix b/users/seth/options.nix index 1cd2f82..676dbfa 100644 --- a/users/seth/options.nix +++ b/users/seth/options.nix @@ -8,7 +8,7 @@ desktop = mkOption { type = types.str; default = ""; - description = "enable settings for gnome"; + description = "choose a desktop configuration"; }; }; } diff --git a/users/seth/programs/default.nix b/users/seth/programs/default.nix index 13b26ab..ac6a14a 100644 --- a/users/seth/programs/default.nix +++ b/users/seth/programs/default.nix @@ -14,6 +14,15 @@ statix ] else []; + + guiApps = + if config.seth.desktop != "" + then + with pkgs; [ + discord + steam + ] + else []; in { imports = [ ./git.nix @@ -27,7 +36,6 @@ in { home.packages = with pkgs; [ bat - discord exa fd gh @@ -35,8 +43,8 @@ in { rclone restic ripgrep - steam python311 ] - ++ develPackages; + ++ develPackages + ++ guiApps; } diff --git a/users/seth/programs/mangohud/default.nix b/users/seth/programs/mangohud/default.nix index f41d9d8..3c203c4 100644 --- a/users/seth/programs/mangohud/default.nix +++ b/users/seth/programs/mangohud/default.nix @@ -1,10 +1,21 @@ -{pkgs, ...}: { - home.packages = [ - pkgs.mangohud - ]; +{ + config, + pkgs, + ... +}: let + homePackages = + if config.seth.desktop != "null" + then with pkgs; [mangohud] + else []; + mangohudConf = + if config.seth.desktop != "null" + then { + source = ./config; + recursive = true; + } + else {}; +in { + home.packages = homePackages; - xdg.configFile.MangoHud = { - source = ./config; - recursive = true; - }; + xdg.configFile.MangoHud = mangohudConf; } -- cgit v1.2.3