summaryrefslogtreecommitdiff
path: root/modules/nixfiles/gnome.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixfiles/gnome.nix')
-rw-r--r--modules/nixfiles/gnome.nix65
1 files changed, 65 insertions, 0 deletions
diff --git a/modules/nixfiles/gnome.nix b/modules/nixfiles/gnome.nix
new file mode 100644
index 0000000..2d0f6f6
--- /dev/null
+++ b/modules/nixfiles/gnome.nix
@@ -0,0 +1,65 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}:
+with lib; let
+ cfg = config.nixfiles.modules.gnome;
+in {
+ options.nixfiles.modules.gnome.enable =
+ mkEnableOption "Whether to enable the GNOME desktop environment.";
+
+ config = mkIf cfg.enable {
+ nixfiles.modules = {
+ gnupg.pinentry = mkForce "gnome";
+ sound.enable = true;
+ x11.enable = true;
+ };
+
+ services = {
+ xserver = {
+ enable = true;
+ desktopManager.gnome.enable = true;
+ displayManager.gdm = {
+ enable = true;
+ wayland = false;
+ };
+ };
+
+ gnome = {
+ core-os-services.enable = true;
+ core-shell.enable = true;
+ core-utilities.enable = false;
+ core-developer-tools.enable = false;
+ games.enable = false;
+
+ chrome-gnome-shell.enable = false;
+ gnome-initial-setup.enable = false;
+ gnome-online-accounts.enable = false;
+ gnome-remote-desktop.enable = false;
+ gnome-settings-daemon.enable = true;
+ gnome-user-share.enable = false;
+ rygel.enable = false;
+ tracker-miners.enable = false;
+ tracker.enable = false;
+ };
+
+ dleyna-renderer.enable = false;
+ dleyna-server.enable = false;
+ };
+
+ environment = {
+ gnome = {
+ excludePackages = with pkgs.gnome; [
+ geary
+ gnome-disk-utility
+ seahorse
+ sushi
+ ];
+ };
+
+ systemPackages = with pkgs; [pinentry-gnome];
+ };
+ };
+}