{ config , lib , pkgs , ... }: with lib; let cfg = config.my.programs.gnome; extensions = with pkgs.gnomeExtensions; [ tray-icons-reloaded gsconnect ]; in { options.my.programs.gnome.enable = mkEnableOption "gnome"; config = lib.mkIf cfg.enable { hardware = { opengl = { enable = true; driSupport = true; }; pulseaudio.enable = false; }; programs.xwayland.enable = true; services.xserver = { layout = "de"; displayManager = { autoLogin = { enable = true; user = "moritz"; }; gdm.enable = true; }; enable = true; desktopManager.gnome.enable = true; }; environment.systemPackages = extensions; home-manager.users.moritz.dconf.settings = { "org/gnome/shell".enabled-extensions = map (p: p.extensionUuid or p.uuid) extensions; "org/gnome/desktop/interface".enable-hot-corners = false; }; }; }