GNOME: Difference between revisions

Jasi (talk | contribs)
Enable system tray icons: Remove configuration line for udev as gnome-settings-daemon is already added in the desktop module.
scale-monitor-framebuffer and variable-refresh-rate are no longer experimental in GNOME 50. kms-modifier added
 
(6 intermediate revisions by one other user not shown)
Line 6: Line 6:


=== GNOME desktop ===
=== GNOME desktop ===
To use the GNOME desktop environment on NixOS, the following configuration options must be set:
To use the GNOME desktop environment on NixOS, the following configuration module options must be set:


{{file|3={ config, pkgs, ... }:
{{file|3={ config, pkgs, ... }:


{
{
  # Pre 25.11
  services.xserver.enable = true;
  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;
  # As of 25.11
   services.displayManager.gdm.enable = true;
   services.displayManager.gdm.enable = true;
   services.desktopManager.gnome.enable = true;
   services.desktopManager.gnome.enable = true;
Line 28: Line 21:
   environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];
   environment.gnome.excludePackages = with pkgs; [ gnome-tour gnome-user-docs ];


}|name=/etc/nixos/configuration.nix|lang=nix}}
}|name=/etc/nixos/configuration.nix|lang=nix}}Mixing GNOME with other desktops (such as alternative login managers other than GDM) is not supported, make sure to disable other desktop modules before rebuilding if you encounter issues with conflicting desktops.  
 
Despite the options in NixOS versions before 25.11 being under the <code>xserver</code> module, GNOME uses [[Wayland]] by default. NixOS 25.11 and later removes support for the [[Xorg]] session entirely (though Xwayland is still included and supported for compatibility).


=== GNOME extensions ===
=== GNOME extensions ===
Line 152: Line 143:
For more details, see [https://discourse.nixos.org/t/guide-to-installing-qt-theme/35523/2 this] forum post.{{Note|Qt integration with the adwaita style isn't perfect and your mileage may vary.}}
For more details, see [https://discourse.nixos.org/t/guide-to-installing-qt-theme/35523/2 this] forum post.{{Note|Qt integration with the adwaita style isn't perfect and your mileage may vary.}}


=== Experimental settings ===
=== Experimental features ===
GNOME has a number of experimental settings for features not fully completed and thus hidden from the user. As of GNOME 48, these are the experimental features you may want to use:
GNOME has a number of experimental options for features not fully completed and thus hidden from the user. As of GNOME 50, these are the experimental features you may want to try out:
{{File|3={
{{File|3={
   programs.dconf.profiles.user.databases = [
   programs.dconf.profiles.user.databases = [
Line 160: Line 151:
         "org/gnome/mutter" = {
         "org/gnome/mutter" = {
           experimental-features = [
           experimental-features = [
             "scale-monitor-framebuffer" # Enables fractional scaling (125% 150% 175%)
             "autoclose-xwayland" # automatically terminates Xwayland if all relevant X11 clients are gone
             "variable-refresh-rate" # Enables Variable Refresh Rate (VRR) on compatible displays
             # "kms-modifiers" # allocate scanout buffers using "explicit modifiers" if your graphics driver supports it. Uncomment if you want to test NVIDIA optimizations
            "xwayland-native-scaling" # Scales Xwayland applications to look crisp on HiDPI screens
           ];
           ];
         };
         };
Line 204: Line 194:


=== Enable system tray icons ===
=== Enable system tray icons ===
GNOME does not currently support system tray icons. However, Ubuntu has created an [https://extensions.gnome.org/extension/615/appindicator-support/ extension] that implements this in the top bar. You can install this extension with the following in NixOS:
GNOME does not currently support system tray icons. However, Ubuntu has created an [https://extensions.gnome.org/extension/615/appindicator-support/ extension] that implements this in the top panel. You can install this extension with the following in NixOS:
{{File|3={
{{File|3={
   environment.systemPackages = [ pkgs.gnomeExtensions.appindicator ];
   environment.systemPackages = [ pkgs.gnomeExtensions.appindicator ];
Line 242: Line 232:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
   environment.gnome.excludePackages = with pkgs; [
   environment.gnome.excludePackages = with pkgs; [
     totem
     showtime
   ];
   ];
</nowiki>}}
</nowiki>|name=/etc/nixos/configuration.nix|lang=nix}}


== Troubleshooting ==
== Troubleshooting ==


=== Missing cursor/cursor is a white box ===
=== Missing cursor/cursor is a white box ===
This occurs when installing GNOME from an existing NixOS installation that used a different desktop environment that modified dconf (most likely switching from KDE to GNOME). To easily fix this: reset all dconf settings.<syntaxhighlight lang="bash">
This occurs when installing GNOME from an existing NixOS installation that used a different desktop environment that modified dconf (most likely switching from KDE to GNOME). To easily fix this alongside any number of silent incompatabilities: reset all dconf settings.<syntaxhighlight lang="bash">
$ dconf reset -f /
$ dconf reset -f /
</syntaxhighlight>
</syntaxhighlight>