GNOME: Difference between revisions

Normalcea (talk | contribs)
Installation: Spruce up wording, add disclaimer about xorg/wayland support.
Normalcea (talk | contribs)
Installation: Move extension installation information out of configuration.
Line 21: Line 21:


Despite the options in NixOS versions before 25.11 being under the <code>xserver</code> namespace, GNOME runs offers [[Wayland]] by default. 25.11 and later versions remove support for the [[Xorg]] session entirely (though Xwayland is still included and supported for compatibility).
Despite the options in NixOS versions before 25.11 being under the <code>xserver</code> namespace, GNOME runs offers [[Wayland]] by default. 25.11 and later versions remove support for the [[Xorg]] session entirely (though Xwayland is still included and supported for compatibility).
=== GNOME Extensions ===
GNOME offers support for changing/overhauling the user interface (GNOME Shell) through the use of ''[https://extensions.gnome.org/about/ Extensions].'' Extensions are bundles of third-party [https://gjs.guide/extensions/ GJS] modules that are loaded while GNOME is running to augment the user experience. A repository of GNOME extensions can be found on GNOME's official [https://extensions.gnome.org/ webpage] and can be installed imperatively if needed by unpacking the extension in <code>~/.local/share/gnome-shell/extensions</code> directory. Extensions can only be activated if it supports the GNOME release that it's installed alongside with.
However, Nix automatically packages all available GNOME extensions under the <code>pkgs.gnomeExtensions</code> attribute. Extensions which require additional dependencies are then manually packaged if needed. Installed extensions can be enabled graphically through the built-in "Extensions" application or through the <code>gnome-extensions</code> command line interface.
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  environment.systemPackages = with pkgs; [
    gnomeExtensions.blur-my-shell
    gnomeExtensions.just-perfection
    gnomeExtensions.arc-menu
  ];
}
</nowiki>}}


=== Excluding GNOME Applications ===
=== Excluding GNOME Applications ===
Line 86: Line 101:


=== Managing extensions ===
=== Managing extensions ===
GNOME extensions are managed and configured by the program "Extensions" that comes with GNOME. Some of them can be installed with Nix, however they aren't enabled by default. To enable them the "Extensions" program can be used.
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
  environment.systemPackages = with pkgs.gnomeExtensions; [
    blur-my-shell
    pop-shell
    # ...
  ];
}
</nowiki>}}


Installed extensions can be enabled and configured in Extension app that comes preinstalled with GNOME. If you want to do that declaratively in your configuration, you can use [[Home Manager]] <code>dconf</code> module by adding following lines.
Installed extensions can be enabled and configured in Extension app that comes preinstalled with GNOME. If you want to do that declaratively in your configuration, you can use [[Home Manager]] <code>dconf</code> module by adding following lines.