aboutsummaryrefslogtreecommitdiff
path: root/modules/desktop/nixos
diff options
context:
space:
mode:
Diffstat (limited to 'modules/desktop/nixos')
-rw-r--r--modules/desktop/nixos/default.nix11
-rw-r--r--modules/desktop/nixos/gnome.nix120
-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.nix31
-rw-r--r--modules/desktop/nixos/programs/firefox.nix37
6 files changed, 231 insertions, 0 deletions
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/nixos/gnome.nix b/modules/desktop/nixos/gnome.nix
new file mode 100644
index 0000000..967452e
--- /dev/null
+++ b/modules/desktop/nixos/gnome.nix
@@ -0,0 +1,120 @@
+{
+ 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";
+ };
+
+ # 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..37567b5
--- /dev/null
+++ b/modules/desktop/nixos/programs/blackbox.nix
@@ -0,0 +1,31 @@
+{
+ 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]);
+
+ 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..8ca4b30
--- /dev/null
+++ b/modules/desktop/nixos/programs/firefox.nix
@@ -0,0 +1,37 @@
+{
+ 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";
+ "addon@darkreader.org" = ext "addon@darkreader.org";
+ }
+ (lib.optionalAttrs (cfg.theme == "catppuccin") {
+ "{88b098c8-19be-421e-8ffa-85ddd1f3f004}" = ext "catppuccin-mocha-blue";
+ })
+ ];
+ };
+ };
+ }