{ config, lib, pkgs, ... }: let cfg = config.modules.system.desktop.gnome; in { options.modules.system.desktop.gnome = { enable = lib.mkOption { default = false; example = true; }; }; config = lib.mkIf cfg.enable { services.xserver = { enable = true; displayManager.gdm.enable = true; desktopManager.gnome.enable = true; }; services.flatpak.enable = true; services.fwupd.enable = true; programs.dconf.enable = true; environment.systemPackages = with pkgs.unstable; [ adw-gtk3 adwaita-fonts kdePackages.qtstyleplugin-kvantum libsForQt5.qtstyleplugin-kvantum morewaita-icon-theme nautilus-python qadwaitadecorations qadwaitadecorations-qt6 ## Shell extensions gnomeExtensions.appindicator gnomeExtensions.arcmenu gnomeExtensions.blur-my-shell gnomeExtensions.burn-my-windows gnomeExtensions.clipboard-indicator gnomeExtensions.coverflow-alt-tab gnomeExtensions.dash-to-panel gnomeExtensions.desktop-cube gnomeExtensions.easyScreenCast gnomeExtensions.espresso gnomeExtensions.fly-pie gnomeExtensions.forge gnomeExtensions.gsconnect gnomeExtensions.gsnap gnomeExtensions.hide-top-bar gnomeExtensions.just-perfection gnomeExtensions.media-controls gnomeExtensions.mouse-follows-focus # gnomeExtensions.pano (disabled due to: https://github.com/NixOS/nixpkgs/issues/369438) gnomeExtensions.paperwm gnomeExtensions.pip-on-top gnomeExtensions.search-light gnomeExtensions.smart-auto-move gnomeExtensions.space-bar gnomeExtensions.tiling-assistant gnomeExtensions.tiling-shell gnomeExtensions.todotxt gnomeExtensions.vitals gnomeExtensions.window-is-ready-remover gnomeExtensions.worksets gnomeExtensions.workspace-matrix ]; }; }