From a45c4551712c1ba5cb82eaf290f311ab0e8690e4 Mon Sep 17 00:00:00 2001 From: Collin Williams <96917990+bluedragon1221@users.noreply.github.com> Date: Mon, 9 Jun 2025 17:40:46 +0000 Subject: big changes --- modules/desktop/system/components/dunst.nix | 38 ++++++++++ modules/desktop/system/components/fuzzel.nix | 50 +++++++++++++ modules/desktop/system/default.nix | 12 +++ modules/desktop/system/environments/gnome.nix | 67 +++++++++++++++++ modules/desktop/system/environments/sway.nix | 103 ++++++++++++++++++++++++++ modules/desktop/system/programs/firefox.nix | 36 +++++++++ modules/desktop/system/programs/foot.nix | 64 ++++++++++++++++ 7 files changed, 370 insertions(+) create mode 100644 modules/desktop/system/components/dunst.nix create mode 100644 modules/desktop/system/components/fuzzel.nix create mode 100644 modules/desktop/system/default.nix create mode 100644 modules/desktop/system/environments/gnome.nix create mode 100644 modules/desktop/system/environments/sway.nix create mode 100644 modules/desktop/system/programs/firefox.nix create mode 100644 modules/desktop/system/programs/foot.nix (limited to 'modules/desktop/system') 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]; + }; + } -- cgit v1.3.1