2023-09-09 13:36:21 +02:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
pkgs,
|
|
|
|
lib,
|
|
|
|
...
|
2023-09-09 14:57:55 +02:00
|
|
|
}: let
|
2023-09-11 19:16:26 +02:00
|
|
|
desktopCfg = config.my.desktop;
|
2023-09-24 10:46:15 +02:00
|
|
|
isEnabled = desktopCfg.enableGnome;
|
2023-09-11 19:16:26 +02:00
|
|
|
|
2023-09-10 11:32:18 +02:00
|
|
|
applyGnomeUserSettings = {
|
|
|
|
home.packages = with pkgs; [
|
|
|
|
gnome.gpaste
|
|
|
|
amberol
|
|
|
|
];
|
|
|
|
dconf.settings = {
|
|
|
|
"org/gnome/desktop/peripherals/keyboard" = {
|
|
|
|
numlock-state = true;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-09-09 13:36:21 +02:00
|
|
|
in {
|
2023-09-24 10:46:15 +02:00
|
|
|
options.my.desktop.enableGnome = lib.mkEnableOption "gnome desktop";
|
|
|
|
|
|
|
|
config = lib.mkIf isEnabled {
|
2023-09-09 15:44:15 +02:00
|
|
|
my.desktop.enable = true;
|
|
|
|
|
2023-09-09 13:36:21 +02:00
|
|
|
services = {
|
|
|
|
xserver = {
|
|
|
|
# Enable the GNOME Desktop Environment.
|
|
|
|
displayManager.gdm.enable = true;
|
|
|
|
desktopManager.gnome.enable = true;
|
|
|
|
};
|
|
|
|
|
|
|
|
gnome = {
|
|
|
|
tracker-miners.enable = false;
|
|
|
|
tracker.enable = false;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-09-10 11:32:18 +02:00
|
|
|
environment.systemPackages = with pkgs; [
|
|
|
|
gnomeExtensions.gsconnect
|
|
|
|
];
|
2023-09-09 13:36:21 +02:00
|
|
|
|
|
|
|
# remove some gnome default apps
|
|
|
|
environment.gnome.excludePackages = with pkgs.gnome; [
|
|
|
|
cheese # photo booth
|
|
|
|
epiphany # web browser
|
|
|
|
evince # document viewer
|
|
|
|
geary # email client
|
|
|
|
seahorse # password manager
|
|
|
|
gnome-clocks
|
|
|
|
gnome-maps
|
|
|
|
gnome-weather
|
|
|
|
gnome-music
|
|
|
|
pkgs.gnome-connections
|
|
|
|
];
|
|
|
|
|
|
|
|
home-manager.users = {
|
2023-09-11 19:16:26 +02:00
|
|
|
vinzenz = lib.mkIf desktopCfg.vinzenz.enable applyGnomeUserSettings;
|
|
|
|
ronja = lib.mkIf desktopCfg.ronja.enable applyGnomeUserSettings;
|
2023-09-09 13:36:21 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|