nixos: add gnome module

This commit is contained in:
Aly Raffauf 2024-09-18 08:23:28 -04:00
parent 65d94cce50
commit c1855b33af
3 changed files with 70 additions and 1 deletions

View file

@ -6,6 +6,7 @@
}: {
imports = [
./greetd
./gnome
./hyprland
./sway
./waylandComp.nix
@ -13,7 +14,8 @@
config =
lib.mkIf (
config.ar.desktop.hyprland.enable
config.ar.desktop.gnome.enable
|| config.ar.desktop.hyprland.enable
|| config.ar.desktop.steam.enable
|| config.ar.desktop.sway.enable
) {

View file

@ -0,0 +1,66 @@
{
config,
lib,
pkgs,
...
}: {
config = lib.mkIf config.ar.desktop.gnome.enable {
# nixpkgs.overlays = [
# # GNOME 46: triple-buffering-v4-46
# (final: prev: {
# gnome = prev.gnome.overrideScope (gnomeFinal: gnomePrev: {
# mutter = gnomePrev.mutter.overrideAttrs (old: {
# src = pkgs.fetchFromGitLab {
# domain = "gitlab.gnome.org";
# owner = "vanvugt";
# repo = "mutter";
# rev = "triple-buffering-v4-46";
# hash = "sha256-nz1Enw1NjxLEF3JUG0qknJgf4328W/VvdMjJmoOEMYs=";
# };
# });
# });
# })
# ];
security.pam.services = {
login.fprintAuth = false;
gdm = {
enableGnomeKeyring = true;
gnupg.enable = true;
kwallet.enable = true;
};
gdm-fingerprint = lib.mkIf (config.services.fprintd.enable) {
text = ''
auth required pam_shells.so
auth requisite pam_nologin.so
auth requisite pam_faillock.so preauth
auth required ${pkgs.fprintd}/lib/security/pam_fprintd.so
auth optional pam_permit.so
auth required pam_env.so
auth [success=ok default=1] ${pkgs.gnome.gdm}/lib/security/pam_gdm.so
auth optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so
account include login
password required pam_deny.so
session include login
session optional ${pkgs.gnome.gnome-keyring}/lib/security/pam_gnome_keyring.so auto_start
'';
};
};
# Enable GNOME and GDM.
services = {
gnome.tracker-miners.enable = true;
udev.packages = with pkgs; [gnome.gnome-settings-daemon];
xserver = {
desktopManager.gnome.enable = true;
displayManager.gdm.enable = true;
};
};
};
}

View file

@ -29,6 +29,7 @@
};
};
gnome.enable = lib.mkEnableOption "GNOME desktop session.";
hyprland.enable = lib.mkEnableOption "Hyprland wayland session.";
steam.enable = lib.mkEnableOption "Steam + Gamescope session.";
sway.enable = lib.mkEnableOption "Sway wayland session.";