46 lines
1.1 KiB
Nix
46 lines
1.1 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
...
|
|
}:
|
|
with lib; let
|
|
cfg = config.system.desktop.xserver;
|
|
in {
|
|
options.system.desktop.xserver = {
|
|
enable = mkEnableOption "Enables xserver";
|
|
de = mkOption {
|
|
type = types.enum ["gnome" "kde"];
|
|
default = "gnome";
|
|
example = "kde";
|
|
description = "Which DE to enable";
|
|
};
|
|
};
|
|
config.services = mkIf cfg.enable {
|
|
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;
|
|
};
|
|
|
|
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 = {
|
|
inherit (cfg) enable;
|
|
videoDrivers = lists.optional config.system.hardware.amdgpu.enable "amdgpu";
|
|
xkb = {
|
|
layout = "fr";
|
|
variant = "bepo_afnor";
|
|
};
|
|
};
|
|
};
|
|
}
|