diff options
author | Freya Murphy <freya@freyacat.org> | 2025-06-27 16:39:14 -0400 |
---|---|---|
committer | Freya Murphy <freya@freyacat.org> | 2025-06-27 16:39:14 -0400 |
commit | 2e4c4298cf84f94d68387e8076fd430e9968ce6c (patch) | |
tree | 2a43fa6d4659fe2585c75aeec3ee4d5e0a42de2e /modules/desktops/default.nix | |
parent | fmt (diff) | |
download | dotfiles-nix-2e4c4298cf84f94d68387e8076fd430e9968ce6c.tar.gz dotfiles-nix-2e4c4298cf84f94d68387e8076fd430e9968ce6c.tar.bz2 dotfiles-nix-2e4c4298cf84f94d68387e8076fd430e9968ce6c.zip |
refactor
Diffstat (limited to 'modules/desktops/default.nix')
-rw-r--r-- | modules/desktops/default.nix | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/modules/desktops/default.nix b/modules/desktops/default.nix new file mode 100644 index 0000000..37197c2 --- /dev/null +++ b/modules/desktops/default.nix @@ -0,0 +1,91 @@ +{ + lib, + config, + pkgs, + inputs, + ... +}: let + inherit (lib) mkEnableOption mkIf optionals; + cfg = config.desktops; +in { + imports = [ + ./hyprland + ./wayland.nix + ]; + + options.desktops = { + enable = mkEnableOption "Enable baseline desktop utils and programs."; + wayland = mkEnableOption "Enable wayland desktop components."; + hyprland = mkEnableOption "Install the Hyprland desktop."; + }; + + config = mkIf cfg.enable { + home-manager.users.${config.user} = { + # desktop specific programs + home.packages = with pkgs; [ + # gtk + adwaita-icon-theme + # codecs + libaacs + libavif + libbluray + libjxl + # wayland + cage + grimblast + wl-clipboard + wl-clip-persist + wl-mirror + # xdg + libnotify + ]; + }; + + # desktop only fonts + fonts.packages = + (with pkgs; [ + corefonts + dejavu_fonts + fira-code + fira-code-symbols + jetbrains-mono + material-icons + nerd-fonts.fira-code + noto-fonts + noto-fonts-cjk-sans + noto-fonts-emoji + twemoji-color-font + vistafonts + ]) + ++ (with inputs.apple-fonts.packages.${pkgs.system}; [ + sf-pro + sf-mono + sf-compact + ]); + + fonts.fontconfig = { + enable = true; + defaultFonts = { + serif = [ + "Twemoji" + "DejaVu Serif" + ]; + sansSerif = [ + "Twemoji" + "DejaVu Sans" + ]; + monospace = [ + "Fira Code" + "FiraCode Nerd Font Mono" + "Font Awesome 6 Pro Regular" + "Twemoji" + "DejaVu Sans Mono" + ]; + emoji = [ + "Twemoji" + "Noto Color Emoji" + ]; + }; + }; + }; +} |