aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-09-19 17:32:27 -0500
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-09-19 17:32:27 -0500
commite63f4bda23477436bee8b30db73cf8deba4a8a5f (patch)
tree5897ba5e2e24c633d3c96b8d43213138118c6737 /modules/desktop
parent6291fefa5741f201f29e2916ca29b93bcc6b7fc8 (diff)
parent5d0d346f838a7711fa79eb6edab828107b95a499 (diff)
merge changes from main
Diffstat (limited to 'modules/desktop')
-rw-r--r--modules/desktop/hjem/default.nix13
-rw-r--r--modules/desktop/hjem/gtk.nix38
-rw-r--r--modules/desktop/hjem/programs/firefox.nix26
-rw-r--r--modules/desktop/hjem/programs/foot.nix (renamed from modules/desktop/system/programs/foot.nix)14
-rw-r--r--modules/desktop/hjem/programs/research.nix26
-rw-r--r--modules/desktop/hjem/wm/dunst.nix (renamed from modules/desktop/system/components/dunst.nix)8
-rw-r--r--modules/desktop/hjem/wm/fuzzel.nix (renamed from modules/desktop/system/components/fuzzel.nix)17
-rw-r--r--modules/desktop/hjem/wm/sway.nix (renamed from modules/desktop/system/environments/sway.nix)53
-rw-r--r--modules/desktop/home/default.nix11
-rw-r--r--modules/desktop/home/gtk/adwaita.nix33
-rw-r--r--modules/desktop/home/gtk/catppuccin.nix33
-rw-r--r--modules/desktop/home/gtk/default.nix26
-rw-r--r--modules/desktop/nixos/default.nix12
-rw-r--r--modules/desktop/nixos/fonts.nix8
-rw-r--r--modules/desktop/nixos/gnome.nix (renamed from modules/desktop/system/environments/gnome.nix)14
-rw-r--r--modules/desktop/nixos/greeters/gdm.nix13
-rw-r--r--modules/desktop/nixos/greeters/greetd.nix19
-rw-r--r--modules/desktop/nixos/programs/blackbox.nix (renamed from modules/desktop/system/programs/blackbox.nix)0
-rw-r--r--modules/desktop/nixos/programs/firefox.nix68
-rw-r--r--modules/desktop/options.nix99
-rw-r--r--modules/desktop/system/default.nix14
-rw-r--r--modules/desktop/system/programs/alacritty.nix76
-rw-r--r--modules/desktop/system/programs/firefox.nix50
23 files changed, 357 insertions, 314 deletions
diff --git a/modules/desktop/hjem/default.nix b/modules/desktop/hjem/default.nix
new file mode 100644
index 0000000..f7dd95e
--- /dev/null
+++ b/modules/desktop/hjem/default.nix
@@ -0,0 +1,13 @@
+{
+ imports = [
+ ./gtk.nix
+
+ ./wm/sway.nix
+ ./wm/dunst.nix
+ ./wm/fuzzel.nix
+
+ ./programs/foot.nix
+ ./programs/firefox.nix
+ ./programs/research.nix
+ ];
+}
diff --git a/modules/desktop/hjem/gtk.nix b/modules/desktop/hjem/gtk.nix
new file mode 100644
index 0000000..3ea3b37
--- /dev/null
+++ b/modules/desktop/hjem/gtk.nix
@@ -0,0 +1,38 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.gtk;
+in
+ lib.mkIf cfg.enable {
+ 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-theme-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/hjem/programs/research.nix b/modules/desktop/hjem/programs/research.nix
new file mode 100644
index 0000000..3bfde76
--- /dev/null
+++ b/modules/desktop/hjem/programs/research.nix
@@ -0,0 +1,26 @@
+{
+ config,
+ pkgs,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.research;
+in
+ lib.mkIf cfg.enable {
+ packages = with pkgs; [
+ zotero
+ zathura
+ xournalpp
+ ];
+ files = {
+ ".config/xournalpp/toolbar.ini" = {
+ generator = lib.generators.toINI {};
+ value = {
+ "Default" = {
+ toolbarTop1 = "ERASER,PEN,HIGHLIGHTER,SELECT_PDF_TEXT_LINEAR,SEPARATOR,TEXT,MATH_TEX,IMAGE,SPACER,FINE,MEDIUM,THICK,VERY_THICK,SEPARATOR,SELECT_FONT,COLOR(6),COLOR(8),COLOR(9),COLOR(3),COLOR(2),COLOR(4),COLOR(7),COLOR(5),COLOR(0),SEPARATOR";
+ name = "Default";
+ };
+ };
+ };
+ };
+ }
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 4ea3378..1cd7750 100644
--- a/modules/desktop/system/environments/sway.nix
+++ b/modules/desktop/hjem/wm/sway.nix
@@ -58,48 +58,53 @@
bindsym Mod4+2 workspace number 2
bindsym Mod4+3 workspace number 3
bindsym Mod4+4 workspace number 4
+ bindsym Mod4+5 workspace number 5
+ bindsym Mod4+6 workspace number 6
+ bindsym Mod4+7 workspace number 7
+ bindsym Mod4+8 workspace number 8
+ bindsym Mod4+9 workspace number 9
+
bindsym Mod4+Shift+1 move container to workspace number 1
bindsym Mod4+Shift+2 move container to workspace number 2
bindsym Mod4+Shift+3 move container to workspace number 3
bindsym Mod4+Shift+4 move container to workspace number 4
+ bindsym Mod4+Shift+5 move container to workspace number 5
+ bindsym Mod4+Shift+6 move container to workspace number 6
+ bindsym Mod4+Shift+7 move container to workspace number 7
+ bindsym Mod4+Shift+8 move container to workspace number 8
+ bindsym Mod4+Shift+9 move container to workspace number 9
- bindsym Mod4+Return exec "${pkgs.foot}/bin/footclient"
+ bindsym Mod4+Return exec ${pkgs.foot}/bin/footclient
bindsym Mod4+Shift+Return exec ${pkgs.foot}/bin/foot
- bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel
- bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox
- bindsym Mod4+Shift+b exec ${pkgs.qutebrowser}/bin/qutebrowser
+ bindsym Mod4+Space exec ${pkgs.fuzzel}/bin/fuzzel
+ bindsym Mod4+b exec ${pkgs.firefox}/bin/firefox
+ 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)))"'
+ bindsym Home exec 'playerctl previous'
+ bindsym End exec 'playerctl play-pause'
+ bindsym Insert exec 'playerctl next'
+
default_border pixel 2
smart_borders on
smart_gaps on
'';
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];
+ 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
deleted file mode 100644
index 914b450..0000000
--- a/modules/desktop/home/default.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- lib,
- config,
- ...
-}: {
- imports = [
- ./gtk
- ];
-
- qt.style = lib.optionalAttrs (config.collinux.theme == "adwaita") {name = "adwaita-dark";};
-}
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..1301483
--- /dev/null
+++ b/modules/desktop/nixos/default.nix
@@ -0,0 +1,12 @@
+{...}: {
+ imports = [
+ ./gnome.nix
+ ./fonts.nix
+
+ ./greeters/greetd.nix
+ ./greeters/gdm.nix
+
+ ./programs/firefox.nix
+ ./programs/blackbox.nix
+ ];
+}
diff --git a/modules/desktop/nixos/fonts.nix b/modules/desktop/nixos/fonts.nix
new file mode 100644
index 0000000..3f10d92
--- /dev/null
+++ b/modules/desktop/nixos/fonts.nix
@@ -0,0 +1,8 @@
+{pkgs, ...}: {
+ fonts = {
+ enableDefaultPackages = false;
+ # fontDir.enable = true;
+ fontconfig.enable = true;
+ packages = [pkgs.nerd-fonts.iosevka pkgs.ibm-plex]; # for terminal (blackbox or foot)
+ };
+}
diff --git a/modules/desktop/system/environments/gnome.nix b/modules/desktop/nixos/gnome.nix
index e298756..c88a809 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
@@ -85,6 +81,12 @@ in
sleep-inactive-ac-type = "nothing";
};
+ # Theming, etc
+ "org/gnome/desktop/interface" = {
+ color-scheme = "prefer-dark";
+ enable-hot-corners = false;
+ };
+
# Keybindings
"org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0" = {
binding = "<Super>Return";
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 9cff44a..9cff44a 100644
--- a/modules/desktop/system/programs/blackbox.nix
+++ b/modules/desktop/nixos/programs/blackbox.nix
diff --git a/modules/desktop/nixos/programs/firefox.nix b/modules/desktop/nixos/programs/firefox.nix
new file mode 100644
index 0000000..f2daf43
--- /dev/null
+++ b/modules/desktop/nixos/programs/firefox.nix
@@ -0,0 +1,68 @@
+{
+ pkgs,
+ lib,
+ config,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.firefox;
+in
+ lib.mkIf cfg.enable {
+ programs.firefox = {
+ enable = true;
+ policies = {
+ PasswordManagerEnabled = false; # use bitwarden instead
+ DisableAccounts = true;
+ DisablePocket = true;
+ DisplayBookmarksToolbar = "always";
+
+ OverrideFirstRunPage = "";
+ OverridePostUpdatePage = "";
+
+ NewTabPage = false;
+
+ Preferences = let
+ opt = Value: {
+ inherit Value;
+ Status = "locked";
+ };
+ in {
+ "toolkit.legacyUserProfileCustomizations.stylesheets" = opt true;
+ "browser.tabs.inTitlebar" = opt 0;
+ "browser.tabs.hoverPreview.enabled" = opt 0;
+
+ "browser.tabs.loadBookmarksInTabs" = opt true;
+
+ "accessibility.force_disabled" = opt 1;
+
+ "browser.compactmode.show" = opt true;
+ "browser.uidensity" = opt 1;
+
+ "media.webspeech.synth.enabled" = opt false; # im not disabled
+ "media.webspeech.synth.dont_notify_on_error" = opt true;
+ };
+
+ ExtensionSettings = let
+ ext = name: {
+ installation_mode = "force_installed";
+ install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
+ };
+ in
+ {
+ "{446900e4-71c2-419f-a6a7-df9c091e268b}" = ext "bitwarden-password-manager";
+ "uBlock0@raymondhill.net" = ext "uBlock0@raymondhill.net";
+ "addon@darkreader.org" = ext "addon@darkreader.org";
+ }
+ // (lib.optionalAttrs (cfg.theme == "catppuccin") {
+ "{88b098c8-19be-421e-8ffa-85ddd1f3f004}" = ext "catppuccin-mocha-blue";
+ })
+ // (lib.optionalAttrs (cfg.extensions.zotero.enable) {
+ "zotero@chnm.gmu.edu" = {
+ installation_mode = "force_installed";
+ install_url = "https://download.zotero.org/connector/firefox/release/Zotero_Connector-5.0.181.xpi";
+ };
+ });
+ };
+ };
+
+ services.speechd.enable = lib.mkForce false; # gets installed by firefox, but we don't need it
+ }
diff --git a/modules/desktop/options.nix b/modules/desktop/options.nix
index 6b1e991..994b13d 100644
--- a/modules/desktop/options.nix
+++ b/modules/desktop/options.nix
@@ -1,4 +1,5 @@
{
+ pkgs,
config,
lib,
my-lib,
@@ -9,32 +10,86 @@
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 = {
+ enable = mkEnableOption "gtk theming";
+ 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 = {
@@ -48,11 +103,17 @@ in {
type = types.enum ["none" "catppuccin" "adwaita"];
default = config.collinux.theme;
};
+ extensions.zotero.enable = mkOption {
+ description = "install Zotero Connector for Firefox";
+ default = config.collinux.desktop.programs.research.enable;
+ };
};
foot.enable = mkEnableOption "foot";
blackbox.enable = mkEnableOption "blackbox";
alacritty.enable = mkEnableOption "alacritty";
+
+ research.enable = mkEnableOption "zathura, Xournal++, Zotero, Zotero Connector";
};
};
};
diff --git a/modules/desktop/system/default.nix b/modules/desktop/system/default.nix
deleted file mode 100644
index 8827070..0000000
--- a/modules/desktop/system/default.nix
+++ /dev/null
@@ -1,14 +0,0 @@
-{...}: {
- imports = [
- ./environments/gnome.nix
- ./environments/sway.nix
-
- ./programs/firefox.nix
- ./programs/foot.nix
- ./programs/blackbox.nix
- ./programs/alacritty.nix
-
- ./components/fuzzel.nix
- ./components/dunst.nix
- ];
-}
diff --git a/modules/desktop/system/programs/alacritty.nix b/modules/desktop/system/programs/alacritty.nix
deleted file mode 100644
index f73a901..0000000
--- a/modules/desktop/system/programs/alacritty.nix
+++ /dev/null
@@ -1,76 +0,0 @@
-{
- pkgs,
- config,
- lib,
- ...
-}: let
- cfg = config.collinux.desktop.programs.alacritty;
-in
- lib.mkIf cfg.enable {
- hjem.users."${config.collinux.user.name}" = {
- files.".config/alacritty/alacritty.toml" = {
- value = {
- general = {
- import = ["keys.toml" "colors.toml"];
- live_config_reload = true;
- };
- font = {
- normal.family = "Iosevka Nerd Font";
- size = 12;
- };
- };
- generator = (pkgs.formats.toml {}).generate "alacritty.toml";
- };
-
- files.".config/alacritty/colors.toml".text = ''
- [colors]
- draw_bold_text_with_bright_colors = false
-
- # Default colors
- [colors.primary]
- background = '#242424'
- foreground = '#C5C6C5'
-
- # Colors the cursor will use if `custom_cursor_colors` is true
- [colors.cursor]
- text = '#2D3234'
- cursor = '#C5C6C5'
-
- # Normal colors
- [colors.normal]
- black = '#2D3234'
- red = '#FFA500'
- green = '#6FEE91'
- yellow = '#91EE6F'
- blue = '#916FB4'
- magenta = '#EE6F91'
- cyan = '#6F91B4'
- white = '#C5C6C5'
-
- # Bright colors
- [colors.bright]
- black = '#566164'
- red = '#FFFF60'
- green = '#33393B'
- yellow = '#4B5356'
- blue = '#919494'
- magenta = '#D3D4D5'
- cyan = '#EE6F6F'
- white = '#EEEEEC'
- '';
-
- files.".config/alacritty/keys.toml".text = ''
- [[keyboard.bindings]]
- chars = "\u001b[27;5;9~"
- key = "Tab"
- mods = "Control"
-
- [[keyboard.bindings]]
- chars = "\u001b[27;5;13~"
- key = "Enter"
- mods = "Control"
- '';
-
- packages = [pkgs.alacritty];
- };
- }
diff --git a/modules/desktop/system/programs/firefox.nix b/modules/desktop/system/programs/firefox.nix
deleted file mode 100644
index 7f4435b..0000000
--- a/modules/desktop/system/programs/firefox.nix
+++ /dev/null
@@ -1,50 +0,0 @@
-{
- lib,
- config,
- ...
-}: let
- cfg = config.collinux.desktop.programs.firefox;
-in
- lib.mkIf cfg.enable {
- programs.firefox = {
- enable = true;
- policies = {
- PasswordManagerEnabled = false; # use bitwarden instead
- DisableAccounts = true;
- DisablePocket = true;
-
- OverrideFirstRunPage = "";
- OverridePostUpdatePage = "";
-
- ExtensionSettings = let
- ext = name: {
- installation_mode = "force_installed";
- install_url = "https://addons.mozilla.org/firefox/downloads/latest/${name}/latest.xpi";
- };
- in
- lib.mkMerge [
- {
- "{446900e4-71c2-419f-a6a7-df9c091e268b}" = ext "bitwarden-password-manager";
- "uBlock0@raymondhill.net" = ext "uBlock0@raymondhill.net";
- }
- (lib.mkIf (cfg.theme == "catppuccin") {
- "{88b098c8-19be-421e-8ffa-85ddd1f3f004}" = ext "catppuccin-mocha-blue";
- })
- ];
- };
- };
-
- 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
- '';
- };
- }