diff options
Diffstat (limited to 'nixos/modules/services/x11')
4 files changed, 2 insertions, 434 deletions
diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index dadfb421d3a8..79b2e7c6ead7 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -66,7 +66,7 @@ in { meta = { - doc = ./gnome.xml; + doc = ./gnome.md; maintainers = teams.gnome.members; }; diff --git a/nixos/modules/services/x11/desktop-managers/gnome.xml b/nixos/modules/services/x11/desktop-managers/gnome.xml deleted file mode 100644 index 6613f49eec7a..000000000000 --- a/nixos/modules/services/x11/desktop-managers/gnome.xml +++ /dev/null @@ -1,261 +0,0 @@ -<!-- Do not edit this file directly, edit its companion .md instead - and regenerate this file using nixos/doc/manual/md-to-db.sh --> -<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="chap-gnome"> - <title>GNOME Desktop</title> - <para> - GNOME provides a simple, yet full-featured desktop environment with - a focus on productivity. Its Mutter compositor supports both Wayland - and X server, and the GNOME Shell user interface is fully - customizable by extensions. - </para> - <section xml:id="sec-gnome-enable"> - <title>Enabling GNOME</title> - <para> - All of the core apps, optional apps, games, and core developer - tools from GNOME are available. - </para> - <para> - To enable the GNOME desktop use: - </para> - <programlisting> -services.xserver.desktopManager.gnome.enable = true; -services.xserver.displayManager.gdm.enable = true; -</programlisting> - <note> - <para> - While it is not strictly necessary to use GDM as the display - manager with GNOME, it is recommended, as some features such as - screen lock - <link linkend="sec-gnome-faq-can-i-use-lightdm-with-gnome">might - not work</link> without it. - </para> - </note> - <para> - The default applications used in NixOS are very minimal, inspired - by the defaults used in - <link xlink:href="https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/40.0/elements/core/meta-gnome-core-utilities.bst">gnome-build-meta</link>. - </para> - <section xml:id="sec-gnome-without-the-apps"> - <title>GNOME without the apps</title> - <para> - If you’d like to only use the GNOME desktop and not the apps, - you can disable them with: - </para> - <programlisting> -services.gnome.core-utilities.enable = false; -</programlisting> - <para> - and none of them will be installed. - </para> - <para> - If you’d only like to omit a subset of the core utilities, you - can use - <xref linkend="opt-environment.gnome.excludePackages" />. Note - that this mechanism can only exclude core utilities, games and - core developer tools. - </para> - </section> - <section xml:id="sec-gnome-disabling-services"> - <title>Disabling GNOME services</title> - <para> - It is also possible to disable many of the - <link xlink:href="https://github.com/NixOS/nixpkgs/blob/b8ec4fd2a4edc4e30d02ba7b1a2cc1358f3db1d5/nixos/modules/services/x11/desktop-managers/gnome.nix#L329-L348">core - services</link>. For example, if you do not need indexing files, - you can disable Tracker with: - </para> - <programlisting> -services.gnome.tracker-miners.enable = false; -services.gnome.tracker.enable = false; -</programlisting> - <para> - Note, however, that doing so is not supported and might break - some applications. Notably, GNOME Music cannot work without - Tracker. - </para> - </section> - <section xml:id="sec-gnome-games"> - <title>GNOME games</title> - <para> - You can install all of the GNOME games with: - </para> - <programlisting> -services.gnome.games.enable = true; -</programlisting> - </section> - <section xml:id="sec-gnome-core-developer-tools"> - <title>GNOME core developer tools</title> - <para> - You can install GNOME core developer tools with: - </para> - <programlisting> -services.gnome.core-developer-tools.enable = true; -</programlisting> - </section> - </section> - <section xml:id="sec-gnome-enable-flashback"> - <title>Enabling GNOME Flashback</title> - <para> - GNOME Flashback provides a desktop environment based on the - classic GNOME 2 architecture. You can enable the default GNOME - Flashback session, which uses the Metacity window manager, with: - </para> - <programlisting> -services.xserver.desktopManager.gnome.flashback.enableMetacity = true; -</programlisting> - <para> - It is also possible to create custom sessions that replace - Metacity with a different window manager using - <xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions" />. - </para> - <para> - The following example uses <literal>xmonad</literal> window - manager: - </para> - <programlisting> -services.xserver.desktopManager.gnome.flashback.customSessions = [ - { - wmName = "xmonad"; - wmLabel = "XMonad"; - wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad"; - enableGnomePanel = false; - } -]; -</programlisting> - </section> - <section xml:id="sec-gnome-icons-and-gtk-themes"> - <title>Icons and GTK Themes</title> - <para> - Icon themes and GTK themes don’t require any special option to - install in NixOS. - </para> - <para> - You can add them to - <xref linkend="opt-environment.systemPackages" /> and switch to - them with GNOME Tweaks. If you’d like to do this manually in - dconf, change the values of the following keys: - </para> - <programlisting> -/org/gnome/desktop/interface/gtk-theme -/org/gnome/desktop/interface/icon-theme -</programlisting> - <para> - in <literal>dconf-editor</literal> - </para> - </section> - <section xml:id="sec-gnome-shell-extensions"> - <title>Shell Extensions</title> - <para> - Most Shell extensions are packaged under the - <literal>gnomeExtensions</literal> attribute. Some packages that - include Shell extensions, like <literal>gnome.gpaste</literal>, - don’t have their extension decoupled under this attribute. - </para> - <para> - You can install them like any other package: - </para> - <programlisting> -environment.systemPackages = [ - gnomeExtensions.dash-to-dock - gnomeExtensions.gsconnect - gnomeExtensions.mpris-indicator-button -]; -</programlisting> - <para> - Unfortunately, we lack a way for these to be managed in a - completely declarative way. So you have to enable them manually - with an Extensions application. It is possible to use a - <link linkend="sec-gnome-gsettings-overrides">GSettings - override</link> for this on - <literal>org.gnome.shell.enabled-extensions</literal>, but that - will only influence the default value. - </para> - </section> - <section xml:id="sec-gnome-gsettings-overrides"> - <title>GSettings Overrides</title> - <para> - Majority of software building on the GNOME platform use GLib’s - <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html">GSettings</link> - system to manage runtime configuration. For our purposes, the - system consists of XML schemas describing the individual - configuration options, stored in the package, and a settings - backend, where the values of the settings are stored. On NixOS, - like on most Linux distributions, dconf database is used as the - backend. - </para> - <para> - <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html#id-1.4.19.2.9.25">GSettings - vendor overrides</link> can be used to adjust the default values - for settings of the GNOME desktop and apps by replacing the - default values specified in the XML schemas. Using overrides will - allow you to pre-seed user settings before you even start the - session. - </para> - <warning> - <para> - Overrides really only change the default values for GSettings - keys so if you or an application changes the setting value, the - value set by the override will be ignored. Until - <link xlink:href="https://github.com/NixOS/nixpkgs/issues/54150">NixOS’s - dconf module implements changing values</link>, you will either - need to keep that in mind and clear the setting from the backend - using <literal>dconf reset</literal> command when that happens, - or use the - <link xlink:href="https://nix-community.github.io/home-manager/options.html#opt-dconf.settings">module - from home-manager</link>. - </para> - </warning> - <para> - You can override the default GSettings values using the - <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides" /> - option. - </para> - <para> - Take note that whatever packages you want to override GSettings - for, you need to add them to - <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages" />. - </para> - <para> - You can use <literal>dconf-editor</literal> tool to explore which - GSettings you can set. - </para> - <section xml:id="sec-gnome-gsettings-overrides-example"> - <title>Example</title> - <programlisting> -services.xserver.desktopManager.gnome = { - extraGSettingsOverrides = '' - # Change default background - [org.gnome.desktop.background] - picture-uri='file://${pkgs.nixos-artwork.wallpapers.mosaic-blue.gnomeFilePath}' - - # Favorite apps in gnome-shell - [org.gnome.shell] - favorite-apps=['org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop'] - ''; - - extraGSettingsOverridePackages = [ - pkgs.gsettings-desktop-schemas # for org.gnome.desktop - pkgs.gnome.gnome-shell # for org.gnome.shell - ]; -}; -</programlisting> - </section> - </section> - <section xml:id="sec-gnome-faq"> - <title>Frequently Asked Questions</title> - <section xml:id="sec-gnome-faq-can-i-use-lightdm-with-gnome"> - <title>Can I use LightDM with GNOME?</title> - <para> - Yes you can, and any other display-manager in NixOS. - </para> - <para> - However, it doesn’t work correctly for the Wayland session of - GNOME Shell yet, and won’t be able to lock your screen. - </para> - <para> - See - <link xlink:href="https://github.com/NixOS/nixpkgs/issues/56342">this - issue.</link> - </para> - </section> - </section> -</chapter> diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index f5cc2d8187da..7791a98965d1 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -17,7 +17,7 @@ in { meta = { - doc = ./pantheon.xml; + doc = ./pantheon.md; maintainers = teams.pantheon.members; }; diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.xml b/nixos/modules/services/x11/desktop-managers/pantheon.xml deleted file mode 100644 index 0e98b08fb658..000000000000 --- a/nixos/modules/services/x11/desktop-managers/pantheon.xml +++ /dev/null @@ -1,171 +0,0 @@ -<!-- Do not edit this file directly, edit its companion .md instead - and regenerate this file using nixos/doc/manual/md-to-db.sh --> -<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="chap-pantheon"> - <title>Pantheon Desktop</title> - <para> - Pantheon is the desktop environment created for the elementary OS - distribution. It is written from scratch in Vala, utilizing GNOME - technologies with GTK and Granite. - </para> - <section xml:id="sec-pantheon-enable"> - <title>Enabling Pantheon</title> - <para> - All of Pantheon is working in NixOS and the applications should be - available, aside from a few - <link xlink:href="https://github.com/NixOS/nixpkgs/issues/58161">exceptions</link>. - To enable Pantheon, set - </para> - <programlisting> -services.xserver.desktopManager.pantheon.enable = true; -</programlisting> - <para> - This automatically enables LightDM and Pantheon’s LightDM greeter. - If you’d like to disable this, set - </para> - <programlisting> -services.xserver.displayManager.lightdm.greeters.pantheon.enable = false; -services.xserver.displayManager.lightdm.enable = false; -</programlisting> - <para> - but please be aware using Pantheon without LightDM as a display - manager will break screenlocking from the UI. The NixOS module for - Pantheon installs all of Pantheon’s default applications. If you’d - like to not install Pantheon’s apps, set - </para> - <programlisting> -services.pantheon.apps.enable = false; -</programlisting> - <para> - You can also use - <xref linkend="opt-environment.pantheon.excludePackages" /> to - remove any other app (like <literal>elementary-mail</literal>). - </para> - </section> - <section xml:id="sec-pantheon-wingpanel-switchboard"> - <title>Wingpanel and Switchboard plugins</title> - <para> - Wingpanel and Switchboard work differently than they do in other - distributions, as far as using plugins. You cannot install a - plugin globally (like with - <option>environment.systemPackages</option>) to start using it. - You should instead be using the following options: - </para> - <itemizedlist spacing="compact"> - <listitem> - <para> - <xref linkend="opt-services.xserver.desktopManager.pantheon.extraWingpanelIndicators" /> - </para> - </listitem> - <listitem> - <para> - <xref linkend="opt-services.xserver.desktopManager.pantheon.extraSwitchboardPlugs" /> - </para> - </listitem> - </itemizedlist> - <para> - to configure the programs with plugs or indicators. - </para> - <para> - The difference in NixOS is both these programs are patched to load - plugins from a directory that is the value of an environment - variable. All of which is controlled in Nix. If you need to - configure the particular packages manually you can override the - packages like: - </para> - <programlisting> -wingpanel-with-indicators.override { - indicators = [ - pkgs.some-special-indicator - ]; -}; - -switchboard-with-plugs.override { - plugs = [ - pkgs.some-special-plug - ]; -}; -</programlisting> - <para> - please note that, like how the NixOS options describe these as - extra plugins, this would only add to the default plugins included - with the programs. If for some reason you’d like to configure - which plugins to use exactly, both packages have an argument for - this: - </para> - <programlisting> -wingpanel-with-indicators.override { - useDefaultIndicators = false; - indicators = specialListOfIndicators; -}; - -switchboard-with-plugs.override { - useDefaultPlugs = false; - plugs = specialListOfPlugs; -}; -</programlisting> - <para> - this could be most useful for testing a particular plug-in in - isolation. - </para> - </section> - <section xml:id="sec-pantheon-faq"> - <title>FAQ</title> - <variablelist spacing="compact"> - <varlistentry> - <term> - <anchor xml:id="sec-pantheon-faq-messed-up-theme" />I have - switched from a different desktop and Pantheon’s theming looks - messed up. - </term> - <listitem> - <para> - Open Switchboard and go to: Administration → About → Restore - Default Settings → Restore Settings. This will reset any - dconf settings to their Pantheon defaults. Note this could - reset certain GNOME specific preferences if that desktop was - used prior. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <anchor xml:id="sec-pantheon-faq-gnome-and-pantheon" />I - cannot enable both GNOME and Pantheon. - </term> - <listitem> - <para> - This is a known - <link xlink:href="https://github.com/NixOS/nixpkgs/issues/64611">issue</link> - and there is no known workaround. - </para> - </listitem> - </varlistentry> - <varlistentry> - <term> - <anchor xml:id="sec-pantheon-faq-appcenter" />Does AppCenter - work, or is it available? - </term> - <listitem> - <para> - AppCenter has been available since 20.03. Starting from - 21.11, the Flatpak backend should work so you can install - some Flatpak applications using it. However, due to missing - appstream metadata, the Packagekit backend does not function - currently. See this - <link xlink:href="https://github.com/NixOS/nixpkgs/issues/15932">issue</link>. - </para> - <para> - If you are using Pantheon, AppCenter should be installed by - default if you have - <link linkend="module-services-flatpak">Flatpak - support</link> enabled. If you also wish to add the - <literal>appcenter</literal> Flatpak remote: - </para> - <programlisting> -$ flatpak remote-add --if-not-exists appcenter https://flatpak.elementary.io/repo.flatpakrepo -</programlisting> - </listitem> - </varlistentry> - </variablelist> - </section> -</chapter> |