summaryrefslogtreecommitdiff
path: root/modules/desktops/default.nix
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-06-27 16:39:14 -0400
committerFreya Murphy <freya@freyacat.org>2025-06-27 16:39:14 -0400
commit2e4c4298cf84f94d68387e8076fd430e9968ce6c (patch)
tree2a43fa6d4659fe2585c75aeec3ee4d5e0a42de2e /modules/desktops/default.nix
parentfmt (diff)
downloaddotfiles-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.nix91
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"
+ ];
+ };
+ };
+ };
+}