From 37828b6801a125a666e30f6b0cf045402f86e9a1 Mon Sep 17 00:00:00 2001 From: Don Harper Date: Tue, 24 Dec 2024 19:26:56 -0600 Subject: [PATCH] task | convert some files to modules --- home/gui/default.nix | 8 +++- home/work/citrix.nix | 32 ++++++++------ home/work/default.nix | 4 +- home/work/zoom.nix | 26 ++++------- hosts/ace/default.nix | 16 +++++++ hosts/dragon/default.nix | 16 +++++++ hosts/eve/default.nix | 14 ++++++ hosts/loki/default.nix | 13 ++++++ hosts/pocket2/default.nix | 16 +++++++ hosts/smaug/default.nix | 15 +++++++ hosts/wm/default.nix | 2 +- hosts/wm/kde/default.nix | 63 ++++++++++++++------------- hosts/wm/sway/default.nix | 67 ++++++++++++++++------------- hosts/workstation/games/default.nix | 27 +++++++----- hosts/workstation/kvm.nix | 12 ++++-- 15 files changed, 222 insertions(+), 109 deletions(-) diff --git a/home/gui/default.nix b/home/gui/default.nix index a384803..b1eec0e 100644 --- a/home/gui/default.nix +++ b/home/gui/default.nix @@ -1,4 +1,9 @@ -{ pkgs, inputs, ... }: { +{ pkgs, inputs, config, lib, ... }: +with lib; +let cfg = config.roles.gui; +in { + options.roles.gui = { enable = mkEnableOption "roles gui"; }; + config = mkIf cfg.enable { home-manager.users.don = { imports = [ ./alacritty.nix @@ -160,4 +165,5 @@ configFile = { "shikane/config.toml".source = files/shikane.toml; }; }; }; + }; } diff --git a/home/work/citrix.nix b/home/work/citrix.nix index 846b73e..934abdc 100644 --- a/home/work/citrix.nix +++ b/home/work/citrix.nix @@ -1,18 +1,24 @@ -{ config, pkgs, inputs, ... }: { - home.packages = with pkgs; +{ lib, config, pkgs, inputs, outputs, home-manager, ... }: +with lib; +let cfg = config.roles.citrix; +in { + options.roles.citrix = { enable = lib.mkEnableOption "citrix tools"; }; + config = mkIf cfg.enable { + home-manager.users.don.home.packages = with pkgs; [ (pkgs.citrix_workspace.override { - libvorbis = pkgs.libvorbis.override { - libogg = pkgs.libogg.overrideAttrs (prevAttrs: { - cmakeFlags = (prevAttrs.cmakeFlags or [ ]) - ++ [ (lib.cmakeBool "BUILD_SHARED_LIBS" true) ]; - }); - }; - }) + libvorbis = pkgs.libvorbis.override { + libogg = pkgs.libogg.overrideAttrs (prevAttrs: { + cmakeFlags = (prevAttrs.cmakeFlags or [ ]) + ++ [ (lib.cmakeBool "BUILD_SHARED_LIBS" true) ]; + }); + }; + }) ]; - home.file."ICAClient" = { - recursive = true; - source = ./files/citrix; - target = ".ICAClient"; + home-manager.users.don.home.file."ICAClient" = { + recursive = true; + source = ./files/citrix; + target = ".ICAClient"; + }; }; } diff --git a/home/work/default.nix b/home/work/default.nix index 03b04c7..c146072 100644 --- a/home/work/default.nix +++ b/home/work/default.nix @@ -1,3 +1,3 @@ -{ pkgs, inputs, ... }: { - home-manager.users.don = { imports = [ ./citrix.nix ./zoom.nix ]; }; +{ pkgs, inputs, lib, config, home-manager, outputs, ... }: { + imports = [ ./citrix.nix ./zoom.nix ]; } diff --git a/home/work/zoom.nix b/home/work/zoom.nix index d7c88d5..68b06a8 100644 --- a/home/work/zoom.nix +++ b/home/work/zoom.nix @@ -1,19 +1,9 @@ -{ config, pkgs, ... }: { - home.packages = with pkgs; [ zoom-us ]; - # xdg = { - # configFile."zoom.conf".source = files/zoom.conf; - # configFile."zoomus.conf".source = files/zoomus.conf; - # desktopEntries = { - # myzoom = { - # name = "My Zoom-Zoom"; - # exec = "/home/don/bin/myzoom %u"; - # terminal = false; - # type = "Application"; - # icon = "Zoom"; - # comment = "Zoom Video"; - # mimeType = ["x-scheme-handler/zoommtg" "x-scheme-handler/zoomus" "x-scheme-handler/tel" "x-scheme-handler/callto" "x-scheme-handler/zoomphonecall" "application/x-zoom"]; - # categories = ["Network" "Application" "Application"]; - # }; - # }; - # }; +{ lib, config, pkgs, inputs, outputs, home-manager, ... }: +with lib; +let cfg = config.roles.zoom; +in { + options.roles.zoom = { enable = lib.mkEnableOption "citrix tools"; }; + config = mkIf cfg.enable { + home-manager.users.don.home.packages = with pkgs; [ zoom-us ]; + }; } diff --git a/hosts/ace/default.nix b/hosts/ace/default.nix index 4dbdd28..046993f 100644 --- a/hosts/ace/default.nix +++ b/hosts/ace/default.nix @@ -3,7 +3,23 @@ ./hardware-configuration.nix # ../disko/mmcblk.nix ../workstation + ../workstation/kvm.nix + ../workstation/games ../wm + ../../home/work ]; networking.hostName = "ace"; + + roles = { + citrix.enable = false; + zoom.enable = false; + gui.enable = true; + kvm.enable = false; + games.enable = false; + }; + wm = { + sway.enable = true; + kde.enable = false; + # cosmic.enable = false; + }; } diff --git a/hosts/dragon/default.nix b/hosts/dragon/default.nix index 7ebb717..0706af9 100644 --- a/hosts/dragon/default.nix +++ b/hosts/dragon/default.nix @@ -6,7 +6,23 @@ inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd ../workstation + ../workstation/kvm.nix + ../workstation/games ../wm + ../../home/work ]; networking.hostName = "dragon"; + + roles = { + citrix.enable = false; + zoom.enable = false; + gui.enable = true; + kvm.enable = false; + games.enable = false; + }; + wm = { + sway.enable = true; + kde.enable = false; + # cosmic.enable = false; + }; } diff --git a/hosts/eve/default.nix b/hosts/eve/default.nix index 9e23d76..322697b 100644 --- a/hosts/eve/default.nix +++ b/hosts/eve/default.nix @@ -4,9 +4,23 @@ ./hardware-configuration.nix # ../disko/mmcblk.nix ../workstation + ../workstation/kvm.nix ../workstation/games ../wm ../../home/work ]; networking.hostName = "eve"; + + roles = { + citrix.enable = false; + zoom.enable = false; + gui.enable = true; + kvm.enable = false; + games.enable = false; + }; + wm = { + sway.enable = true; + kde.enable = false; + # cosmic.enable = false; + }; } diff --git a/hosts/loki/default.nix b/hosts/loki/default.nix index 9d9d575..6cb162b 100644 --- a/hosts/loki/default.nix +++ b/hosts/loki/default.nix @@ -10,4 +10,17 @@ ../../home/work ]; networking.hostName = "loki"; + + roles = { + citrix.enable = true; + zoom.enable = true; + gui.enable = true; + kvm.enable = true; + games.enable = true; + }; + wm = { + sway.enable = true; + kde.enable = false; + # cosmic.enable = false; + }; } diff --git a/hosts/pocket2/default.nix b/hosts/pocket2/default.nix index 6fca297..27d58c7 100644 --- a/hosts/pocket2/default.nix +++ b/hosts/pocket2/default.nix @@ -6,7 +6,23 @@ inputs.nixos-hardware.nixosModules.common-pc-laptop inputs.nixos-hardware.nixosModules.common-pc-laptop-ssd ../workstation + ../workstation/kvm.nix + ../workstation/games ../wm + ../../home/work ]; networking.hostName = "pocket2"; + + roles = { + citrix.enable = false; + zoom.enable = false; + gui.enable = true; + kvm.enable = false; + games.enable = false; + }; + wm = { + sway.enable = true; + kde.enable = false; + # cosmic.enable = false; + }; } diff --git a/hosts/smaug/default.nix b/hosts/smaug/default.nix index 638aaf0..d925648 100644 --- a/hosts/smaug/default.nix +++ b/hosts/smaug/default.nix @@ -4,8 +4,23 @@ ./hardware-configuration.nix # ../disko/sda.nix ../workstation + ../workstation/kvm.nix + ../workstation/games ../wm ../../home/work ]; networking.hostName = "smaug"; + + roles = { + citrix.enable = true; + zoom.enable = false; + gui.enable = true; + kvm.enable = true; + games.enable = true; + }; + wm = { + sway.enable = true; + kde.enable = false; + # cosmic.enable = false; + }; } diff --git a/hosts/wm/default.nix b/hosts/wm/default.nix index da0badb..95c2122 100644 --- a/hosts/wm/default.nix +++ b/hosts/wm/default.nix @@ -1 +1 @@ -{ pkgs, ... }: { imports = [ ./sway ]; } +{ pkgs, ... }: { imports = [ ./sway ./kde ]; } diff --git a/hosts/wm/kde/default.nix b/hosts/wm/kde/default.nix index 3e0642b..e98fc45 100644 --- a/hosts/wm/kde/default.nix +++ b/hosts/wm/kde/default.nix @@ -1,32 +1,37 @@ -{ config, pkgs, lib, ... }: { - environment.systemPackages = with pkgs; [ - alacritty - bemenu - dracula-theme # gtk theme - glib - grim - kaddressbook - kalendar - kdeconnect - #kmail-account-wizard - kmail - #kdepim-runtime - #kdepim - #kdepim-addons - kitinerary - mako - plasma-desktop - slurp - wl-clipboard - ]; +{ config, pkgs, lib, ... }: +with lib; +let cfg = config.wm.kde; +in { + options.wm.kde = { enable = mkEnableOption "wm: kde"; }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + alacritty + bemenu + dracula-theme # gtk theme + glib + grim + kaddressbook + kalendar + kdeconnect + # kmail-account-wizard + kmail + # kdepim-runtime + # kdepim + # kdepim-addons + kitinerary + mako + plasma-desktop + slurp + wl-clipboard + ]; - services.pipewire = { - enable = true; - alsa.enable = true; - pulse.enable = true; + services.pipewire = { + enable = true; + alsa.enable = true; + pulse.enable = true; + }; + + services.displayManager.sddm.enable = true; + services.desktopManager.plasma6.enable = true; }; - - services.enable = true; - services.displayManager.sddm.enable = true; - services.desktopManager.plasma6.enable = true; } diff --git a/hosts/wm/sway/default.nix b/hosts/wm/sway/default.nix index b548a6e..f4f01fe 100644 --- a/hosts/wm/sway/default.nix +++ b/hosts/wm/sway/default.nix @@ -1,5 +1,7 @@ -{ pkgs, ... }: +{ pkgs, lib, config, ... }: +with lib; let + cfg = config.wm.sway; dbus-sway-environment = pkgs.writeTextFile { name = "dbus-sway-environment"; destination = "/bin/dbus-sway-environment"; @@ -24,36 +26,39 @@ let ''; }; in { - environment.systemPackages = with pkgs; [ - adwaita-icon-theme - alacritty - bemenu - configure-gtk - dbus-sway-environment - dmenu-wayland - dracula-theme # gtk theme - glib - grim - mako - rofi - slurp - sway - sway-audio-idle-inhibit - swayidle - swayimg - swaynotificationcenter - waybar - wayland - wayland-pipewire-idle-inhibit - wl-clipboard - wofi - ]; - services.dbus.enable = true; - programs = { - sway = { - enable = true; - wrapperFeatures.gtk = true; + options.wm.sway = { enable = mkEnableOption "wm: sway"; }; + config = mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + adwaita-icon-theme + alacritty + bemenu + configure-gtk + dbus-sway-environment + dmenu-wayland + dracula-theme # gtk theme + glib + grim + mako + rofi + slurp + sway + sway-audio-idle-inhibit + swayidle + swayimg + swaynotificationcenter + waybar + wayland + wayland-pipewire-idle-inhibit + wl-clipboard + wofi + ]; + services.dbus.enable = true; + programs = { + sway = { + enable = true; + wrapperFeatures.gtk = true; + }; }; + services.greetd.package = "greetd.wlgreet"; }; - services.greetd.package = "greetd.wlgreet"; } diff --git a/hosts/workstation/games/default.nix b/hosts/workstation/games/default.nix index ab8f4f4..4dc3474 100644 --- a/hosts/workstation/games/default.nix +++ b/hosts/workstation/games/default.nix @@ -1,14 +1,19 @@ -{ inputs, outputs, lib, config, pkgs, ... }: { - programs = { - # GAMES! - steam = { - enable = true; - gamescopeSession.enable = true; - # # Open ports in the firewall for Steam Remote Play - # remotePlay.openFirewall = true; - # # Open ports in the firewall for Source Dedicated Server - # dedicatedServer.openFirewall = true; +{ inputs, outputs, lib, config, pkgs, ... }: +with lib; +let cfg = config.roles.games; +in { + options.roles.games = { enable = mkEnableOption "roles games"; }; + config = mkIf cfg.enable { + programs = { + steam = { + enable = true; + gamescopeSession = { enable = true; }; + # Open ports in the firewall for Steam Remote Play + # remotePlay.openFirewall = true; + # Open ports in the firewall for Source Dedicated Server + # dedicatedServer.openFirewall = true; + }; + gamemode = { enable = true; }; }; - gamemode = { enable = true; }; }; } diff --git a/hosts/workstation/kvm.nix b/hosts/workstation/kvm.nix index ba40f0c..18201f9 100644 --- a/hosts/workstation/kvm.nix +++ b/hosts/workstation/kvm.nix @@ -1,4 +1,10 @@ -{ pkgs, inputs, ... }: { - virtualisation.libvirtd.enable = true; - environment.systemPackages = with pkgs; [ gnome-boxes ]; +{ pkgs, inputs, config, lib, ... }: +with lib; +let cfg = config.roles.kvm; +in { + options.roles.kvm = { enable = mkEnableOption "roles kvm"; }; + config = mkIf cfg.enable { + virtualisation.libvirtd.enable = true; + environment.systemPackages = with pkgs; [ gnome-boxes ]; + }; }