aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop')
-rw-r--r--modules/desktop/hjem/default.nix12
-rw-r--r--modules/desktop/hjem/gtk.nix37
-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/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)30
-rw-r--r--modules/desktop/home/default.nix2
-rw-r--r--modules/desktop/home/gtk.nix18
-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.nix11
-rw-r--r--modules/desktop/nixos/gnome.nix (renamed from modules/desktop/system/environments/gnome.nix)8
-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.nix (renamed from modules/desktop/system/programs/firefox.nix)14
-rw-r--r--modules/desktop/options.nix92
-rw-r--r--modules/desktop/system/default.nix13
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
- ];
-}