summaryrefslogtreecommitdiff
path: root/modules/desktop/default.nix
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2025-06-23 22:33:44 -0400
committerFreya Murphy <freya@freyacat.org>2025-06-23 22:33:44 -0400
commit328c741b1aac74020412e99e0dca7c728dbc92fa (patch)
tree461f4ebcd3252d542749a34668defd62de356c73 /modules/desktop/default.nix
parentremoved unused packages (diff)
downloaddotfiles-nix-328c741b1aac74020412e99e0dca7c728dbc92fa.tar.gz
dotfiles-nix-328c741b1aac74020412e99e0dca7c728dbc92fa.tar.bz2
dotfiles-nix-328c741b1aac74020412e99e0dca7c728dbc92fa.zip
refactor
Diffstat (limited to '')
-rw-r--r--modules/desktop/default.nix106
1 files changed, 106 insertions, 0 deletions
diff --git a/modules/desktop/default.nix b/modules/desktop/default.nix
new file mode 100644
index 0000000..a11842c
--- /dev/null
+++ b/modules/desktop/default.nix
@@ -0,0 +1,106 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ inherit (lib) mkEnableOption mkIf optionals;
+ cfg = config.desktop;
+in {
+ imports = [
+ ./firefox
+ ./waybar
+ ./wofi
+ ./astal.nix
+ ./hypridle.nix
+ ./hyprland.nix
+ ./hyprlock.nix
+ ./hyprpaper.nix
+ ./mako.nix
+ ];
+
+ options.desktop = {
+ enable = mkEnableOption "Enable baseline desktop utils and programs.";
+ astal = mkEnableOption "Enable the astal gtk shell.";
+ firefox = mkEnableOption "Enable the firefox browser.";
+ hypridle = mkEnableOption "Enable the hypridle daemon.";
+ hyprland = mkEnableOption "Install the Hyprland desktop.";
+ hyprlock = mkEnableOption "Enable the hyprlock lockscreen.";
+ hyprpaper = mkEnableOption "Enable the hyprpaper wallpaper daemon.";
+ mako = mkEnableOption "Enable the mako notification daemon.";
+ waybar = mkEnableOption "Enable the waybar bar.";
+ wofi = mkEnableOption "Enable the wofi launcher.";
+ };
+
+ config = mkIf cfg.enable {
+ home-manager.users.${config.user} = {
+ # desktop specific programs
+ home.packages = with pkgs; [
+ # gtk
+ adwaita-icon-theme
+ orchis-theme
+ # media
+ ffmpeg
+ 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"
+ ];
+ };
+ };
+ };
+ };
+}