2025-05-04 02:47:36 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
|
|
|
}:
|
|
|
|
with lib; let
|
|
|
|
cfg = config.modules.xserver;
|
|
|
|
in {
|
|
|
|
options.modules.xserver = {
|
|
|
|
amdgpu.enable = mkEnableOption "Enables AMD GPU support";
|
|
|
|
de = mkOption {
|
|
|
|
type = types.enum ["gnome" "kde"];
|
|
|
|
default = "gnome";
|
|
|
|
example = "kde";
|
|
|
|
description = "Which DE to enable";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
config.services = {
|
2025-06-21 23:53:27 +02:00
|
|
|
displayManager = {
|
|
|
|
sddm.enable = mkIf (cfg.de == "kde") true;
|
|
|
|
gdm.enable = mkIf (cfg.de == "gnome") true;
|
|
|
|
};
|
|
|
|
desktopManager = {
|
|
|
|
plasma6.enable = mkIf (cfg.de == "kde") true;
|
|
|
|
gnome.enable = mkIf (cfg.de == "gnome") true;
|
|
|
|
};
|
2025-05-04 02:47:36 +02:00
|
|
|
|
|
|
|
gnome = mkIf (cfg.de == "gnome") {
|
|
|
|
gnome-browser-connector.enable = true;
|
|
|
|
games.enable = false;
|
|
|
|
gnome-remote-desktop.enable = true;
|
|
|
|
gnome-online-accounts.enable = true;
|
|
|
|
sushi.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
xserver = {
|
|
|
|
enable = true;
|
|
|
|
videoDrivers = lists.optional cfg.amdgpu.enable "amdgpu";
|
|
|
|
xkb = {
|
|
|
|
layout = "fr";
|
|
|
|
variant = "bepo_afnor";
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|