From 731277aad827ff8c829f454e89beef28aa32f325 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Thu, 26 Mar 2026 16:49:14 -0500 Subject: [PATCH] gnome consolidation --- modules/features/gnome.nix | 52 +++++++++++++++++++++++ modules/features/greetd.nix | 28 ++++++++++++ modules/hosts/john-p14s/configuration.nix | 8 ---- modules/programs/niri.nix | 3 +- 4 files changed, 82 insertions(+), 9 deletions(-) create mode 100644 modules/features/gnome.nix create mode 100644 modules/features/greetd.nix diff --git a/modules/features/gnome.nix b/modules/features/gnome.nix new file mode 100644 index 0000000..ee1c4be --- /dev/null +++ b/modules/features/gnome.nix @@ -0,0 +1,52 @@ +{ inputs, ... }: { + flake.modules.nixos.gnmoe = { + # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 + systemd.services."getty@tty1".enable = false; + systemd.services."autovt@tty1".enable = false; + + # For gnome systray icons + services.udev.packages = with pkgs; [ gnome-settings-daemon ]; + + dconf.settings = { + "org/gnome/desktop/interface" = { + color-scheme = "prefer-dark"; + }; + "org/gnome/shell" = { + disable-user-extensions = false; + + # `gnome-extensions list` for a list + enabled-extensions = with pkgs.gnomeExtensions; [ + appindicator.extensionUuid + gtile.extensionUuid + space-bar.extensionUuid + switcher.extensionUuid + tactile.extensionUuid + vitals.extensionUuid + dash-to-panel.extensionUuid + ] + }; + "org/gnome/desktop/wm/preferences" = { + button-layout = ":minimize,close"; + }; + }; + + gtk = { + enable = true; + theme = { + name = "Orchis-Dark"; + package = pkgs.orchis-theme; + }; + }; + + home.packages = with pkgs; [ + gnome-tweaks + gnomeExtensions.appindicator # For gnome systray icons + gnomeExtensions.dash-to-panel + gnomeExtensions.gtile + gnomeExtensions.space-bar + gnomeExtensions.switcher + gnomeExtensions.tactile + gnomeExtensions.vitals + ] + }; +} \ No newline at end of file diff --git a/modules/features/greetd.nix b/modules/features/greetd.nix new file mode 100644 index 0000000..d00b824 --- /dev/null +++ b/modules/features/greetd.nix @@ -0,0 +1,28 @@ +# https://github.com/glabrie/dotfiles/blob/main/modules/system/settings/greetd.nix +{ inputs, ... }: { + flake.module.nixos.greetd = { pkgs, ... }: { + services.greetd = { + enable = true; + settings = { + default_session = { + command = "${lib.getExe pkgs.tuigreet} --time --remember --cmd niri-session"; + user = "greeter"; + }; + }; + }; + + systemd.services.greetd.serviceConfig = { + Type = "idle"; + StandardInput = "tty"; + StandardOutput = "tty"; + StandardError = "journal"; # Without this errors will spam on screen + # Without these bootlogs will spam on screen + TTYReset = true; + TTYVHangup = true; + TTYVTDisallocate = true; + }; + + # Let's allow our keyring to work from the start + security.pam.services.greetd.enableGnomeKeyring = true; + }; +} \ No newline at end of file diff --git a/modules/hosts/john-p14s/configuration.nix b/modules/hosts/john-p14s/configuration.nix index 2d8e4c8..bb49be4 100644 --- a/modules/hosts/john-p14s/configuration.nix +++ b/modules/hosts/john-p14s/configuration.nix @@ -33,11 +33,6 @@ }; programs.zsh.enable = true; - - # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 - systemd.services."getty@tty1".enable = false; - systemd.services."autovt@tty1".enable = false; - services.openssh.enable = true; services.tailscale.enable = true; @@ -51,9 +46,6 @@ samba ]; - # For gnome systray icons - services.udev.packages = with pkgs; [ gnome-settings-daemon ]; - security.pam.services.swaylock = {}; security.pam.services.swaylock.fprintAuth = true; diff --git a/modules/programs/niri.nix b/modules/programs/niri.nix index bbb878b..6280271 100644 --- a/modules/programs/niri.nix +++ b/modules/programs/niri.nix @@ -14,9 +14,10 @@ perSystem = { pkgs, lib, self', ... }: { packages.myNiri = inputs.wrapper-modules.wrappers.niri.wrap { inherit pkgs; + env.RUST_BACKTRACE = "full"; settings = { spawn-at-startup = [ - { command = [ (lib.getExe self'.packages.myNoctalia) ]; } + "${lib.getExe self'.packages.myNoctalia}" ]; xwayland-satellite.path = lib.getExe pkgs.xwayland-satellite; input.keyboard.xkb.layout = "us,ua";