lol

nixos/gnome: convert manual chapter to MD

pennae da6641a5 8a86d1f7

+376 -201
+167
nixos/modules/services/x11/desktop-managers/gnome.md
··· 1 + # GNOME Desktop {#chap-gnome} 2 + 3 + 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. 4 + 5 + ## Enabling GNOME {#sec-gnome-enable} 6 + 7 + All of the core apps, optional apps, games, and core developer tools from GNOME are available. 8 + 9 + To enable the GNOME desktop use: 10 + 11 + ``` 12 + services.xserver.desktopManager.gnome.enable = true; 13 + services.xserver.displayManager.gdm.enable = true; 14 + ``` 15 + 16 + ::: {.note} 17 + 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 [might not work](#sec-gnome-faq-can-i-use-lightdm-with-gnome) without it. 18 + ::: 19 + 20 + The default applications used in NixOS are very minimal, inspired by the defaults used in [gnome-build-meta](https://gitlab.gnome.org/GNOME/gnome-build-meta/blob/40.0/elements/core/meta-gnome-core-utilities.bst). 21 + 22 + ### GNOME without the apps {#sec-gnome-without-the-apps} 23 + 24 + If you’d like to only use the GNOME desktop and not the apps, you can disable them with: 25 + 26 + ``` 27 + services.gnome.core-utilities.enable = false; 28 + ``` 29 + 30 + and none of them will be installed. 31 + 32 + If you’d only like to omit a subset of the core utilities, you can use 33 + [](#opt-environment.gnome.excludePackages). 34 + Note that this mechanism can only exclude core utilities, games and core developer tools. 35 + 36 + ### Disabling GNOME services {#sec-gnome-disabling-services} 37 + 38 + It is also possible to disable many of the [core services](https://github.com/NixOS/nixpkgs/blob/b8ec4fd2a4edc4e30d02ba7b1a2cc1358f3db1d5/nixos/modules/services/x11/desktop-managers/gnome.nix#L329-L348). For example, if you do not need indexing files, you can disable Tracker with: 39 + 40 + ``` 41 + services.gnome.tracker-miners.enable = false; 42 + services.gnome.tracker.enable = false; 43 + ``` 44 + 45 + Note, however, that doing so is not supported and might break some applications. Notably, GNOME Music cannot work without Tracker. 46 + 47 + ### GNOME games {#sec-gnome-games} 48 + 49 + You can install all of the GNOME games with: 50 + 51 + ``` 52 + services.gnome.games.enable = true; 53 + ``` 54 + 55 + ### GNOME core developer tools {#sec-gnome-core-developer-tools} 56 + 57 + You can install GNOME core developer tools with: 58 + 59 + ``` 60 + services.gnome.core-developer-tools.enable = true; 61 + ``` 62 + 63 + ## Enabling GNOME Flashback {#sec-gnome-enable-flashback} 64 + 65 + 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: 66 + 67 + ``` 68 + services.xserver.desktopManager.gnome.flashback.enableMetacity = true; 69 + ``` 70 + 71 + It is also possible to create custom sessions that replace Metacity with a different window manager using [](#opt-services.xserver.desktopManager.gnome.flashback.customSessions). 72 + 73 + The following example uses `xmonad` window manager: 74 + 75 + ``` 76 + services.xserver.desktopManager.gnome.flashback.customSessions = [ 77 + { 78 + wmName = "xmonad"; 79 + wmLabel = "XMonad"; 80 + wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad"; 81 + enableGnomePanel = false; 82 + } 83 + ]; 84 + ``` 85 + 86 + ## Icons and GTK Themes {#sec-gnome-icons-and-gtk-themes} 87 + 88 + Icon themes and GTK themes don’t require any special option to install in NixOS. 89 + 90 + You can add them to [](#opt-environment.systemPackages) and switch to them with GNOME Tweaks. 91 + If you’d like to do this manually in dconf, change the values of the following keys: 92 + 93 + ``` 94 + /org/gnome/desktop/interface/gtk-theme 95 + /org/gnome/desktop/interface/icon-theme 96 + ``` 97 + 98 + in `dconf-editor` 99 + 100 + ## Shell Extensions {#sec-gnome-shell-extensions} 101 + 102 + Most Shell extensions are packaged under the `gnomeExtensions` attribute. 103 + Some packages that include Shell extensions, like `gnome.gpaste`, don’t have their extension decoupled under this attribute. 104 + 105 + You can install them like any other package: 106 + 107 + ``` 108 + environment.systemPackages = [ 109 + gnomeExtensions.dash-to-dock 110 + gnomeExtensions.gsconnect 111 + gnomeExtensions.mpris-indicator-button 112 + ]; 113 + ``` 114 + 115 + Unfortunately, we lack a way for these to be managed in a completely declarative way. 116 + So you have to enable them manually with an Extensions application. 117 + It is possible to use a [GSettings override](#sec-gnome-gsettings-overrides) for this on `org.gnome.shell.enabled-extensions`, but that will only influence the default value. 118 + 119 + ## GSettings Overrides {#sec-gnome-gsettings-overrides} 120 + 121 + Majority of software building on the GNOME platform use GLib’s [GSettings](https://developer.gnome.org/gio/unstable/GSettings.html) 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. 122 + 123 + [GSettings vendor overrides](https://developer.gnome.org/gio/unstable/GSettings.html#id-1.4.19.2.9.25) 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. 124 + 125 + ::: {.warning} 126 + 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 [NixOS’s dconf module implements changing values](https://github.com/NixOS/nixpkgs/issues/54150), you will either need to keep that in mind and clear the setting from the backend using `dconf reset` command when that happens, or use the [module from home-manager](https://nix-community.github.io/home-manager/options.html#opt-dconf.settings). 127 + ::: 128 + 129 + You can override the default GSettings values using the 130 + [](#opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides) option. 131 + 132 + Take note that whatever packages you want to override GSettings for, you need to add them to 133 + [](#opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages). 134 + 135 + You can use `dconf-editor` tool to explore which GSettings you can set. 136 + 137 + ### Example {#sec-gnome-gsettings-overrides-example} 138 + 139 + ``` 140 + services.xserver.desktopManager.gnome = { 141 + extraGSettingsOverrides = '' 142 + # Change default background 143 + [org.gnome.desktop.background] 144 + picture-uri='file://${pkgs.nixos-artwork.wallpapers.mosaic-blue.gnomeFilePath}' 145 + 146 + # Favorite apps in gnome-shell 147 + [org.gnome.shell] 148 + favorite-apps=['org.gnome.Photos.desktop', 'org.gnome.Nautilus.desktop'] 149 + ''; 150 + 151 + extraGSettingsOverridePackages = [ 152 + pkgs.gsettings-desktop-schemas # for org.gnome.desktop 153 + pkgs.gnome.gnome-shell # for org.gnome.shell 154 + ]; 155 + }; 156 + ``` 157 + 158 + ## Frequently Asked Questions {#sec-gnome-faq} 159 + 160 + ### Can I use LightDM with GNOME? {#sec-gnome-faq-can-i-use-lightdm-with-gnome} 161 + 162 + Yes you can, and any other display-manager in NixOS. 163 + 164 + However, it doesn’t work correctly for the Wayland session of GNOME Shell yet, and 165 + won’t be able to lock your screen. 166 + 167 + See [this issue.](https://github.com/NixOS/nixpkgs/issues/56342)
+2
nixos/modules/services/x11/desktop-managers/gnome.nix
··· 66 66 { 67 67 68 68 meta = { 69 + # Don't edit the docbook xml directly, edit the md and generate it: 70 + # `pandoc gnome.md -t docbook --top-level-division=chapter --extract-media=media -f markdown-smart --lua-filter ../../../../../doc/build-aux/pandoc-filters/myst-reader/roles.lua --lua-filter ../../../../../doc/build-aux/pandoc-filters/docbook-writer/rst-roles.lua > gnome.xml` 69 71 doc = ./gnome.xml; 70 72 maintainers = teams.gnome.members; 71 73 };
+207 -201
nixos/modules/services/x11/desktop-managers/gnome.xml
··· 1 - <chapter xmlns="http://docbook.org/ns/docbook" 2 - xmlns:xlink="http://www.w3.org/1999/xlink" 3 - xml:id="chap-gnome"> 4 - <title>GNOME Desktop</title> 5 - <para> 6 - 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. 7 - </para> 8 - 9 - <section xml:id="sec-gnome-enable"> 10 - <title>Enabling GNOME</title> 11 - 1 + <chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="chap-gnome"> 2 + <title>GNOME Desktop</title> 12 3 <para> 13 - All of the core apps, optional apps, games, and core developer tools from GNOME are available. 4 + GNOME provides a simple, yet full-featured desktop environment with 5 + a focus on productivity. Its Mutter compositor supports both Wayland 6 + and X server, and the GNOME Shell user interface is fully 7 + customizable by extensions. 14 8 </para> 15 - 16 - <para> 17 - To enable the GNOME desktop use: 18 - </para> 19 - 20 - <programlisting> 9 + <section xml:id="sec-gnome-enable"> 10 + <title>Enabling GNOME</title> 11 + <para> 12 + All of the core apps, optional apps, games, and core developer 13 + tools from GNOME are available. 14 + </para> 15 + <para> 16 + To enable the GNOME desktop use: 17 + </para> 18 + <programlisting> 21 19 services.xserver.desktopManager.gnome.enable = true; 22 20 services.xserver.displayManager.gdm.enable = true; 23 21 </programlisting> 24 - 25 - <note> 26 - <para> 27 - 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 xlink:href="#sec-gnome-faq-can-i-use-lightdm-with-gnome">might not work</link> without it. 28 - </para> 29 - </note> 30 - 31 - <para> 32 - 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>. 33 - </para> 34 - 35 - <section xml:id="sec-gnome-without-the-apps"> 36 - <title>GNOME without the apps</title> 37 - 38 - <para> 39 - If you’d like to only use the GNOME desktop and not the apps, you can disable them with: 40 - </para> 41 - 42 - <programlisting> 22 + <note> 23 + <para> 24 + While it is not strictly necessary to use GDM as the display 25 + manager with GNOME, it is recommended, as some features such as 26 + screen lock 27 + <link linkend="sec-gnome-faq-can-i-use-lightdm-with-gnome">might 28 + not work</link> without it. 29 + </para> 30 + </note> 31 + <para> 32 + The default applications used in NixOS are very minimal, inspired 33 + by the defaults used in 34 + <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>. 35 + </para> 36 + <section xml:id="sec-gnome-without-the-apps"> 37 + <title>GNOME without the apps</title> 38 + <para> 39 + If you’d like to only use the GNOME desktop and not the apps, 40 + you can disable them with: 41 + </para> 42 + <programlisting> 43 43 services.gnome.core-utilities.enable = false; 44 44 </programlisting> 45 - 46 - <para> 47 - and none of them will be installed. 48 - </para> 49 - 50 - <para> 51 - If you’d only like to omit a subset of the core utilities, you can use <xref linkend="opt-environment.gnome.excludePackages"/>. 52 - Note that this mechanism can only exclude core utilities, games and core developer tools. 53 - </para> 54 - </section> 55 - 56 - <section xml:id="sec-gnome-disabling-services"> 57 - <title>Disabling GNOME services</title> 58 - 59 - <para> 60 - 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: 61 - </para> 62 - 63 - <programlisting> 45 + <para> 46 + and none of them will be installed. 47 + </para> 48 + <para> 49 + If you’d only like to omit a subset of the core utilities, you 50 + can use 51 + <xref linkend="opt-environment.gnome.excludePackages"></xref>. 52 + Note that this mechanism can only exclude core utilities, games 53 + and core developer tools. 54 + </para> 55 + </section> 56 + <section xml:id="sec-gnome-disabling-services"> 57 + <title>Disabling GNOME services</title> 58 + <para> 59 + It is also possible to disable many of the 60 + <link xlink:href="https://github.com/NixOS/nixpkgs/blob/b8ec4fd2a4edc4e30d02ba7b1a2cc1358f3db1d5/nixos/modules/services/x11/desktop-managers/gnome.nix#L329-L348">core 61 + services</link>. For example, if you do not need indexing files, 62 + you can disable Tracker with: 63 + </para> 64 + <programlisting> 64 65 services.gnome.tracker-miners.enable = false; 65 66 services.gnome.tracker.enable = false; 66 67 </programlisting> 67 - 68 - <para> 69 - Note, however, that doing so is not supported and might break some applications. Notably, GNOME Music cannot work without Tracker. 70 - </para> 71 - </section> 72 - 73 - <section xml:id="sec-gnome-games"> 74 - <title>GNOME games</title> 75 - 76 - <para> 77 - You can install all of the GNOME games with: 78 - </para> 79 - 80 - <programlisting> 68 + <para> 69 + Note, however, that doing so is not supported and might break 70 + some applications. Notably, GNOME Music cannot work without 71 + Tracker. 72 + </para> 73 + </section> 74 + <section xml:id="sec-gnome-games"> 75 + <title>GNOME games</title> 76 + <para> 77 + You can install all of the GNOME games with: 78 + </para> 79 + <programlisting> 81 80 services.gnome.games.enable = true; 82 81 </programlisting> 83 - </section> 84 - 85 - <section xml:id="sec-gnome-core-developer-tools"> 86 - <title>GNOME core developer tools</title> 87 - 88 - <para> 89 - You can install GNOME core developer tools with: 90 - </para> 91 - 92 - <programlisting> 82 + </section> 83 + <section xml:id="sec-gnome-core-developer-tools"> 84 + <title>GNOME core developer tools</title> 85 + <para> 86 + You can install GNOME core developer tools with: 87 + </para> 88 + <programlisting> 93 89 services.gnome.core-developer-tools.enable = true; 94 90 </programlisting> 91 + </section> 95 92 </section> 96 - </section> 97 - 98 - <section xml:id="sec-gnome-enable-flashback"> 99 - <title>Enabling GNOME Flashback</title> 100 - 101 - <para> 102 - 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: 103 - </para> 104 - 105 - <programlisting> 93 + <section xml:id="sec-gnome-enable-flashback"> 94 + <title>Enabling GNOME Flashback</title> 95 + <para> 96 + GNOME Flashback provides a desktop environment based on the 97 + classic GNOME 2 architecture. You can enable the default GNOME 98 + Flashback session, which uses the Metacity window manager, with: 99 + </para> 100 + <programlisting> 106 101 services.xserver.desktopManager.gnome.flashback.enableMetacity = true; 107 102 </programlisting> 108 - 109 - <para> 110 - 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"/>. 111 - </para> 112 - 113 - <para> 114 - The following example uses <literal>xmonad</literal> window manager: 115 - </para> 116 - 117 - <programlisting> 103 + <para> 104 + It is also possible to create custom sessions that replace 105 + Metacity with a different window manager using 106 + <xref linkend="opt-services.xserver.desktopManager.gnome.flashback.customSessions"></xref>. 107 + </para> 108 + <para> 109 + The following example uses <literal>xmonad</literal> window 110 + manager: 111 + </para> 112 + <programlisting> 118 113 services.xserver.desktopManager.gnome.flashback.customSessions = [ 119 114 { 120 - wmName = "xmonad"; 121 - wmLabel = "XMonad"; 122 - wmCommand = "${pkgs.haskellPackages.xmonad}/bin/xmonad"; 115 + wmName = &quot;xmonad&quot;; 116 + wmLabel = &quot;XMonad&quot;; 117 + wmCommand = &quot;${pkgs.haskellPackages.xmonad}/bin/xmonad&quot;; 123 118 enableGnomePanel = false; 124 119 } 125 120 ]; 126 121 </programlisting> 127 - 128 - </section> 129 - 130 - <section xml:id="sec-gnome-icons-and-gtk-themes"> 131 - <title>Icons and GTK Themes</title> 132 - 133 - <para> 134 - Icon themes and GTK themes don’t require any special option to install in NixOS. 135 - </para> 136 - 137 - <para> 138 - You can add them to <xref linkend="opt-environment.systemPackages"/> and switch to them with GNOME Tweaks. 139 - If you’d like to do this manually in dconf, change the values of the following keys: 140 - </para> 141 - 142 - <programlisting> 122 + </section> 123 + <section xml:id="sec-gnome-icons-and-gtk-themes"> 124 + <title>Icons and GTK Themes</title> 125 + <para> 126 + Icon themes and GTK themes don’t require any special option to 127 + install in NixOS. 128 + </para> 129 + <para> 130 + You can add them to 131 + <xref linkend="opt-environment.systemPackages"></xref> and switch 132 + to them with GNOME Tweaks. If you’d like to do this manually in 133 + dconf, change the values of the following keys: 134 + </para> 135 + <programlisting> 143 136 /org/gnome/desktop/interface/gtk-theme 144 137 /org/gnome/desktop/interface/icon-theme 145 138 </programlisting> 146 - 147 - <para> 148 - in <literal>dconf-editor</literal> 149 - </para> 150 - </section> 151 - 152 - <section xml:id="sec-gnome-shell-extensions"> 153 - <title>Shell Extensions</title> 154 - 155 - <para> 156 - Most Shell extensions are packaged under the <literal>gnomeExtensions</literal> attribute. 157 - Some packages that include Shell extensions, like <literal>gnome.gpaste</literal>, don’t have their extension decoupled under this attribute. 158 - </para> 159 - 160 - <para> 161 - You can install them like any other package: 162 - </para> 163 - 164 - <programlisting> 139 + <para> 140 + in <literal>dconf-editor</literal> 141 + </para> 142 + </section> 143 + <section xml:id="sec-gnome-shell-extensions"> 144 + <title>Shell Extensions</title> 145 + <para> 146 + Most Shell extensions are packaged under the 147 + <literal>gnomeExtensions</literal> attribute. Some packages that 148 + include Shell extensions, like <literal>gnome.gpaste</literal>, 149 + don’t have their extension decoupled under this attribute. 150 + </para> 151 + <para> 152 + You can install them like any other package: 153 + </para> 154 + <programlisting> 165 155 environment.systemPackages = [ 166 156 gnomeExtensions.dash-to-dock 167 157 gnomeExtensions.gsconnect 168 158 gnomeExtensions.mpris-indicator-button 169 159 ]; 170 160 </programlisting> 171 - 172 - <para> 173 - Unfortunately, we lack a way for these to be managed in a completely declarative way. 174 - So you have to enable them manually with an Extensions application. 175 - It is possible to use a <link xlink:href="#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. 176 - </para> 177 - </section> 178 - 179 - <section xml:id="sec-gnome-gsettings-overrides"> 180 - <title>GSettings Overrides</title> 181 - 182 - <para> 183 - 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. 184 - </para> 185 - 186 - <para> 187 - <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. 188 - </para> 189 - 190 - <warning> 191 - <para> 192 - 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>. 193 - </para> 194 - </warning> 195 - 196 - <para> 197 - You can override the default GSettings values using the <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides"/> option. 198 - </para> 199 - 200 - <para> 201 - Take note that whatever packages you want to override GSettings for, you need to add them to 202 - <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages"/>. 203 - </para> 204 - 205 - <para> 206 - You can use <literal>dconf-editor</literal> tool to explore which GSettings you can set. 207 - </para> 208 - 209 - <section xml:id="sec-gnome-gsettings-overrides-example"> 210 - <title>Example</title> 211 - 212 - <programlisting> 161 + <para> 162 + Unfortunately, we lack a way for these to be managed in a 163 + completely declarative way. So you have to enable them manually 164 + with an Extensions application. It is possible to use a 165 + <link linkend="sec-gnome-gsettings-overrides">GSettings 166 + override</link> for this on 167 + <literal>org.gnome.shell.enabled-extensions</literal>, but that 168 + will only influence the default value. 169 + </para> 170 + </section> 171 + <section xml:id="sec-gnome-gsettings-overrides"> 172 + <title>GSettings Overrides</title> 173 + <para> 174 + Majority of software building on the GNOME platform use GLib’s 175 + <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html">GSettings</link> 176 + system to manage runtime configuration. For our purposes, the 177 + system consists of XML schemas describing the individual 178 + configuration options, stored in the package, and a settings 179 + backend, where the values of the settings are stored. On NixOS, 180 + like on most Linux distributions, dconf database is used as the 181 + backend. 182 + </para> 183 + <para> 184 + <link xlink:href="https://developer.gnome.org/gio/unstable/GSettings.html#id-1.4.19.2.9.25">GSettings 185 + vendor overrides</link> can be used to adjust the default values 186 + for settings of the GNOME desktop and apps by replacing the 187 + default values specified in the XML schemas. Using overrides will 188 + allow you to pre-seed user settings before you even start the 189 + session. 190 + </para> 191 + <warning> 192 + <para> 193 + Overrides really only change the default values for GSettings 194 + keys so if you or an application changes the setting value, the 195 + value set by the override will be ignored. Until 196 + <link xlink:href="https://github.com/NixOS/nixpkgs/issues/54150">NixOS’s 197 + dconf module implements changing values</link>, you will either 198 + need to keep that in mind and clear the setting from the backend 199 + using <literal>dconf reset</literal> command when that happens, 200 + or use the 201 + <link xlink:href="https://nix-community.github.io/home-manager/options.html#opt-dconf.settings">module 202 + from home-manager</link>. 203 + </para> 204 + </warning> 205 + <para> 206 + You can override the default GSettings values using the 207 + <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverrides"></xref> 208 + option. 209 + </para> 210 + <para> 211 + Take note that whatever packages you want to override GSettings 212 + for, you need to add them to 213 + <xref linkend="opt-services.xserver.desktopManager.gnome.extraGSettingsOverridePackages"></xref>. 214 + </para> 215 + <para> 216 + You can use <literal>dconf-editor</literal> tool to explore which 217 + GSettings you can set. 218 + </para> 219 + <section xml:id="sec-gnome-gsettings-overrides-example"> 220 + <title>Example</title> 221 + <programlisting> 213 222 services.xserver.desktopManager.gnome = { 214 223 extraGSettingsOverrides = '' 215 224 # Change default background ··· 227 236 ]; 228 237 }; 229 238 </programlisting> 239 + </section> 230 240 </section> 231 - </section> 232 - 233 - <section xml:id="sec-gnome-faq"> 234 - <title>Frequently Asked Questions</title> 235 - 236 - <section xml:id="sec-gnome-faq-can-i-use-lightdm-with-gnome"> 237 - <title>Can I use LightDM with GNOME?</title> 238 - 239 - <para> 240 - Yes you can, and any other display-manager in NixOS. 241 - </para> 242 - 243 - <para> 244 - However, it doesn’t work correctly for the Wayland session of GNOME Shell yet, and 245 - won’t be able to lock your screen. 246 - </para> 247 - 248 - <para> 249 - See <link xlink:href="https://github.com/NixOS/nixpkgs/issues/56342">this issue.</link> 250 - </para> 241 + <section xml:id="sec-gnome-faq"> 242 + <title>Frequently Asked Questions</title> 243 + <section xml:id="sec-gnome-faq-can-i-use-lightdm-with-gnome"> 244 + <title>Can I use LightDM with GNOME?</title> 245 + <para> 246 + Yes you can, and any other display-manager in NixOS. 247 + </para> 248 + <para> 249 + However, it doesn’t work correctly for the Wayland session of 250 + GNOME Shell yet, and won’t be able to lock your screen. 251 + </para> 252 + <para> 253 + See 254 + <link xlink:href="https://github.com/NixOS/nixpkgs/issues/56342">this 255 + issue.</link> 256 + </para> 257 + </section> 251 258 </section> 252 - </section> 253 259 </chapter>