Jump to content

GNOME: Difference between revisions

Clean up and few changes
mNo edit summary
(Clean up and few changes)
Line 1: Line 1:


[[{{PAGENAME}}]] (/(ɡ)noʊm/) is a [[desktop environment]] that aims to be simple, intuitive, and easy to use. It is made by The GNOME Project and is composed entirely of free and open-source software. Its Mutter compositor supports both Wayland and X server, and the GNOME Shell user interface is fully customizable by extensions.
[[{{PAGENAME}}]] (/(ɡ)noʊm/) is a [[desktop environment]] known for its focus on being simple, intuitive, and easy to use. It is made by The GNOME Project and is composed entirely of free and open-source software. Its Mutter compositor supports both [[Wayland]] and X server, and the GNOME Shell user interface is customizable by extensions.


[https://gnome.org/ {{PAGENAME}}] is available as a [[module]] (and also especially as a module for <code>services.xserver.desktopManager</code>).
[https://gnome.org/ {{PAGENAME}}] is available as a [[module]] and can be enabled with <code>services.xserver.desktopManager</code>.




Line 15: Line 15:
</syntaxHighlight>
</syntaxHighlight>


=== Excluding some GNOME applications from the default install ===
=== Excluding GNOME Applications ===


Not all applications that come pre-installed with the GNOME desktop environment are desirable for everyone to have on their machines. There's a way to edit {{ic|configuration.nix}} to exclude these kinds of packages, for example as follows:
To exclude certain applications that are installed by default with GNOME edit {{ic|configuration.nix}} as follows:


<syntaxhighlight lang="nixos">
<syntaxhighlight lang="nixos">
environment.gnome.excludePackages = (with pkgs; [
environment.gnome.excludePackages = (with pkgs; [
   gnome-photos # photo viewer
   # for packages that are pkgs.***
   gnome-tour # gnome introduction
   gnome-tour
  gnome.yelp
  gnome.gnome-clocks
  gnome.gnome-calendar
  gnome-console # binary is called kgx
   gnome-connections
   gnome-connections
  gnome.gnome-maps
  gnome.gnome-weather
  gnome.gnome-contacts
  gnome.gnome-music
  gnome.epiphany
  gnome.gnome-characters
  gnome-text-editor
]) ++ (with pkgs.gnome; [
]) ++ (with pkgs.gnome; [
   cheese # webcam tool
   # for packages that are pkgs.gnome.***
  gnome-music
  gnome-terminal
  gedit # text editor
   epiphany # web browser
   epiphany # web browser
   geary # email reader
   geary # email reader
   evince # document viewer
   evince # document viewer
  totem # video player
  tali # poker game
  iagno # go game
  hitori # sudoku game
  atomix # puzzle game
]);
]);
</syntaxhighlight>
</syntaxhighlight>
Line 53: Line 34:
== Configuration ==
== Configuration ==


=== Managing extensions ===
=== Managing Extensions ===


GNOME extensions are managed and configured by the program "Extension" that comes with GNOME.
GNOME extensions are managed and configured by the program "Extensions" that comes with GNOME.
 
Extensions can be installed with Nix, however they aren't enabled by default. To enable them the "Extensions" program can be used.
<syntaxhighlight lang="nixos">
environment.systemPackages = (with pkgs.gnomeExtensions; [
  blur-my-shell
  pop-shell
  # ***
]);
</syntaxhighlight>
 
To declaratively enable and configure, use of modules like home-manager is required to configure dconf settings.
 
<syntaxhighlight lang="nixos">
  dconf = {
    enable = true;
    settings = {
      "org/gnome/shell" = {
        disabled-user-extensions = false; # enables user extensions (disabled by default)
        enabled-extensions = [
          "blur-my-shell@aunetx"
          # ****
        ];
      };
 
      # Configure individual extensions
      "org/gnome/shell/extensions/blur-my-shell" = {
        brightness = 0.75;
        noise-amount = 0;
      };
    };
  };
</syntaxhighlight>
 
To learn about settings that can be configured with dconf either look into "dconf editor" program or type <syntaxhighlight lang="shell">dconf watch /</syntaxhighlight> in the terminal and change settings from the GUI and see which options are responsible for that component/element.


Extensions to be installed system-wide by adding them to NixOS configuration in {{ic|environment.systemPackages}} or per-user, or from the GNOME extensions website using a Web browser extension.


=== Dark mode ===
=== Dark mode ===
Line 74: Line 88:
== Tips and tricks ==
== Tips and tricks ==


=== Running GNOME programs outside of GNOME ===
=== To run GNOME programs outside of GNOME ===


While we are packaging GNOME platform-based applications to be largely [https://nixos.org/nixpkgs/manual/#sec-language-gnome self-contained], they still depend, for one reason or another, on some global configuration. The {{ic|gnome.nix}} module sets all the necessary options for you but if you are running customized set-up, you might need to replicate that yourself.
GNOME platform-based applications are largely [https://nixos.org/nixpkgs/manual/#sec-language-gnome self-contained], but they still depend, for one reason or another, on some global configuration. The {{ic|gnome.nix}} module sets all the necessary options for you but if you are running customized set-up, you might need to replicate that yourself.


For instance, if you see the following error:
For instance, if you see the following error:
Line 110: Line 124:
</syntaxHighlight>
</syntaxHighlight>


=== Running ancient applications ===
=== To run old applications ===


Long ago, in the GNOME 2 era, applications used GConf service to store configuration. This has been deprecated for many years but some applications were abandoned before they managed to upgrade to a newer dconf system. If you are running such application and getting an error like:
Some old applications use GConf service to store configuration. This has been deprecated for many years but some applications were abandoned before they managed to upgrade to a newer dconf system. If you are running such application and getting an error like:


<syntaxHighlight lang=text>
<syntaxHighlight lang=text>
Line 124: Line 138:
</syntaxHighlight>
</syntaxHighlight>


After applying the update one also has restart their desktop session to refresh the user-specific dbus session.
After applying the update restart your desktop session to refresh the user-specific dbus session.


=== Dynamic triple buffering ===
=== Dynamic triple buffering ===
3

edits