aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/system
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-06-09 17:40:46 +0000
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-06-09 17:40:46 +0000
commita45c4551712c1ba5cb82eaf290f311ab0e8690e4 (patch)
treef62b23489fb31f8ea58fef77f99619efd784eb36 /modules/desktop/system
big changes
Diffstat (limited to 'modules/desktop/system')
-rw-r--r--modules/desktop/system/components/dunst.nix38
-rw-r--r--modules/desktop/system/components/fuzzel.nix50
-rw-r--r--modules/desktop/system/default.nix12
-rw-r--r--modules/desktop/system/environments/gnome.nix67
-rw-r--r--modules/desktop/system/environments/sway.nix103
-rw-r--r--modules/desktop/system/programs/firefox.nix36
-rw-r--r--modules/desktop/system/programs/foot.nix64
7 files changed, 370 insertions, 0 deletions
diff --git a/modules/desktop/system/components/dunst.nix b/modules/desktop/system/components/dunst.nix
new file mode 100644
index 0000000..cb650a1
--- /dev/null
+++ b/modules/desktop/system/components/dunst.nix
@@ -0,0 +1,38 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.desktop.components.dunst;
+
+ settings = pkgs.writeText "dunstrc" ''
+ [global]
+ frame_color = "#89b4fa"
+ separator_color = frame
+ highlight = "#89b4fa"
+ offset = "8x30"
+ origin = "top-right"
+ transparency = 10
+ font = "Iosevka Nerd Font"
+
+ [urgency_low]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+
+ [urgency_normal]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+
+ [urgency_critical]
+ background = "#1e1e2e"
+ foreground = "#cdd6f4"
+ frame_color = "#fab387"
+ '';
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files.".config/dunst/dunstrc".source = settings;
+ packages = [pkgs.dunst];
+ };
+ }
diff --git a/modules/desktop/system/components/fuzzel.nix b/modules/desktop/system/components/fuzzel.nix
new file mode 100644
index 0000000..f5937c6
--- /dev/null
+++ b/modules/desktop/system/components/fuzzel.nix
@@ -0,0 +1,50 @@
+{
+ lib,
+ config,
+ pkgs,
+ ...
+}: let
+ cfg = config.collinux.desktop.components.fuzzel;
+ ini' = pkgs.formats.ini {};
+
+ settings = ini'.generate "fuzzel.ini" {
+ main = {
+ prompt = " ";
+ dpi-aware = false;
+
+ font = "Iosevka Nerd Font";
+ line-height = 25;
+ lines = 10;
+ width = 30;
+
+ horizontal-pad = 8;
+ vertical-pad = 8;
+ };
+ border = {
+ radius = 0;
+ width = 2;
+ };
+
+ colors = {
+ background = "1e1e2edd";
+ text = "cdd6f4ff";
+ prompt = "bac2deff";
+ placeholder = "7f849cff";
+ input = "cdd6f4ff";
+ match = "89b4faff";
+ selection = "585b70ff";
+ selection-text = "cdd6f4ff";
+ selection-match = "89b4faff";
+ counter = "7f849cff";
+ border = "89b4faff";
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/fuzzel/fuzzel.ini".source = settings;
+ };
+ packages = [pkgs.fuzzel];
+ };
+ }
diff --git a/modules/desktop/system/default.nix b/modules/desktop/system/default.nix
new file mode 100644
index 0000000..8ebe9b0
--- /dev/null
+++ b/modules/desktop/system/default.nix
@@ -0,0 +1,12 @@
+{...}: {
+ imports = [
+ ./environments/gnome.nix
+ ./environments/sway.nix
+
+ ./programs/firefox.nix
+ ./programs/foot.nix
+
+ ./components/fuzzel.nix
+ ./components/dunst.nix
+ ];
+}
diff --git a/modules/desktop/system/environments/gnome.nix b/modules/desktop/system/environments/gnome.nix
new file mode 100644
index 0000000..e4f6922
--- /dev/null
+++ b/modules/desktop/system/environments/gnome.nix
@@ -0,0 +1,67 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.gnome;
+in
+ lib.mkIf cfg.enable {
+ services.xserver = {
+ displayManager.gdm = {
+ enable = true;
+ wayland = true;
+ };
+ desktopManager.gnome.enable = true;
+ };
+
+ environment.gnome.excludePackages = with pkgs; [
+ orca
+ evince
+ file-roller
+ geary
+ gnome-disk-utility
+ seahorse
+ # sushi
+ # sysprof
+ # gnome-shell-extensions
+ adwaita-icon-theme
+ # nixos-background-info
+ gnome-backgrounds
+ # gnome-bluetooth
+ # gnome-color-manager
+ # gnome-control-center
+ # gnome-shell-extensions
+ gnome-tour # GNOME Shell detects the .desktop file on first log-in.
+ gnome-user-docs
+ # glib # for gsettings program
+ # gnome-menus
+ # gtk3.out # for gtk-launch program
+ # xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/
+ # xdg-user-dirs-gtk # Used to create the default bookmarks
+ #
+ baobab
+ epiphany
+ gnome-text-editor
+ gnome-calculator
+ gnome-calendar
+ gnome-characters
+ # gnome-clocks
+ gnome-console
+ gnome-contacts
+ gnome-font-viewer
+ gnome-logs
+ gnome-maps
+ gnome-music
+ # gnome-system-monitor
+ gnome-weather
+ # loupe
+ # nautilus
+ gnome-connections
+ simple-scan
+ snapshot
+ totem
+ yelp
+ gnome-software
+ ];
+ }
diff --git a/modules/desktop/system/environments/sway.nix b/modules/desktop/system/environments/sway.nix
new file mode 100644
index 0000000..467363a
--- /dev/null
+++ b/modules/desktop/system/environments/sway.nix
@@ -0,0 +1,103 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.sway;
+
+ colors = pkgs.writeText "catppuccin-mocha" ''
+ set $rosewater #f5e0dc
+ set $flamingo #f2cdcd
+ set $pink #f5c2e7
+ set $mauve #cba6f7
+ set $red #f38ba8
+ set $maroon #eba0ac
+ set $peach #fab387
+ set $yellow #f9e2af
+ set $green #a6e3a1
+ set $teal #94e2d5
+ set $sky #89dceb
+ set $sapphire #74c7ec
+ set $blue #89b4fa
+ set $lavender #b4befe
+ set $text #cdd6f4
+ set $subtext1 #bac2de
+ set $subtext0 #a6adc8
+ set $overlay2 #9399b2
+ set $overlay1 #7f849c
+ set $overlay0 #6c7086
+ set $surface2 #585b70
+ set $surface1 #45475a
+ set $surface0 #313244
+ set $base #1e1e2e
+ set $mantle #181825
+ set $crust #11111b
+ '';
+
+ settings = pkgs.writeText "config" ''
+ exec ${pkgs.foot}/bin/foot --server
+ exec ${pkgs.swaybg}/bin/swaybg -i ${config.collinux.desktop.wallpaper}
+
+ include catppuccin-mocha
+
+ # target title bg text indicator border
+ client.focused $lavender $base $text $rosewater $lavender
+ client.focused_inactive $overlay0 $base $text $rosewater $overlay0
+ client.unfocused $overlay0 $base $text $rosewater $overlay0
+ client.urgent $peach $base $peach $overlay0 $peach
+ client.placeholder $overlay0 $base $text $overlay0 $overlay0
+ client.background $base
+
+ # bar {
+ # colors {
+ # background $base
+ # statusline $text
+ # focused_statusline $text
+ # focused_separator $base
+
+ # # target border bg text
+ # focused_workspace $base $mauve $crust
+ # active_workspace $base $surface2 $text
+ # inactive_workspace $base $base $text
+ # urgent_workspace $base $red $crust
+ # }
+ # }
+
+ bindsym Mod4+1 workspace number 1
+ bindsym Mod4+2 workspace number 2
+ bindsym Mod4+3 workspace number 3
+ bindsym Mod4+4 workspace number 4
+ 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+q kill
+
+ 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".source = settings;
+ ".config/sway/catppuccin-mocha".source = colors;
+ };
+
+ packages = [pkgs.sway];
+ };
+
+ # Greetd
+ services.greetd = {
+ enable = true;
+ settings = rec {
+ initial_session = {
+ command = "${pkgs.sway}/bin/sway";
+ user = config.collinux.user.name;
+ };
+ default_session = initial_session;
+ };
+ };
+ }
diff --git a/modules/desktop/system/programs/firefox.nix b/modules/desktop/system/programs/firefox.nix
new file mode 100644
index 0000000..e5c5e21
--- /dev/null
+++ b/modules/desktop/system/programs/firefox.nix
@@ -0,0 +1,36 @@
+{
+ 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";
+ })
+ ];
+ };
+ };
+ }
diff --git a/modules/desktop/system/programs/foot.nix b/modules/desktop/system/programs/foot.nix
new file mode 100644
index 0000000..d6f97c7
--- /dev/null
+++ b/modules/desktop/system/programs/foot.nix
@@ -0,0 +1,64 @@
+{
+ pkgs,
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.collinux.desktop.programs.foot;
+ ini' = pkgs.formats.ini {listsAsDuplicateKeys = true;};
+
+ settings = ini'.generate "foot.ini" {
+ main = {
+ font = "Iosevka Nerd Font:size=12";
+ shell =
+ if config.collinux.terminal.programs.tmux.enable
+ then "${pkgs.tmux}/bin/tmux"
+ else "${pkgs.fish}/bin/fish";
+ };
+
+ cursor.color = "11111b f5e0dc";
+ colors = {
+ foreground = "cdd6f4";
+ background = "1e1e2e";
+
+ regular0 = "45475a";
+ regular1 = "f38ba8";
+ regular2 = "a6e3a1";
+ regular3 = "f9e2af";
+ regular4 = "89b4fa";
+ regular5 = "f5c2e7";
+ regular6 = "94e2d5";
+ regular7 = "bac2de";
+
+ bright0 = "585b70";
+ bright1 = "f38ba8";
+ bright2 = "a6e3a1";
+ bright3 = "f9e2af";
+ bright4 = "89b4fa";
+ bright5 = "f5c2e7";
+ bright6 = "94e2d5";
+ bright7 = "a6adc8";
+
+ "16" = "fab387";
+ "17" = "f5e0dc";
+
+ selection-foreground = "cdd6f4";
+ selection-background = "414356";
+
+ search-box-no-match = "11111b f38ba8";
+ search-box-match = "cdd6f4 313244";
+
+ jump-labels = "11111b fab387";
+ urls = "89b4fa";
+ };
+ };
+in
+ lib.mkIf cfg.enable {
+ hjem.users."${config.collinux.user.name}" = {
+ files = {
+ ".config/foot/foot.ini".source = settings;
+ };
+
+ packages = [pkgs.foot];
+ };
+ }