{ config, lib, pkgs, ... }: lib.mkMerge [ /* https://wiki.nixos.org/wiki/GNOME */ (lib.optionalAttrs (lib.versionOlder lib.version "25.11") { services.xserver.enable = true; services.xserver.displayManager.gdm.enable = true; services.xserver.displayManager.gdm.wayland = true; services.xserver.desktopManager.gnome.enable = true; }) (lib.optionalAttrs (lib.versionAtLeast lib.version "25.11") { services.displayManager.gdm.enable = true; services.desktopManager.gnome.enable = true; }) { # services.xserver.enable = true; # services.xserver.displayManager.gdm.enable = true; # services.xserver.displayManager.gdm.wayland = true; # services.xserver.desktopManager.gnome.enable = true; #services.printing.enable = true; # CUPS, done in printing.nix programs.xwayland.enable = true; xdg.portal.enable = true; qt.enable = true; qt.platformTheme = "gnome"; qt.style = "adwaita-dark"; # support GConf-based applications # services.dbus.packages = [ pkgs.gnome2.GConf ]; # Enable system tray icons (used by gnomeExtensions.appindicator) services.udev.packages = [ pkgs.gnome-settings-daemon ]; # programs.dconf.profiles.user.databases = [ # { # settings."org/gnome/mutter".experimental-features = [ # # "scale-monitor-framebuffer" # Enables fractional scaling (125% 150% 175%) # # "variable-refresh-rate" # Enables Variable Refresh Rate (VRR) on compatible displays # # "xwayland-native-scaling" # Scales Xwayland applications to look crisp on HiDPI screens # ]; # } # ]; programs.gnome-terminal.enable = false; services.tumbler.enable = true; # TODO: needed when we have ffmpegthumbnailer? services.gnome.sushi.enable = true; # quick previewer for nautilus # services.gnome.gnome-online-accounts.enable = true; # Gnome SSO service # for managing gnome extensions with firefox, assumes programs.firefox.enable services.gnome.gnome-browser-connector.enable = true; environment.systemPackages = [ pkgs.pavucontrol pkgs.lxterminal # TODO: remove? pkgs.ghostty pkgs.gnome-tweaks pkgs.refine # Tweak various aspects of GNOME # pkgs.thumbler # TODO? pkgs.ffmpegthumbnailer pkgs.libheif.bin # provides heif-thumbnailer, the program that generates HEIF thumbnails pkgs.libheif.out # provides heif.thumbnailer, allows for the viewing of HEIF thumbnails pkgs.gnomeExtensions.appindicator pkgs.decibels # audio player pkgs.dconf-editor pkgs.loupe # eog replacement pkgs.shotwell # image editor # pkgs.gnome-clocks pkgs.desktop-file-utils # update-desktop-database ]; # an attempt to make nautilus discover new files, but it proved to be a freebsd-linux incompatiblity # inotify is a linux thing, and freebsd instead features kqueue. # nfs likely doesn't support such events anyway, predating inotify. #kernel.sysctl = { # "fs.inotify.max_user_watches" = "100000"; #}; # possible future fix: # https://en.wikipedia.org/wiki/File_Alteration_Monitor # or https://github.com/fsnotify/fsnotify environment.gnome.excludePackages = [ pkgs.gnome-console pkgs.gnome-terminal pkgs.gnome-photos pkgs.gnome-tour pkgs.gnome-maps pkgs.gedit # text editor (24.05 vs 23.11) # pkgs.papers # Document Viewer (new) pkgs.eog #pkgs.cheese # webcam tool #pkgs.baobab # Disk Usage Analyser pkgs.simple-scan # scanning utility pkgs.yelp # Help pkgs.gnome-music pkgs.evince # Document Viewer pkgs.epiphany # web browser pkgs.geary # email reader pkgs.showtime # video player pkgs.totem # video player pkgs.tali # poker game pkgs.iagno # go game pkgs.hitori # sudoku game pkgs.atomix # puzzle game ]; } ]