{
pkgs,
lib,
config,
...
}:
{
options.cady = {
desktop = lib.mkOption {
type = lib.types.enum [
"Gnome"
"Plasma"
"Hyprland"
];
default = "Gnome";
description = "Cady style preconfigured DE (Only Gnome or Plasma for now)";
};
remote.enable = lib.mkEnableOption "Enable XRDP";
};
config = lib.mkMerge [
(lib.mkIf (config.cady.remote.enable) {
# services.sunshine = {
# enable = true;
# openFirewall = true;
# capSysAdmin = true;
# };
})
(lib.mkIf (config.cady.desktop == "Gnome") {
# Enable the X11 windowing system and disable xterm.
services.xserver = {
enable = true;
excludePackages = with pkgs; [ xterm ];
};
# Enable the GNOME Desktop Environment.
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome.enable = true;
# Exclude GNOME default applications
environment.gnome.excludePackages = with pkgs; [
gnome-disk-utility
gnome-backgrounds
gnome-user-docs
gnome-tour
# gnome-text-editor
gnome-calculator
gnome-calendar
gnome-contacts
gnome-font-viewer
gnome-maps
gnome-music
gnome-weather
gnome-connections
gnome-software
orca
simple-scan
# snapshot
# totem
yelp
epiphany
geary
evince
];
# Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229
systemd.services."getty@tty1".enable = false;
systemd.services."autovt@tty1".enable = false;
# Pop!_OS shell is really nice actually.
environment.systemPackages =
with pkgs;
with pkgs.gnomeExtensions;
[
pop-shell
blur-my-shell
undecorate
gsnap
gparted
];
})
(lib.mkIf (config.cady.desktop == "Plasma") {
# Enable the X11 windowing system and disable xterm.
services.xserver = {
enable = true;
excludePackages = with pkgs; [ xterm ];
};
# Enable KDE Plasma
# services.displayManager.sddm.enable = true;
services.desktopManager.plasma6.enable = true;
# Plasma Packages
environment.systemPackages =
with pkgs;
with kdePackages;
[
plasma-browser-integration
];
environment.plasma6.excludePackages = with pkgs.kdePackages; [
elisa
kate
];
})
];
}