diff options
| author | seth <[email protected]> | 2024-02-07 18:03:24 -0500 |
|---|---|---|
| committer | seth <[email protected]> | 2024-02-07 18:27:45 -0500 |
| commit | cffffeb678e9a1078eeba0f19c9607cda9f31bed (patch) | |
| tree | 8b8f68aa357becad06845f15b7e528474041371c /modules/nixos/desktop | |
| parent | 48712d44fde91d2685089cca7f9d88295fd59817 (diff) | |
modules/nixos+darwin: move to traits + archetypes model
Diffstat (limited to 'modules/nixos/desktop')
| -rw-r--r-- | modules/nixos/desktop/audio.nix | 27 | ||||
| -rw-r--r-- | modules/nixos/desktop/default.nix | 59 | ||||
| -rw-r--r-- | modules/nixos/desktop/fonts.nix | 38 | ||||
| -rw-r--r-- | modules/nixos/desktop/programs.nix | 28 |
4 files changed, 101 insertions, 51 deletions
diff --git a/modules/nixos/desktop/audio.nix b/modules/nixos/desktop/audio.nix new file mode 100644 index 0000000..1e47ab2 --- /dev/null +++ b/modules/nixos/desktop/audio.nix @@ -0,0 +1,27 @@ +{ + config, + lib, + ... +}: let + cfg = config.desktop.audio; + enable = config.desktop.enable && cfg.enable; +in { + options.desktop.audio = { + enable = lib.mkEnableOption "desktop audio configuration" // {default = true;}; + }; + + config = lib.mkIf enable { + hardware.pulseaudio.enable = false; + security.rtkit.enable = true; + + services = { + pipewire = lib.mkDefault { + enable = true; + wireplumber.enable = true; + alsa.enable = true; + jack.enable = true; + pulse.enable = true; + }; + }; + }; +} diff --git a/modules/nixos/desktop/default.nix b/modules/nixos/desktop/default.nix index 12023ef..17392c4 100644 --- a/modules/nixos/desktop/default.nix +++ b/modules/nixos/desktop/default.nix @@ -1,68 +1,25 @@ { config, lib, - pkgs, ... }: let cfg = config.desktop; in { - options.desktop.enable = lib.mkEnableOption "base desktop settings"; + options.desktop = { + enable = lib.mkEnableOption "desktop settings"; + }; imports = [ + ./audio.nix + ./fonts.nix + ./programs.nix + ./budgie ./gnome ./plasma ]; config = lib.mkIf cfg.enable { - environment = { - noXlibs = lib.mkForce false; - systemPackages = with pkgs; [wl-clipboard xclip]; - }; - - fonts = { - enableDefaultPackages = lib.mkDefault true; - - packages = with pkgs; [ - (nerdfonts.override {fonts = ["FiraCode" "Hack" "Noto"];}) - noto-fonts - noto-fonts-extra - noto-fonts-color-emoji - noto-fonts-cjk-sans - ]; - - fontconfig = { - enable = lib.mkDefault true; - cache32Bit = true; - defaultFonts = lib.mkDefault { - serif = ["Noto Serif"]; - sansSerif = ["Noto Sans"]; - emoji = ["Noto Color Emoji"]; - monospace = ["Noto Sans Mono"]; - }; - }; - }; - - hardware.pulseaudio.enable = false; - - programs = { - chromium.enable = lib.mkDefault true; - firefox.enable = lib.mkDefault true; - xwayland.enable = lib.mkDefault true; - }; - - services = { - pipewire = lib.mkDefault { - enable = true; - wireplumber.enable = true; - alsa.enable = true; - jack.enable = true; - pulse.enable = true; - }; - - xserver.enable = lib.mkDefault true; - }; - - xdg.portal.enable = lib.mkDefault true; + services.xserver.enable = true; }; } diff --git a/modules/nixos/desktop/fonts.nix b/modules/nixos/desktop/fonts.nix new file mode 100644 index 0000000..212f88c --- /dev/null +++ b/modules/nixos/desktop/fonts.nix @@ -0,0 +1,38 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.desktop.fonts; + enable = config.desktop.enable && cfg.enable; +in { + options.desktop.fonts = { + enable = lib.mkEnableOption "desktop fonts" // {default = true;}; + }; + + config = lib.mkIf enable { + fonts = { + enableDefaultPackages = true; + + packages = with pkgs; [ + (nerdfonts.override {fonts = ["FiraCode" "Hack" "Noto"];}) + noto-fonts + noto-fonts-extra + noto-fonts-color-emoji + noto-fonts-cjk-sans + ]; + + fontconfig = { + enable = true; + cache32Bit = lib.mkDefault true; + defaultFonts = lib.mkDefault { + serif = ["Noto Serif"]; + sansSerif = ["Noto Sans"]; + emoji = ["Noto Color Emoji"]; + monospace = ["Noto Sans Mono"]; + }; + }; + }; + }; +} diff --git a/modules/nixos/desktop/programs.nix b/modules/nixos/desktop/programs.nix new file mode 100644 index 0000000..94bde49 --- /dev/null +++ b/modules/nixos/desktop/programs.nix @@ -0,0 +1,28 @@ +{ + config, + lib, + pkgs, + ... +}: let + cfg = config.desktop.defaultPrograms; + enable = config.desktop.enable && cfg.enable; +in { + options.desktop.defaultPrograms = { + enable = lib.mkEnableOption "default desktop programs" // {default = true;}; + }; + + config = lib.mkIf enable { + environment = { + noXlibs = lib.mkForce false; + systemPackages = with pkgs; [wl-clipboard xclip]; + }; + + programs = { + chromium.enable = true; + firefox.enable = true; + xwayland.enable = true; + }; + + xdg.portal.enable = true; + }; +} |
