<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Biosystems Engineering Blog (Posts about gnome)</title><link>https://kwk.systems/blog/</link><description></description><atom:link href="https://kwk.systems/blog/categories/gnome.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2024 &lt;a href="mailto:info@kwk.systems"&gt;Kurt Kremitzki&lt;/a&gt; 
&lt;a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/"&gt;
&lt;img alt="Creative Commons License BY-SA"
style="border-width:0; margin-bottom:12px;"
src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png"&gt;&lt;/a&gt;</copyright><lastBuildDate>Fri, 17 May 2024 04:50:54 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>GDM Power Saving in Guix</title><link>https://kwk.systems/blog/posts/gdm-power-saving-in-guix/</link><dc:creator>Kurt Kremitzki</dc:creator><description>&lt;section id="problem"&gt;
&lt;h2&gt;Problem&lt;/h2&gt;
&lt;p&gt;I've been experimenting with &lt;a class="reference external" href="https://guix.gnu.org/"&gt;GNU Guix&lt;/a&gt; lately, a
potent &amp;amp; multipurpose "distribution of the GNU operating system." I typically
use KDE's Plasma as a desktop environment, and Guix offers a &lt;code class="docutils literal"&gt;plasma&lt;/code&gt; package
for this, but it's not offered by the installer, being a little more
experimental, so I've been using GNOME, but in doing so, I ran into an issue
with the default power-saving configuration.&lt;/p&gt;
&lt;p&gt;My test device was a laptop left at home, so waking the device while away was
not straightforward. My first pass led me to the Power section of GNOME's
Settings app, where the 'Automatic Suspend' option can be disabled to prevent
suspending after a period of inactivity. I found that even this was not enough
to disable suspend altogether. So long as I logged in first, the laptop would
not go to sleep, but after updating the system with e.g. &lt;code class="highlight bash"&gt;guix&lt;span class="w"&gt; &lt;/span&gt;system&lt;span class="w"&gt;
&lt;/span&gt;reconfigure&lt;span class="w"&gt; &lt;/span&gt;/etc/config.scm&lt;/code&gt; and rebooting, the system would soon enough
become inaccessible to remote access.&lt;/p&gt;
&lt;p&gt;It turns out this behavior is controlled by GDM. In Debian and other
traditional systems, this might be resolved by editing a configuration file in
&lt;code class="docutils literal"&gt;/etc&lt;/code&gt;, but Guix is different. Here's the idiomatic fix for the Guix System.&lt;/p&gt;
&lt;/section&gt;
&lt;section id="solution"&gt;
&lt;h2&gt;Solution&lt;/h2&gt;
&lt;p&gt;A default &lt;code class="docutils literal"&gt;/etc/config.scm&lt;/code&gt; will have a &lt;code class="highlight scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;services&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;/code&gt; section that might look
something like this:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code scheme"&gt;&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-1" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-1" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-1"&gt;&lt;/a&gt;&lt;span class="c1"&gt;;; Below is the list of system services.  To search for available&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-2" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-2" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-2"&gt;&lt;/a&gt;&lt;span class="c1"&gt;;; services, run 'guix system search KEYWORD' in a terminal.&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-3" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-3" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-3"&gt;&lt;/a&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;services&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-4" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-4" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-4"&gt;&lt;/a&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;gnome-desktop-service-type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-5" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-5" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-6" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-6" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="c1"&gt;;; To configure OpenSSH, pass an 'openssh-configuration'&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-7" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-7" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="c1"&gt;;; record as a second argument to 'service' below.&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-8" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-8" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;openssh-service-type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-9" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-9" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;network-manager-service-type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-10" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-10" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;wpa-supplicant-service-type&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-11" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-11" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;               &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;service&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;ntp-service-type&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-12" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-12" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-12"&gt;&lt;/a&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-13" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-13" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="c1"&gt;;; This is the default list of services we&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-14" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-14" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="c1"&gt;;; are appending to.&lt;/span&gt;
&lt;a id="rest_code_8aa60d8669b34812aa1d0b167bfee867-15" name="rest_code_8aa60d8669b34812aa1d0b167bfee867-15" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_8aa60d8669b34812aa1d0b167bfee867-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="nv"&gt;%base-services&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Summarizing, we have &lt;code class="highlight scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;append&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;...&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;%base-services&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/code&gt;, where the
default GDM configuration is contained within &lt;code class="highlight scheme"&gt;&lt;span class="nv"&gt;%base-services&lt;/span&gt;&lt;/code&gt;. Replace
&lt;code class="highlight scheme"&gt;&lt;span class="nv"&gt;%base-services&lt;/span&gt;&lt;/code&gt; with a call along the lines of &lt;code class="highlight scheme"&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;modify-services&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="nv"&gt;%desktop-services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;overrides&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;&lt;/code&gt;, specifically setting the
&lt;code class="highlight scheme"&gt;&lt;span class="nv"&gt;gdm-configuration&lt;/span&gt;&lt;/code&gt; option &lt;code class="highlight scheme"&gt;&lt;span class="nv"&gt;auto-suspend&lt;/span&gt;&lt;/code&gt; to &lt;code class="highlight scheme"&gt;&lt;span class="no"&gt;#f&lt;/span&gt;&lt;/code&gt;, like so:&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code scheme"&gt;&lt;a id="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-1" name="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-1" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-1"&gt;&lt;/a&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;modify-services&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;%desktop-services&lt;/span&gt;
&lt;a id="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-2" name="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-2" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;gdm-service-type&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;config&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;=&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;gdm-configuration&lt;/span&gt;
&lt;a id="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-3" name="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-3" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;inherit&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;config&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;a id="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-4" name="rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-4" href="https://kwk.systems/blog/posts/gdm-power-saving-in-guix/#rest_code_fdbf1ea7c9aa45e98b530686e1541cbe-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;      &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;auto-suspend?&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="no"&gt;#f&lt;/span&gt;&lt;span class="p"&gt;))))&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;</description><category>gdm</category><category>gnome</category><category>guix</category><guid>https://kwk.systems/blog/posts/gdm-power-saving-in-guix/</guid><pubDate>Fri, 17 May 2024 00:28:48 GMT</pubDate></item></channel></rss>