diff options
Diffstat (limited to 'modules/desktop')
20 files changed, 239 insertions, 187 deletions
diff --git a/modules/desktop/hjem/default.nix b/modules/desktop/hjem/default.nix new file mode 100644 index 0000000..a1a28c5 --- /dev/null +++ b/modules/desktop/hjem/default.nix @@ -0,0 +1,12 @@ +{ + imports = [ + ./gtk.nix + + ./wm/sway.nix + ./wm/dunst.nix + ./wm/fuzzel.nix + + ./programs/foot.nix + ./programs/firefox.nix + ]; +} diff --git a/modules/desktop/hjem/gtk.nix b/modules/desktop/hjem/gtk.nix new file mode 100644 index 0000000..bee5936 --- /dev/null +++ b/modules/desktop/hjem/gtk.nix @@ -0,0 +1,37 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.desktop.gtk; +in { + packages = with pkgs; [ + dconf + + papirus-icon-theme + cfg.cursor_data.package + cfg.theme_data.package + ]; + + xdg.config.files = let + value.Settings = { + gtk-cursor-theme-name = cfg.cursor_data.name; + gtk-cursor-size = 24; + gtk-icon-theme-name = "Papirus"; + gtk-theme-name = cfg.theme_data.name; + }; + in { + "gtk-3.0/settings.ini" = { + generator = lib.generators.toINI {}; + inherit value; + }; + "gtk-4.0/settings.ini" = { + generator = lib.generators.toINI {}; + inherit value; + }; + "gtk-4.0/gtk.css".text = '' + @import url("file://${cfg.theme_data.package}/gtk-4.0/gtk.css"); + ''; + }; +} diff --git a/modules/desktop/hjem/programs/firefox.nix b/modules/desktop/hjem/programs/firefox.nix new file mode 100644 index 0000000..73040d2 --- /dev/null +++ b/modules/desktop/hjem/programs/firefox.nix @@ -0,0 +1,26 @@ +{ + pkgs, + lib, + config, + ... +}: let + cfg = config.collinux.desktop.programs.firefox; +in + lib.mkIf cfg.enable { + files.".mozilla/firefox/profiles.ini" = { + generator = lib.generators.toINI {}; + value = { + Profile0 = { + Name = "collin"; + IsRelative = 1; + Path = "collin"; + Default = 1; + }; + General = { + StartWithLastProfile = 1; + Version = 2; + }; + }; + }; + packages = [pkgs.firefox]; + } diff --git a/modules/desktop/system/programs/foot.nix b/modules/desktop/hjem/programs/foot.nix index 1b99ce3..4d630c6 100644 --- a/modules/desktop/system/programs/foot.nix +++ b/modules/desktop/hjem/programs/foot.nix @@ -50,14 +50,12 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/foot/foot.ini" = { - generator = lib.generators.toINI {}; - value = settings; - }; + files = { + ".config/foot/foot.ini" = { + generator = lib.generators.toINI {}; + value = settings; }; - - packages = [pkgs.foot]; }; + + packages = [pkgs.foot]; } diff --git a/modules/desktop/system/components/dunst.nix b/modules/desktop/hjem/wm/dunst.nix index 1069087..38a8240 100644 --- a/modules/desktop/system/components/dunst.nix +++ b/modules/desktop/hjem/wm/dunst.nix @@ -4,7 +4,7 @@ pkgs, ... }: let - cfg = config.collinux.desktop.components.dunst; + cfg = config.collinux.desktop.sway.components.dunst; settings = '' [global] @@ -31,8 +31,6 @@ ''; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files.".config/dunst/dunstrc".text = settings; - packages = [pkgs.dunst pkgs.inotify-tools]; - }; + files.".config/dunst/dunstrc".text = settings; + packages = with pkgs; [dunst inotify-tools]; } diff --git a/modules/desktop/system/components/fuzzel.nix b/modules/desktop/hjem/wm/fuzzel.nix index f5937c6..7b9d075 100644 --- a/modules/desktop/system/components/fuzzel.nix +++ b/modules/desktop/hjem/wm/fuzzel.nix @@ -4,12 +4,11 @@ pkgs, ... }: let - cfg = config.collinux.desktop.components.fuzzel; - ini' = pkgs.formats.ini {}; + cfg = config.collinux.desktop.sway.components.fuzzel; - settings = ini'.generate "fuzzel.ini" { + settings = { main = { - prompt = " "; + prompt = ""; dpi-aware = false; font = "Iosevka Nerd Font"; @@ -41,10 +40,10 @@ }; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/fuzzel/fuzzel.ini".source = settings; - }; - packages = [pkgs.fuzzel]; + files.".config/fuzzel/fuzzel.ini" = { + generator = lib.generators.toINI {}; + value = settings; }; + + packages = [pkgs.fuzzel]; } diff --git a/modules/desktop/system/environments/sway.nix b/modules/desktop/hjem/wm/sway.nix index dec071a..1cd7750 100644 --- a/modules/desktop/system/environments/sway.nix +++ b/modules/desktop/hjem/wm/sway.nix @@ -81,8 +81,8 @@ bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser bindsym Mod4+q kill - bindsym XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | bc)"' - bindsym XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | bc)"' + bindsym XF86AudioRaiseVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | ${pkgs.bc}/bin/bc)"' + bindsym XF86AudioLowerVolume exec 'wpctl set-volume @DEFAULT_AUDIO_SINK@ 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:audio "Volume: " -h "int:value:$(dec=$(wpctl get-volume @DEFAULT_AUDIO_SINK@ | cut -d\" \" -f2);echo "$dec * 100" | ${pkgs.bc}/bin/bc)"' bindsym XF86MonBrightnessUp exec 'brightnessctl set 5%+; dunstify -t 300 -h string:x-canonical-private-synchronous:brightness "Brightness: " -h "int:value:$(g=$(brightnessctl get);m=$(brightnessctl max);echo $((g * 100 / m)))"' bindsym XF86MonBrightnessDown exec 'brightnessctl set 5%-; dunstify -t 300 -h string:x-canonical-private-synchronous:brightness "Brightness: " -h "int:value:$(g=$(brightnessctl get);m=$(brightnessctl max);echo $((g * 100 / m)))"' @@ -97,24 +97,14 @@ ''; in lib.mkIf cfg.enable { - hjem.users."${config.collinux.user.name}" = { - files = { - ".config/sway/config".text = settings; - ".config/sway/catppuccin-mocha".text = colors; - }; - - packages = [pkgs.sway pkgs.bc pkgs.brightnessctl pkgs.playerctl]; + files = { + ".config/sway/config".text = settings; + ".config/sway/catppuccin-mocha".text = colors; }; - # Greetd - services.greetd = { - enable = true; - settings = rec { - initial_session = { - command = "${pkgs.sway}/bin/sway"; - user = config.collinux.user.name; - }; - default_session = initial_session; - }; - }; + packages = with pkgs; [ + sway + brightnessctl + playerctl + ]; } diff --git a/modules/desktop/home/default.nix b/modules/desktop/home/default.nix index be5e97f..7671378 100644 --- a/modules/desktop/home/default.nix +++ b/modules/desktop/home/default.nix @@ -1,5 +1,5 @@ { imports = [ - ./gtk + ./gtk.nix ]; } diff --git a/modules/desktop/home/gtk.nix b/modules/desktop/home/gtk.nix new file mode 100644 index 0000000..a8f6be0 --- /dev/null +++ b/modules/desktop/home/gtk.nix @@ -0,0 +1,18 @@ +{ + lib, + config, + ... +}: let + cfg = config.collinux.desktop.gtk; +in + lib.mkIf (cfg.enable && cfg.theme == "adwaita") { + dconf = { + enable = true; + settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + enable-hot-corners = false; + }; + }; + }; + } diff --git a/modules/desktop/home/gtk/adwaita.nix b/modules/desktop/home/gtk/adwaita.nix deleted file mode 100644 index 1a17d13..0000000 --- a/modules/desktop/home/gtk/adwaita.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - cfg = config.collinux.desktop.gtk; -in - lib.mkIf (cfg.theme == "adwaita") { - home.pointerCursor = { - gtk.enable = true; - dotIcons.enable = false; - - package = pkgs.vanilla-dmz; - name = "Vanilla-DMZ"; - size = 24; - }; - - gtk.theme = { - name = "adw-gtk3"; - package = pkgs.adw-gtk3; - }; - - dconf = { - enable = true; - settings = { - "org/gnome/desktop/interface" = { - color-scheme = "prefer-dark"; - enable-hot-corners = false; - }; - }; - }; - } diff --git a/modules/desktop/home/gtk/catppuccin.nix b/modules/desktop/home/gtk/catppuccin.nix deleted file mode 100644 index 81f0d3d..0000000 --- a/modules/desktop/home/gtk/catppuccin.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - pkgs, - lib, - config, - ... -}: let - cfg = config.collinux.desktop.gtk; -in - lib.mkIf (cfg.theme == "catppuccin") { - home.pointerCursor = { - hyprcursor = { - enable = true; - size = 24; - }; - gtk.enable = true; - dotIcons.enable = false; - - package = pkgs.catppuccin-cursors.mochaDark; - name = "catppuccin-mocha-dark-cursors"; - size = 24; - }; - - gtk = { - theme = { - package = pkgs.catppuccin-gtk.override { - accents = ["blue"]; - variant = "mocha"; - size = "standard"; - }; - name = "catppuccin-mocha-blue-standard"; - }; - }; - } diff --git a/modules/desktop/home/gtk/default.nix b/modules/desktop/home/gtk/default.nix deleted file mode 100644 index 8dc00f2..0000000 --- a/modules/desktop/home/gtk/default.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - pkgs, - config, - lib, - ... -}: let - cfg = config.collinux.gtk; -in { - imports = [ - ./catppuccin.nix - ./adwaita.nix - ]; - - config = { - home.packages = [pkgs.dconf]; - - gtk = { - enable = true; - iconTheme = { - package = pkgs.papirus-icon-theme; - name = "Papirus"; - }; - gtk2.configLocation = "${config.xdg.configHome}/gtk-2.0/gtkrc"; - }; - }; -} diff --git a/modules/desktop/nixos/default.nix b/modules/desktop/nixos/default.nix new file mode 100644 index 0000000..23deeca --- /dev/null +++ b/modules/desktop/nixos/default.nix @@ -0,0 +1,11 @@ +{...}: { + imports = [ + ./gnome.nix + + ./greeters/greetd.nix + ./greeters/gdm.nix + + ./programs/firefox.nix + ./programs/blackbox.nix + ]; +} diff --git a/modules/desktop/system/environments/gnome.nix b/modules/desktop/nixos/gnome.nix index e298756..967452e 100644 --- a/modules/desktop/system/environments/gnome.nix +++ b/modules/desktop/nixos/gnome.nix @@ -7,18 +7,14 @@ cfg = config.collinux.desktop.gnome; in lib.mkIf cfg.enable { - services.displayManager.gdm = { - enable = true; - wayland = true; - }; services.desktopManager.gnome.enable = true; environment.gnome.excludePackages = with pkgs; [ orca evince - file-roller + # file-roller geary - gnome-disk-utility + # gnome-disk-utility seahorse # sushi # sysprof diff --git a/modules/desktop/nixos/greeters/gdm.nix b/modules/desktop/nixos/greeters/gdm.nix new file mode 100644 index 0000000..598114a --- /dev/null +++ b/modules/desktop/nixos/greeters/gdm.nix @@ -0,0 +1,13 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.desktop.gdm; +in + lib.mkIf cfg.enable { + services.displayManager.gdm = { + enable = true; + wayland = true; + }; + } diff --git a/modules/desktop/nixos/greeters/greetd.nix b/modules/desktop/nixos/greeters/greetd.nix new file mode 100644 index 0000000..42ff9a7 --- /dev/null +++ b/modules/desktop/nixos/greeters/greetd.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.desktop.greetd; +in + lib.mkIf cfg.enable { + services.greetd = { + enable = true; + settings = rec { + initial_session = { + command = lib.getExe cfg.command; + user = config.collinux.user.name; + }; + default_session = initial_session; + }; + }; + } diff --git a/modules/desktop/system/programs/blackbox.nix b/modules/desktop/nixos/programs/blackbox.nix index 37567b5..37567b5 100644 --- a/modules/desktop/system/programs/blackbox.nix +++ b/modules/desktop/nixos/programs/blackbox.nix diff --git a/modules/desktop/system/programs/firefox.nix b/modules/desktop/nixos/programs/firefox.nix index b2d83f3..8ca4b30 100644 --- a/modules/desktop/system/programs/firefox.nix +++ b/modules/desktop/nixos/programs/firefox.nix @@ -34,18 +34,4 @@ in ]; }; }; - - hjem.users."${config.collinux.user.name}".files = { - ".mozilla/firefox/profiles.ini".text = '' - [Profile0] - Name=collin - IsRelative=1 - Path=collin - Default=1 - - [General] - StartWithLastProfile=1 - Version=2 - ''; - }; } diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix index 9bc4099..9a60ff6 100644 --- a/modules/desktop/options.nix +++ b/modules/desktop/options.nix @@ -1,4 +1,5 @@ { + pkgs, config, lib, my-lib, @@ -9,32 +10,85 @@ in { options = { collinux.desktop = { - greeter = mkOption { - type = types.enum ["gdm" "greetd"]; - default = let - cfg = config.collinux.desktop; - in - if (cfg.sway.enable && !cfg.gnome.enable) - then "greetd" - else "gdm"; - }; - wallpaper = mkOption { - type = types.path; + type = with types; oneOf [str path]; + description = "File to use as the wallpaper on this machine"; }; - components = { - waybar = mkProgramOption "waybar"; - dunst = mkProgramOption "dunst"; - fuzzel = mkProgramOption "fuzzel"; + greetd = { + enable = mkEnableOption "greetd greeter"; + command = mkOption { + type = lib.types.package; + default = let + cfg = config.collinux.desktop; + in + if (cfg.sway.enable && !cfg.gnome.enable) + then pkgs.sway + else null; + }; }; + gdm.enable = mkEnableOption "gdm display manager"; - sway.enable = mkEnableOption "sway"; + sway = { + enable = mkEnableOption "sway"; + components = { + # waybar = mkProgramOption "waybar"; + dunst = mkProgramOption "dunst"; + fuzzel = mkProgramOption "fuzzel"; + }; + }; gnome.enable = mkEnableOption "gnome"; - gtk.theme = mkOption { - type = types.enum ["catppuccin" "adwaita"]; - default = config.collinux.theme; + gtk = { + theme = mkOption { + type = types.enum ["catppuccin" "adwaita"]; + default = config.collinux.theme; + }; + cursor_data = { + package = mkOption { + type = lib.types.package; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then pkgs.catppuccin-cursors.mochaDark + else if (config.collinux.desktop.gtk.theme == "adwaita") + then pkgs.vanilla-dmz + else null; + }; + name = mkOption { + type = lib.types.str; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then "catppuccin-mocha-dark-cursors" + else if (config.collinux.desktop.gtk.theme == "adwaita") + then "Vanilla-DMZ" + else null; + }; + }; + theme_data = { + package = mkOption { + type = lib.types.package; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then + (pkgs.catppuccin-gtk.override { + variant = "mocha"; + accents = ["blue"]; + size = "standard"; + }) + else if (config.collinux.desktop.gtk.theme == "adwaita") + then pkgs.adw-gtk3 + else ""; + }; + name = mkOption { + type = lib.types.str; + default = + if (config.collinux.desktop.gtk.theme == "catppuccin") + then "catppuccin-mocha-blue-standard" + else if (config.collinux.desktop.gtk.theme == "adwaita") + then "adw-gtk3" + else ""; + }; + }; }; programs = { diff --git a/modules/desktop/system/default.nix b/modules/desktop/system/default.nix deleted file mode 100644 index efc39bc..0000000 --- a/modules/desktop/system/default.nix +++ /dev/null @@ -1,13 +0,0 @@ -{...}: { - imports = [ - ./environments/gnome.nix - ./environments/sway.nix - - ./programs/firefox.nix - ./programs/foot.nix - ./programs/blackbox.nix - - ./components/fuzzel.nix - ./components/dunst.nix - ]; -} |
