GNOME: Difference between revisions

From NixOS Wiki
imported>Jtojnar
m correct capitalization
imported>Jtojnar
de-emphasize GConf, suggest proper dconf fix, mention icon theme
Line 13: Line 13:
</syntaxHighlight>
</syntaxHighlight>


=== Applications fails to start because dconf/gconf is missing ===
=== Running ancient applications ===


If you are getting an error like:
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:


<syntaxHighlight>
<syntaxHighlight>
Line 21: Line 21:
</syntaxHighlight>
</syntaxHighlight>


when running GNOME applications you need to add {{ic|gconf}} to the list of dbus packages in your configuration.nix.
you need to add {{ic|gnome2.GConf}} to the list of dbus packages in your {{ic|configuration.nix}}:
In GNOME 3 GConf was replaced by dconf. For simplicity you can just add both:


<syntaxHighlight lang=nix>
<syntaxHighlight lang=nix>
services.dbus.packages = with pkgs; [ gnome3.dconf gnome2.GConf ];
services.dbus.packages = with pkgs; [ gnome2.GConf ];
</syntaxHighlight>
</syntaxHighlight>


After applying the update one also has restart their desktop session to refresh the user-specific dbus session.
After applying the update one also has restart their desktop session to refresh the user-specific dbus session.
=== Running GNOME programs outside of GNOME ===
While we are packaging GNOME platform-based applications to be largely [self-contained https://nixos.org/nixpkgs/manual/#sec-language-gnome], 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:
<syntaxHighlight>
dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name ca.desrt.dconf was not provided by any .service files
</syntaxHighlight>
you should enable dconf module:
<syntaxHighlight lang=nix>
programs.dconf.enable = true;
</syntaxHighlight>
Many applications rely heavily on having an icon theme available, GNOME’s Adwaita is a good choice but most recent icon themes should work as well.
<syntaxHighlight lang=nix>
environment.systemPackages = [ gnome3.adwaita-icon-theme ];
</syntaxHighlight>

Revision as of 02:26, 18 January 2020

GNOME

GNOME (/(ɡ)noʊm/) is a desktop environment that aims to be simple and easy to use. It is designed by The GNOME Project and is composed entirely of free and open-source software. GNOME is a part of the GNU Project.


Install GNOME

To use GNOME, add this to your configuration.nix:

services.xserver.enable = true;
services.xserver.displayManager.gdm.enable = true;
services.xserver.desktopManager.gnome3.enable = true;

Running ancient 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:

GLib.GException: Failed to contact configuration server; the most common cause is a missing or misconfigured D-Bus session bus daemon. See http://projects.gnome.org/gconf/ for information

you need to add gnome2.GConf to the list of dbus packages in your configuration.nix:

services.dbus.packages = with pkgs; [ gnome2.GConf ];

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

Running GNOME programs outside of GNOME

While we are packaging GNOME platform-based applications to be largely [self-contained https://nixos.org/nixpkgs/manual/#sec-language-gnome], they still depend, for one reason or another, on some global configuration. The 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:

 dconf-WARNING **: failed to commit changes to dconf: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: The name ca.desrt.dconf was not provided by any .service files

you should enable dconf module:

programs.dconf.enable = true;

Many applications rely heavily on having an icon theme available, GNOME’s Adwaita is a good choice but most recent icon themes should work as well.

environment.systemPackages = [ gnome3.adwaita-icon-theme ];