nixcfg/nixosModules/desktop/gnome/default.nix

75 lines
2.1 KiB
Nix
Raw Normal View History

2024-04-07 22:16:33 -04:00
{
pkgs,
lib,
config,
...
}: let
gnomeCsAdjuster = pkgs.writeShellScriptBin "gnome-cs-adjuster" ''
# Get current color scheme
color_scheme=$(${lib.getExe' pkgs.glib "gsettings"} get org.gnome.desktop.interface color-scheme)
# Toggle between light and dark color schemes
if [ "$color_scheme" == "'default'" ] || [ "$color_scheme" == "'prefer-light'" ]; then
color_scheme="'prefer-dark'"
else
color_scheme="'prefer-light'"
fi
# Apply the updated color scheme
${lib.getExe' pkgs.glib "gsettings"} set org.gnome.desktop.interface color-scheme $color_scheme
'';
in {
2024-04-07 22:16:33 -04:00
imports = [
2024-03-28 16:40:23 -04:00
./fprintdFix.nix
];
config = lib.mkIf config.ar.desktop.gnome.enable {
environment.systemPackages = with pkgs;
[
gnomeExtensions.appindicator
gnomeExtensions.blur-my-shell
gnomeExtensions.gsconnect
gnomeExtensions.light-shell
gnomeExtensions.night-theme-switcher
gnomeExtensions.noannoyance-fork
gnomeExtensions.tailscale-status
gnomeExtensions.tiling-assistant
]
++ [gnomeCsAdjuster];
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-fkPjB/5DPBX06t7yj0Rb3UEuu5b9mu3aS+jhH18+lpI=";
};
});
});
})
];
# Enable keyring support for KDE apps in GNOME.
security.pam.services.gdm = {
enableGnomeKeyring = true;
gnupg.enable = true;
kwallet.enable = true;
};
# Enable GNOME and GDM.
services = {
gnome.tracker-miners.enable = true;
2024-04-07 22:16:33 -04:00
udev.packages = with pkgs; [gnome.gnome-settings-daemon];
xserver = {
desktopManager.gnome.enable = true;
displayManager.gdm.enable = true;
};
};
};
2024-03-28 16:40:23 -04:00
}