<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet href="https://riceball.com/wp-content/plugins/pretty-rss-feeds/xslt/pretty-feed.xsl" type="text/xsl" media="screen" ?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MINT - 🍙</title>
	<atom:link href="https://riceball.com/tag/mint/feed/" rel="self" type="application/rss+xml" />
	<link>https://riceball.com</link>
	<description></description>
	<lastBuildDate>Fri, 18 Sep 2026 04:33:40 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://riceball.com/wp-content/uploads/sites/2/2025/10/onigiri-150x150.png</url>
	<title>MINT - 🍙</title>
	<link>https://riceball.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Configuring Regolith to Send Windows to Workspaces (long)</title>
		<link>https://riceball.com/2026/09/17/configuring-regolith-to-send-windows-to-workspaces-long/</link>
					<comments>https://riceball.com/2026/09/17/configuring-regolith-to-send-windows-to-workspaces-long/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 04:16:25 +0000</pubDate>
				<category><![CDATA[Human Learning]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MINT]]></category>
		<category><![CDATA[Regolith]]></category>
		<guid isPermaLink="false">https://riceball.com/?p=30526</guid>

					<description><![CDATA[<p>This seemed simple enough, to set up the system to send windows to specific workspaces, and specific screens, but I ended up getting into C preprocessor headaches, and then eventually figured out how to name the workspaces, literally, and had a few problems after that. It&#8217;s not easy, but here&#8217;s what I&#8217;ve done so far, [&#8230;]</p>
<p>The post <a href="https://riceball.com/2026/09/17/configuring-regolith-to-send-windows-to-workspaces-long/">Configuring Regolith to Send Windows to Workspaces (long)</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">This seemed simple enough, to set up the system to send windows to specific workspaces, and specific screens, but I ended up getting into C preprocessor headaches, and then eventually figured out how to name the workspaces, literally, and had a few problems after that. It&#8217;s not easy, but here&#8217;s what I&#8217;ve done so far, and how I did it.</p>



<p class="wp-block-paragraph">So, here&#8217;s my current desktop layout. It&#8217;s a  laptop plugged into a HD monitor, for two screens.</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="764" height="489" src="https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-17-19-49-23.png?wsr" alt="" class="wp-image-30528" srcset="https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-17-19-49-23.png 764w, https://riceball.com/wp-content/uploads/sites/2/2026/09/Screenshot-from-2026-09-17-19-49-23-300x192.png 300w" sizes="(max-width: 764px) 100vw, 764px" /></figure>



<p class="wp-block-paragraph">My system is MINT Linux Cinnamon, but with Regolith, a GNOME environment with the i3 full-screen/tiling window manager. Here&#8217;s a video about it:</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Regolith Linux - Ubuntu with i3 Tiling Window Manager" width="500" height="281" src="https://www.youtube.com/embed/3x1CR5Q2rrY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">i3 uses <strong>named workspaces</strong> (also known as Desktops, Virtual Desktops, or Spaces in Windows and MacOS), numbered from 1 to 19, and you jump to them by pressing Win+1, Win+2&#8230; Win+Ctrl+1&#8230; etc. (Win can also be the Apple Key or &#8220;Super&#8221;)</p>



<p class="wp-block-paragraph">Normally, you have to press Win+Shift+1 to move a window to workspace 1.</p>



<p class="wp-block-paragraph">Starting up a session can be a pain, because  you bring up the apps you want, and they all show up in the current workspaces.</p>



<p class="wp-block-paragraph">I like to keep all my comms apps, like Signal, in workspace 1. I want my first browser to go to workspace 3.</p>



<p class="wp-block-paragraph">I also want all my odd-numbered workspaces on the big screen on the left, and even numbered workspace on the right, on the laptop screen.</p>



<p class="wp-block-paragraph">Here&#8217;s my config file: .config/regolith3/i3/config.d/workspace-to-display.config</p>



<div class="wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># mkdir -p  ~/.config/regolith3/i3/config.d
# vi ~/.config/regolith3/i3/config.d/workspace-to-display.config 
# Run xrandr --listmonitors to get the monitor names
#
# Sample output:
#
# Monitors: 2
# 0: +*HDMI-1 1920/509x1080/286+0+0  HDMI-1
# 1: +eDP-1 1920/309x1080/173+1920+0  eDP-1
#
# Paste the configs below in and edit to match your desired monitor setup

workspace "$ws1" output HDMI-1
workspace "$ws2" output eDP-1
workspace "$ws3" output HDMI-1
workspace "$ws4" output eDP-1
workspace "$ws5" output HDMI-1
workspace "$ws6" output eDP-1
workspace "$ws7" output HDMI-1
workspace "$ws8" output eDP-1
workspace "$ws9" output HDMI-1
workspace "$ws10" output eDP-1
workspace "$ws11" output HDMI-1
workspace "$ws12" output eDP-1
workspace "$ws13" output HDMI-1
workspace "$ws14" output eDP-1
workspace "$ws15" output HDMI-1
workspace "$ws16" output eDP-1
workspace "$ws17" output HDMI-1
workspace "$ws18" output eDP-1
workspace "$ws19" output HDMI-1

assign &#91;class="thunderbird"&#93; "$ws1"
assign &#91;class="proton-mail"&#93; "$ws1"
for_window &#91;class="Signal"&#93; move to workspace "$ws1"
# These don"t work
for_window &#91;class="Element *"&#93; move to workspace "$ws1"
for_window &#91;class="WhatsApp"&#93; move to workspace "$ws1"

assign &#91;class="firefox"&#93; "$ws3"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4"># mkdir -p  ~/.config/regolith3/i3/config.d</span></span>
<span class="line"><span style="color: #D4D4D4"># vi ~/.config/regolith3/i3/config.d/workspace-to-display.config </span></span>
<span class="line"><span style="color: #D4D4D4"># Run xrandr --listmonitors to get the monitor names</span></span>
<span class="line"><span style="color: #D4D4D4">#</span></span>
<span class="line"><span style="color: #D4D4D4"># Sample output:</span></span>
<span class="line"><span style="color: #D4D4D4">#</span></span>
<span class="line"><span style="color: #D4D4D4"># Monitors: 2</span></span>
<span class="line"><span style="color: #D4D4D4"># 0: +*HDMI-1 1920/509x1080/286+0+0  HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4"># 1: +eDP-1 1920/309x1080/173+1920+0  eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">#</span></span>
<span class="line"><span style="color: #D4D4D4"># Paste the configs below in and edit to match your desired monitor setup</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws1&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws2&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws3&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws4&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws5&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws6&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws7&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws8&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws9&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws10&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws11&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws12&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws13&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws14&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws15&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws16&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws17&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws18&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws19&quot; output HDMI-1</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">assign &#91;class=&quot;thunderbird&quot;&#93; &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">assign &#91;class=&quot;proton-mail&quot;&#93; &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">for_window &#91;class=&quot;Signal&quot;&#93; move to workspace &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4"># These don&quot;t work</span></span>
<span class="line"><span style="color: #D4D4D4">for_window &#91;class=&quot;Element *&quot;&#93; move to workspace &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">for_window &#91;class=&quot;WhatsApp&quot;&#93; move to workspace &quot;$ws1&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">assign &#91;class=&quot;firefox&quot;&#93; &quot;$ws3&quot;</span></span></code></pre></div>



<h2 class="wp-block-heading">Workspaces Associated with Displays</h2>



<p class="wp-block-paragraph">At the top of my config, I have some comments to remind me how I did it. You run xrandr &#8211;listmonitors to get the monitor names:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>xrandr --listmonitors</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">xrandr --listmonitors</span></span></code></pre></div>



<p class="wp-block-paragraph">Then you put these lines to assign a workspace to a display:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>workspace "$ws1" output HDMI-1
workspace "$ws2" output eDP-1
.
.
.
workspace "$ws18" output eDP-1
workspace "$ws19" output HDMI-1</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">workspace &quot;$ws1&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws2&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws18&quot; output eDP-1</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws19&quot; output HDMI-1</span></span></code></pre></div>



<p class="wp-block-paragraph">Then, you assign windows to workspaces:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>assign &#91;class="thunderbird"&#93; "$ws1"
assign &#91;class="proton-mail"&#93; "$ws1"
for_window &#91;class="Signal"&#93; move to workspace "$ws1"
# These don"t work
for_window &#91;class="Element *"&#93; move to workspace "$ws1"
for_window &#91;class="WhatsApp"&#93; move to workspace "$ws1"

assign &#91;class="firefox"&#93; "$ws3"</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">assign &#91;class=&quot;thunderbird&quot;&#93; &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">assign &#91;class=&quot;proton-mail&quot;&#93; &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">for_window &#91;class=&quot;Signal&quot;&#93; move to workspace &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4"># These don&quot;t work</span></span>
<span class="line"><span style="color: #D4D4D4">for_window &#91;class=&quot;Element *&quot;&#93; move to workspace &quot;$ws1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">for_window &#91;class=&quot;WhatsApp&quot;&#93; move to workspace &quot;$ws1&quot;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">assign &#91;class=&quot;firefox&quot;&#93; &quot;$ws3&quot;</span></span></code></pre></div>



<p class="wp-block-paragraph">The first three lines work, and the last line works, but the lines for Element and WhatsApp don&#8217;t work. These config lines are tricky to figure out, because you don&#8217;t know what info the app is exposing to the window manager. Finding out is a pain in the butt, but here are instructions:</p>



<p class="wp-block-paragraph"><a href="https://stackoverflow.com/questions/65049414/in-i3wm-how-can-i-open-programs-on-another-workspace-at-startup">https://stackoverflow.com/questions/65049414/in-i3wm-how-can-i-open-programs-on-another-workspace-at-startup</a></p>



<p class="wp-block-paragraph">One of these days, I may update this with a bunch of programs configured to show up on specific workspaces.</p>



<h2 class="wp-block-heading">Errors</h2>



<p class="wp-block-paragraph">For a while, I had my own config in .config/regolith3/i3/config, which I think may have caused error messages and weird behavior. (I may be wrong, though.)</p>



<p class="wp-block-paragraph">The workspace names were causing problems. The &#8220;names&#8221; looked like HTML &#8211; because they were:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>1:&lt;span> &lt;/span>1 &lt;span foreground="#3584E4">&lt;/span>&lt;span> &lt;/span></textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">1:&lt;span&gt; &lt;/span&gt;1 &lt;span foreground=&quot;#3584E4&quot;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">That&#8217;s the name, with all the HTML in it. It gets rendered by Pango.</p>



<p class="wp-block-paragraph">However, when this line is expanded, it breaks:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># The original config line:
workspace "$ws1" output HDMI-1
# The line after the variable expansion:
workspace "1:&lt;span> &lt;/span>1 &lt;span foreground="#3584E4">&lt;/span>&lt;span> &lt;/span>" output HDMI-1</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4"># The original config line:</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;$ws1&quot; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4"># The line after the variable expansion:</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &quot;1:&lt;span&gt; &lt;/span&gt;1 &lt;span foreground=&quot;#3584E4&quot;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&quot; output HDMI-1</span></span></code></pre></div>



<p class="wp-block-paragraph">The problem is the double quote within the double-quoted string. I got a ton of error messages.</p>



<p class="wp-block-paragraph">I thought, &#8220;this is easy. Try using single-quotes&#8221;:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly># The original config line:
workspace '$ws1' output HDMI-1
# The line after the variable expansion:
workspace '1:&lt;span> &lt;/span>1 &lt;span foreground='#3584E4'>&lt;/span>&lt;span> &lt;/span>' output HDMI-1</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4"># The original config line:</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &#39;$ws1&#39; output HDMI-1</span></span>
<span class="line"><span style="color: #D4D4D4"># The line after the variable expansion:</span></span>
<span class="line"><span style="color: #D4D4D4">workspace &#39;1:&lt;span&gt; &lt;/span&gt;1 &lt;span foreground=&#39;#3584E4&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&#39; output HDMI-1</span></span></code></pre></div>



<p class="wp-block-paragraph">OK, I don&#8217;t know what the hell was going on, but single quotes caused the variable expansion to also use <strong>single quotes</strong> inside the string.</p>



<p class="wp-block-paragraph">I tried it without any quotes at all, but that didn&#8217;t work, because variable expansions are done before the entire line is parsed. So all the spaces in the code would separate the name into words. That&#8217;s why the quotes were there.</p>



<p class="wp-block-paragraph">After reading a lot, and digging around, I found where these long, troublesome names were being generated: /usr/share/regolith-look/default/wm</p>



<p class="wp-block-paragraph">The code looks a little like this:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#define Q(x) #x
#define QUOTE(x) Q(x)
#define glyph typeface_bar_glyph_workspace
#define WORKSPACE_NAME(INDEX, COLOR, GLYPH) INDEX:&lt;span> &lt;/span>INDEX &lt;span foreground=COLOR>GLYPH&lt;/span>&lt;span> &lt;/span>

wm.workspace.01.name: WORKSPACE_NAME(1, QUOTE(color_blue), glyph)
.
.
.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">#define Q(x) #x</span></span>
<span class="line"><span style="color: #D4D4D4">#define QUOTE(x) Q(x)</span></span>
<span class="line"><span style="color: #D4D4D4">#define glyph typeface_bar_glyph_workspace</span></span>
<span class="line"><span style="color: #D4D4D4">#define WORKSPACE_NAME(INDEX, COLOR, GLYPH) INDEX:&lt;span&gt; &lt;/span&gt;INDEX &lt;span foreground=COLOR&gt;GLYPH&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.01.name: WORKSPACE_NAME(1, QUOTE(color_blue), glyph)</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span></code></pre></div>



<p class="wp-block-paragraph">Yes, those are C preprocessor (cpp) directives.</p>



<p class="wp-block-paragraph">For the 99% of people who don&#8217;t know what C or the C Preprocessor is: it&#8217;s a macro language. Here&#8217;s a video about it. Skip it if you know it.</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="#30: Preprocesor and Macros | C Programming for Beginners" width="500" height="281" src="https://www.youtube.com/embed/cmGq62c1Ceg?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p class="wp-block-paragraph">The obvious fix was to single-quote the color value, so the expansion would look like this:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>workspace "1:&lt;span> &lt;/span>1 &lt;span foreground='#3584E4'>&lt;/span>&lt;span> &lt;/span>" output HDMI-1</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">workspace &quot;1:&lt;span&gt; &lt;/span&gt;1 &lt;span foreground=&#39;#3584E4&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&quot; output HDMI-1</span></span></code></pre></div>



<p class="wp-block-paragraph">I tried:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>#define SQ(X) 'X'</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">#define SQ(X) &#39;X&#39;</span></span></code></pre></div>



<p class="wp-block-paragraph">That didn&#8217;t work, because the X <strong>would not expand within a single (or double) quoted string.</strong> (This was one of the features of the cpp.)</p>



<p class="wp-block-paragraph">After an hour or two of reading, talking to AI, and looking for solutions, and failing to ever get it working with macros, I figured out something: I needed to run the cpp on the config files to get the computed config, because the workspace name definitions would be in there.</p>



<p class="wp-block-paragraph">The file at the top of all the configs, with all the #includes, was called root, and the command to spit out the config: </p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cpp /usr/share/regolith-look/default/root</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">cpp /usr/share/regolith-look/default/root</span></span></code></pre></div>



<p class="wp-block-paragraph">That showed me the computed config:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>wm.workspace.01.name: 1:&lt;span> &lt;/span>1 &lt;span foreground="#3584E4">&lt;/span>&lt;span> &lt;/span>
wm.workspace.02.name: 2:&lt;span> &lt;/span>2 &lt;span foreground="#95E6CB">&lt;/span>&lt;span> &lt;/span>
wm.workspace.03.name: 3:&lt;span> &lt;/span>3 &lt;span foreground="#33D17A">&lt;/span>&lt;span> &lt;/span>
.
.
.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">wm.workspace.01.name: 1:&lt;span&gt; &lt;/span&gt;1 &lt;span foreground=&quot;#3584E4&quot;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.02.name: 2:&lt;span&gt; &lt;/span&gt;2 &lt;span foreground=&quot;#95E6CB&quot;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.03.name: 3:&lt;span&gt; &lt;/span&gt;3 &lt;span foreground=&quot;#33D17A&quot;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span></code></pre></div>



<p class="wp-block-paragraph">Now, we just need to be able to override what the macros produced.</p>



<p class="wp-block-paragraph">This can be done through Xresources.</p>



<p class="wp-block-paragraph">Here are the config lines that define the $ws1&#8230; variables:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>###############################################################################
# Workspace Names
# These are the labels which define each workspace.
###############################################################################

set_from_resource $ws1  wm.workspace.01.name "1"
set_from_resource $ws2  wm.workspace.02.name "2"
set_from_resource $ws3  wm.workspace.03.name "3"
.
.
.</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">###############################################################################</span></span>
<span class="line"><span style="color: #D4D4D4"># Workspace Names</span></span>
<span class="line"><span style="color: #D4D4D4"># These are the labels which define each workspace.</span></span>
<span class="line"><span style="color: #D4D4D4">###############################################################################</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">set_from_resource $ws1  wm.workspace.01.name &quot;1&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">set_from_resource $ws2  wm.workspace.02.name &quot;2&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">set_from_resource $ws3  wm.workspace.03.name &quot;3&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span>
<span class="line"><span style="color: #D4D4D4">.</span></span></code></pre></div>



<p class="wp-block-paragraph">set_from_resource sets a variable value, first looking for the value in Xresources, and if it&#8217;s not there, using the supplied default.</p>



<p class="wp-block-paragraph">The canonical way for end  users to configure Regolith is through the Xresources file.  (Having now tried to mess with the config files, I understand why: it&#8217;s easy to completely screw up the config files.)</p>



<p class="wp-block-paragraph">So setting the correct value was as simple as pasting this into the .config/regolith3/Xresources file:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-Deja-Vu-Mono.ttf" style="font-size:.875rem;font-family:Code-Pro-Deja-Vu-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>wm.workspace.01.name: 1:&lt;span> &lt;/span>1 &lt;span foreground='#3584E4'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.02.name: 2:&lt;span> &lt;/span>2 &lt;span foreground='#95E6CB'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.03.name: 3:&lt;span> &lt;/span>3 &lt;span foreground='#33D17A'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.04.name: 4:&lt;span> &lt;/span>4 &lt;span foreground='#F6D32D'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.05.name: 5:&lt;span> &lt;/span>5 &lt;span foreground='#FF7800'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.06.name: 6:&lt;span> &lt;/span>6 &lt;span foreground='#E01B24'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.07.name: 7:&lt;span> &lt;/span>7 &lt;span foreground='#75507B'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.08.name: 8:&lt;span> &lt;/span>8 &lt;span foreground='#9141AC'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.09.name: 9:&lt;span> &lt;/span>9 &lt;span foreground='#986A44'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.10.name: 10:&lt;span> &lt;/span>10 &lt;span foreground='#3584E4'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.11.name: 11:&lt;span> &lt;/span>11 &lt;span foreground='#95E6CB'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.12.name: 12:&lt;span> &lt;/span>12 &lt;span foreground='#33D17A'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.13.name: 13:&lt;span> &lt;/span>13 &lt;span foreground='#F6D32D'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.14.name: 14:&lt;span> &lt;/span>14 &lt;span foreground='#FF7800'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.15.name: 15:&lt;span> &lt;/span>15 &lt;span foreground='#E01B24'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.16.name: 16:&lt;span> &lt;/span>16 &lt;span foreground='#75507B'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.17.name: 17:&lt;span> &lt;/span>17 &lt;span foreground='#9141AC'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.18.name: 18:&lt;span> &lt;/span>18 &lt;span foreground='#986A44'>&lt;/span>&lt;span> &lt;/span>
wm.workspace.19.name: 19:&lt;span> &lt;/span>19 &lt;span foreground='#3584E4'>&lt;/span>&lt;span> &lt;/span></textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">wm.workspace.01.name: 1:&lt;span&gt; &lt;/span&gt;1 &lt;span foreground=&#39;#3584E4&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.02.name: 2:&lt;span&gt; &lt;/span&gt;2 &lt;span foreground=&#39;#95E6CB&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.03.name: 3:&lt;span&gt; &lt;/span&gt;3 &lt;span foreground=&#39;#33D17A&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.04.name: 4:&lt;span&gt; &lt;/span&gt;4 &lt;span foreground=&#39;#F6D32D&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.05.name: 5:&lt;span&gt; &lt;/span&gt;5 &lt;span foreground=&#39;#FF7800&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.06.name: 6:&lt;span&gt; &lt;/span&gt;6 &lt;span foreground=&#39;#E01B24&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.07.name: 7:&lt;span&gt; &lt;/span&gt;7 &lt;span foreground=&#39;#75507B&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.08.name: 8:&lt;span&gt; &lt;/span&gt;8 &lt;span foreground=&#39;#9141AC&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.09.name: 9:&lt;span&gt; &lt;/span&gt;9 &lt;span foreground=&#39;#986A44&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.10.name: 10:&lt;span&gt; &lt;/span&gt;10 &lt;span foreground=&#39;#3584E4&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.11.name: 11:&lt;span&gt; &lt;/span&gt;11 &lt;span foreground=&#39;#95E6CB&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.12.name: 12:&lt;span&gt; &lt;/span&gt;12 &lt;span foreground=&#39;#33D17A&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.13.name: 13:&lt;span&gt; &lt;/span&gt;13 &lt;span foreground=&#39;#F6D32D&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.14.name: 14:&lt;span&gt; &lt;/span&gt;14 &lt;span foreground=&#39;#FF7800&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.15.name: 15:&lt;span&gt; &lt;/span&gt;15 &lt;span foreground=&#39;#E01B24&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.16.name: 16:&lt;span&gt; &lt;/span&gt;16 &lt;span foreground=&#39;#75507B&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.17.name: 17:&lt;span&gt; &lt;/span&gt;17 &lt;span foreground=&#39;#9141AC&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.18.name: 18:&lt;span&gt; &lt;/span&gt;18 &lt;span foreground=&#39;#986A44&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">wm.workspace.19.name: 19:&lt;span&gt; &lt;/span&gt;19 &lt;span foreground=&#39;#3584E4&#39;&gt;&lt;/span&gt;&lt;span&gt; &lt;/span&gt;</span></span></code></pre></div>



<p class="wp-block-paragraph">NOTE: the color values are single quoted. I copied this from the config dump above, and did a search-replace for &#8220;, replacing with &#8216;.</p>



<p class="wp-block-paragraph">That corrected the config file errors I was getting, and a few other problems I may have introduced.</p>



<h2 class="wp-block-heading">Conclusion</h2>



<p class="wp-block-paragraph">This was way more difficult than it needed to be.</p>



<p class="wp-block-paragraph">This workspace naming scheme seems like a bad idea, at least if the name is more than a single word. Rather than referring to a workspace by it&#8217;s fancy HTML code label, a named workspace should also have a &#8220;label&#8221; property, for this string to display.</p>



<p class="wp-block-paragraph">The cpp is kind of cool, but kind of a pain in the ass.</p>



<p class="wp-block-paragraph"></p><p>The post <a href="https://riceball.com/2026/09/17/configuring-regolith-to-send-windows-to-workspaces-long/">Configuring Regolith to Send Windows to Workspaces (long)</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2026/09/17/configuring-regolith-to-send-windows-to-workspaces-long/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Configuring Regolith i3xrocks</title>
		<link>https://riceball.com/2025/03/17/configuring-regolith-i3xrocks/</link>
					<comments>https://riceball.com/2025/03/17/configuring-regolith-i3xrocks/#respond</comments>
		
		<dc:creator><![CDATA[johnk]]></dc:creator>
		<pubDate>Mon, 17 Mar 2025 01:51:22 +0000</pubDate>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MINT]]></category>
		<category><![CDATA[Regolith]]></category>
		<guid isPermaLink="false">https://technote.fyi/?p=7531</guid>

					<description><![CDATA[<p>I upgraded my MINT 20 install to MINT 22, and everything ended up a bit of a mess, because so many things were updated. Normally, it&#8217;s easy to figure out the situation, but I couldn&#8217;t find docs to get my Regolith + i3xrocks working right. So here&#8217;s what I&#8217;m doing. First, create .config/regolith3/i3xrocks/conf.d Then, copy [&#8230;]</p>
<p>The post <a href="https://riceball.com/2025/03/17/configuring-regolith-i3xrocks/">Configuring Regolith i3xrocks</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">I upgraded my MINT 20 install to MINT 22, and everything ended up a bit of a mess, because so many things were updated.</p>



<p class="wp-block-paragraph">Normally, it&#8217;s easy to figure out the situation, but I couldn&#8217;t find docs to get my Regolith + i3xrocks working right. So here&#8217;s what I&#8217;m doing.</p>



<p class="wp-block-paragraph">First, create .config/regolith3/i3xrocks/conf.d</p>



<p class="wp-block-paragraph">Then, copy each file you want to alter, from .config/regolith/i3xrocks/conf.d into that directory you just created.</p>



<p class="wp-block-paragraph">If you want to copy them all:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>mkdir -p ~/.config/regolith3/i3xrocks/conf.d
cp /usr/share/i3xrocks/conf.d/* ~/.config/regolith3/i3xrocks/conf.d</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">mkdir</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">p</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">~/</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">config</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">regolith3</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">i3xrocks</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">conf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">d</span></span>
<span class="line"><span style="color: #D8DEE9">cp</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">usr</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">share</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">i3xrocks</span><span style="color: #81A1C1">/</span><span style="color: #D8DEE9">conf</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">d</span><span style="color: #616E88">/* ~/.config/regolith3/i3xrocks/conf.d</span></span></code></pre></div>



<p class="wp-block-paragraph">Then look at the tail of /var/log/syslog to see the errors.</p>



<p class="wp-block-paragraph">I think the config file format changed, with many values being moved into Xresources.</p>



<h3 class="wp-block-heading">Configuring the i3xrocks time</h3>



<p class="wp-block-paragraph">The following configurations are done via a user&#8217;s local Xresources file.</p>



<p class="wp-block-paragraph">To create the file:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>cd ~/.config
mkdir regolith3; cd regolith3
vi Xresources</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">cd</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">~/</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">config</span></span>
<span class="line"><span style="color: #D8DEE9">mkdir</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regolith3</span><span style="color: #81A1C1">;</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">cd</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">regolith3</span></span>
<span class="line"><span style="color: #D8DEE9">vi</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">Xresources</span></span></code></pre></div>



<h4 class="wp-block-heading">Changing the Format</h4>



<p class="wp-block-paragraph">Paste the following into the Xresources file:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>i3xrocks.date.format2: %a %m/%d %I:%M%p</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">i3xrocks</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">date</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">format2</span><span style="color: #D8DEE9FF">: </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9">a</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9">m</span><span style="color: #81A1C1">/%</span><span style="color: #D8DEE9">d</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9FF">I</span><span style="color: #ECEFF4">:</span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9">M</span><span style="color: #81A1C1">%</span><span style="color: #D8DEE9">p</span></span></code></pre></div>



<p class="wp-block-paragraph">Regolith&#8217;s time checks, first, for the Xresources configuration values, then the i3xrocks/conf.d/ config files. So, the Xresources values override the config files.</p>



<h4 class="wp-block-heading">Changing the Click Behavior to Paste the Date into the Clipboard</h4>



<p class="wp-block-paragraph">Paste the following into the Xresources file:</p>



<div class="wp-block-kevinbatdorf-code-block-pro" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span role="button" tabindex="0" style="color:#d8dee9ff;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>i3xrocks.action.time: echo -n `date "+%Y-%m-%d"` | xclip -selection clipboard</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki nord" style="background-color: #2e3440ff" tabindex="0"><code><span class="line"><span style="color: #D8DEE9">i3xrocks</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">action</span><span style="color: #ECEFF4">.</span><span style="color: #D8DEE9">time</span><span style="color: #D8DEE9FF">: </span><span style="color: #D8DEE9">echo</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">n</span><span style="color: #D8DEE9FF"> </span><span style="color: #ECEFF4">`</span><span style="color: #A3BE8C">date &quot;+%Y-%m-%d&quot;</span><span style="color: #ECEFF4">`</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">|</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">xclip</span><span style="color: #D8DEE9FF"> </span><span style="color: #81A1C1">-</span><span style="color: #D8DEE9">selection</span><span style="color: #D8DEE9FF"> </span><span style="color: #D8DEE9">clipboard</span></span></code></pre></div>



<p class="wp-block-paragraph">The default behavior is to open the Settings panel, but that can be overridden by setting i3rocks.action.time to a command that will do what you want.</p>



<p class="wp-block-paragraph">This command runs the date command, so it produces a date formatted like 2026-04-07.</p>



<p class="wp-block-paragraph">The echo -n command strips the trailing newline.</p>



<p class="wp-block-paragraph">xclip normally gets the string stdin, and puts it into the X clipboard. The &#8220;-selection clipboard&#8221; tells it to use the system clipboard, which is what GNOME uses.</p><p>The post <a href="https://riceball.com/2025/03/17/configuring-regolith-i3xrocks/">Configuring Regolith i3xrocks</a> first appeared on <a href="https://riceball.com">🍙</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://riceball.com/2025/03/17/configuring-regolith-i3xrocks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
