flake: refactor gnome and kde config inclusion

This commit is contained in:
Leonardo Eugênio 2026-02-24 14:13:58 -03:00
parent c07b2f920e
commit 52f5d725ea
6 changed files with 65 additions and 49 deletions

View file

@ -103,12 +103,14 @@
common_modules = [
{ nixpkgs.pkgs = pkgs; }
./system/configuration.nix
{ login-manager.greetd.enable = desktop == "sway"; }
{
login-manager.greetd.enable = desktop == "sway";
my.gnome.enable = desktop == "gnome";
my.kde.enable = desktop == "kde";
}
{ home-manager.extraSpecialArgs = specialArgs; }
]
++ lib.optional (desktop == "gnome") ./system/gnome.nix
++ lib.optional (desktop == "kde") ./system/kde.nix;
];
in
{
checks."${system}" = {

View file

@ -30,6 +30,8 @@
./network.nix
./sops.nix
./greetd.nix
./gnome.nix
./kde.nix
./home-manager.nix
../settings
];

View file

@ -1,47 +1,53 @@
{ pkgs, lib, ... }:
{
services.xserver = {
enable = true;
desktopManager.gnome = {
config,
pkgs,
lib,
...
}:
{
options.my.gnome.enable = lib.mkEnableOption { };
config = lib.mkIf config.my.gnome.enable {
services.xserver = {
enable = true;
# Enable VRR (Variable Refresh Rate)
extraGSettingsOverridePackages = with pkgs; [ gnome.mutter ];
extraGSettingsOverrides = ''
[org.gnome.mutter]
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
'';
displayManager.gdm.enable = true;
desktopManager.gnome = {
enable = true;
# Enable VRR (Variable Refresh Rate)
extraGSettingsOverridePackages = with pkgs; [ mutter ];
extraGSettingsOverrides = ''
[org.gnome.mutter]
experimental-features=['variable-refresh-rate', 'scale-monitor-framebuffer']
'';
};
};
displayManager.gdm.enable = true;
};
# Workaround for https://github.com/NixOS/nixpkgs/issues/103746
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
# Workaround for https://github.com/NixOS/nixpkgs/issues/103746
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
services.displayManager.autoLogin = {
enable = true;
user = "lelgenio";
};
services.displayManager.autoLogin = {
enable = true;
user = "lelgenio";
};
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
programs.kdeconnect = {
enable = true;
package = pkgs.gnomeExtensions.gsconnect;
};
hardware.opentabletdriver.enable = lib.mkForce false;
hardware.opentabletdriver.enable = lib.mkForce false;
programs.gpaste.enable = true;
programs.gpaste.enable = true;
# services.xserver.displayManager.autologin.user = "lelgenio";
environment.systemPackages =
with pkgs;
with gnome;
[
environment.systemPackages = with pkgs; [
gnome-tweaks
dconf-editor
chrome-gnome-shell
gnome-browser-connector
gnomeExtensions.quick-settings-audio-devices-hider
gnomeExtensions.user-themes
gnome-pass-search-provider
];
};
}

View file

@ -1,15 +1,19 @@
{ config, pkgs, ... }:
{
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the KDE Desktop Environment.
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# services.xserver.displayManager.autologin.user = "lelgenio";
programs.dconf.enable = true;
# environment.systemPackages = with pkgs;
# with gnome; [
# gnome-tweaks
# dconf-editor
# ];
config,
pkgs,
lib,
...
}:
{
options.my.kde.enable = lib.mkEnableOption { };
config = lib.mkIf config.my.kde.enable {
# Enable the X11 windowing system.
services.xserver.enable = true;
# Enable the KDE Desktop Environment.
services.xserver.displayManager.sddm.enable = true;
services.xserver.desktopManager.plasma5.enable = true;
# services.xserver.displayManager.autologin.user = "lelgenio";
programs.dconf.enable = true;
};
}

View file

@ -5,5 +5,7 @@
android.enable = lib.mkEnableOption { };
media-packages.enable = lib.mkEnableOption { };
containers.enable = lib.mkEnableOption { };
gnome.enable = lib.mkEnableOption { };
kde.enable = lib.mkEnableOption { };
};
}

View file

@ -43,7 +43,7 @@ lib.mkIf (config.my.desktop == "gnome") {
qt6Packages.qtstyleplugin-kvantum
];
services.gpg-agent.pinentry.package = pkgs.pinentry-gnome;
services.gpg-agent.pinentry.package = lib.mkForce pkgs.pinentry-gnome3;
xdg.defaultApplications = {
enable = lib.mkForce false;