diff options
Diffstat (limited to 'modules/desktop/nixos')
| -rw-r--r-- | modules/desktop/nixos/default.nix | 12 | ||||
| -rw-r--r-- | modules/desktop/nixos/fonts.nix | 8 | ||||
| -rw-r--r-- | modules/desktop/nixos/gnome.nix | 126 | ||||
| -rw-r--r-- | modules/desktop/nixos/greeters/gdm.nix | 13 | ||||
| -rw-r--r-- | modules/desktop/nixos/greeters/greetd.nix | 19 | ||||
| -rw-r--r-- | modules/desktop/nixos/programs/blackbox.nix | 33 | ||||
| -rw-r--r-- | modules/desktop/nixos/programs/firefox.nix | 68 |
7 files changed, 279 insertions, 0 deletions
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/nixos/gnome.nix b/modules/desktop/nixos/gnome.nix new file mode 100644 index 0000000..c88a809 --- /dev/null +++ b/modules/desktop/nixos/gnome.nix @@ -0,0 +1,126 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.desktop.gnome; +in + lib.mkIf cfg.enable { + services.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 + ]; + + hjem.users."${config.collinux.user.name}".packages = with pkgs.gnomeExtensions; [blur-my-shell dash-to-dock]; + + programs.dconf = { + enable = true; + profiles.user.databases = [ + { + settings = { + "org/gnome/mutter" = { + workspaces-only-on-primary = false; + }; + "org/gnome/shell/app-switcher" = { + current-workspace-only = true; + }; + + # Idle settings + "org/gnome/desktop/session" = { + idle-delay = lib.gvariant.mkInt16 0; + }; + "org/gnome/settings-daemon/plugins/power" = { + 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"; + command = "blackbox"; + name = "Terminal"; + }; + "org/gnome/settings-daemon/plugins/media-keys" = { + custom-keybindings = [ + "/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/" + ]; + }; + + # Background + "org/gnome/desktop/background" = rec { + picture-uri = "file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/blobs-d.svg"; + picture-uri-dark = picture-uri; + }; + + # Extensions + "org/gnome/shell" = { + disable-user-extensions = false; + enabled-extensions = with pkgs.gnomeExtensions; [ + blur-my-shell.extensionUuid + dash-to-dock.extensionUuid + ]; + }; + + "org/gnome/shell/extensions/dash-to-dock" = { + dash-max-icon-size = lib.gvariant.mkInt16 48; + show-trash = false; + show-mounts = false; + }; + }; + } + ]; + }; + } 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/nixos/programs/blackbox.nix b/modules/desktop/nixos/programs/blackbox.nix new file mode 100644 index 0000000..9cff44a --- /dev/null +++ b/modules/desktop/nixos/programs/blackbox.nix @@ -0,0 +1,33 @@ +{ + pkgs, + config, + lib, + ... +}: let + cfg = config.collinux.desktop.programs.blackbox; +in + lib.mkIf cfg.enable { + programs.dconf.profiles.user.databases = [ + { + settings = { + "com/raggesilver/BlackBox" = { + context-aware-header-bar = true; + fill-tabs = true; + notify-process-completion = true; + opacity = lib.gvariant.mkInt16 100; + pixel-scrolling = true; + pretty = true; + show-scrollbars = false; + terminal-padding = lib.gvariant.mkTuple (builtins.map lib.gvariant.mkInt16 [10 10 10 10]); + + font = "Iosevka Nerd Font 12"; + + floating-controls = false; + show-headerbar = true; + }; + }; + } + ]; + + hjem.users."${config.collinux.user.name}".packages = [pkgs.blackbox-terminal]; + } 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 + } |
