sqrtminusone.github.io/public/configs/desktop/index.html

2700 lines
354 KiB
HTML

<!DOCTYPE html>
<html><head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Desktop</title>
<meta name="description" content="Freedom is a state of mind">
<meta name="author" content='SqrtMinusOne'>
<link href="https://fonts.googleapis.com/css2?family=Inconsolata:wght@400;700&display=swap" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css" integrity="sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2" crossorigin="anonymous">
<link rel="stylesheet" href="/sass/researcher.css">
<link rel="icon" type="image/ico" href="https://sqrtminusone.xyz/favicon.ico">
</head>
<body><div class="container mt-5">
<nav class="navbar navbar-expand-sm flex-column flex-sm-row text-nowrap p-0">
<a class="navbar-brand mx-0 mr-sm-auto" href="https://sqrtminusone.xyz/">
SqrtMinusOne
</a>
<div class="navbar-nav flex-row flex-wrap justify-content-center">
<a class="nav-item nav-link" href="/">
Index
</a>
<span class="nav-item navbar-text mx-1">/</span>
<a class="nav-item nav-link" href="/posts/">
Posts
</a>
<span class="nav-item navbar-text mx-1">/</span>
<a class="nav-item nav-link" href="/configs/readme">
Configs
</a>
</div>
</nav>
</div>
<hr>
<div id="content">
<div class="container">
<p>My general desktop environment configuration.</p>
<p>Parts prefixed with (OFF) are not used, but kept for historic purposes. For some reason GitHub&rsquo;s org renderer ignores TODO status, hence such a prefix. Round brackets instead of square ones to prevent GitHub&rsquo;s org renderer from screwing up.</p>
<div class="ox-hugo-toc toc">
<div></div>
<div class="heading">Table of Contents</div>
<ul>
<li><a href="#global-customization">Global customization</a>
<ul>
<li><a href="#colors">Colors</a></li>
<li><a href="#xresources">Xresources</a>
<ul>
<li><a href="#colors-in-xresources">Colors in Xresources</a></li>
<li><a href="#fonts">Fonts</a></li>
</ul>
</li>
<li><a href="#themes">Themes</a></li>
<li><a href="#device-specific-settings">Device-specific settings</a></li>
</ul>
</li>
<li><a href="#i3wm">i3wm</a>
<ul>
<li><a href="#general-settings">General settings</a></li>
<li><a href="#managing-windows">Managing windows</a></li>
<li><a href="#workspaces">Workspaces</a></li>
<li><a href="#rules">Rules</a></li>
<li><a href="#scratchpad">Scratchpad</a>
<ul>
<li><a href="#launch-script">Launch script</a></li>
<li><a href="#i3-config">i3 config</a></li>
</ul>
</li>
<li><a href="#gaps-and-borders">Gaps &amp; borders</a>
<ul>
<li><a href="#keybindings">Keybindings</a></li>
</ul>
</li>
<li><a href="#move-and-resize-windows">Move &amp; resize windows</a></li>
<li><a href="#off--intergration-with-dmenu"><span class="org-todo done OFF">OFF</span> (OFF) Intergration with dmenu</a></li>
<li><a href="#integration-with-rofi">Integration with rofi</a></li>
<li><a href="#launching-apps-and-misc-keybindings">Launching apps &amp; misc keybindings</a>
<ul>
<li><a href="#apps">Apps</a></li>
<li><a href="#media-controls-and-brightness">Media controls &amp; brightness</a></li>
<li><a href="#screenshots">Screenshots</a></li>
</ul>
</li>
<li><a href="#colors">Colors</a></li>
<li><a href="#off--i3blocks"><span class="org-todo done OFF">OFF</span> (OFF) i3blocks</a></li>
<li><a href="#keyboard-layout">Keyboard Layout</a></li>
<li><a href="#autostart">Autostart</a></li>
</ul>
</li>
<li><a href="#polybar">Polybar</a>
<ul>
<li><a href="#launching">Launching</a></li>
<li><a href="#general-settings">General settings</a>
<ul>
<li><a href="#colors">Colors</a></li>
<li><a href="#bar-config">Bar config</a></li>
</ul>
</li>
<li><a href="#modules">Modules</a>
<ul>
<li><a href="#ipstack-vpn">ipstack-vpn</a></li>
<li><a href="#weather">weather</a></li>
<li><a href="#aw-afk">aw-afk</a></li>
<li><a href="#sun">sun</a></li>
<li><a href="#sep">SEP</a></li>
<li><a href="#tsep">TSEP</a></li>
<li><a href="#i3">i3</a></li>
<li><a href="#xkeyboard">xkeyboard</a></li>
<li><a href="#mpd">mpd</a></li>
<li><a href="#pulseaudio">pulseaudio</a></li>
<li><a href="#cpu">cpu</a></li>
<li><a href="#ram-memory">ram-memory</a></li>
<li><a href="#swap-memory">swap-memory</a></li>
<li><a href="#network">network</a></li>
<li><a href="#date">date</a></li>
<li><a href="#battery">battery</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#rofi">Rofi</a>
<ul>
<li><a href="#theme">Theme</a></li>
<li><a href="#scripts">Scripts</a>
<ul>
<li><a href="#buku-bookmarks">Buku bookmarks</a></li>
<li><a href="#man-pages">Man pages</a></li>
</ul>
</li>
</ul>
</li>
<li><a href="#flameshot">Flameshot</a></li>
<li><a href="#dunst">dunst</a></li>
<li><a href="#keynav">keynav</a>
<ul>
<li><a href="#config">Config</a></li>
<li><a href="#using-with-picom">Using with picom</a></li>
</ul>
</li>
<li><a href="#picom">Picom</a>
<ul>
<li><a href="#shadows">Shadows</a></li>
<li><a href="#fading">Fading</a></li>
<li><a href="#opacity">Opacity</a></li>
<li><a href="#general-settings">General settings</a></li>
</ul>
</li>
<li><a href="#zathura">Zathura</a></li>
<li><a href="#various-software">Various software</a>
<ul>
<li><a href="#browsers">Browsers</a></li>
<li><a href="#office">Office</a></li>
<li><a href="#latex">LaTeX</a></li>
<li><a href="#dev">Dev</a></li>
<li><a href="#manifests">Manifests</a></li>
<li><a href="#flatpak">Flatpak</a></li>
<li><a href="#nix">Nix</a></li>
</ul>
</li>
<li><a href="#services">Services</a>
<ul>
<li><a href="#music">Music</a></li>
<li><a href="#gnu-mcron">GNU Mcron</a></li>
<li><a href="#activitywatch">ActivityWatch</a></li>
<li><a href="#pulseeffects">PulseEffects</a></li>
<li><a href="#xsettingsd">xsettingsd</a></li>
<li><a href="#discord-rich-presence">Discord rich presence</a></li>
<li><a href="#polkit-authentication-agent">Polkit Authentication agent</a></li>
<li><a href="#xmodmap">Xmodmap</a></li>
<li><a href="#vpn">VPN</a></li>
<li><a href="#davmail">Davmail</a></li>
<li><a href="#shepherd-config">Shepherd config</a></li>
<li><a href="#sync">Sync</a></li>
</ul>
</li>
<li><a href="#guix-settings">Guix settings</a></li>
</ul>
</div>
<!--endtoc-->
<h2 id="global-customization">Global customization</h2>
<h3 id="colors">Colors</h3>
<p>Most of the colors are from the Palenight theme. Colorcodes are taken from <a href="https://github.com/JonathanSpeek/palenight-iterm2">this repo</a>:</p>
<p><a id="table--colors"></a></p>
<table>
<thead>
<tr>
<th>color</th>
<th>key</th>
<th>value</th>
</tr>
</thead>
<tbody>
<tr>
<td>black</td>
<td>color0</td>
<td>#292d3e</td>
</tr>
<tr>
<td>red</td>
<td>color1</td>
<td>#f07178</td>
</tr>
<tr>
<td>green</td>
<td>color2</td>
<td>#c3e88d</td>
</tr>
<tr>
<td>yellow</td>
<td>color3</td>
<td>#ffcb6b</td>
</tr>
<tr>
<td>blue</td>
<td>color4</td>
<td>#82aaff</td>
</tr>
<tr>
<td>magenta</td>
<td>color5</td>
<td>#c792ea</td>
</tr>
<tr>
<td>cyan</td>
<td>color6</td>
<td>#89ddff</td>
</tr>
<tr>
<td>white</td>
<td>color7</td>
<td>#d0d0d0</td>
</tr>
<tr>
<td>light-black</td>
<td>color8</td>
<td>#434758</td>
</tr>
<tr>
<td>light-red</td>
<td>color9</td>
<td>#ff8b92</td>
</tr>
<tr>
<td>light-green</td>
<td>color10</td>
<td>#ddffa7</td>
</tr>
<tr>
<td>light-yellow</td>
<td>color11</td>
<td>#ffe585</td>
</tr>
<tr>
<td>light-blue</td>
<td>color12</td>
<td>#9cc4ff</td>
</tr>
<tr>
<td>light-magenta</td>
<td>color13</td>
<td>#e1acff</td>
</tr>
<tr>
<td>light-cyan</td>
<td>color14</td>
<td>#a3f7ff</td>
</tr>
<tr>
<td>light-white</td>
<td>color15</td>
<td>#ffffff</td>
</tr>
</tbody>
</table>
<p>The table above is the only source of truth for colors in this config.</p>
<p>The first way to get colors of it is to use the following noweb:</p>
<p><a id="code-snippet--get-color"></a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(let ((color (seq-some (lambda (e) (and (string= name (<span style="color:#a6e22e">car</span> e)) (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">2</span> e))) table)))
(if (<span style="color:#a6e22e">&gt;</span> quote <span style="color:#ae81ff">0</span>)
(<span style="color:#a6e22e">concat</span> <span style="color:#e6db74">&#34;\&#34;&#34;</span> color <span style="color:#e6db74">&#34;\&#34;&#34;</span>)
color))
</code></pre></div><p>Also, run the following to disable configuration for noweb evaluations:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(setq-local org-confirm-babel-evaluate <span style="color:#66d9ef">nil</span>)
</code></pre></div><p>Test:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">&lt;&lt;get-color(name=<span style="color:#e6db74">&#34;red&#34;</span><span style="color:#f92672">,</span> quote=1)&gt;&gt;
</code></pre></div><h3 id="xresources">Xresources</h3>
<h4 id="colors-in-xresources">Colors in Xresources</h4>
<p>However, I&rsquo;d rather use the <code>Xresources</code> file wherever possible. Here is the code to generate an Xresources file from this table:</p>
<p><a id="code-snippet--get-xresources"></a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(<span style="color:#a6e22e">apply</span>
<span style="color:#a6e22e">#&#39;concat</span>
(<span style="color:#a6e22e">mapcar</span>
(lambda (elem)
(<span style="color:#a6e22e">concat</span> <span style="color:#e6db74">&#34;*&#34;</span> (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">1</span> elem) <span style="color:#e6db74">&#34;: &#34;</span> (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">2</span> elem) <span style="color:#e6db74">&#34;\n&#34;</span>))
(seq-filter
(lambda (elem) (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">1</span> elem))
table)))
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim">&lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">xresources</span>()&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>*<span style="color:#a6e22e">background</span>: &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;black&#34;</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>*<span style="color:#a6e22e">foreground</span>: &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;white&#34;</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h4 id="fonts">Fonts</h4>
<p>Also, Xresources are used to set <code>Xft</code> settings. Unfortunately, the DPI setting has to be unique for each machine, which means I cannot commit <code>Xresources</code> to the repo.</p>
<p><a id="code-snippet--get-dpi"></a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(let ((hostname (<span style="color:#a6e22e">system-name</span>)))
(cond ((<span style="color:#a6e22e">string-equal</span> hostname <span style="color:#e6db74">&#34;azure&#34;</span>) <span style="color:#ae81ff">120</span>)
((<span style="color:#a6e22e">string-equal</span> hostname <span style="color:#e6db74">&#34;eminence&#34;</span>) <span style="color:#ae81ff">120</span>)
((<span style="color:#a6e22e">string-equal</span> hostname <span style="color:#e6db74">&#34;indigo&#34;</span>) <span style="color:#ae81ff">120</span>)
(<span style="color:#66d9ef">t</span> <span style="color:#ae81ff">96</span>)))
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">Xft</span>.<span style="color:#a6e22e">dpi</span>: &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">dpi</span>()&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="themes">Themes</h3>
<p>A few programs I use to customize the apperance are listed below.</p>
<table>
<thead>
<tr>
<th>Guix dependency</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>matcha-theme</td>
<td>My preferred GTK theme</td>
</tr>
<tr>
<td>papirus-icon-theme</td>
<td>My preferred Icon theme</td>
</tr>
<tr>
<td>xsettingsd</td>
<td>X11 settings daemon</td>
</tr>
</tbody>
</table>
<p><a href="https://github.com/derat/xsettingsd">xsettingsd</a> is a lightweight daemon which configures X11 applications. It is launched with shepherd in the <a href="#services">Services</a> section.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">Net</span>/<span style="color:#a6e22e">ThemeName</span> <span style="color:#e6db74">&#34;Matcha-dark-azul&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Net</span>/<span style="color:#a6e22e">IconThemeName</span> <span style="color:#e6db74">&#34;Papirus-Dark&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Gtk</span>/<span style="color:#a6e22e">DecorationLayout</span> <span style="color:#e6db74">&#34;menu:minimize,maximize,close&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Gtk</span>/<span style="color:#a6e22e">FontName</span> <span style="color:#e6db74">&#34;Sans 10&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Gtk</span>/<span style="color:#a6e22e">MonospaceFontName</span> <span style="color:#e6db74">&#34;JetBrainsMono Nerd Mono 12&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Gtk</span>/<span style="color:#a6e22e">CursorThemeName</span> <span style="color:#e6db74">&#34;Adwaita&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Xft</span>/<span style="color:#a6e22e">Antialias</span> <span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Xft</span>/<span style="color:#a6e22e">Hinting</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Xft</span>/<span style="color:#a6e22e">HintStyle</span> <span style="color:#e6db74">&#34;hintnone&#34;</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="device-specific-settings">Device-specific settings</h3>
<table>
<thead>
<tr>
<th>Guix dependency</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>xrandr</td>
<td>X11 CLI to RandR</td>
</tr>
<tr>
<td>xgamma</td>
<td>A tool to alter monitor&rsquo;s gamma correction</td>
</tr>
<tr>
<td>xinput</td>
<td>Configure input devices</td>
</tr>
</tbody>
</table>
<p>Set screen layout &amp; other params depending on hostname</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">hostname<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>hostname<span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">&#34;</span>$hostname<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;indigo&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
xrandr --output DisplayPort-0 --off --output HDMI-A-0 --mode 1920x1080 --pos 0x0 --rotate normal --output DVI-D-0 --mode 1920x1080 --pos 1920x0 --rotate normal
<span style="color:#66d9ef">elif</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">&#34;</span>$hostname<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;eminence&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
xgamma -gamma 1.25
<span style="color:#66d9ef">fi</span>
</code></pre></div><h2 id="i3wm">i3wm</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
<th>Disabled</th>
</tr>
</thead>
<tbody>
<tr>
<td>i3-gaps</td>
<td></td>
</tr>
<tr>
<td>i3lock</td>
<td>true</td>
</tr>
</tbody>
</table>
<p><code>i3lock</code> is disabled because the global one has to be used.</p>
<p><a href="https://i3wm.org/">i3wm</a> is a manual tiling window manager, which is currently my window manager of choice. I&rsquo;ve tried several alternatives, including <a href="https://xmonad.org/">xmonad</a> &amp; <a href="https://github.com/ch11ng/exwm">EXWM</a>, but i3 seems to fit my workflow best.</p>
<p><a href="https://github.com/Airblader/i3">i3-gaps</a> is an i3 fork with a few features like window gaps. I like to enable inner gaps when there is at least one container in a workspace.</p>
<p>References:</p>
<ul>
<li><a href="https://i3wm.org/docs/">i3wm docs</a></li>
<li><a href="https://github.com/Airblader/i3/wiki">i3-gaps wiki</a></li>
</ul>
<h3 id="general-settings">General settings</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">mod</span> <span style="color:#a6e22e">Mod4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">font</span> <span style="color:#a6e22e">pango</span>:<span style="color:#a6e22e">monospace</span> <span style="color:#ae81ff">10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Use</span> <span style="color:#a6e22e">Mouse</span>+$<span style="color:#a6e22e">mod</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">drag</span> <span style="color:#a6e22e">floating</span> <span style="color:#a6e22e">windows</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">their</span> <span style="color:#a6e22e">wanted</span> <span style="color:#a6e22e">position</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">floating_modifier</span> $<span style="color:#a6e22e">mod</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Move</span> <span style="color:#a6e22e">cursor</span> <span style="color:#a6e22e">between</span> <span style="color:#a6e22e">monitors</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mouse_warping</span> <span style="color:#a6e22e">output</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Apply</span> <span style="color:#a6e22e">XFCE</span> <span style="color:#a6e22e">Settings</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">xfsettingsd</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">xiccd</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Set</span> <span style="color:#a6e22e">screen</span> <span style="color:#a6e22e">layout</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> ~<span style="color:#e6db74">/bin/</span><span style="color:#a6e22e">scripts</span>/<span style="color:#a6e22e">screen</span>-<span style="color:#a6e22e">layout</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Most</span> <span style="color:#a6e22e">needed</span> <span style="color:#a6e22e">keybindigs</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">reload</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">configuration</span> <span style="color:#a6e22e">file</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">c</span> <span style="color:#a6e22e">reload</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">restart</span> <span style="color:#a6e22e">i3</span> <span style="color:#a6e22e">inplace</span> (<span style="color:#a6e22e">preserves</span> <span style="color:#a6e22e">your</span> <span style="color:#a6e22e">layout</span>/<span style="color:#a6e22e">session</span>, <span style="color:#a6e22e">can</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">used</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">upgrade</span> <span style="color:#a6e22e">i3</span>)<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">r</span> <span style="color:#a6e22e">restart</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">exit</span> <span style="color:#a6e22e">i3</span> (<span style="color:#a6e22e">logs</span> <span style="color:#a6e22e">you</span> <span style="color:#a6e22e">out</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">your</span> <span style="color:#a6e22e">X</span> <span style="color:#a6e22e">session</span>)<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">e</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;i3-nagbar -t warning -m &#39;You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.&#39; -b &#39;Yes, exit i3&#39; &#39;i3-msg exit&#39;&#34;</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="managing-windows">Managing windows</h3>
<p>Some keybindings for managing windows.</p>
<p>Kill focused windows</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">q</span> <span style="color:#a6e22e">kill</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Change focus</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">h</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">j</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">k</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">l</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Move windows around</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">h</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">j</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">k</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">l</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Split windows</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">s</span> <span style="color:#a6e22e">split</span> <span style="color:#a6e22e">h</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">v</span> <span style="color:#a6e22e">split</span> <span style="color:#a6e22e">v</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Enter fullscreen mode</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">enter</span> <span style="color:#a6e22e">fullscreen</span> <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">focused</span> <span style="color:#a6e22e">container</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">f</span> <span style="color:#a6e22e">fullscreen</span> <span style="color:#a6e22e">toggle</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Changing layout</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">w</span> <span style="color:#a6e22e">layout</span> <span style="color:#a6e22e">stacking</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">t</span> <span style="color:#a6e22e">layout</span> <span style="color:#a6e22e">tabbed</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">e</span> <span style="color:#a6e22e">layout</span> <span style="color:#a6e22e">toggle</span> <span style="color:#a6e22e">split</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Toggle tiling/floating, switch between tiled and floating windows</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">f</span> <span style="color:#a6e22e">floating</span> <span style="color:#a6e22e">toggle</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">z</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">mode_toggle</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Switching outputs</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Tab</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">workspace</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">output</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">q</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">output</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Focus parent and child container</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">a</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">parent</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">A</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">child</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Toggle sticky</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">i</span> <span style="color:#a6e22e">sticky</span> <span style="color:#a6e22e">toggle</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><p>Set windows as floating and sticky, move to the top right.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">x</span> <span style="color:#a6e22e">floating</span> <span style="color:#a6e22e">enable</span>; <span style="color:#a6e22e">sticky</span> <span style="color:#a6e22e">enable</span>; <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">position</span> <span style="color:#ae81ff">1220</span> <span style="color:#ae81ff">0</span>; <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">700</span> <span style="color:#a6e22e">px</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="workspaces">Workspaces</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w1</span> <span style="color:#e6db74">&#34;1 🚀&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w2</span> <span style="color:#e6db74">&#34;2 🌍&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w3</span> <span style="color:#e6db74">&#34;3 💬&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w4</span> <span style="color:#e6db74">&#34;4 🛠️️&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w7</span> <span style="color:#e6db74">&#34;7 🛰️&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w8</span> <span style="color:#e6db74">&#34;8 📝&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w9</span> <span style="color:#e6db74">&#34;9 🎵&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">w10</span> <span style="color:#e6db74">&#34;10 📦&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">1</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">2</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w2</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">3</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">4</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">5</span> <span style="color:#a6e22e">workspace</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">6</span> <span style="color:#a6e22e">workspace</span> <span style="color:#ae81ff">6</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">7</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w7</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">8</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">9</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#ae81ff">0</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">focused</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">1</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">2</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w2</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">3</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">4</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">5</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">6</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> <span style="color:#ae81ff">6</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">7</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w7</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">8</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">9</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">0</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">container</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Cycle</span> <span style="color:#a6e22e">workspaces</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">comma</span> <span style="color:#a6e22e">workspace</span> <span style="color:#a6e22e">prev</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">period</span> <span style="color:#a6e22e">workspace</span> <span style="color:#a6e22e">next</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="rules">Rules</h3>
<p>Rules to automatically assign applications to workspaces and do other stuff, like enable floating.</p>
<p>Most apps can be distinguished by a WM class (you can get one with <a href="https://www.x.org/releases/X11R7.5/doc/man/man1/xprop.1.html">xprop</a>), but in some cases it doesn&rsquo;t work, e.g. for terminal applications. In that case rules can be based on a window title, for instance.</p>
<p>However, watch out for the following: rule such as <code>for_window [title=&quot;ncmpcpp.*&quot;] move to workspace $w9</code> will move <strong>any</strong> windows with a title, starting with <code>ncmpcpp</code> to workspace <code>$w9</code>, which, for instance, may move your browser there if you google &ldquo;ncmpcpp&rdquo;.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Emacs&#34;</span>] $<span style="color:#a6e22e">w1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;qutebrowser&#34;</span>] $<span style="color:#a6e22e">w2</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;firefox&#34;</span>] $<span style="color:#a6e22e">w2</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;VK&#34;</span>] $<span style="color:#a6e22e">w3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Slack&#34;</span>] $<span style="color:#a6e22e">w3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;discord&#34;</span>] $<span style="color:#a6e22e">w3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;TelegramDesktop&#34;</span>] $<span style="color:#a6e22e">w3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Postman&#34;</span>] $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Chromium-browse&#34;</span>] $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;chromium&#34;</span>] $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;google-chrome&#34;</span>] $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">title</span>=<span style="color:#e6db74">&#34;Vue Developer Tools&#34;</span>] $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Google Play Music Desktop Player&#34;</span>] $<span style="color:#a6e22e">w9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;jetbrains-datagrip&#34;</span>] $<span style="color:#a6e22e">w4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;zoom&#34;</span>] $<span style="color:#a6e22e">w7</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;skype&#34;</span>] $<span style="color:#a6e22e">w7</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Mailspring&#34;</span>] $<span style="color:#a6e22e">w8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Thunderbird&#34;</span>] $<span style="color:#a6e22e">w8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;Joplin&#34;</span>] $<span style="color:#a6e22e">w8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">assign</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;keepassxc&#34;</span>] $<span style="color:#a6e22e">w10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">title</span>=<span style="color:#e6db74">&#34;VirtScreen&#34;</span>] <span style="color:#a6e22e">floating</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">title</span>=<span style="color:#e6db74">&#34;ncmpcpp.*&#34;</span>] <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">title</span>=<span style="color:#e6db74">&#34;newsboat.*&#34;</span>] <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">title</span>=<span style="color:#e6db74">&#34;.*run_wego&#34;</span>] <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">workspace</span> $<span style="color:#a6e22e">w9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;cinnamon-settings*&#34;</span>] <span style="color:#a6e22e">floating</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">title</span>=<span style="color:#e6db74">&#34;Picture-in-Picture&#34;</span>] <span style="color:#a6e22e">sticky</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">window_role</span>=<span style="color:#e6db74">&#34;GtkFileChooserDialog&#34;</span>] <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">1000</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">800</span> <span style="color:#a6e22e">px</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">window_role</span>=<span style="color:#e6db74">&#34;GtkFileChooserDialog&#34;</span>] <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">position</span> <span style="color:#a6e22e">center</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="scratchpad">Scratchpad</h3>
<p>Scratch terminal, inspired by <a href="https://www.youtube.com/watch?v=q-l7DnDbiiU">this Luke Smith&rsquo;s video</a>.</p>
<h4 id="launch-script">Launch script</h4>
<p>First of all, we have to distinguish a scratchpad terminal from a normal one. To do that, one can create st with a required classname.</p>
<p>Then, it would be cool not to duplicate scratchpads, so the following script first looks for a window with a created classname. If it exists, the script just toggles the scratchpad visibility. Otherwise, a new instance of a window is created.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">CLASSNAME<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;dropdown_tmux&#34;</span>
COMMAND<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;alacritty --class </span>$CLASSNAME<span style="color:#e6db74"> -e tmux new-session -s </span>$CLASSNAME<span style="color:#e6db74">&#34;</span>
pid<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>xdotool search --classname <span style="color:#e6db74">&#34;dropdown_tmux&#34;</span><span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> ! -z $pid <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
i3-msg scratchpad show
<span style="color:#66d9ef">else</span>
setsid -f <span style="color:#e6db74">${</span>COMMAND<span style="color:#e6db74">}</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><h4 id="i3-config">i3 config</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Scratchpad</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">instance</span>=<span style="color:#e6db74">&#34;dropdown_*&#34;</span>] <span style="color:#a6e22e">floating</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">instance</span>=<span style="color:#e6db74">&#34;dropdown_*&#34;</span>] <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">scratchpad</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">instance</span>=<span style="color:#e6db74">&#34;dropdown_*&#34;</span>] <span style="color:#a6e22e">sticky</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">instance</span>=<span style="color:#e6db74">&#34;dropdown_*&#34;</span>] <span style="color:#a6e22e">scratchpad</span> <span style="color:#a6e22e">show</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">instance</span>=<span style="color:#e6db74">&#34;dropdown_*&#34;</span>] <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">position</span> <span style="color:#a6e22e">center</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">u</span> <span style="color:#a6e22e">exec</span> ~<span style="color:#e6db74">/bin/</span><span style="color:#a6e22e">scripts</span>/<span style="color:#a6e22e">dropdown</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="gaps-and-borders">Gaps &amp; borders</h3>
<p>The main reason to use i3-gaps</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Borders</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">for_window</span> [<span style="color:#a6e22e">class</span>=<span style="color:#e6db74">&#34;.*&#34;</span>] <span style="color:#a6e22e">border</span> <span style="color:#a6e22e">pixel</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">default_border</span> <span style="color:#a6e22e">pixel</span> <span style="color:#ae81ff">3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">hide_edge_borders</span> <span style="color:#a6e22e">both</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Gaps</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">default_inner</span> <span style="color:#ae81ff">10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">default_outer</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> $<span style="color:#a6e22e">default_inner</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> $<span style="color:#a6e22e">default_outer</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">smart_gaps</span> <span style="color:#a6e22e">on</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h4 id="keybindings">Keybindings</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;inner gaps&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">plus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">plus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">minus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">minus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">plus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">plus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">minus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">minus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#ae81ff">0</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">set</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">0</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">set</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">r</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">default_inner</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">r</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">inner</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">default_inner</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;outer gaps&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">plus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">plus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">minus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">minus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">plus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">plus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">minus</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">minus</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#ae81ff">0</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">set</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#ae81ff">0</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">set</span> <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">r</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">default_outer</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">r</span> <span style="color:#a6e22e">gaps</span> <span style="color:#a6e22e">outer</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">set</span> $<span style="color:#a6e22e">default_outer</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;inner gaps&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;outer gaps&#34;</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="move-and-resize-windows">Move &amp; resize windows</h3>
<p>A more or less standard set of keybindings to move &amp; resize floating windows.</p>
<p>Just be careful to always make a way to return from these new modes, otherwise, you&rsquo;d end up in a rather precarious position.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">window</span> (<span style="color:#a6e22e">you</span> <span style="color:#a6e22e">can</span> <span style="color:#a6e22e">also</span> <span style="color:#a6e22e">use</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">mouse</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">that</span>)<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;resize&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">These</span> <span style="color:#a6e22e">bindings</span> <span style="color:#a6e22e">trigger</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">soon</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">you</span> <span style="color:#a6e22e">enter</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">mode</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">h</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">j</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">k</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">l</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">h</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">j</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">k</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">l</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">same</span> <span style="color:#a6e22e">bindings</span>, <span style="color:#a6e22e">but</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">arrow</span> <span style="color:#a6e22e">keys</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">10</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">shrink</span> <span style="color:#a6e22e">height</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">resize</span> <span style="color:#a6e22e">grow</span> <span style="color:#a6e22e">width</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">px</span> <span style="color:#a6e22e">or</span> <span style="color:#ae81ff">100</span> <span style="color:#a6e22e">ppt</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">back</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">normal</span>: <span style="color:#a6e22e">Enter</span> <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">Escape</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">r</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;resize&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;move&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Tab</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">h</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">j</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">k</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">l</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">back</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">normal</span>: <span style="color:#a6e22e">Enter</span> <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">Escape</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">m</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;move&#34;</span> <span style="color:#a6e22e">focus</span> <span style="color:#a6e22e">floating</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="off--intergration-with-dmenu"><span class="org-todo done OFF">OFF</span> (OFF) Intergration with dmenu</h3>
<p><a href="https://tools.suckless.org/dmenu/">dmenu</a> is a dynamic menu program for X. I&rsquo;ve opted out of using it in favour of rofi, but here is a relevant bit of config.</p>
<p>Scripts are located in the <code>bin/scripts</code> folder.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">dmenu</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">d</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">i3</span>-<span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">desktop</span> --<span style="color:#a6e22e">dmenu</span>=<span style="color:#e6db74">&#34;dmenu -l 10&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">apostrophe</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;dmenu&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;dmenu&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">d</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">i3</span>-<span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">desktop</span> --<span style="color:#a6e22e">dmenu</span>=<span style="color:#e6db74">&#34;dmenu -l 10&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">p</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">dmenu_run</span> -<span style="color:#a6e22e">l</span> <span style="color:#ae81ff">10</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">m</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">man</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">b</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">buku</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">f</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">explore</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">t</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">tmuxp</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">b</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">buku</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="integration-with-rofi">Integration with rofi</h3>
<p>Keybindings to launch <a href="https://github.com/davatorium/rofi">rofi</a>. For more detail, look the <a href="#rofi">Rofi</a> section.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">d</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;rofi -modi &#39;drun,run&#39; -show drun&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">b</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#a6e22e">rofi</span>-<span style="color:#a6e22e">buku</span>-<span style="color:#a6e22e">mine</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">apostrophe</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;rofi&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;rofi&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">d</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;rofi -modi &#39;drun,run&#39; -show drun&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">m</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">rofi</span>-<span style="color:#a6e22e">man</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">b</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">rofi</span>-<span style="color:#a6e22e">buku</span>-<span style="color:#a6e22e">mine</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">k</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">rofi</span>-<span style="color:#a6e22e">keepassxc</span> -<span style="color:#a6e22e">d</span> ~<span style="color:#e6db74">/MEGAsync/</span><span style="color:#a6e22e">Passwords</span>.<span style="color:#a6e22e">kdbx</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="launching-apps-and-misc-keybindings">Launching apps &amp; misc keybindings</h3>
<p>I prefer to use a separate mode to launch most of my apps, with some exceptions.</p>
<h4 id="apps">Apps</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Launch</span> <span style="color:#a6e22e">apps</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">start</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">terminal</span> <span style="color:#a6e22e">at</span> <span style="color:#a6e22e">workspace</span> <span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;i3-msg &#39;workspace 1 🚀; exec alacritty&#39;&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">p</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;copyq menu&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">x</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;i3lock -f -i /home/pavel/Pictures/lock-wallpaper.png&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">semicolon</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;apps&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;apps&#34;</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">mode</span> <span style="color:#e6db74">&#34;default&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">b</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">firefox</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">v</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">vk</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">s</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">slack</span>-<span style="color:#a6e22e">wrapper</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span>;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">d</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;flatpak run com.discordapp.Discord&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span>;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">m</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;alacritty -e ncmpcpp&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">c</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;copyq toggle&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">k</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;keepassxc&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">e</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">mailspring</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">emacs</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">n</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;alacritty -e newsboat&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">w</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;alacritty /home/pavel/bin/scripts/run_wego&#34;</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">emacsclient</span> -<span style="color:#a6e22e">c</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">a</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">emacs</span>; <span style="color:#a6e22e">mode</span> <span style="color:#a6e22e">default</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h4 id="media-controls-and-brightness">Media controls &amp; brightness</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Pulse</span> <span style="color:#a6e22e">Audio</span> <span style="color:#a6e22e">controls</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioRaiseVolume</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">&#34;ponymix increase 5 --max-volume 150&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioLowerVolume</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">&#34;ponymix decrease 5 --max-volume 150&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioMute</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">&#34;ponymix toggle&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#a6e22e">xmodmap</span> -<span style="color:#a6e22e">e</span> <span style="color:#e6db74">&#39;keycode 135 = Super_R&#39;</span> &amp;&amp; <span style="color:#a6e22e">xset</span> -<span style="color:#a6e22e">r</span> <span style="color:#ae81ff">135</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">F2</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">&#34;ponymix increase 5&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">F3</span> <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">&#34;ponymix decrease 5&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Media</span> <span style="color:#a6e22e">player</span> <span style="color:#a6e22e">controls</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioPlay</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">mpc</span> <span style="color:#a6e22e">toggle</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioPause</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">mpc</span> <span style="color:#a6e22e">pause</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioNext</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">mpc</span> <span style="color:#a6e22e">next</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86AudioPrev</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">mpc</span> <span style="color:#a6e22e">prev</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Screen</span> <span style="color:#a6e22e">brightness</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86MonBrightnessUp</span> <span style="color:#a6e22e">exec</span> light -<span style="color:#a6e22e">A</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> <span style="color:#a6e22e">XF86MonBrightnessDown</span> <span style="color:#a6e22e">exec</span> light -<span style="color:#a6e22e">U</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h4 id="screenshots">Screenshots</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Screenshots</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> --<span style="color:#a6e22e">release</span> <span style="color:#a6e22e">Print</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;flameshot gui&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> --<span style="color:#a6e22e">release</span> <span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Print</span> <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;xfce4-screenshooter&#34;</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="colors">Colors</h3>
<p>Application of the XResources theme to the WM.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">xrdb</span> -<span style="color:#a6e22e">merge</span> $<span style="color:#a6e22e">HOME</span>/.<span style="color:#a6e22e">Xresources</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Colors</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">background</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">active</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">color4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">color8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">foreground</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">color7</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">color1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set_from_resource</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> <span style="color:#a6e22e">color0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">window</span> <span style="color:#a6e22e">colors</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">border</span> <span style="color:#a6e22e">background</span> <span style="color:#a6e22e">text</span> <span style="color:#a6e22e">indicator</span> <span style="color:#a6e22e">child</span> <span style="color:#a6e22e">border</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">client</span>.<span style="color:#a6e22e">focused</span> $<span style="color:#a6e22e">active</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">active</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">client</span>.<span style="color:#a6e22e">unfocused</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">client</span>.<span style="color:#a6e22e">focused_inactive</span> $<span style="color:#a6e22e">active</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">client</span>.<span style="color:#a6e22e">urgent</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="off--i3blocks"><span class="org-todo done OFF">OFF</span> (OFF) i3blocks</h3>
<p>I&rsquo;ve opted out of i3bar &amp; <a href="https://github.com/vivien/i3blocks">i3blocks</a> for <a href="https://github.com/polybar/polybar">polybar</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bar</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">status_command</span> <span style="color:#a6e22e">i3blocks</span> -<span style="color:#a6e22e">c</span> ~<span style="color:#e6db74">/.config/</span><span style="color:#a6e22e">i3</span>/<span style="color:#a6e22e">i3blocks</span>.<span style="color:#a6e22e">conf</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">i3bar_command</span> <span style="color:#a6e22e">i3bar</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">font</span> <span style="color:#a6e22e">pango</span>:<span style="color:#a6e22e">monospace</span> <span style="color:#ae81ff">12</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">output</span> <span style="color:#a6e22e">HDMI</span>-<span style="color:#a6e22e">A</span><span style="color:#ae81ff">-0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">tray_output</span> <span style="color:#a6e22e">none</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">colors</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">background</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">separator</span> <span style="color:#ae81ff">#757575</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">border</span> <span style="color:#a6e22e">background</span> <span style="color:#a6e22e">text</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">focused_workspace</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">inactive_workspace</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">urgent_workspace</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> }<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bar</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">status_command</span> <span style="color:#a6e22e">i3blocks</span> -<span style="color:#a6e22e">c</span> ~<span style="color:#e6db74">/.config/</span><span style="color:#a6e22e">i3</span>/<span style="color:#a6e22e">i3blocks</span>.<span style="color:#a6e22e">conf</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">i3bar_command</span> <span style="color:#a6e22e">i3bar</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">font</span> <span style="color:#a6e22e">pango</span>:<span style="color:#a6e22e">monospace</span> <span style="color:#ae81ff">10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">output</span> <span style="color:#a6e22e">DVI</span>-<span style="color:#a6e22e">D</span><span style="color:#ae81ff">-0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">colors</span> {<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">background</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">separator</span> <span style="color:#ae81ff">#757575</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">border</span> <span style="color:#a6e22e">background</span> <span style="color:#a6e22e">text</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">focused_workspace</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">inactive_workspace</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">inactive</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">urgent_workspace</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">bg</span>-<span style="color:#a6e22e">color</span> $<span style="color:#a6e22e">urgent</span>-<span style="color:#a6e22e">text</span>-<span style="color:#a6e22e">color</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> }<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>}<span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="keyboard-layout">Keyboard Layout</h3>
<p>A script to set Russian-English keyboard layout:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">setxkbmap -layout us,ru
setxkbmap -model pc105 -option <span style="color:#e6db74">&#39;grp:win_space_toggle&#39;</span> -option <span style="color:#e6db74">&#39;grp:alt_shift_toggle&#39;</span>
</code></pre></div><p>A script to toggle the layout</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> setxkbmap -query | grep -q us,ru; <span style="color:#66d9ef">then</span>
setxkbmap -layout us
setxkbmap -option
<span style="color:#66d9ef">else</span>
setxkbmap -layout us,ru
setxkbmap -model pc105 -option <span style="color:#e6db74">&#39;grp:win_space_toggle&#39;</span> -option <span style="color:#e6db74">&#39;grp:alt_shift_toggle&#39;</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><p>And the relevant i3 settings:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Layout</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec_always</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#a6e22e">set_layout</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bindsym</span> $<span style="color:#a6e22e">mod</span>+<span style="color:#a6e22e">slash</span> <span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">toggle_layout</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="autostart">Autostart</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">Polybar</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec_always</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">&#34;bash /home/pavel/bin/polybar.sh&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Wallpaper</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec_always</span> <span style="color:#e6db74">&#34;feh --bg-fill ~/Pictures/wallpaper.jpg&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Picom</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">picom</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Keynav</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">keynav</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Applets</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#a6e22e">nm</span>-<span style="color:#a6e22e">applet</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">exec</span> --<span style="color:#a6e22e">no</span>-<span style="color:#a6e22e">startup</span>-<span style="color:#a6e22e">id</span> <span style="color:#e6db74">/usr/</span><span style="color:#a6e22e">bin</span>/<span style="color:#a6e22e">blueman</span>-<span style="color:#a6e22e">applet</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">shepherd</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">dunst</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> <span style="color:#a6e22e">copyq</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;xmodmap ~/.Xmodmap&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;xrdb -merge ~/.Xresources&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">exec</span> <span style="color:#e6db74">&#34;bash ~/bin/autostart.sh&#34;</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h2 id="polybar">Polybar</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>polybar</td>
<td>statusbar</td>
</tr>
</tbody>
</table>
<p><a href="https://github.com/polybar/polybar">Polybar</a> is a nice-looking, WM-agnostic statusbar program.</p>
<p>I switched to polybar because I wanted to try out some WMs other than i3, but decided to stick with i3 for now.</p>
<p>Don&rsquo;t forget to install the Google Noto Color Emoji font. Guix package with all Noto fonts is way too large.</p>
<p>References:</p>
<ul>
<li><a href="https://github.com/polybar/polybar/wiki">polybar docs</a></li>
</ul>
<h3 id="launching">Launching</h3>
<p>The script below allows me to:</p>
<ul>
<li>have different blocks on my two different-sized monitors and my laptop;</li>
<li>have different settings on my desktop PC and laptop;</li>
</ul>
<!--listend-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">hostname<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>hostname<span style="color:#66d9ef">)</span>
<span style="color:#75715e"># Settings varying on the hostname</span>
export WLAN_INTERFACE<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>nmcli -f DEVICE con show | grep -Ev <span style="color:#e6db74">&#34;(.*docker.*|DEVICE|br.*|tun.*|--)&#34;</span> | xargs<span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">&#34;</span>$hostname<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;azure&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
TRAY_MONITOR<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;eDP-1&#34;</span>
<span style="color:#75715e"># export WLAN_INTERFACE=&#34;wlp3s0&#34;</span>
<span style="color:#66d9ef">elif</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">&#34;</span>$hostname<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;eminence&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
TRAY_MONITOR<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;eDP&#34;</span>
<span style="color:#75715e"># export WLAN_INTERFACE=&#34;wlo1&#34;</span>
<span style="color:#66d9ef">else</span>
TRAY_MONITOR<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;HDMI-A-0&#34;</span>
<span style="color:#75715e"># export WLAN_INTERFACE=&#34;wlp35s0f3u2&#34;</span>
<span style="color:#66d9ef">fi</span>
<span style="color:#75715e"># Setting varying on the monitor</span>
declare -A FONT_SIZES<span style="color:#f92672">=(</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;13&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP-1&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;13&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;DVI-D-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;13&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;HDMI-A-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;13&#34;</span>
<span style="color:#f92672">)</span>
declare -A EMOJI_SCALE<span style="color:#f92672">=(</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;9&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP-1&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;9&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;DVI-D-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;10&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;HDMI-A-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;10&#34;</span>
<span style="color:#f92672">)</span>
declare -A BAR_HEIGHT<span style="color:#f92672">=(</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;29&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP-1&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;29&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;DVI-D-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;29&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;HDMI-A-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;29&#34;</span>
<span style="color:#f92672">)</span>
declare -A BLOCKS<span style="color:#f92672">=(</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;pulseaudio mpd SEP cpu ram-memory swap-memory SEP network ipstack-vpn SEP xkeyboard SEP battery SEP sun aw-afk date TSEP&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;eDP-1&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;pulseaudio mpd SEP cpu ram-memory swap-memory SEP network ipstack-vpn SEP xkeyboard SEP battery SEP sun aw-afk date TSEP&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;DVI-D-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;pulseaudio mpd SEP cpu ram-memory swap-memory SEP network ipstack-vpn SEP xkeyboard SEP weather SEP sun aw-afk date TSEP&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;HDMI-A-0&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;pulseaudio mpd SEP cpu ram-memory swap-memory SEP network ipstack-vpn SEP xkeyboard SEP weather SEP sun aw-afk date TSEP&#34;</span>
<span style="color:#f92672">)</span>
<span style="color:#75715e"># Geolocation for some modules</span>
export LOC<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;SPB&#34;</span>
export IPSTACK_API_KEY<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>pass show My_Online/APIs/ipstack | head -n 1<span style="color:#66d9ef">)</span>
pkill polybar
<span style="color:#66d9ef">for</span> m in <span style="color:#66d9ef">$(</span>xrandr --query | grep <span style="color:#e6db74">&#34; connected&#34;</span> | cut -d<span style="color:#e6db74">&#34; &#34;</span> -f1<span style="color:#66d9ef">)</span>; <span style="color:#66d9ef">do</span>
export MONITOR<span style="color:#f92672">=</span>$m
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">&#34;</span>$MONITOR<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;</span>$TRAY_MONITOR<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
export TRAY<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;right&#34;</span>
<span style="color:#66d9ef">else</span>
export TRAY<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;none&#34;</span>
<span style="color:#66d9ef">fi</span>
SIZE<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>FONT_SIZES[$MONITOR]<span style="color:#e6db74">}</span>
SCALE<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>EMOJI_SCALE[$MONITOR]<span style="color:#e6db74">}</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">&#34;</span>$SCALE<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
<span style="color:#66d9ef">continue</span>
<span style="color:#66d9ef">fi</span>
export FONT0<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;pango:monospace:size=</span>$SIZE<span style="color:#e6db74">;1&#34;</span>
export FONT1<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;NotoEmoji:scale=</span>$SCALE<span style="color:#e6db74">:antialias=false;1&#34;</span>
export FONT2<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;fontawesome:pixelsize=</span>$SIZE<span style="color:#e6db74">;1&#34;</span>
export FONT3<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;JetBrains Mono Nerd Font:monospace:size=</span>$SIZE<span style="color:#e6db74">;1&#34;</span>
export HEIGHT<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>BAR_HEIGHT[$MONITOR]<span style="color:#e6db74">}</span>
export RIGHT_BLOCKS<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>BLOCKS[$MONITOR]<span style="color:#e6db74">}</span>
polybar mybar &amp;
<span style="color:#66d9ef">done</span>
</code></pre></div><h3 id="general-settings">General settings</h3>
<h4 id="colors">Colors</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[colors]</span>
<span style="color:#75715e">; Palenight colorscheme https://github.com/JonathanSpeek/palenight-iterm2</span>
<span style="color:#a6e22e">black</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color0}</span>
<span style="color:#a6e22e">red</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color1}</span>
<span style="color:#a6e22e">green</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color2}</span>
<span style="color:#a6e22e">yellow</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color3}</span>
<span style="color:#a6e22e">blue</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color4}</span>
<span style="color:#a6e22e">magenta</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color5}</span>
<span style="color:#a6e22e">cyan</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color6}</span>
<span style="color:#a6e22e">white</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color7}</span>
<span style="color:#a6e22e">black-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color8}</span>
<span style="color:#a6e22e">red-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color9}</span>
<span style="color:#a6e22e">green-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color10}</span>
<span style="color:#a6e22e">yellow-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color11}</span>
<span style="color:#a6e22e">blue-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color12}</span>
<span style="color:#a6e22e">magenta-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color13}</span>
<span style="color:#a6e22e">cyan-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color14}</span>
<span style="color:#a6e22e">white-lighter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:color15}</span>
<span style="color:#a6e22e">background</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:background}</span>
<span style="color:#a6e22e">foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${xrdb:foreground}</span>
</code></pre></div><h4 id="bar-config">Bar config</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[bar/mybar]</span>
<span style="color:#a6e22e">monitor</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:MONITOR:}</span>
<span style="color:#a6e22e">width</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">100%</span>
<span style="color:#a6e22e">height</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:HEIGHT:27}</span>
<span style="color:#a6e22e">offset-x</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">offset-y</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">radius</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0.0</span>
<span style="color:#a6e22e">fixed-center</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">false</span>
<span style="color:#a6e22e">bottom</span><span style="color:#f92672">=</span><span style="color:#e6db74">true</span>
<span style="color:#a6e22e">background</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.background}</span>
<span style="color:#a6e22e">foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.foreground}</span>
<span style="color:#a6e22e">line-size</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">3</span>
<span style="color:#a6e22e">line-color</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">#f00</span>
<span style="color:#a6e22e">padding-left</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">padding-right</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">module-margin-left</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#a6e22e">module-margin-right</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#a6e22e">font-0</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:FONT0:pango:monospace:size=10;1}</span>
<span style="color:#a6e22e">font-1</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:FONT1:NotoEmoji:scale=10:antialias=false;0}</span>
<span style="color:#a6e22e">font-2</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:FONT2:fontawesome:pixelsize=10;1}</span>
<span style="color:#a6e22e">font-3</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:FONT3:JetBrains Mono Nerd Font:monospace:size=10;1}</span>
<span style="color:#a6e22e">modules-left</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">i3</span>
<span style="color:#75715e">; modules-center = test</span>
<span style="color:#a6e22e">modules-right</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:RIGHT_BLOCKS}</span>
<span style="color:#a6e22e">tray-position</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:TRAY:right}</span>
<span style="color:#a6e22e">tray-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">tray-maxsize</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">16</span>
<span style="color:#75715e">;tray-background = #0063ff</span>
<span style="color:#a6e22e">wm-restack</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">i3</span>
<span style="color:#75715e">; override-redirect = true</span>
<span style="color:#a6e22e">scroll-up</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">i3wm-wsnext</span>
<span style="color:#a6e22e">scroll-down</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">i3wm-wsprev</span>
<span style="color:#75715e">; cursor-click = pointer</span>
<span style="color:#75715e">; cursor-scroll = ns-resize</span>
<span style="color:#66d9ef">[settings]</span>
<span style="color:#a6e22e">screenchange-reload</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#75715e">;compositing-background = xor</span>
<span style="color:#75715e">;compositing-background = screen</span>
<span style="color:#75715e">;compositing-foreground = source</span>
<span style="color:#75715e">;compositing-border = over</span>
<span style="color:#75715e">;pseudo-transparency = false</span>
<span style="color:#66d9ef">[global/wm]</span>
<span style="color:#a6e22e">margin-top</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">margin-bottom</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
</code></pre></div><h3 id="modules">Modules</h3>
<p>Some of the custom modules below use Org mode noweb to evaluate colors, because it&rsquo;s faster than querying <code>xrdb</code> at runtime. I wish I could reference polybar values there, but <a href="https://github.com/polybar/polybar/issues/615">it looks like this is impossible</a>.</p>
<p>If you want to copy something, you can go to the <a href="bin/polybar/">bin/polybar</a> folder.</p>
<h4 id="ipstack-vpn">ipstack-vpn</h4>
<table>
<thead>
<tr>
<th>Guix dependency</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>bind:utils</td>
<td>Provides dig</td>
</tr>
<tr>
<td>curl</td>
<td></td>
</tr>
<tr>
<td>jq</td>
<td>util to work with JSONs</td>
</tr>
</tbody>
</table>
<p>A module to get a country of the current IP and openvpn status. Uses <a href="https://ipstack.com/">ipstack</a> API.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">ip<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>dig +short +timeout<span style="color:#f92672">=</span><span style="color:#ae81ff">1</span> myip.opendns.com @resolver1.opendns.com 2&gt; /dev/null<span style="color:#66d9ef">)</span>
<span style="color:#75715e"># API_KEY=&#34;$(pass show My_Online/APIs/ipstack | head -n 1)&#34;</span>
API_KEY<span style="color:#f92672">=</span>$IPSTACK_API_KEY
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z $ip <span style="color:#f92672">||</span> $ip <span style="color:#f92672">==</span> *<span style="color:#e6db74">&#34;timed out&#34;</span>* <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>red<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u} ?? %{u-}&#34;</span>
exit
<span style="color:#66d9ef">fi</span>
ip_info<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>curl -s http://api.ipstack.com/<span style="color:#e6db74">${</span>ip<span style="color:#e6db74">}</span>?access_key<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>API_KEY<span style="color:#e6db74">}</span><span style="color:#66d9ef">)</span>
<span style="color:#75715e"># emoji=$(echo $ip_info | jq -r &#39;.location.country_flag_emoji&#39;)</span>
code<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo $ip_info | jq -r <span style="color:#e6db74">&#39;.country_code&#39;</span><span style="color:#66d9ef">)</span>
vpn<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>pgrep -a openvpn$ | head -n <span style="color:#ae81ff">1</span> | awk <span style="color:#e6db74">&#39;{print $NF }&#39;</span> | cut -d <span style="color:#e6db74">&#39;.&#39;</span> -f 1<span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -n <span style="color:#e6db74">&#34;</span>$vpn<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u}  </span>$code<span style="color:#e6db74"> %{u-}&#34;</span>
<span style="color:#66d9ef">else</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>red<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u}  </span>$code<span style="color:#e6db74"> %{u-}&#34;</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/ipstack-vpn]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">custom/script</span>
<span style="color:#a6e22e">exec</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">/home/pavel/bin/polybar/ipstack-vpn.sh</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1200</span>
</code></pre></div><h4 id="weather">weather</h4>
<p>Gets current weather from <a href="http://wttr.in/">wttr.in</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">bar_format<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>BAR_FORMAT<span style="color:#66d9ef">:-</span><span style="color:#e6db74">&#34;%t&#34;</span><span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
location<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>LOCATION<span style="color:#66d9ef">:-</span><span style="color:#e6db74">&#34;Saint-Petersburg&#34;</span><span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
format_1<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>FORMAT_1<span style="color:#66d9ef">:-</span><span style="color:#e6db74">&#34;qF&#34;</span><span style="color:#e6db74">}</span>
format_2<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>FORMAT_1<span style="color:#66d9ef">:-</span><span style="color:#e6db74">&#34;format=v2n&#34;</span><span style="color:#e6db74">}</span>
bar_weather<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>curl -s wttr.in/<span style="color:#e6db74">${</span>location<span style="color:#e6db74">}</span>?format<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>bar_format<span style="color:#e6db74">}</span> <span style="color:#f92672">||</span> echo <span style="color:#e6db74">&#34;??&#34;</span><span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">&#34;</span>$bar_weather<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
exit <span style="color:#ae81ff">1</span>
<span style="color:#66d9ef">elif</span> <span style="color:#f92672">[[</span> <span style="color:#e6db74">&#34;</span>$bar_weather<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">==</span> *<span style="color:#e6db74">&#34;Unknown&#34;</span>* <span style="color:#f92672">||</span> <span style="color:#e6db74">&#34;</span>$bar_weather<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">==</span> *<span style="color:#e6db74">&#34;Sorry&#34;</span>* <span style="color:#f92672">||</span> <span style="color:#e6db74">&#34;</span>$bar_weather<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">==</span> *<span style="color:#e6db74">&#34;Bad Gateway&#34;</span>* <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
echo <span style="color:#e6db74">&#34;??&#34;</span>
exit <span style="color:#ae81ff">1</span>
<span style="color:#66d9ef">else</span>
echo <span style="color:#e6db74">${</span>bar_weather<span style="color:#e6db74">}</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/weather]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">custom/script</span>
<span style="color:#a6e22e">exec</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">/home/pavel/bin/polybar/weather.sh</span>
<span style="color:#a6e22e">format-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.red}</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1200</span>
</code></pre></div><h4 id="aw-afk">aw-afk</h4>
<p>Prints out a current uptime and non-AFK time from <a href="https://github.com/ActivityWatch">ActivityWatch</a> server</p>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>dateutils</td>
</tr>
</tbody>
</table>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">afk_event<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>curl -s -X GET <span style="color:#e6db74">&#34;http://localhost:5600/api/0/buckets/aw-watcher-afk_</span><span style="color:#66d9ef">$(</span>hostname<span style="color:#66d9ef">)</span><span style="color:#e6db74">/events?limit=1&#34;</span> -H <span style="color:#e6db74">&#34;accept: application/json&#34;</span><span style="color:#66d9ef">)</span>
status<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">${</span>afk_event<span style="color:#e6db74">}</span> | jq -r <span style="color:#e6db74">&#39;.[0].data.status&#39;</span><span style="color:#66d9ef">)</span>
afk_time<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>echo <span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>afk_event<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span> | jq -r <span style="color:#e6db74">&#39;.[0].duration&#39;</span> | xargs -I ! date -u -d @! +<span style="color:#e6db74">&#34;%H:%M&#34;</span><span style="color:#66d9ef">)</span>
uptime<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>uptime | awk <span style="color:#e6db74">&#39;{ print substr($3, 0, length($3) - 1) }&#39;</span> | xargs -I ! date -d ! +<span style="color:#e6db74">&#34;%H:%M&#34;</span><span style="color:#66d9ef">)</span>
res<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;</span><span style="color:#e6db74">${</span>afk_time<span style="color:#e6db74">}</span><span style="color:#e6db74"> / </span><span style="color:#e6db74">${</span>uptime<span style="color:#e6db74">}</span><span style="color:#e6db74">&#34;</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $status <span style="color:#f92672">==</span> <span style="color:#e6db74">&#39;afk&#39;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>red<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u} [AFK] </span>$res<span style="color:#e6db74"> %{u-}&#34;</span>
<span style="color:#66d9ef">else</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>blue<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u} </span>$res<span style="color:#e6db74"> %{u-}&#34;</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/aw-afk]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">custom/script</span>
<span style="color:#a6e22e">exec</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">/home/pavel/bin/polybar/aw_afk.sh</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">60</span>
</code></pre></div><h4 id="sun">sun</h4>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>sunwait</td>
</tr>
</tbody>
</table>
<p>Prints out the time of sunrise/sunset. Uses <a href="https://github.com/risacher/sunwait">sunwait</a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">declare -A LAT_DATA<span style="color:#f92672">=(</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;TMN&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;57.15N&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;SPB&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;59.9375N&#34;</span>
<span style="color:#f92672">)</span>
declare -A LON_DATA<span style="color:#f92672">=(</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;TMN&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;65.533333E&#34;</span>
<span style="color:#f92672">[</span><span style="color:#e6db74">&#34;SPB&#34;</span><span style="color:#f92672">]=</span><span style="color:#e6db74">&#34;30.308611E&#34;</span>
<span style="color:#f92672">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">&#34;</span>$LOC<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
echo <span style="color:#e6db74">&#34;LOC?&#34;</span>
exit -1
<span style="color:#66d9ef">fi</span>
LAT<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>LAT_DATA[$LOC]<span style="color:#e6db74">}</span>
LON<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>LON_DATA[$LOC]<span style="color:#e6db74">}</span>
time<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>sunwait poll daylight rise <span style="color:#e6db74">${</span>LAT<span style="color:#e6db74">}</span> $LON<span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#e6db74">${</span>time<span style="color:#e6db74">}</span> <span style="color:#f92672">==</span> <span style="color:#e6db74">&#39;DAY&#39;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
sunset<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>sunwait list daylight set <span style="color:#e6db74">${</span>LAT<span style="color:#e6db74">}</span> <span style="color:#e6db74">${</span>LON<span style="color:#e6db74">}</span><span style="color:#66d9ef">)</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>yellow<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u} </span>$sunset<span style="color:#e6db74"> %{u-}&#34;</span>
<span style="color:#66d9ef">else</span>
sunrise<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>sunwait list daylight rise <span style="color:#e6db74">${</span>LAT<span style="color:#e6db74">}</span> <span style="color:#e6db74">${</span>LON<span style="color:#e6db74">}</span><span style="color:#66d9ef">)</span>
echo <span style="color:#e6db74">&#34;%{u&lt;&lt;get-color(name=&#34;</span>red<span style="color:#e6db74">&#34;)&gt;&gt;}%{+u} </span>$sunrise<span style="color:#e6db74"> %{u-}&#34;</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/sun]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">custom/script</span>
<span style="color:#a6e22e">exec</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">/home/pavel/bin/polybar/sun.sh</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">60</span>
</code></pre></div><h4 id="sep">SEP</h4>
<p>A simple separator</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/SEP]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">custom/text</span>
<span style="color:#a6e22e">content</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;|&#34;</span>
<span style="color:#a6e22e">content-foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.magenta}</span>
<span style="color:#a6e22e">content-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">content-margin</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">100000</span>
</code></pre></div><h4 id="tsep">TSEP</h4>
<p>A separator, which appears only if monitor is set to have a tray in the launch script</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -z <span style="color:#e6db74">&#34;</span>$TRAY<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&amp;&amp;</span> <span style="color:#f92672">[</span> <span style="color:#e6db74">&#34;</span>$TRAY<span style="color:#e6db74">&#34;</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;none&#34;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
echo <span style="color:#e6db74">&#34;| &#34;</span>
<span style="color:#66d9ef">fi</span>
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/TSEP]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">custom/script</span>
<span style="color:#a6e22e">exec</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">/home/pavel/bin/polybar/tray-sep.sh</span>
<span style="color:#a6e22e">format-foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.magenta}</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">100000</span>
</code></pre></div><h4 id="i3">i3</h4>
<p>Show i3wm workspaces</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/i3]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/i3</span>
<span style="color:#a6e22e">format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;label-state&gt; &lt;label-mode&gt;</span>
<span style="color:#a6e22e">index-sort</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">wrapping-scroll</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">false</span>
<span style="color:#75715e">; Only show workspaces on the same output as the bar</span>
<span style="color:#a6e22e">pin-workspaces</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">label-mode-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#a6e22e">label-mode-foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">#000</span>
<span style="color:#a6e22e">label-mode-background</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.blue}</span>
<span style="color:#75715e">; focused = Active workspace on focused monitor</span>
<span style="color:#a6e22e">label-focused</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%</span>
<span style="color:#75715e">; label-focused-background = ${colors.background-alt}</span>
<span style="color:#a6e22e">label-focused-underline</span><span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.blue}</span>
<span style="color:#a6e22e">label-focused-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#75715e">; unfocused = Inactive workspace on any monitor</span>
<span style="color:#a6e22e">label-unfocused</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%</span>
<span style="color:#a6e22e">label-unfocused-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#75715e">; visible = Active workspace on unfocused monitor</span>
<span style="color:#a6e22e">label-visible</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%</span>
<span style="color:#75715e">; label-visible-background = ${self.label-focused-background}</span>
<span style="color:#a6e22e">label-visible-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${self.label-focused-underline}</span>
<span style="color:#a6e22e">label-visible-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${self.label-focused-padding}</span>
<span style="color:#75715e">; urgent = Workspace with urgency hint set</span>
<span style="color:#a6e22e">label-urgent</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%</span>
<span style="color:#a6e22e">label-urgent-background</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.red}</span>
<span style="color:#a6e22e">label-urgent-foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.black}</span>
<span style="color:#a6e22e">label-urgent-padding</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
</code></pre></div><h4 id="xkeyboard">xkeyboard</h4>
<p>Current keyboard layout</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/xkeyboard]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/xkeyboard</span>
<span style="color:#a6e22e">format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;label-layout&gt;</span>
<span style="color:#a6e22e">format-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.magenta}</span>
<span style="color:#a6e22e">label-layout</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%icon%</span>
<span style="color:#a6e22e">layout-icon-0</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">ru;RU</span>
<span style="color:#a6e22e">layout-icon-1</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">us;US</span>
</code></pre></div><h4 id="mpd">mpd</h4>
<p><a href="https://www.musicpd.org/">Music Player Daemon</a> status</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/mpd]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/mpd</span>
<span style="color:#a6e22e">format-playing</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;toggle&gt; &lt;label-time&gt; &lt;label-song&gt;</span>
<span style="color:#a6e22e">format-paused</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;toggle&gt; &lt;label-time&gt; &lt;label-song&gt;</span>
<span style="color:#a6e22e">format-stopped</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">label-song</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">[%album-artist%] %title%</span>
<span style="color:#a6e22e">label-time</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%elapsed%/%total%</span>
<span style="color:#a6e22e">label-song-maxlen</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">30</span>
<span style="color:#a6e22e">label-song-ellipsis</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">format-playing-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
<span style="color:#a6e22e">format-paused-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
<span style="color:#a6e22e">format-stopped-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
<span style="color:#a6e22e">label-separator</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">separator-foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.red}</span>
<span style="color:#a6e22e">icon-pause</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">icon-play</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">icon-stop</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">icon-prev</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#a6e22e">icon-next</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">2</span>
</code></pre></div><h4 id="pulseaudio">pulseaudio</h4>
<p>PulseAudio status</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/pulseaudio]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/pulseaudio</span>
<span style="color:#a6e22e">use-ui-max</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">bar-volume-width</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">7</span>
<span style="color:#a6e22e">bar-volume-foreground-0</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.white}</span>
<span style="color:#a6e22e">bar-volume-foreground-1</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
<span style="color:#a6e22e">bar-volume-foreground-2</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
<span style="color:#a6e22e">bar-volume-foreground-3</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.blue}</span>
<span style="color:#a6e22e">bar-volume-foreground-4</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.blue}</span>
<span style="color:#a6e22e">bar-volume-foreground-5</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.green}</span>
<span style="color:#a6e22e">bar-volume-foreground-6</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.green}</span>
<span style="color:#a6e22e">bar-volume-gradient</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">false</span>
<span style="color:#a6e22e">bar-volume-indicator</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">|</span>
<span style="color:#a6e22e">bar-volume-indicator-font</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">2</span>
<span style="color:#a6e22e">bar-volume-fill</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">bar-volume-fill-font</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">2</span>
<span style="color:#a6e22e">bar-volume-empty</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">bar-volume-empty-font</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">2</span>
<span style="color:#a6e22e">bar-volume-empty-foreground</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.white-lighter}</span>
<span style="color:#a6e22e">format-volume</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;bar-volume&gt; &lt;label-volume&gt;</span>
<span style="color:#a6e22e">label-volume</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%percentage%%</span>
<span style="color:#a6e22e">format-mute</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;label-muted&gt;</span>
<span style="color:#a6e22e">label-muted</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">MUTE</span>
<span style="color:#a6e22e">format-volume-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.white}</span>
<span style="color:#a6e22e">format-muted-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.black-lighter}</span>
</code></pre></div><h4 id="cpu">cpu</h4>
<p>CPU usage</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/cpu]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/cpu</span>
<span style="color:#a6e22e">format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;label&gt;</span>
<span style="color:#a6e22e">label</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%percentage%%</span>
<span style="color:#a6e22e">format-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.green-lighter}</span>
</code></pre></div><h4 id="ram-memory">ram-memory</h4>
<p>RAM usage</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/ram-memory]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/memory</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">10</span>
<span style="color:#a6e22e">ramp-used-0</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-1</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-2</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-3</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-4</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-5</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-6</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-used-7</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;label&gt;</span>
<span style="color:#a6e22e">label</span><span style="color:#f92672">=</span><span style="color:#e6db74">%gb_used:.1f%</span>
<span style="color:#a6e22e">format-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.blue}</span>
</code></pre></div><h4 id="swap-memory">swap-memory</h4>
<p>Swap usage</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/swap-memory]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/memory</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">10</span>
<span style="color:#a6e22e">label</span><span style="color:#f92672">=</span><span style="color:#e6db74"> %gb_swap_used:.1f%</span>
<span style="color:#a6e22e">format-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
</code></pre></div><h4 id="network">network</h4>
<p>Upload/download speed</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/network]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/network</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#a6e22e">interface</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${env:WLAN_INTERFACE}</span>
<span style="color:#75715e">; format-connected = [&lt;ramp-signal&gt;] &lt;label-connected&gt;</span>
<span style="color:#a6e22e">label-connected</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">↓ %downspeed% ↑ %upspeed%</span>
<span style="color:#a6e22e">label-disconnected</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">X</span>
<span style="color:#a6e22e">format-connected-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.green}</span>
<span style="color:#a6e22e">format-disconnected-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.red}</span>
<span style="color:#a6e22e">ramp-signal-0</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">ramp-signal-1</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1</span>
<span style="color:#a6e22e">ramp-signal-2</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">2</span>
<span style="color:#a6e22e">ramp-signal-3</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">3</span>
<span style="color:#a6e22e">ramp-signal-4</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">4</span>
<span style="color:#a6e22e">ramp-signal-5</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">5</span>
</code></pre></div><h4 id="date">date</h4>
<p>Current date</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/date]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/date</span>
<span style="color:#a6e22e">interval</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">5</span>
<span style="color:#a6e22e">date</span> <span style="color:#f92672">=</span>
<span style="color:#a6e22e">date-alt</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;%Y-%m-%d&#34;</span>
<span style="color:#a6e22e">time</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%H:%M</span>
<span style="color:#a6e22e">time-alt</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%H:%M:%S</span>
<span style="color:#a6e22e">format-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.cyan}</span>
<span style="color:#a6e22e">label</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;%date% %time%&#34;</span>
</code></pre></div><h4 id="battery">battery</h4>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[module/battery]</span>
<span style="color:#a6e22e">type</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">internal/battery</span>
<span style="color:#a6e22e">battery</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">BAT0</span>
<span style="color:#a6e22e">adapter</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">ADP0</span>
<span style="color:#a6e22e">time-format</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%H:%M</span>
<span style="color:#a6e22e">format-discharging</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&lt;ramp-capacity&gt; &lt;label-discharging&gt;</span>
<span style="color:#a6e22e">format-discharging-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.cyan}</span>
<span style="color:#a6e22e">format-charging-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.yellow}</span>
<span style="color:#a6e22e">format-full-underline</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">${colors.green}</span>
<span style="color:#a6e22e">label-discharging</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">%percentage%% %time%</span>
<span style="color:#a6e22e">label-charging</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"> %percentage%% %time%</span>
<span style="color:#a6e22e">ramp-capacity-0</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-capacity-1</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-capacity-2</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-capacity-3</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
<span style="color:#a6e22e">ramp-capacity-4</span> <span style="color:#f92672">=</span> <span style="color:#e6db74"></span>
</code></pre></div><h2 id="rofi">Rofi</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>rofi</td>
</tr>
</tbody>
</table>
<p><a href="https://github.com/davatorium/rofi">rofi</a> is another dynamic menu generator. It can act as dmenu replacement but offers a superset of dmenu&rsquo;s features.</p>
<h3 id="theme">Theme</h3>
<p>A theme, based on <a href="https://github.com/dracula/rofi">dracula theme</a> for rofi, but with palenight colorscheme.</p>
<p><a id="code-snippet--get-rofi-colors"></a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(<span style="color:#a6e22e">apply</span>
<span style="color:#a6e22e">#&#39;concat</span>
(<span style="color:#a6e22e">mapcar</span>
(lambda (elem)
(<span style="color:#a6e22e">concat</span> (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">0</span> elem) <span style="color:#e6db74">&#34;: &#34;</span> (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">2</span> elem) <span style="color:#e6db74">&#34;;\n&#34;</span>))
table))
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-css" data-lang="css"><span style="color:#75715e">/* Generated from [[file:../../Desktop.org::*Theme][Theme:1]] */</span>
<span style="color:#f92672">*</span> {
<span style="color:#960050;background-color:#1e0010">&lt;&lt;get-rofi-colors()&gt;&gt;</span>
foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">white</span>;
<span style="color:#66d9ef">background</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">black</span>;
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">black</span>;
separatorcolor: <span style="color:#f92672">@</span><span style="color:#66d9ef">blue</span>;
<span style="color:#66d9ef">border-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">blue</span>;
selected-normal-foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">black</span>;
selected-normal-background: <span style="color:#f92672">@</span><span style="color:#66d9ef">blue</span>;
selected-active-foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">black</span>;
selected-active-background: <span style="color:#f92672">@</span><span style="color:#66d9ef">blue</span>;
selected-urgent-foreground: <span style="color:#f92672">@</span>foreground;
selected-urgent-background: <span style="color:#f92672">@</span><span style="color:#66d9ef">red</span>;
normal-foreground: <span style="color:#f92672">@</span>foreground;
normal-background: <span style="color:#f92672">@</span><span style="color:#66d9ef">background</span>;
active-foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">blue</span>;
active-background: <span style="color:#f92672">@</span><span style="color:#66d9ef">background</span>;
urgent-foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">red</span>;
urgent-background: <span style="color:#f92672">@</span><span style="color:#66d9ef">background</span>;
alternate-normal-foreground: <span style="color:#f92672">@</span>foreground;
alternate-normal-background: <span style="color:#f92672">@</span>light-black;
alternate-active-foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">blue</span>;
alternate-active-background: <span style="color:#f92672">@</span>light-black;
alternate-urgent-foreground: <span style="color:#f92672">@</span><span style="color:#66d9ef">red</span>;
alternate-urgent-background: <span style="color:#f92672">@</span>light-black;
spacing: <span style="color:#ae81ff">2</span>;
}
<span style="color:#f92672">window</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">background</span>;
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">1</span>;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">5</span>;
}
<span style="color:#f92672">mainbox</span> {
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">0</span>;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">0</span>;
}
<span style="color:#f92672">message</span> {
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">1</span><span style="color:#66d9ef">px</span> dash <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> ;
<span style="color:#66d9ef">border-color</span>: <span style="color:#f92672">@</span>separatorcolor;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">1</span><span style="color:#66d9ef">px</span> ;
}
<span style="color:#f92672">textbox</span> {
text-color: <span style="color:#f92672">@</span>foreground;
}
<span style="color:#f92672">listview</span> {
fixed-height: <span style="color:#ae81ff">0</span>;
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">px</span> dash <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> ;
<span style="color:#66d9ef">border-color</span>: <span style="color:#f92672">@</span>separatorcolor;
spacing: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">px</span> ;
scrollbar: true;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> ;
}
<span style="color:#f92672">element</span> {
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">0</span>;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">1</span><span style="color:#66d9ef">px</span> ;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">normal</span>.<span style="color:#a6e22e">normal</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span><span style="color:#66d9ef">background</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">normal</span>.<span style="color:#a6e22e">urgent</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span>urgent-background;
text-color: <span style="color:#f92672">@</span>urgent-foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">normal</span>.<span style="color:#a6e22e">active</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span>active-background;
text-color: <span style="color:#f92672">@</span>active-foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">selected</span>.<span style="color:#a6e22e">normal</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span>selected-normal-background;
text-color: <span style="color:#f92672">@</span>selected-normal-foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">selected</span>.<span style="color:#a6e22e">urgent</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span>selected-urgent-background;
text-color: <span style="color:#f92672">@</span>selected-urgent-foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">selected</span>.<span style="color:#a6e22e">active</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span>selected-active-background;
text-color: <span style="color:#f92672">@</span>selected-active-foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">alternate</span>.<span style="color:#a6e22e">normal</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">alternate</span><span style="color:#f92672">-</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span><span style="color:#66d9ef">background</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">alternate</span><span style="color:#f92672">-</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">alternate</span>.<span style="color:#a6e22e">urgent</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">alternate</span><span style="color:#f92672">-</span>urgent-background;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">alternate</span><span style="color:#f92672">-</span>urgent-foreground;
}
<span style="color:#f92672">element</span> <span style="color:#f92672">alternate</span>.<span style="color:#a6e22e">active</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span><span style="color:#66d9ef">alternate</span><span style="color:#f92672">-</span>active-background;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">alternate</span><span style="color:#f92672">-</span>active-foreground;
}
<span style="color:#f92672">scrollbar</span> {
<span style="color:#66d9ef">width</span>: <span style="color:#ae81ff">4</span><span style="color:#66d9ef">px</span> ;
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">0</span>;
handle-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
handle-width: <span style="color:#ae81ff">8</span><span style="color:#66d9ef">px</span> ;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">0</span>;
}
<span style="color:#f92672">sidebar</span> {
<span style="color:#66d9ef">border</span>: <span style="color:#ae81ff">2</span><span style="color:#66d9ef">px</span> dash <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> ;
<span style="color:#66d9ef">border-color</span>: <span style="color:#f92672">@</span>separatorcolor;
}
<span style="color:#f92672">button</span> {
spacing: <span style="color:#ae81ff">0</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
}
<span style="color:#f92672">button</span> <span style="color:#f92672">selected</span> {
<span style="color:#66d9ef">background-color</span>: <span style="color:#f92672">@</span>selected-normal-background;
text-color: <span style="color:#f92672">@</span>selected-normal-foreground;
}
<span style="color:#f92672">inputbar</span> {
spacing: <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
<span style="color:#66d9ef">padding</span>: <span style="color:#ae81ff">1</span><span style="color:#66d9ef">px</span> ;
children: [ prompt,textbox-prompt-colon,entry,case-indicator ];
}
<span style="color:#f92672">case-indicator</span> {
spacing: <span style="color:#ae81ff">0</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
}
<span style="color:#f92672">entry</span> {
spacing: <span style="color:#ae81ff">0</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
}
<span style="color:#f92672">prompt</span> {
spacing: <span style="color:#ae81ff">0</span>;
text-color: <span style="color:#f92672">@</span><span style="color:#66d9ef">normal</span><span style="color:#f92672">-</span>foreground;
}
<span style="color:#f92672">textbox-prompt-colon</span> {
expand: false;
str: <span style="color:#e6db74">&#34;:&#34;</span>;
<span style="color:#66d9ef">margin</span>: <span style="color:#ae81ff">0</span><span style="color:#66d9ef">px</span> <span style="color:#ae81ff">0.3000</span><span style="color:#66d9ef">em</span> <span style="color:#ae81ff">0.0000</span><span style="color:#66d9ef">em</span> <span style="color:#ae81ff">0.0000</span><span style="color:#66d9ef">em</span> ;
text-color: <span style="color:#66d9ef">inherit</span>;
}
</code></pre></div><h3 id="scripts">Scripts</h3>
<h4 id="buku-bookmarks">Buku bookmarks</h4>
<p>Inspired by the <a href="https://github.com/knatsakis/rofi-buku">knatsakis/rofi-buku</a> script.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> <span style="color:#66d9ef">$(</span>hostname<span style="color:#66d9ef">)</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#39;pdsk&#39;</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
BUKU<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;/home/pavel/.local/bin/buku&#34;</span>
<span style="color:#66d9ef">else</span>
BUKU<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;/home/pavel/Programs/miniconda3/bin/buku&#34;</span>
<span style="color:#66d9ef">fi</span>
<span style="color:#75715e"># COMMAND=&#34;$BUKU -o %&#34;</span>
<span style="color:#75715e"># COMMAND=&#34;qutebrowser $(buku -f 10 -p %)&#34;</span>
COMMAND<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;firefox %&#34;</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $1 <span style="color:#f92672">==</span> <span style="color:#e6db74">&#39;-e&#39;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
COMMAND<span style="color:#f92672">=</span><span style="color:#e6db74">&#34;</span>$BUKU<span style="color:#e6db74"> -w %&#34;</span>
<span style="color:#66d9ef">fi</span>
$BUKU -f <span style="color:#ae81ff">4</span> -p | awk -F<span style="color:#e6db74">&#39;\t&#39;</span> -v OFS<span style="color:#f92672">=</span><span style="color:#e6db74">&#39;\t&#39;</span> <span style="color:#e6db74">&#39;{
</span><span style="color:#e6db74"> split($4, tags, &#34;,&#34;)
</span><span style="color:#e6db74"> joined = sep = &#34;&#34;
</span><span style="color:#e6db74"> for (i = 1; i in tags; i++) {
</span><span style="color:#e6db74"> joined = joined sep &#34;[&#34; tags[i] &#34;]&#34;
</span><span style="color:#e6db74"> sep = &#34; &#34;
</span><span style="color:#e6db74"> }
</span><span style="color:#e6db74"> url = substr($2, 1, 40)
</span><span style="color:#e6db74"> if (length($2) &gt; 40) {
</span><span style="color:#e6db74"> url = url &#34;...&#34;
</span><span style="color:#e6db74"> }
</span><span style="color:#e6db74"> if ($1 != &#34;waiting for input&#34;) {
</span><span style="color:#e6db74"> printf &#34;%-5s %-60s %-45s %s\n&#34;, $1, $3, url, joined
</span><span style="color:#e6db74"> }
</span><span style="color:#e6db74">}&#39;</span> | sort -k <span style="color:#ae81ff">2</span> | rofi -dmenu -matching normal -sort -sorting-method fzf -width <span style="color:#ae81ff">80</span> -l <span style="color:#ae81ff">20</span> | cut -d <span style="color:#e6db74">&#39; &#39;</span> -f <span style="color:#ae81ff">1</span> | <span style="color:#f92672">{</span>
read index;
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">&#34;</span>$index<span style="color:#e6db74">&#34;</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
exit <span style="color:#ae81ff">0</span>
<span style="color:#66d9ef">fi</span>
url<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>$BUKU -f <span style="color:#ae81ff">10</span> -p $index<span style="color:#66d9ef">)</span>
echo <span style="color:#e6db74">${</span>url#<span style="color:#e6db74">&#34;waiting for input&#34;</span><span style="color:#e6db74">}</span> | cut -d <span style="color:#e6db74">&#39; &#39;</span> -f <span style="color:#ae81ff">1</span> | xargs -I % $COMMAND
<span style="color:#f92672">}</span>
</code></pre></div><h4 id="man-pages">Man pages</h4>
<p>Inspired by <a href="https://www.youtube.com/watch?v=8E8sUNHdzG8">this Luke Smith&rsquo;s video</a>.</p>
<p>A script to open a man page with zathura. There is no particular reason why one should look through man pages in pdf viewer rather than in console, but why not.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">SELECTED<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>man -k . | rofi -dmenu -l <span style="color:#ae81ff">20</span> | awk <span style="color:#e6db74">&#39;{print $1}&#39;</span><span style="color:#66d9ef">)</span>
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> ! -z $SELECTED <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
man -Tpdf $SELECTED | zathura -
<span style="color:#66d9ef">fi</span>
</code></pre></div><h2 id="flameshot">Flameshot</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>flameshot</td>
</tr>
</tbody>
</table>
<p><a href="https://github.com/flameshot-org/flameshot">flameshot</a> is my program of choice to make screenshots.</p>
<p>As it overwrites its own config all the time, I do not keep the file in VC.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#66d9ef">[General]</span>
<span style="color:#a6e22e">disabledTrayIcon</span><span style="color:#f92672">=</span><span style="color:#e6db74">false</span>
<span style="color:#a6e22e">drawColor</span><span style="color:#f92672">=</span><span style="color:#e6db74">#ff0000</span>
<span style="color:#a6e22e">drawThickness</span><span style="color:#f92672">=</span><span style="color:#e6db74">0</span>
<span style="color:#a6e22e">saveAfterCopyPath</span><span style="color:#f92672">=</span><span style="color:#e6db74">/home/pavel/Pictures</span>
<span style="color:#a6e22e">savePath</span><span style="color:#f92672">=</span><span style="color:#e6db74">/home/pavel/Pictures</span>
<span style="color:#a6e22e">savePathFixed</span><span style="color:#f92672">=</span><span style="color:#e6db74">false</span>
<span style="color:#a6e22e">showStartupLaunchMessage</span><span style="color:#f92672">=</span><span style="color:#e6db74">false</span>
<span style="color:#a6e22e">uiColor</span><span style="color:#f92672">=</span><span style="color:#e6db74">&lt;&lt;get-color(name=&#34;blue&#34;)&gt;&gt;</span>
<span style="color:#66d9ef">[Shortcuts]</span>
<span style="color:#a6e22e">TYPE_ARROW</span><span style="color:#f92672">=</span><span style="color:#e6db74">A</span>
<span style="color:#a6e22e">TYPE_CIRCLE</span><span style="color:#f92672">=</span><span style="color:#e6db74">C</span>
<span style="color:#a6e22e">TYPE_CIRCLECOUNT</span><span style="color:#f92672">=</span>
<span style="color:#a6e22e">TYPE_COMMIT_CURRENT_TOOL</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+Return</span>
<span style="color:#a6e22e">TYPE_COPY</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+C</span>
<span style="color:#a6e22e">TYPE_DRAWER</span><span style="color:#f92672">=</span><span style="color:#e6db74">D</span>
<span style="color:#a6e22e">TYPE_EXIT</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+Q</span>
<span style="color:#a6e22e">TYPE_IMAGEUPLOADER</span><span style="color:#f92672">=</span><span style="color:#e6db74">Return</span>
<span style="color:#a6e22e">TYPE_MARKER</span><span style="color:#f92672">=</span><span style="color:#e6db74">M</span>
<span style="color:#a6e22e">TYPE_MOVESELECTION</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+M</span>
<span style="color:#a6e22e">TYPE_MOVE_DOWN</span><span style="color:#f92672">=</span><span style="color:#e6db74">Down</span>
<span style="color:#a6e22e">TYPE_MOVE_LEFT</span><span style="color:#f92672">=</span><span style="color:#e6db74">Left</span>
<span style="color:#a6e22e">TYPE_MOVE_RIGHT</span><span style="color:#f92672">=</span><span style="color:#e6db74">Right</span>
<span style="color:#a6e22e">TYPE_MOVE_UP</span><span style="color:#f92672">=</span><span style="color:#e6db74">Up</span>
<span style="color:#a6e22e">TYPE_OPEN_APP</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+O</span>
<span style="color:#a6e22e">TYPE_PENCIL</span><span style="color:#f92672">=</span><span style="color:#e6db74">P</span>
<span style="color:#a6e22e">TYPE_PIN</span><span style="color:#f92672">=</span>
<span style="color:#a6e22e">TYPE_PIXELATE</span><span style="color:#f92672">=</span><span style="color:#e6db74">B</span>
<span style="color:#a6e22e">TYPE_RECTANGLE</span><span style="color:#f92672">=</span><span style="color:#e6db74">R</span>
<span style="color:#a6e22e">TYPE_REDO</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+Shift+Z</span>
<span style="color:#a6e22e">TYPE_RESIZE_DOWN</span><span style="color:#f92672">=</span><span style="color:#e6db74">Shift+Down</span>
<span style="color:#a6e22e">TYPE_RESIZE_LEFT</span><span style="color:#f92672">=</span><span style="color:#e6db74">Shift+Left</span>
<span style="color:#a6e22e">TYPE_RESIZE_RIGHT</span><span style="color:#f92672">=</span><span style="color:#e6db74">Shift+Right</span>
<span style="color:#a6e22e">TYPE_RESIZE_UP</span><span style="color:#f92672">=</span><span style="color:#e6db74">Shift+Up</span>
<span style="color:#a6e22e">TYPE_SAVE</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+S</span>
<span style="color:#a6e22e">TYPE_SELECTION</span><span style="color:#f92672">=</span><span style="color:#e6db74">S</span>
<span style="color:#a6e22e">TYPE_SELECTIONINDICATOR</span><span style="color:#f92672">=</span>
<span style="color:#a6e22e">TYPE_SELECT_ALL</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+A</span>
<span style="color:#a6e22e">TYPE_TEXT</span><span style="color:#f92672">=</span><span style="color:#e6db74">T</span>
<span style="color:#a6e22e">TYPE_TOGGLE_PANEL</span><span style="color:#f92672">=</span><span style="color:#e6db74">Space</span>
<span style="color:#a6e22e">TYPE_UNDO</span><span style="color:#f92672">=</span><span style="color:#e6db74">Ctrl+Z</span>
</code></pre></div><h2 id="dunst">dunst</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>dunst</td>
</tr>
<tr>
<td>libnotify</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>Type</th>
<th>Note</th>
</tr>
</thead>
<tbody>
<tr>
<td>TODO</td>
<td>Cleanup default config comments</td>
</tr>
</tbody>
</table>
<p><a href="https://github.com/dunst-project/dunst">dunst</a> is a lightweight notification daemon.</p>
<p>My customizations of the original config consist mostly of changing colors.</p>
<p>References:</p>
<ul>
<li><a href="https://dunst-project.org/documentation/">dunst documentation</a></li>
</ul>
<!--listend-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim">[<span style="color:#a6e22e">global</span>]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">monitor</span> = <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">follow</span> = <span style="color:#a6e22e">mouse</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">geometry</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">window</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # [{<span style="color:#a6e22e">width</span>}]<span style="color:#a6e22e">x</span>{<span style="color:#a6e22e">height</span>}[+<span style="color:#e6db74">/-{x}+/</span>-{<span style="color:#a6e22e">y</span>}]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">geometry</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">message</span> <span style="color:#a6e22e">window</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">measured</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">number</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">everything</span> <span style="color:#66d9ef">else</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">pixels</span>. <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">omitted</span> <span style="color:#a6e22e">but</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">given</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # (<span style="color:#e6db74">&#34;-geometry x2&#34;</span>), <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">message</span> <span style="color:#a6e22e">window</span> <span style="color:#a6e22e">expands</span> <span style="color:#a6e22e">over</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">whole</span> <span style="color:#a6e22e">screen</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # (<span style="color:#a6e22e">dmenu</span>-<span style="color:#a6e22e">like</span>). <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">is</span> <span style="color:#ae81ff">0</span>, <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">window</span> <span style="color:#a6e22e">expands</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">longest</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">message</span> <span style="color:#a6e22e">displayed</span>. <span style="color:#a6e22e">A</span> <span style="color:#a6e22e">positive</span> <span style="color:#a6e22e">x</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">measured</span> <span style="color:#a6e22e">from</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">left</span>, <span style="color:#a6e22e">a</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">negative</span> <span style="color:#a6e22e">from</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">right</span> <span style="color:#a6e22e">side</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">screen</span>. <span style="color:#a6e22e">Y</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">measured</span> <span style="color:#a6e22e">from</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">top</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">down</span> <span style="color:#a6e22e">respectively</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">can</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">negative</span>. <span style="color:#a6e22e">In</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">case</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">actual</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">the</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">screen</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">minus</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">defined</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">within</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">geometry</span> <span style="color:#a6e22e">option</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">geometry</span> = <span style="color:#e6db74">&#34;300x5-30+20&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Show</span> <span style="color:#a6e22e">how</span> <span style="color:#a6e22e">many</span> <span style="color:#a6e22e">messages</span> <span style="color:#a6e22e">are</span> <span style="color:#a6e22e">currently</span> <span style="color:#a6e22e">hidden</span> (<span style="color:#a6e22e">because</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">geometry</span>).<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">indicate_hidden</span> = <span style="color:#a6e22e">yes</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Shrink</span> <span style="color:#a6e22e">window</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">it</span>&#39;<span style="color:#a6e22e">s</span> <span style="color:#a6e22e">smaller</span> <span style="color:#a6e22e">than</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">width</span>. <span style="color:#a6e22e">Will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">ignored</span> <span style="color:#66d9ef">if</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">is</span> <span style="color:#ae81ff">0</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">shrink</span> = <span style="color:#a6e22e">no</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">transparency</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">window</span>. <span style="color:#a6e22e">Range</span>: [<span style="color:#ae81ff">0</span>; <span style="color:#ae81ff">100</span>].<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">This</span> <span style="color:#a6e22e">option</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">only</span> <span style="color:#a6e22e">work</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">compositing</span> <span style="color:#a6e22e">window</span> <span style="color:#a6e22e">manager</span> <span style="color:#a6e22e">is</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">present</span> (<span style="color:#a6e22e">e</span>.<span style="color:#a6e22e">g</span>. <span style="color:#a6e22e">xcompmgr</span>, <span style="color:#a6e22e">compiz</span>, <span style="color:#a6e22e">etc</span>.).<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">transparency</span> = <span style="color:#ae81ff">15</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">entire</span> <span style="color:#a6e22e">notification</span>. <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">smaller</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">than</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">font</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">padding</span> <span style="color:#a6e22e">combined</span>, <span style="color:#a6e22e">it</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">raised</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">font</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">padding</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">notification_height</span> = <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Draw</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">line</span> <span style="color:#a6e22e">of</span> <span style="color:#e6db74">&#34;separator_height&#34;</span> <span style="color:#a6e22e">pixel</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">between</span> <span style="color:#a6e22e">two</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">notifications</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Set</span> <span style="color:#a6e22e">to</span> <span style="color:#ae81ff">0</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">disable</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">separator_height</span> = <span style="color:#ae81ff">2</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Padding</span> <span style="color:#a6e22e">between</span> <span style="color:#a6e22e">text</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">separator</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">padding</span> = <span style="color:#ae81ff">8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Horizontal</span> <span style="color:#a6e22e">padding</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">horizontal_padding</span> = <span style="color:#ae81ff">8</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Defines</span> <span style="color:#a6e22e">width</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">pixels</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">frame</span> <span style="color:#a6e22e">around</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">window</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Set</span> <span style="color:#a6e22e">to</span> <span style="color:#ae81ff">0</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">disable</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">frame_width</span> = <span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Defines</span> <span style="color:#a6e22e">color</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">frame</span> <span style="color:#a6e22e">around</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">window</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">frame_color</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;white&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Define</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">color</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">separator</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">possible</span> <span style="color:#a6e22e">values</span> <span style="color:#a6e22e">are</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">auto</span>: <span style="color:#a6e22e">dunst</span> <span style="color:#a6e22e">tries</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">find</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">color</span> <span style="color:#a6e22e">fitting</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">background</span>;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">foreground</span>: <span style="color:#a6e22e">use</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">same</span> <span style="color:#a6e22e">color</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">foreground</span>;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">frame</span>: <span style="color:#a6e22e">use</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">same</span> <span style="color:#a6e22e">color</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">frame</span>;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">anything</span> <span style="color:#66d9ef">else</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">interpreted</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">X</span> <span style="color:#a6e22e">color</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">separator_color</span> = <span style="color:#a6e22e">frame</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Sort</span> <span style="color:#a6e22e">messages</span> <span style="color:#a6e22e">by</span> <span style="color:#a6e22e">urgency</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">sort</span> = <span style="color:#a6e22e">yes</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Don</span>&#39;<span style="color:#a6e22e">t</span> <span style="color:#a6e22e">remove</span> <span style="color:#a6e22e">messages</span>, <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">user</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">idle</span> (<span style="color:#a6e22e">no</span> <span style="color:#a6e22e">mouse</span> <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">keyboard</span> <span style="color:#a6e22e">input</span>)<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">longer</span> <span style="color:#a6e22e">than</span> <span style="color:#a6e22e">idle_threshold</span> <span style="color:#a6e22e">seconds</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Set</span> <span style="color:#a6e22e">to</span> <span style="color:#ae81ff">0</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">disable</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">A</span> <span style="color:#a6e22e">client</span> <span style="color:#a6e22e">can</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">the</span> <span style="color:#e6db74">&#39;transient&#39;</span> <span style="color:#a6e22e">hint</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">bypass</span> <span style="color:#a6e22e">this</span>. <span style="color:#a6e22e">See</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">rules</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">section</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">how</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">disable</span> <span style="color:#a6e22e">this</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">necessary</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">idle_threshold</span> = <span style="color:#ae81ff">120</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> ### <span style="color:#a6e22e">Text</span> ###<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">font</span> = <span style="color:#a6e22e">DejaVu</span> <span style="color:#a6e22e">Sans</span> <span style="color:#ae81ff">9</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">spacing</span> <span style="color:#a6e22e">between</span> <span style="color:#a6e22e">lines</span>. <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">smaller</span> <span style="color:#a6e22e">than</span> <span style="color:#a6e22e">the</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">font</span> <span style="color:#a6e22e">height</span>, <span style="color:#a6e22e">it</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">get</span> <span style="color:#a6e22e">raised</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">font</span> <span style="color:#a6e22e">height</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">line_height</span> = <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Possible</span> <span style="color:#a6e22e">values</span> <span style="color:#a6e22e">are</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">full</span>: <span style="color:#a6e22e">Allow</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">small</span> <span style="color:#a6e22e">subset</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">html</span> <span style="color:#a6e22e">markup</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">notifications</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # &lt;<span style="color:#a6e22e">b</span>&gt;bold&lt;/<span style="color:#a6e22e">b</span>&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # &lt;<span style="color:#a6e22e">i</span>&gt;italic&lt;/<span style="color:#a6e22e">i</span>&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # &lt;<span style="color:#a6e22e">s</span>&gt;<span style="color:#a6e22e">strikethrough</span>&lt;/<span style="color:#a6e22e">s</span>&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # &lt;<span style="color:#a6e22e">u</span>&gt;underline&lt;/<span style="color:#a6e22e">u</span>&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">For</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">complete</span> <span style="color:#a6e22e">reference</span> <span style="color:#a6e22e">see</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # &lt;<span style="color:#a6e22e">http</span>:<span style="color:#e6db74">//</span><span style="color:#a6e22e">developer</span>.<span style="color:#a6e22e">gnome</span>.<span style="color:#a6e22e">org</span><span style="color:#e6db74">/pango/</span><span style="color:#a6e22e">stable</span>/<span style="color:#a6e22e">PangoMarkupFormat</span>.<span style="color:#a6e22e">html</span>&gt;.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">strip</span>: <span style="color:#a6e22e">This</span> <span style="color:#a6e22e">setting</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">provided</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">compatibility</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">some</span> <span style="color:#a6e22e">broken</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">clients</span> <span style="color:#a6e22e">that</span> <span style="color:#a6e22e">send</span> <span style="color:#a6e22e">markup</span> <span style="color:#a6e22e">even</span> <span style="color:#a6e22e">though</span> <span style="color:#a6e22e">it</span>&#39;<span style="color:#a6e22e">s</span> <span style="color:#a6e22e">not</span> <span style="color:#a6e22e">enabled</span> <span style="color:#a6e22e">on</span> <span style="color:#a6e22e">the</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">server</span>. <span style="color:#a6e22e">Dunst</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">try</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">strip</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">markup</span> <span style="color:#a6e22e">but</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">parsing</span> <span style="color:#a6e22e">is</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">simplistic</span> <span style="color:#a6e22e">so</span> <span style="color:#a6e22e">using</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">option</span> <span style="color:#a6e22e">outside</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">matching</span> <span style="color:#a6e22e">rules</span> <span style="color:#a6e22e">for</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">specific</span> <span style="color:#a6e22e">applications</span> *<span style="color:#a6e22e">IS</span> <span style="color:#a6e22e">GREATLY</span> <span style="color:#a6e22e">DISCOURAGED</span>*.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">no</span>: <span style="color:#a6e22e">Disable</span> <span style="color:#a6e22e">markup</span> <span style="color:#a6e22e">parsing</span>, <span style="color:#a6e22e">incoming</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">treated</span> <span style="color:#a6e22e">as</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">plain</span> <span style="color:#a6e22e">text</span>. <span style="color:#a6e22e">Dunst</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">not</span> <span style="color:#a6e22e">advertise</span> <span style="color:#a6e22e">that</span> <span style="color:#a6e22e">it</span> <span style="color:#a6e22e">has</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">body</span>-<span style="color:#a6e22e">markup</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">capability</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">global</span> <span style="color:#a6e22e">setting</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">It</span>&#39;<span style="color:#a6e22e">s</span> <span style="color:#a6e22e">important</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">note</span> <span style="color:#a6e22e">that</span> <span style="color:#a6e22e">markup</span> <span style="color:#a6e22e">inside</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">format</span> <span style="color:#a6e22e">option</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">parsed</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">regardless</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">what</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">to</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">markup</span> = <span style="color:#a6e22e">full</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">format</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">message</span>. <span style="color:#a6e22e">Possible</span> <span style="color:#a6e22e">variables</span> <span style="color:#a6e22e">are</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">a</span> <span style="color:#a6e22e">appname</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">s</span> <span style="color:#a6e22e">summary</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">b</span> <span style="color:#a6e22e">body</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">i</span> <span style="color:#a6e22e">iconname</span> (<span style="color:#a6e22e">including</span> <span style="color:#a6e22e">its</span> <span style="color:#a6e22e">path</span>)<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">I</span> <span style="color:#a6e22e">iconname</span> (<span style="color:#a6e22e">without</span> <span style="color:#a6e22e">its</span> <span style="color:#a6e22e">path</span>)<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">p</span> <span style="color:#a6e22e">progress</span> <span style="color:#a6e22e">value</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">set</span> ([ <span style="color:#ae81ff">0</span>%] <span style="color:#a6e22e">to</span> [<span style="color:#ae81ff">100</span>%]) <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">nothing</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %<span style="color:#a6e22e">n</span> <span style="color:#a6e22e">progress</span> <span style="color:#a6e22e">value</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">without</span> <span style="color:#a6e22e">any</span> <span style="color:#a6e22e">extra</span> <span style="color:#a6e22e">characters</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # %% <span style="color:#a6e22e">Literal</span> %<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Markup</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">allowed</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">format</span> = <span style="color:#e6db74">&#34;&lt;b&gt;%s&lt;/b&gt;\n%b&#34;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Alignment</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">message</span> <span style="color:#a6e22e">text</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Possible</span> <span style="color:#a6e22e">values</span> <span style="color:#a6e22e">are</span> <span style="color:#e6db74">&#34;left&#34;</span>, <span style="color:#e6db74">&#34;center&#34;</span> <span style="color:#a6e22e">and</span> <span style="color:#e6db74">&#34;right&#34;</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">alignment</span> = <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Show</span> <span style="color:#a6e22e">age</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">message</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">message</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">older</span> <span style="color:#a6e22e">than</span> <span style="color:#a6e22e">show_age_threshold</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">seconds</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Set</span> <span style="color:#a6e22e">to</span> <span style="color:#ae81ff">-1</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">disable</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">show_age_threshold</span> = <span style="color:#ae81ff">60</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Split</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">into</span> <span style="color:#a6e22e">multiple</span> <span style="color:#a6e22e">lines</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">they</span> <span style="color:#a6e22e">don</span>&#39;<span style="color:#a6e22e">t</span> <span style="color:#a6e22e">fit</span> <span style="color:#a6e22e">into</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">geometry</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">word_wrap</span> = <span style="color:#a6e22e">yes</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">When</span> <span style="color:#a6e22e">word_wrap</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">no</span>, <span style="color:#a6e22e">specify</span> <span style="color:#a6e22e">where</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">make</span> <span style="color:#a6e22e">an</span> <span style="color:#a6e22e">ellipsis</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">long</span> <span style="color:#a6e22e">lines</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Possible</span> <span style="color:#a6e22e">values</span> <span style="color:#a6e22e">are</span> <span style="color:#e6db74">&#34;start&#34;</span>, <span style="color:#e6db74">&#34;middle&#34;</span> <span style="color:#a6e22e">and</span> <span style="color:#e6db74">&#34;end&#34;</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">ellipsize</span> = <span style="color:#a6e22e">middle</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Ignore</span> <span style="color:#a6e22e">newlines</span> <span style="color:#e6db74">&#39;\n&#39;</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">notifications</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">ignore_newline</span> = <span style="color:#a6e22e">no</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Stack</span> <span style="color:#a6e22e">together</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">same</span> <span style="color:#a6e22e">content</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">stack_duplicates</span> = <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Hide</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">count</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">stacked</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">same</span> <span style="color:#a6e22e">content</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">hide_duplicate_count</span> = <span style="color:#a6e22e">false</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Display</span> <span style="color:#a6e22e">indicators</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">URLs</span> (<span style="color:#a6e22e">U</span>) <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">actions</span> (<span style="color:#a6e22e">A</span>).<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">show_indicators</span> = <span style="color:#a6e22e">yes</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> ### <span style="color:#a6e22e">Icons</span> ###<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Align</span> <span style="color:#a6e22e">icons</span> <span style="color:#a6e22e">left</span><span style="color:#e6db74">/right/</span><span style="color:#a6e22e">off</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">icon_position</span> = <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Scale</span> <span style="color:#a6e22e">larger</span> <span style="color:#a6e22e">icons</span> <span style="color:#a6e22e">down</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">size</span>, <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">to</span> <span style="color:#ae81ff">0</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">disable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">max_icon_size</span> = <span style="color:#ae81ff">32</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Paths</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">default</span> <span style="color:#a6e22e">icons</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">icon_path</span> = <span style="color:#e6db74">/usr/</span><span style="color:#a6e22e">share</span><span style="color:#e6db74">/icons/</span><span style="color:#a6e22e">Mint</span>-<span style="color:#a6e22e">Y</span><span style="color:#e6db74">/status/</span><span style="color:#ae81ff">32</span><span style="color:#e6db74">/;/</span><span style="color:#a6e22e">usr</span><span style="color:#e6db74">/share/</span><span style="color:#a6e22e">icons</span><span style="color:#e6db74">/Mint-Y/</span><span style="color:#a6e22e">devices</span>/<span style="color:#ae81ff">32</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> ### <span style="color:#a6e22e">History</span> ###<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Should</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">popped</span> <span style="color:#a6e22e">up</span> <span style="color:#a6e22e">from</span> <span style="color:#a6e22e">history</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">sticky</span> <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">timeout</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">as</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">it</span> <span style="color:#a6e22e">would</span> <span style="color:#a6e22e">normally</span> <span style="color:#a6e22e">do</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">sticky_history</span> = <span style="color:#a6e22e">yes</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Maximum</span> <span style="color:#a6e22e">amount</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">kept</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">history</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">history_length</span> = <span style="color:#ae81ff">20</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> ### <span style="color:#a6e22e">Misc</span>/<span style="color:#a6e22e">Advanced</span> ###<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">dmenu</span> <span style="color:#a6e22e">path</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">dmenu</span> = <span style="color:#e6db74">/usr/</span><span style="color:#a6e22e">bin</span>/<span style="color:#a6e22e">dmenu</span> -<span style="color:#a6e22e">p</span> <span style="color:#a6e22e">dunst</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Browser</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">opening</span> <span style="color:#a6e22e">urls</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">context</span> <span style="color:#a6e22e">menu</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">browser</span> = <span style="color:#e6db74">/usr/</span><span style="color:#a6e22e">bin</span>/<span style="color:#a6e22e">sensible</span>-<span style="color:#a6e22e">browser</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Always</span> <span style="color:#a6e22e">run</span> <span style="color:#a6e22e">rule</span>-<span style="color:#a6e22e">defined</span> <span style="color:#a6e22e">scripts</span>, <span style="color:#a6e22e">even</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">suppressed</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">always_run_script</span> = <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Define</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">title</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">windows</span> <span style="color:#a6e22e">spawned</span> <span style="color:#a6e22e">by</span> <span style="color:#a6e22e">dunst</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">title</span> = <span style="color:#a6e22e">Dunst</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Define</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">class</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">windows</span> <span style="color:#a6e22e">spawned</span> <span style="color:#a6e22e">by</span> <span style="color:#a6e22e">dunst</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">class</span> = <span style="color:#a6e22e">Dunst</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Print</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">on</span> <span style="color:#a6e22e">startup</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">This</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">mainly</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">error</span> <span style="color:#a6e22e">detection</span>, <span style="color:#a6e22e">since</span> <span style="color:#a6e22e">dbus</span> (<span style="color:#a6e22e">re</span>-)<span style="color:#a6e22e">starts</span> <span style="color:#a6e22e">dunst</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">automatically</span> <span style="color:#a6e22e">after</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">crash</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">startup_notification</span> = <span style="color:#a6e22e">false</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Manage</span> <span style="color:#a6e22e">dunst</span>&#39;<span style="color:#a6e22e">s</span> <span style="color:#a6e22e">desire</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">talking</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Can</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">one</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">following</span> <span style="color:#a6e22e">values</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">crit</span>: <span style="color:#a6e22e">Critical</span> <span style="color:#a6e22e">features</span>. <span style="color:#a6e22e">Dunst</span> <span style="color:#a6e22e">aborts</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">warn</span>: <span style="color:#a6e22e">Only</span> <span style="color:#a6e22e">non</span>-<span style="color:#a6e22e">fatal</span> <span style="color:#a6e22e">warnings</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">mesg</span>: <span style="color:#a6e22e">Important</span> <span style="color:#a6e22e">Messages</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">info</span>: <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">unimportant</span> <span style="color:#a6e22e">stuff</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">debug</span>: <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">less</span> <span style="color:#a6e22e">than</span> <span style="color:#a6e22e">unimportant</span> <span style="color:#a6e22e">stuff</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">verbosity</span> = <span style="color:#a6e22e">mesg</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Define</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">corner</span> <span style="color:#a6e22e">radius</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">window</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">pixel</span> <span style="color:#a6e22e">size</span>. <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">radius</span> <span style="color:#a6e22e">is</span> <span style="color:#ae81ff">0</span>, <span style="color:#a6e22e">you</span> <span style="color:#a6e22e">have</span> <span style="color:#a6e22e">no</span> <span style="color:#a6e22e">rounded</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">corners</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">The</span> <span style="color:#a6e22e">radius</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">automatically</span> <span style="color:#a6e22e">lowered</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">it</span> <span style="color:#a6e22e">exceeds</span> <span style="color:#a6e22e">half</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">the</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">height</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">avoid</span> <span style="color:#a6e22e">clipping</span> <span style="color:#a6e22e">text</span> <span style="color:#a6e22e">and</span>/<span style="color:#a6e22e">or</span> <span style="color:#a6e22e">icons</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">corner_radius</span> = <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> ### <span style="color:#a6e22e">Legacy</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Use</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">Xinerama</span> <span style="color:#a6e22e">extension</span> <span style="color:#a6e22e">instead</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">RandR</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">multi</span>-<span style="color:#a6e22e">monitor</span> <span style="color:#a6e22e">support</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">This</span> <span style="color:#a6e22e">setting</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">provided</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">compatibility</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">older</span> <span style="color:#a6e22e">nVidia</span> <span style="color:#a6e22e">drivers</span> <span style="color:#a6e22e">that</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">do</span> <span style="color:#a6e22e">not</span> <span style="color:#a6e22e">support</span> <span style="color:#a6e22e">RandR</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">using</span> <span style="color:#a6e22e">it</span> <span style="color:#a6e22e">on</span> <span style="color:#a6e22e">systems</span> <span style="color:#a6e22e">that</span> <span style="color:#a6e22e">support</span> <span style="color:#a6e22e">RandR</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">highly</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">discouraged</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">By</span> <span style="color:#a6e22e">enabling</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">setting</span> <span style="color:#a6e22e">dunst</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">not</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">able</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">detect</span> <span style="color:#a6e22e">when</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">monitor</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">connected</span> <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">disconnected</span> <span style="color:#a6e22e">which</span> <span style="color:#a6e22e">might</span> <span style="color:#a6e22e">break</span> <span style="color:#a6e22e">follow</span> <span style="color:#a6e22e">mode</span> <span style="color:#66d9ef">if</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">screen</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">layout</span> <span style="color:#a6e22e">changes</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">force_xinerama</span> = <span style="color:#a6e22e">false</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> ### <span style="color:#a6e22e">mouse</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Defines</span> <span style="color:#a6e22e">action</span> <span style="color:#a6e22e">of</span> <span style="color:#a6e22e">mouse</span> <span style="color:#a6e22e">event</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Possible</span> <span style="color:#a6e22e">values</span> <span style="color:#a6e22e">are</span>:<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">none</span>: <span style="color:#a6e22e">Don</span>&#39;<span style="color:#a6e22e">t</span> <span style="color:#a6e22e">do</span> <span style="color:#a6e22e">anything</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">do_action</span>: <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">notification</span> <span style="color:#a6e22e">has</span> <span style="color:#a6e22e">exactly</span> <span style="color:#a6e22e">one</span> <span style="color:#a6e22e">action</span>, <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">one</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">marked</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">default</span>,<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">invoke</span> <span style="color:#a6e22e">it</span>. <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">there</span> <span style="color:#a6e22e">are</span> <span style="color:#a6e22e">multiple</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">no</span> <span style="color:#a6e22e">default</span>, <span style="color:#a6e22e">open</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">context</span> <span style="color:#a6e22e">menu</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">close_current</span>: <span style="color:#a6e22e">Close</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">notification</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # * <span style="color:#a6e22e">close_all</span>: <span style="color:#a6e22e">Close</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">notifications</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">mouse_left_click</span> = <span style="color:#a6e22e">close_current</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">mouse_middle_click</span> = <span style="color:#a6e22e">do_action</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">mouse_right_click</span> = <span style="color:#a6e22e">close_all</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Experimental</span> <span style="color:#a6e22e">features</span> <span style="color:#a6e22e">that</span> <span style="color:#a6e22e">may</span> <span style="color:#a6e22e">or</span> <span style="color:#a6e22e">may</span> <span style="color:#a6e22e">not</span> <span style="color:#a6e22e">work</span> <span style="color:#a6e22e">correctly</span>. <span style="color:#a6e22e">Do</span> <span style="color:#a6e22e">not</span> <span style="color:#a6e22e">expect</span> <span style="color:#a6e22e">them</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">have</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">consistent</span> <span style="color:#a6e22e">behaviour</span> <span style="color:#a6e22e">across</span> <span style="color:#a6e22e">releases</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>[<span style="color:#a6e22e">experimental</span>]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Calculate</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">dpi</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">use</span> <span style="color:#a6e22e">on</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">per</span>-<span style="color:#a6e22e">monitor</span> <span style="color:#a6e22e">basis</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">If</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">setting</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">enabled</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">Xft</span>.<span style="color:#a6e22e">dpi</span> <span style="color:#a6e22e">value</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">ignored</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">instead</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">dunst</span> <span style="color:#a6e22e">will</span> <span style="color:#a6e22e">attempt</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">calculate</span> <span style="color:#a6e22e">an</span> <span style="color:#a6e22e">appropriate</span> <span style="color:#a6e22e">dpi</span> <span style="color:#a6e22e">value</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">each</span> <span style="color:#a6e22e">monitor</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">using</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">resolution</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">physical</span> <span style="color:#a6e22e">size</span>. <span style="color:#a6e22e">This</span> <span style="color:#a6e22e">might</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">useful</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">setups</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">where</span> <span style="color:#a6e22e">there</span> <span style="color:#a6e22e">are</span> <span style="color:#a6e22e">multiple</span> <span style="color:#a6e22e">screens</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">very</span> <span style="color:#a6e22e">different</span> <span style="color:#a6e22e">dpi</span> <span style="color:#a6e22e">values</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">per_monitor_dpi</span> = <span style="color:#a6e22e">false</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>[<span style="color:#a6e22e">shortcuts</span>]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Shortcuts</span> <span style="color:#a6e22e">are</span> <span style="color:#a6e22e">specified</span> <span style="color:#a6e22e">as</span> [<span style="color:#a6e22e">modifier</span>+][<span style="color:#a6e22e">modifier</span>+]...<span style="color:#a6e22e">key</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Available</span> <span style="color:#a6e22e">modifiers</span> <span style="color:#a6e22e">are</span> <span style="color:#e6db74">&#34;ctrl&#34;</span>, <span style="color:#e6db74">&#34;mod1&#34;</span> (<span style="color:#a6e22e">the</span> <span style="color:#a6e22e">alt</span>-<span style="color:#a6e22e">key</span>), <span style="color:#e6db74">&#34;mod2&#34;</span>,<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#e6db74">&#34;mod3&#34;</span> <span style="color:#a6e22e">and</span> <span style="color:#e6db74">&#34;mod4&#34;</span> (<span style="color:#a6e22e">windows</span>-<span style="color:#a6e22e">key</span>).<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Xev</span> <span style="color:#a6e22e">might</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">helpful</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">find</span> <span style="color:#a6e22e">names</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">keys</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Close</span> <span style="color:#a6e22e">notification</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">close</span> = <span style="color:#a6e22e">ctrl</span>+<span style="color:#a6e22e">space</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Close</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">notifications</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">close_all</span> = <span style="color:#a6e22e">ctrl</span>+<span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">space</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Redisplay</span> <span style="color:#a6e22e">last</span> <span style="color:#a6e22e">message</span>(<span style="color:#a6e22e">s</span>).<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">On</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">US</span> <span style="color:#a6e22e">keyboard</span> <span style="color:#a6e22e">layout</span> <span style="color:#e6db74">&#34;grave&#34;</span> <span style="color:#a6e22e">is</span> <span style="color:#a6e22e">normally</span> <span style="color:#a6e22e">above</span> <span style="color:#a6e22e">TAB</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">of</span> <span style="color:#e6db74">&#34;1&#34;</span>. <span style="color:#a6e22e">Make</span> <span style="color:#a6e22e">sure</span> <span style="color:#a6e22e">this</span> <span style="color:#a6e22e">key</span> <span style="color:#a6e22e">actually</span> <span style="color:#a6e22e">exists</span> <span style="color:#a6e22e">on</span> <span style="color:#a6e22e">your</span> <span style="color:#a6e22e">keyboard</span> <span style="color:#a6e22e">layout</span>,<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">e</span>.<span style="color:#a6e22e">g</span>. <span style="color:#a6e22e">check</span> <span style="color:#a6e22e">output</span> <span style="color:#a6e22e">of</span> <span style="color:#e6db74">&#39;xmodmap -pke&#39;</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">history</span> = <span style="color:#a6e22e">ctrl</span>+<span style="color:#a6e22e">grave</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Context</span> <span style="color:#a6e22e">menu</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">context</span> = <span style="color:#a6e22e">ctrl</span>+<span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">period</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>[<span style="color:#a6e22e">urgency_low</span>]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">IMPORTANT</span>: <span style="color:#a6e22e">colors</span> <span style="color:#a6e22e">have</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">defined</span> <span style="color:#a6e22e">in</span> <span style="color:#a6e22e">quotation</span> <span style="color:#a6e22e">marks</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Otherwise</span> <span style="color:#a6e22e">the</span> <span style="color:#e6db74">&#34;#&#34;</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">following</span> <span style="color:#a6e22e">would</span> <span style="color:#a6e22e">be</span> <span style="color:#a6e22e">interpreted</span> <span style="color:#a6e22e">as</span> <span style="color:#a6e22e">a</span> <span style="color:#a6e22e">comment</span>.<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">background</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;light-black&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">frame_color</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;white&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">foreground</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;light-white&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">timeout</span> = <span style="color:#ae81ff">10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Icon</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">low</span> <span style="color:#a6e22e">urgency</span>, <span style="color:#a6e22e">uncomment</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#a6e22e">icon</span> = <span style="color:#e6db74">/path/</span><span style="color:#a6e22e">to</span>/<span style="color:#a6e22e">icon</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>[<span style="color:#a6e22e">urgency_normal</span>]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">background</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;black&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">frame_color</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;white&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">foreground</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;light-white&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">timeout</span> = <span style="color:#ae81ff">10</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Icon</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">normal</span> <span style="color:#a6e22e">urgency</span>, <span style="color:#a6e22e">uncomment</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#a6e22e">icon</span> = <span style="color:#e6db74">/path/</span><span style="color:#a6e22e">to</span>/<span style="color:#a6e22e">icon</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span>[<span style="color:#a6e22e">urgency_critical</span>]<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">background</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;red&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">foreground</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;light-white&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">frame_color</span> = &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;red&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> <span style="color:#a6e22e">timeout</span> = <span style="color:#ae81ff">0</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> # <span style="color:#a6e22e">Icon</span> <span style="color:#a6e22e">for</span> <span style="color:#a6e22e">notifications</span> <span style="color:#a6e22e">with</span> <span style="color:#a6e22e">critical</span> <span style="color:#a6e22e">urgency</span>, <span style="color:#a6e22e">uncomment</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">enable</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span> #<span style="color:#a6e22e">icon</span> = <span style="color:#e6db74">/path/</span><span style="color:#a6e22e">to</span>/<span style="color:#a6e22e">icon</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h2 id="keynav">keynav</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>keynav</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th>Type</th>
<th>Note</th>
</tr>
</thead>
<tbody>
<tr>
<td>SYMLINK</td>
<td>./config/keynavrc -&gt; .keynavrc</td>
</tr>
</tbody>
</table>
<p>How many times you have been working with keyboard-driven programs and had to use a mouse just to press some pesky little button in a modal window?</p>
<p><a href="https://github.com/jordansissel/keynav">keynav</a> is a program that allows you to control the mouse with the keyboard with the general idea of bisecting the screen to get to the required point. I&rsquo;m still not sure if there is any point in using it, but it&rsquo;s rather funny. Unfortunately, the colors seem to be hardcoded.</p>
<p>One of the usecases I found so far is to use the program to scroll webpages when tridactyl&rsquo;s scroll captures the wrong scroll area.</p>
<p>References:</p>
<ul>
<li><a href="https://github.com/jordansissel/keynav/blob/master/keynav.pod">keynav documentation</a></li>
</ul>
<h3 id="config">Config</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">clear</span> <span style="color:#a6e22e">all</span> <span style="color:#a6e22e">previous</span> <span style="color:#a6e22e">keybindings</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">clear</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Start</span> &amp; <span style="color:#a6e22e">stop</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">ctrl</span>+<span style="color:#a6e22e">semicolon</span> <span style="color:#a6e22e">start</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Super_L</span>+<span style="color:#a6e22e">bracketright</span> <span style="color:#a6e22e">start</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Super_R</span>+<span style="color:#a6e22e">bracketright</span> <span style="color:#a6e22e">start</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Escape</span> <span style="color:#a6e22e">end</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">ctrl</span>+<span style="color:#a6e22e">bracketleft</span> <span style="color:#a6e22e">end</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Macros</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">q</span> <span style="color:#a6e22e">record</span> ~/.<span style="color:#a6e22e">keynav_macros</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">at</span> <span style="color:#a6e22e">playback</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Bisecting</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">a</span> <span style="color:#a6e22e">history</span>-<span style="color:#a6e22e">back</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">h</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">j</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">k</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">l</span> <span style="color:#a6e22e">cut</span>-<span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">t</span> <span style="color:#a6e22e">windowzoom</span> # <span style="color:#a6e22e">Zoom</span> <span style="color:#a6e22e">to</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">current</span> <span style="color:#a6e22e">window</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">c</span> <span style="color:#a6e22e">cursorzoom</span> <span style="color:#ae81ff">300</span> <span style="color:#ae81ff">300</span> # <span style="color:#a6e22e">Limit</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">bisection</span> <span style="color:#a6e22e">area</span> <span style="color:#a6e22e">by</span> <span style="color:#ae81ff">300</span>x<span style="color:#ae81ff">300</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Move</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">bisecting</span> <span style="color:#a6e22e">area</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">h</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">j</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">k</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">l</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">left</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">right</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">Up</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">shift</span>+<span style="color:#a6e22e">Down</span> <span style="color:#a6e22e">move</span>-<span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">Actions</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">space</span> <span style="color:#a6e22e">warp</span>,<span style="color:#a6e22e">click</span> <span style="color:#ae81ff">3</span>,<span style="color:#a6e22e">end</span> # <span style="color:#a6e22e">Right</span> <span style="color:#a6e22e">click</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">warp</span>,<span style="color:#a6e22e">click</span> <span style="color:#ae81ff">1</span>,<span style="color:#a6e22e">end</span> # <span style="color:#a6e22e">Left</span> <span style="color:#a6e22e">click</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">Shift</span>+<span style="color:#a6e22e">Return</span> <span style="color:#a6e22e">warp</span>,<span style="color:#a6e22e">doubleclick</span> <span style="color:#ae81ff">1</span>,<span style="color:#a6e22e">end</span> # <span style="color:#a6e22e">Double</span> <span style="color:#a6e22e">left</span> <span style="color:#a6e22e">click</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">semicolon</span> <span style="color:#a6e22e">warp</span>,<span style="color:#a6e22e">end</span> # <span style="color:#a6e22e">Move</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">cursor</span> <span style="color:#a6e22e">and</span> <span style="color:#a6e22e">exit</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">w</span> <span style="color:#a6e22e">warp</span> # <span style="color:#a6e22e">Just</span> <span style="color:#a6e22e">move</span> <span style="color:#a6e22e">the</span> <span style="color:#a6e22e">cursor</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">e</span> <span style="color:#a6e22e">end</span> # <span style="color:#a6e22e">exit</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">u</span> <span style="color:#a6e22e">warp</span>,<span style="color:#a6e22e">click</span> <span style="color:#ae81ff">4</span> # <span style="color:#a6e22e">scroll</span> <span style="color:#a6e22e">up</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">d</span> <span style="color:#a6e22e">warp</span>,<span style="color:#a6e22e">click</span> <span style="color:#ae81ff">5</span> # <span style="color:#a6e22e">scroll</span> <span style="color:#a6e22e">down</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#ae81ff">1</span> <span style="color:#a6e22e">click</span> <span style="color:#ae81ff">1</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#ae81ff">2</span> <span style="color:#a6e22e">click</span> <span style="color:#ae81ff">2</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#ae81ff">3</span> <span style="color:#a6e22e">click</span> <span style="color:#ae81ff">3</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#ae81ff">4</span> <span style="color:#a6e22e">click</span> <span style="color:#ae81ff">4</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#ae81ff">5</span> <span style="color:#a6e22e">click</span> <span style="color:#ae81ff">5</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h3 id="using-with-picom">Using with picom</h3>
<p>I&rsquo;ve noticed that the program does not play nice with picom&rsquo;s fade effect. To fix that, add the following to you config:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#a6e22e">fade-exclude</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">[
</span><span style="color:#e6db74"> &#34;class_i = &#39;keynav&#39;&#34;,
</span><span style="color:#e6db74"> &#34;class_g = &#39;keynav&#39;&#34;,</span>
<span style="color:#a6e22e">]</span>
</code></pre></div><h2 id="picom">Picom</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>picom</td>
</tr>
</tbody>
</table>
<p><a href="https://github.com/yshui/picom">picom</a> is a compositor for X11. It allows effects such as transparency, blurring, etc.</p>
<p>Sample configuration is a good resource for getting an overview of the available settings. I have only a bunch of necessary settings in mine.</p>
<p>There are a bunch of forks for picom (e.g. <a href="https://github.com/ibhagwan/picom">ibhagwan/picom</a> adds rounded corners) which seem to have some popularity, but I use the base one.</p>
<p>References:</p>
<ul>
<li><a href="https://github.com/yshui/picom/wiki">picom wiki</a></li>
<li><a href="https://wiki.archlinux.org/index.php/Picom">Picom on ArchWiki</a></li>
<li><a href="https://github.com/yshui/picom/blob/next/picom.sample.conf">Sample configuration</a></li>
</ul>
<h3 id="shadows">Shadows</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#a6e22e">shadow</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true;</span>
<span style="color:#a6e22e">shadow-radius</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">2;</span>
<span style="color:#a6e22e">shadow-offset-x</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">-2;</span>
<span style="color:#a6e22e">shadow-offset-y</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">-2;</span>
<span style="color:#a6e22e">shadow-exclude</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">[
</span><span style="color:#e6db74"> &#34;name = &#39;Notification&#39;&#34;,
</span><span style="color:#e6db74"> &#34;class_g = &#39;Conky&#39;&#34;,
</span><span style="color:#e6db74"> &#34;name ?= &#39;cpt_frame_window&#39;&#34;,
</span><span style="color:#e6db74"> &#34;class_g ?= &#39;Notify-osd&#39;&#34;,
</span><span style="color:#e6db74"> &#34;class_g = &#39;Cairo-clock&#39;&#34;,
</span><span style="color:#e6db74"> &#34;_GTK_FRAME_EXTENTS@:c&#34;</span>
<span style="color:#a6e22e">];</span>
</code></pre></div><h3 id="fading">Fading</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#a6e22e">fading</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">fade-in-step</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0.03;</span>
<span style="color:#a6e22e">fade-out-step</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0.03;</span>
<span style="color:#a6e22e">fade-delta</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">10</span>
<span style="color:#a6e22e">fade-exclude</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">[
</span><span style="color:#e6db74"> &#34;class_i = &#39;keynav&#39;&#34;,
</span><span style="color:#e6db74"> &#34;class_g = &#39;keynav&#39;&#34;,</span>
<span style="color:#a6e22e">]</span>
</code></pre></div><h3 id="opacity">Opacity</h3>
<p>I don&rsquo;t use stuff like transparency for inactive windows.</p>
<p>The first 5 lines of <code>opacity-rule</code> make i3wm&rsquo;s hidden windows 100% transparent, so I see the background behind the semi-transparent windows in i3wm&rsquo;s stacked and tabbed layout. Here is <a href="https://unix.stackexchange.com/questions/281131/compton-i3-tabbed-stacked-transparency-background-image">StackExchange question</a> about that.</p>
<p>I also noticed that for some reason it doesn&rsquo;t play well with Emacs&rsquo;s built-in transparency, so the last line sets up Emacs transparency at 90%.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#a6e22e">inactive-opacity</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1;</span>
<span style="color:#a6e22e">frame-opacity</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">1.0;</span>
<span style="color:#a6e22e">inactive-opacity-override</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">false;</span>
<span style="color:#a6e22e">focus-exclude</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">[ &#34;class_g = &#39;Cairo-clock&#39;&#34; ];</span>
<span style="color:#a6e22e">opacity-rule</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">[
</span><span style="color:#e6db74"> &#34;0:_NET_WM_STATE@[0]:32a = &#39;_NET_WM_STATE_HIDDEN&#39;&#34;,
</span><span style="color:#e6db74"> &#34;0:_NET_WM_STATE@[1]:32a = &#39;_NET_WM_STATE_HIDDEN&#39;&#34;,
</span><span style="color:#e6db74"> &#34;0:_NET_WM_STATE@[2]:32a = &#39;_NET_WM_STATE_HIDDEN&#39;&#34;,
</span><span style="color:#e6db74"> &#34;0:_NET_WM_STATE@[3]:32a = &#39;_NET_WM_STATE_HIDDEN&#39;&#34;,
</span><span style="color:#e6db74"> &#34;0:_NET_WM_STATE@[4]:32a = &#39;_NET_WM_STATE_HIDDEN&#39;&#34;,
</span><span style="color:#e6db74"> &#34;90:class_g = &#39;Emacs&#39;&#34;</span>
<span style="color:#a6e22e">];</span>
</code></pre></div><h3 id="general-settings">General settings</h3>
<p>Default general settings. Editing some of these may be neeeded in case of performance issues.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-ini" data-lang="ini"><span style="color:#a6e22e">backend</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;xrender&#34;;</span>
<span style="color:#a6e22e">vsync</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">mark-wmwin-focused</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true;</span>
<span style="color:#a6e22e">mark-ovredir-focused</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true;</span>
<span style="color:#a6e22e">detect-rounded-corners</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true;</span>
<span style="color:#a6e22e">detect-client-opacity</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true;</span>
<span style="color:#a6e22e">refresh-rate</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">0</span>
<span style="color:#a6e22e">detect-transient</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">detect-client-leader</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">use-damage</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">true</span>
<span style="color:#a6e22e">log-level</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">&#34;warn&#34;;</span>
<span style="color:#a6e22e">wintypes:</span>
<span style="color:#a6e22e">{</span>
<span style="color:#a6e22e">tooltip</span> <span style="color:#f92672">=</span> <span style="color:#e6db74">{ fade = true; shadow = true; opacity = 0.75; focus = true; full-shadow = false; };
</span><span style="color:#e6db74"> dock = { shadow = false; }
</span><span style="color:#e6db74"> dnd = { shadow = false; }
</span><span style="color:#e6db74"> popup_menu = { opacity = 1; }
</span><span style="color:#e6db74"> dropdown_menu = { opacity = 1; }</span>
<span style="color:#a6e22e">};</span>
</code></pre></div><h2 id="zathura">Zathura</h2>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>zathura</td>
</tr>
<tr>
<td>zathura-ps</td>
</tr>
<tr>
<td>zathura-pdf-poppler</td>
</tr>
<tr>
<td>zathura-djvu</td>
</tr>
</tbody>
</table>
<p><a href="https://pwmt.org/projects/zathura/">Zathura</a> is a pdf viewer with vim-like keybindings. One of my favorite features is an ability to invert the document colors.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">abort</span>-<span style="color:#a6e22e">clear</span>-<span style="color:#a6e22e">search</span> <span style="color:#a6e22e">false</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">show</span>-<span style="color:#a6e22e">scrollbars</span> <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">show</span>-<span style="color:#a6e22e">h</span>-<span style="color:#a6e22e">scrollbar</span> <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">show</span>-<span style="color:#a6e22e">v</span>-<span style="color:#a6e22e">scrollbar</span> <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">selection</span>-<span style="color:#a6e22e">clipboard</span> <span style="color:#a6e22e">clipboard</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">recolor</span>-<span style="color:#a6e22e">lightcolor</span> &lt;&lt;<span style="color:#a6e22e">get</span>-<span style="color:#a6e22e">color</span>(<span style="color:#a6e22e">name</span>=<span style="color:#e6db74">&#34;black&#34;</span>, <span style="color:#a6e22e">quote</span>=<span style="color:#ae81ff">1</span>)&gt;&gt;<span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> <span style="color:#a6e22e">recolor</span> <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">map</span> &lt;<span style="color:#a6e22e">C</span>-<span style="color:#a6e22e">r</span>&gt; <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">recolor</span> <span style="color:#a6e22e">false</span><span style="color:#960050;background-color:#1e0010">
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">map</span> &lt;<span style="color:#a6e22e">C</span>-<span style="color:#a6e22e">R</span>&gt; <span style="color:#a6e22e">set</span> <span style="color:#a6e22e">recolor</span> <span style="color:#a6e22e">true</span><span style="color:#960050;background-color:#1e0010">
</span></code></pre></div><h2 id="various-software">Various software</h2>
<p>This section generates manifests for various desktop software that I&rsquo;m using.</p>
<h3 id="browsers">Browsers</h3>
<table>
<thead>
<tr>
<th>Category</th>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>browsers</td>
<td>ungoogled-chromium</td>
</tr>
<tr>
<td>browsers</td>
<td>firefox</td>
</tr>
</tbody>
</table>
<h3 id="office">Office</h3>
<table>
<thead>
<tr>
<th>Category</th>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>office</td>
<td>libreoffice</td>
</tr>
<tr>
<td>office</td>
<td>gimp</td>
</tr>
<tr>
<td>office</td>
<td>krita</td>
</tr>
</tbody>
</table>
<h3 id="latex">LaTeX</h3>
<table>
<thead>
<tr>
<th>Category</th>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>latex</td>
<td>texlive</td>
</tr>
<tr>
<td>latex</td>
<td>texlab-bin</td>
</tr>
<tr>
<td>latex</td>
<td>biber</td>
</tr>
<tr>
<td>latex</td>
<td>python-pygments</td>
</tr>
<tr>
<td>latex</td>
<td>font-microsoft-web-core-fonts</td>
</tr>
</tbody>
</table>
<h3 id="dev">Dev</h3>
<table>
<thead>
<tr>
<th>Category</th>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>dev</td>
<td>conda</td>
</tr>
<tr>
<td>dev</td>
<td>docker-compose</td>
</tr>
<tr>
<td>dev</td>
<td>postgresql</td>
</tr>
<tr>
<td>dev</td>
<td>virt-manager</td>
</tr>
<tr>
<td>dev</td>
<td>git-filter-repo</td>
</tr>
<tr>
<td>dev</td>
<td>node</td>
</tr>
<tr>
<td>dev</td>
<td>openjdk</td>
</tr>
<tr>
<td>dev</td>
<td>go</td>
</tr>
</tbody>
</table>
<h3 id="manifests">Manifests</h3>
<p><a id="code-snippet--packages"></a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(my/format-guix-dependencies category)
</code></pre></div><p>Dev</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications-&gt;manifest</span>
<span style="color:#f92672">&#39;</span>(
&lt;&lt;packages(<span style="color:#e6db74">&#34;dev&#34;</span>)&gt;&gt;))
</code></pre></div><p>Browsers</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications-&gt;manifest</span>
<span style="color:#f92672">&#39;</span>(
&lt;&lt;packages(<span style="color:#e6db74">&#34;browsers&#34;</span>)&gt;&gt;))
</code></pre></div><p>Music</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications-&gt;manifest</span>
<span style="color:#f92672">&#39;</span>(
&lt;&lt;packages(<span style="color:#e6db74">&#34;music&#34;</span>)&gt;&gt;))
</code></pre></div><p>Office</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications-&gt;manifest</span>
<span style="color:#f92672">&#39;</span>(
&lt;&lt;packages(<span style="color:#e6db74">&#34;office&#34;</span>)&gt;&gt;))
</code></pre></div><p>LaTeX</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications-&gt;manifest</span>
<span style="color:#f92672">&#39;</span>(
&lt;&lt;packages(<span style="color:#e6db74">&#34;latex&#34;</span>)&gt;&gt;))
</code></pre></div><h3 id="flatpak">Flatpak</h3>
<p>A lot of proprietary desktop applications can be installed most easily with flatpak &amp; flathub.</p>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>flatpak</td>
</tr>
<tr>
<td>xdg-desktop-portal</td>
</tr>
</tbody>
</table>
<p>After installation, add the following repositories:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">flatpak remote-add --user --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak remote-add --user --if-not-exists flathub-beta https://flathub.org/beta-repo/flathub-beta.flatpakrepo
</code></pre></div><p>Installation syntax is as follows:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">flatpak install --user &lt;remote&gt; &lt;package&gt;
</code></pre></div><p>Packages to install:</p>
<p><a id="table--flatpak-deps"></a></p>
<table>
<thead>
<tr>
<th>Flatpak dependency</th>
<th>Channel</th>
</tr>
</thead>
<tbody>
<tr>
<td>com.github.wwmm.pulseeffects</td>
<td>flathub</td>
</tr>
<tr>
<td>com.discordapp.Discord</td>
<td>flathub</td>
</tr>
<tr>
<td>us.zoom.Zoom</td>
<td>flathub</td>
</tr>
<tr>
<td>com.slack.Slack</td>
<td>flathub</td>
</tr>
</tbody>
</table>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(<span style="color:#a6e22e">mapconcat</span>
(lambda (c) (<span style="color:#a6e22e">concat</span> <span style="color:#e6db74">&#34;flatpak install -y --user &#34;</span> (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">1</span> c) <span style="color:#e6db74">&#34; &#34;</span> (<span style="color:#a6e22e">nth</span> <span style="color:#ae81ff">0</span> c)))
table
<span style="color:#e6db74">&#34;\n&#34;</span>)
</code></pre></div><h3 id="nix">Nix</h3>
<table>
<thead>
<tr>
<th>Type</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>TODO</td>
<td>Make nix manifest?</td>
</tr>
</tbody>
</table>
<p>I probably should&rsquo;ve used nix, as almost every program I packaged so far exists in the Nix repo.</p>
<p>But it&rsquo;s easy enough to use Nix on Guix.</p>
<pre><code class="language-conf" data-lang="conf">https://nixos.org/channels/nixpkgs-unstable nixpkgs
</code></pre><p>Don&rsquo;t forget to run the following after the first installation:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">nix-channel --update
</code></pre></div><p>Installing packages:</p>
<pre><code class="language-nil" data-lang="nil">nix-env -i vk-messenger slack
</code></pre><h2 id="services">Services</h2>
<p><a href="https://www.gnu.org/software/shepherd/manual/html%5Fnode/index.html">GNU Shepherd</a> is a service management system for GNU Guix.</p>
<p>I previously used supervisor, but shepherd also seems pretty capable.</p>
<h3 id="music">Music</h3>
<table>
<thead>
<tr>
<th>Category</th>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>music</td>
<td>mpd</td>
</tr>
<tr>
<td>music</td>
<td>ncmpcpp</td>
</tr>
<tr>
<td>music</td>
<td>picard</td>
</tr>
<tr>
<td>music</td>
<td>mpd-watcher</td>
</tr>
<tr>
<td>music</td>
<td>mpd-mpc</td>
</tr>
<tr>
<td>music</td>
<td>shntool</td>
</tr>
<tr>
<td>music</td>
<td>cuetools</td>
</tr>
<tr>
<td>music</td>
<td>flac</td>
</tr>
</tbody>
</table>
<p>Music player daemon</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>mpd
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(mpd)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;mpd&#34;</span> <span style="color:#e6db74">&#34;--no-daemon&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><p>MPD watcher</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>mpd-watcher
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(mpd-watcher)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;mpd_watcher&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)
<span style="color:#f92672">#</span>:requires <span style="color:#f92672">&#39;</span>(mpd)))
</code></pre></div><h3 id="gnu-mcron">GNU Mcron</h3>
<p><a href="https://www.gnu.org/software/mcron/">GNU Mcron</a> is a replacement for cron, written in Scheme.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>mcron
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(mcron)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;mcron&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="activitywatch">ActivityWatch</h3>
<p><a href="https://activitywatch.net/">ActivityWatch</a> is a FOSS time tracker. It tracks screen and application usage and has integrations with browsers, Emacs, etc.</p>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>activitywatch-bin</td>
</tr>
</tbody>
</table>
<p>aw-server</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>aw-server
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(aw-server)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;aw-server&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><p><code>aw-watcher-afk</code> has some problems with statup, so there is a wrapper script</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">sleep <span style="color:#ae81ff">5</span>
aw-watcher-afk
</code></pre></div><p>aw-watcher-afk</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>aw-watcher-afk
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(aw-watcher-afk)
<span style="color:#f92672">#</span>:requires <span style="color:#f92672">&#39;</span>(aw-server)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;/home/pavel/bin/scripts/aw-watcher-afk-wrapper&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><p>aw-watcher-window</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>aw-watcher-window
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(aw-watcher-window)
<span style="color:#f92672">#</span>:requires <span style="color:#f92672">&#39;</span>(aw-server)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;aw-watcher-window&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="pulseeffects">PulseEffects</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>pulseeffects
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(pulseeffects)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;flatpak&#34;</span> <span style="color:#e6db74">&#34;run&#34;</span> <span style="color:#e6db74">&#34;com.github.wwmm.pulseeffects&#34;</span> <span style="color:#e6db74">&#34;--gapplication-service&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="xsettingsd">xsettingsd</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>xsettingsd
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(xsettingsd)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;xsettingsd&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="discord-rich-presence">Discord rich presence</h3>
<p>References:</p>
<ul>
<li><a href="https://github.com/flathub/com.discordapp.Discord/wiki/Rich-Precense-(discord-rpc)">Rich Precense (discord rpc)</a></li>
</ul>
<!--listend-->
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>discord-rich-presence
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(discord-rich-presence)
<span style="color:#f92672">#</span>:one-shot? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-system-constructor</span> <span style="color:#e6db74">&#34;ln -sf {app/com.discordapp.Discord,$XDG_RUNTIME_DIR}/discord-ipc-0&#34;</span>)))
</code></pre></div><h3 id="polkit-authentication-agent">Polkit Authentication agent</h3>
<p>Launch an authentication agent. Necessary for stuff like <code>pkexec</code>. I suspect I&rsquo;m not doing that the intended way, but it seems to work.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>polkit-gnome
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(polkit-gnome)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;/home/pavel/.guix-extra-profiles/desktop/desktop/libexec/polkit-gnome-authentication-agent-1&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="xmodmap">Xmodmap</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>xmodmap
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(xmodmap)
<span style="color:#f92672">#</span>:one-shot? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-system-constructor</span> <span style="color:#e6db74">&#34;xmodmap /home/pavel/.Xmodmap&#34;</span>)))
</code></pre></div><h3 id="vpn">VPN</h3>
<p>Run my <a href="/configs/guix/">OpenVPN setup</a>. Not lauching this automatially, as it requires an active connection.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>vpn
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(vpn)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;/home/pavel/bin/scripts/vpn-start&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="davmail">Davmail</h3>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#66d9ef">define </span>davmail
(<span style="color:#a6e22e">make</span> &lt;service&gt;
<span style="color:#f92672">#</span>:provides <span style="color:#f92672">&#39;</span>(davmail)
<span style="color:#f92672">#</span>:respawn? <span style="color:#66d9ef">#t</span>
<span style="color:#f92672">#</span>:start (<span style="color:#a6e22e">make-forkexec-constructor</span> <span style="color:#f92672">&#39;</span>(<span style="color:#e6db74">&#34;/home/pavel/bin/davmail&#34;</span>))
<span style="color:#f92672">#</span>:stop (<span style="color:#a6e22e">make-kill-destructor</span>)))
</code></pre></div><h3 id="shepherd-config">Shepherd config</h3>
<p>Register services</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">register-services</span>
mpd
mpd-watcher
mcron
aw-server
aw-watcher-afk
aw-watcher-window
pulseeffects
xsettingsd
discord-rich-presence
polkit-gnome
vpn
davmail
xmodmap)
</code></pre></div><p>Daemonize shepherd</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">action</span> <span style="color:#e6db74">&#39;shepherd</span> <span style="color:#e6db74">&#39;daemonize</span>)
</code></pre></div><p>Run services</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(for-each start <span style="color:#f92672">&#39;</span>(mpd mpd-watcher mcron aw-server aw-watcher-afk aw-watcher-window pulseeffects xsettingsd discord-rich-presence polkit-gnome davmail xmodmap))
</code></pre></div><h3 id="sync">Sync</h3>
<table>
<thead>
<tr>
<th>Guix dependency</th>
</tr>
</thead>
<tbody>
<tr>
<td>megacmd-1.4</td>
</tr>
</tbody>
</table>
<h2 id="guix-settings">Guix settings</h2>
<p>Other desktop programs I use are listed below.</p>
<table>
<thead>
<tr>
<th>Guix dependency</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td>xprop</td>
<td>Tool to display properties of X windows</td>
</tr>
<tr>
<td>arandr</td>
<td>GUI to xrandr</td>
</tr>
<tr>
<td>light</td>
<td>Control screen brightness</td>
</tr>
<tr>
<td>ponymix</td>
<td>Control PulseAudio CLI</td>
</tr>
<tr>
<td>pavucontrol</td>
<td>Control PulseAudio GUI</td>
</tr>
<tr>
<td>network-manager-applet</td>
<td>Applet to manage network connections</td>
</tr>
<tr>
<td>feh</td>
<td>Image viewer. Used to set background</td>
</tr>
<tr>
<td>copyq</td>
<td>Clipboard manager</td>
</tr>
<tr>
<td>xmodmap</td>
<td>Program to modify keybindings on X server</td>
</tr>
<tr>
<td>thunar</td>
<td>My preferred GUI file manager</td>
</tr>
<tr>
<td>keepassxc</td>
<td>My preferred password manager</td>
</tr>
<tr>
<td>telegram-desktop</td>
<td>telegram client</td>
</tr>
<tr>
<td>xdg-utils</td>
<td>gives xdg-open and stuff</td>
</tr>
<tr>
<td>gnome-font-viewer</td>
<td>view fonts</td>
</tr>
<tr>
<td>qbittorrent</td>
<td>torrent client</td>
</tr>
<tr>
<td>fontconfig</td>
<td></td>
</tr>
<tr>
<td>polkit-gnome</td>
<td>Polkit authentication agent</td>
</tr>
<tr>
<td>anydesk</td>
<td>Remote desktop software</td>
</tr>
</tbody>
</table>
<p><a id="code-snippet--packages"></a></p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(my/format-guix-dependencies)
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications-&gt;manifest</span>
<span style="color:#f92672">&#39;</span>(
&lt;&lt;packages()&gt;&gt;))
</code></pre></div>
</div>
</div><div id="footer" class="mb-5">
<hr>
<div class="container text-center">
<a href="https://sqrtminusone.xyz/"><small>Pavel Korytov, 2021</small></a>
</div>
</div>
</body>
</html>