mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-10 15:53:03 +03:00
1326 lines
163 KiB
HTML
1326 lines
163 KiB
HTML
<!DOCTYPE html>
|
||
<html lang=""><head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||
|
||
<title>Console</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="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css" integrity="sha512-iBBXm8fW90+nuLcSKlbmrPcLa0OT92xO1BIsZ+ywDWZCvqsWgccV3gFoRBv0z+8dLJgyAHIhR35VZc2oM/gI1w==" crossorigin="anonymous">
|
||
|
||
|
||
<link rel="stylesheet" href="/sass/researcher.min.css">
|
||
|
||
|
||
<link rel="icon" type="image/ico" href="https://sqrtminusone.xyz/favicon.ico">
|
||
|
||
|
||
<script defer data-domain="sqrtminusone.xyz" src="https://plausible.sqrtminusone.xyz/js/plausible.js"></script>
|
||
|
||
</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/" title="SqrtMinusOne">
|
||
|
||
SqrtMinusOne
|
||
</a>
|
||
<div class="navbar-nav flex-row flex-wrap justify-content-center">
|
||
|
||
|
||
|
||
<a class="nav-item nav-link" href="/" title="Index">
|
||
Index
|
||
</a>
|
||
|
||
<span class="nav-item navbar-text mx-1">/</span>
|
||
|
||
|
||
<a class="nav-item nav-link" href="/posts/" title="Posts">
|
||
Posts
|
||
</a>
|
||
|
||
<span class="nav-item navbar-text mx-1">/</span>
|
||
|
||
|
||
<a class="nav-item nav-link" href="/configs/readme" title="Configs">
|
||
Configs
|
||
</a>
|
||
|
||
<span class="nav-item navbar-text mx-1">/</span>
|
||
|
||
|
||
<a class="nav-item nav-link" href="/emacs-packages/" title="Emacs packages">
|
||
Emacs packages
|
||
</a>
|
||
|
||
|
||
|
||
</div>
|
||
</nav>
|
||
</div>
|
||
<hr>
|
||
<div id="content">
|
||
<script defer language="javascript" type="text/javascript" src="/js/dynamic-toc.js"></script>
|
||
<div class="root">
|
||
<h1 id="title-small-screen">
|
||
Console
|
||
<iframe src="https://ghbtns.com/github-btn.html?user=SqrtMinusOne&repo=dotfiles&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe>
|
||
</h1>
|
||
<div class="container" id="actual-content">
|
||
<h1 id="title-large-screen" class="dotfiles-title">
|
||
Console
|
||
<iframe src="https://ghbtns.com/github-btn.html?user=SqrtMinusOne&repo=dotfiles&type=star&count=true" frameborder="0" scrolling="0" width="150" height="20" title="GitHub"></iframe>
|
||
</h1>
|
||
<blockquote>
|
||
<p>No matter from which side you approach penguins, more always come from behind</p>
|
||
</blockquote>
|
||
<ul>
|
||
<li>A friend of mine</li>
|
||
</ul>
|
||
<h2 id="colors">Colors</h2>
|
||
<p>Noweb function to get colors.</p>
|
||
<p><a id="code-snippet--get-color"></a></p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">let</span> ((<span style="color:#19177c">color</span> (<span style="color:#008000">or</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">name</span>))))
|
||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#00f">></span> <span style="color:#008000">quote</span> <span style="color:#666">0</span>)
|
||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#ba2121">"\""</span> <span style="color:#19177c">color</span> <span style="color:#ba2121">"\""</span>)
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">color</span>))
|
||
</span></span></code></pre></div><p><a id="code-snippet--get-fg-for-color"></a></p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">let</span> ((<span style="color:#19177c">val</span> (<span style="color:#008000">if</span> (<span style="color:#19177c">ct-light-p</span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">name</span>))
|
||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">'black</span>)
|
||
</span></span><span style="display:flex;"><span> (<span style="color:#19177c">my/color-value</span> <span style="color:#19177c">'white</span>))))
|
||
</span></span><span style="display:flex;"><span> (<span style="color:#008000">if</span> (<span style="color:#00f">eq</span> <span style="color:#008000">quote</span> <span style="color:#666">1</span>)
|
||
</span></span><span style="display:flex;"><span> (<span style="color:#00f">concat</span> <span style="color:#ba2121">"\""</span> <span style="color:#19177c">val</span> <span style="color:#ba2121">"\""</span>)
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">val</span>))
|
||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#008000">setq-local</span> <span style="color:#19177c">org-confirm-babel-evaluate</span> <span style="color:#800">nil</span>)
|
||
</span></span></code></pre></div><h2 id="dot-profile"><code>.profile</code></h2>
|
||
<h3 id="environment">Environment</h3>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">QT_QPA_PLATFORMTHEME</span><span style="color:#666">=</span><span style="color:#ba2121">"qt5ct"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">QT_AUTO_SCREEN_SCALE_FACTOR</span><span style="color:#666">=</span><span style="color:#666">0</span>
|
||
</span></span></code></pre></div><p>Set ripgrep config path</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">RIPGREP_CONFIG_PATH</span><span style="color:#666">=</span><span style="color:#19177c">$HOME</span>/.config/ripgrep/ripgreprc
|
||
</span></span></code></pre></div><p>hledger path</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">LEDGER_FILE</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/30-39 Life/32 org-mode/ledger/ledger.journal"</span>
|
||
</span></span></code></pre></div><p>Checking if running inside termux</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">command</span> -v termux-setup-storage > /dev/null; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">IS_ANDROID</span><span style="color:#666">=</span><span style="color:#008000">true</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#666">[[</span> -f ~/.android_profile <span style="color:#666">]]</span> <span style="color:#666">&&</span> . ~/.android_profile
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Timezone</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># TZ='Asia/Karachi'; export TZ</span>
|
||
</span></span></code></pre></div><p>Turn off Guix</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -f <span style="color:#ba2121">"/home/pavel/.no-guix"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">NO_GUIX</span><span style="color:#666">=</span><span style="color:#008000">true</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span><span style="color:#008000">echo</span> <span style="color:#19177c">$PATH</span> | tr <span style="color:#ba2121">":"</span> <span style="color:#ba2121">"\n"</span> | grep -vE <span style="color:#ba2121">"guix|nix|gnu"</span> | tr <span style="color:#ba2121">"\n"</span> <span style="color:#ba2121">":"</span><span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h3 id="my-paths">My paths</h3>
|
||
<p>My script folders</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/bin"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/bin/scripts:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.local/bin"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.local/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h3 id="ssl-certs">SSL Certs</h3>
|
||
<p>This seems necessary when running Guix on a foreign distro.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.guix-extra-profiles"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">SSL_CERT_DIR</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.guix-extra-profiles/system/system/etc/ssl/certs/"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">SSL_CERT_FILE</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.guix-extra-profiles/system/system/etc/ssl/certs/ca-certificates.crt"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">GIT_SSL_CAINFO</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$SSL_CERT_FILE</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">CURL_CA_BUNDLE</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$SSL_CERT_FILE</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h3 id="ssh-agent">ssh-agent</h3>
|
||
<p>I’m paranoid so I encrypt my SSH keys.</p>
|
||
<p>Got the idea for below from <a href="https://wiki.archlinux.org/title/SSH_keys#SSH_agents">ArchWiki</a>:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#19177c">SSH_AGENT_DIR</span><span style="color:#666">=</span><span style="color:#ba2121">"/tmp"</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$IS_ANDROID</span><span style="color:#ba2121">"</span> <span style="color:#666">==</span> <span style="color:#ba2121">"true"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">SSH_AGENT_DIR</span><span style="color:#666">=</span><span style="color:#ba2121">"/data/data/com.termux/files/tmp"</span>
|
||
</span></span><span style="display:flex;"><span> mkdir -p <span style="color:#19177c">$SSH_AGENT_DIR</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> ! pgrep -u <span style="color:#ba2121">"</span><span style="color:#19177c">$USER</span><span style="color:#ba2121">"</span> ssh-agent > /dev/null; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> ssh-agent -t 1h > <span style="color:#ba2121">"</span><span style="color:#19177c">$SSH_AGENT_DIR</span><span style="color:#ba2121">/ssh-agent.env"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> ! -f <span style="color:#ba2121">"</span><span style="color:#19177c">$SSH_AUTH_SOCK</span><span style="color:#ba2121">"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">source</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$SSH_AGENT_DIR</span><span style="color:#ba2121">/ssh-agent.env"</span> >/dev/null
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h3 id="guix-settings">Guix settings</h3>
|
||
<p>Enable extra profiles</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$IS_ANDROID</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$NO_GUIX</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">GUIX_EXTRA_PROFILES</span><span style="color:#666">=</span><span style="color:#19177c">$HOME</span>/.guix-extra-profiles
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">for</span> i in <span style="color:#19177c">$GUIX_EXTRA_PROFILES</span>/*; <span style="color:#008000;font-weight:bold">do</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">profile</span><span style="color:#666">=</span><span style="color:#19177c">$i</span>/<span style="color:#008000;font-weight:bold">$(</span>basename <span style="color:#ba2121">"</span><span style="color:#19177c">$i</span><span style="color:#ba2121">"</span><span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -f <span style="color:#ba2121">"</span><span style="color:#19177c">$profile</span><span style="color:#ba2121">"</span>/etc/profile <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">GUIX_PROFILE</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$profile</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> . <span style="color:#ba2121">"</span><span style="color:#19177c">$GUIX_PROFILE</span><span style="color:#ba2121">"</span>/etc/profile
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$profile</span><span style="color:#ba2121">"</span>/share/man <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">command</span> -v manpath >/dev/null 2>/dev/null; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">MANPATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">MANPATH</span><span style="color:#008000;font-weight:bold">:-$(</span>manpath<span style="color:#008000;font-weight:bold">)</span><span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">:</span><span style="color:#19177c">$profile</span><span style="color:#ba2121">/share/man"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">MANPATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">MANPATH</span><span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">:</span><span style="color:#19177c">$profile</span><span style="color:#ba2121">/share/man"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">XDG_DATA_DIRS</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$XDG_DATA_DIRS</span><span style="color:#ba2121">:</span><span style="color:#19177c">$profile</span><span style="color:#ba2121">/share"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">unset</span> profile
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">done</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Set Jupyter config PATH. It defaults to readonly directory somewhere in Guix profile.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">JUPYTER_CONFIG_DIR</span><span style="color:#666">=</span><span style="color:#19177c">$HOME</span>/.config/jupyter
|
||
</span></span></code></pre></div><p>Set a folder for my packages.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">GUIX_PACKAGE_PATH</span><span style="color:#666">=</span>~/guix-packages
|
||
</span></span></code></pre></div><p>Locale settings</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">GUIX_LOCPATH</span><span style="color:#666">=</span><span style="color:#19177c">$HOME</span>/.guix-extra-profiles/console/console/lib/locale
|
||
</span></span></code></pre></div><p>Somehow LibreOffice doesn’t work without the following:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">GIO_EXTRA_MODULES</span><span style="color:#666">=</span><span style="color:#ba2121">""</span>
|
||
</span></span></code></pre></div><h3 id="other-package-managers">Other package managers</h3>
|
||
<p>Using other package managers with Guix requires some extra work.</p>
|
||
<p>Cask</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.cask"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/.cask/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Make flatpak apps visible to launchers:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.local/share/flatpak"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">XDG_DATA_DIRS</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$XDG_DATA_DIRS</span><span style="color:#ba2121">:</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.local/share/flatpak/exports/share"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Enable Nix</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -f /run/current-system/profile/etc/profile.d/nix.sh <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$NO_GUIX</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> . /run/current-system/profile/etc/profile.d/nix.sh
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -e /home/pavel/.nix-profile/etc/profile.d/nix.sh <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$NO_GUIX</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span> . /home/pavel/.nix-profile/etc/profile.d/nix.sh; <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Use Guix fontconfig. Necessary for nix apps</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.guix-extra-profiles/desktop-misc"</span> <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$NO_GUIX</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">FONTCONFIG_PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.guix-extra-profiles/desktop-misc/desktop-misc/etc/fonts"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Make nix apps visible to launchers:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.nix-profile"</span> <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$NO_GUIX</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">XDG_DATA_DIRS</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$XDG_DATA_DIRS</span><span style="color:#ba2121">:</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.nix-profile/share/applications"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Gradle:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/bin/gradle/gradle-9.0.0"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/bin/gradle/gradle-9.0.0/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h4 id="npm">npm</h4>
|
||
<p>npm is especially cumbersome, for instance because by default it tries to install packages to <code>/gnu/store/</code>.</p>
|
||
<p>In principle, one can set a prefix like this:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-cfg" data-lang="cfg"><span style="display:flex;"><span><span style="color:#7d9029">prefix</span><span style="color:#666">=</span><span style="color:#ba2121">/home/pavel/.npm-packages</span>
|
||
</span></span></code></pre></div><p>But I also want to use node from conda occasionally, where prefix is already set correctly. So instead of tangling the above to the <code>~/.npmrc</code> directly, I set an environment variable in the profile:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">NPM_CONFIG_USERCONFIG</span><span style="color:#666">=</span><span style="color:#19177c">$HOME</span>/._npmrc
|
||
</span></span></code></pre></div><p>The variable is unset in a script in <a href="/configs/guix/#micromamba">Guix.org</a>.</p>
|
||
<p>Set PATH & MANPATH</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#19177c">NPM_PACKAGES</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">HOME</span><span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">/.npm-packages"</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">:</span><span style="color:#19177c">$NPM_PACKAGES</span><span style="color:#ba2121">/bin"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">MANPATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">MANPATH</span><span style="color:#008000;font-weight:bold">:-$(</span>manpath<span style="color:#008000;font-weight:bold">)</span><span style="color:#b68;font-weight:bold">}</span><span style="color:#ba2121">:</span><span style="color:#19177c">$NPM_PACKAGES</span><span style="color:#ba2121">/share/man"</span>
|
||
</span></span></code></pre></div><h3 id="xresources">XResources</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>xrdb</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$IS_ANDROID</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> xrdb ~/.Xresources
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h3 id="off--package-manager-paths"><span class="org-todo done OFF">OFF</span> (OFF) Package manager paths</h3>
|
||
<p>Turned off for now, because probably it won’t be necessary in Guix.</p>
|
||
<p>LaTeX</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"/usr/local/texlive/2020"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">MANPATH</span><span style="color:#666">=</span><span style="color:#ba2121">"/usr/local/texlive/2020/texmf-dist/doc/man:</span><span style="color:#19177c">$MANPATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">INFOPATH</span><span style="color:#666">=</span><span style="color:#ba2121">"/usr/local/texlive/2020/texmf-dist/doc/info:</span><span style="color:#19177c">$INFOPATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"/usr/local/texlive/2020/bin/x86_64-linux:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Cargo (Rust)</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.cargo"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.cargo/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>RVM (Ruby)</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.rvm"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">:</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/.rvm/bin"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># if [ -d "$HOME/.gem" ]; then</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># fi</span>
|
||
</span></span></code></pre></div><p>Go</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/go"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/go/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>ghcup (Haskell)</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#666">[</span> -f <span style="color:#ba2121">"/home/pavel/.ghcup/env"</span> <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#008000">source</span> <span style="color:#ba2121">"/home/pavel/.ghcup/env"</span> <span style="color:#408080;font-style:italic"># ghcup-env</span>
|
||
</span></span></code></pre></div><p>Perl</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"</span><span style="color:#19177c">$HOME</span><span style="color:#ba2121">/perl5"</span> <span style="color:#666">]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/perl5/bin</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">PATH</span>:+:<span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">PATH</span><span style="color:#b68;font-weight:bold">}}</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PERL5LIB</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/perl5/lib/perl5</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">PERL5LIB</span>:+:<span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">PERL5LIB</span><span style="color:#b68;font-weight:bold">}}</span><span style="color:#ba2121">"</span>; <span style="color:#008000">export</span> PERL5LIB;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PERL_LOCAL_LIB_ROOT</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/perl5</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">PERL_LOCAL_LIB_ROOT</span>:+:<span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">PERL_LOCAL_LIB_ROOT</span><span style="color:#b68;font-weight:bold">}}</span><span style="color:#ba2121">"</span>; <span style="color:#008000">export</span> PERL_LOCAL_LIB_ROOT;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PERL_MB_OPT</span><span style="color:#666">=</span><span style="color:#ba2121">"--install_base \"/home/pavel/perl5\""</span>; <span style="color:#008000">export</span> PERL_MB_OPT;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PERL_MM_OPT</span><span style="color:#666">=</span><span style="color:#ba2121">"INSTALL_BASE=/home/pavel/perl5"</span>; <span style="color:#008000">export</span> PERL_MM_OPT;
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h2 id="bash">Bash</h2>
|
||
<h3 id="dot-bash-profile"><code>.bash_profile</code></h3>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#666">[[</span> -f ~/.profile <span style="color:#666">]]</span> <span style="color:#666">&&</span> . ~/.profile
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">[[</span> -f ~/.bashrc <span style="color:#666">]]</span> <span style="color:#666">&&</span> . ~/.bashrc
|
||
</span></span></code></pre></div><h3 id="dot-bashrc"><code>.bashrc</code></h3>
|
||
<p>My <code>.bashrc</code>, which has pieces from the default one in Guix & Manjaro, as well some mine settings.</p>
|
||
<h4 id="startup-and-environment">Startup & environment</h4>
|
||
<p>Export ‘SHELL’ to child processes. Programs such as ‘screen’ honor it and otherwise use /bin/sh.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000">export</span> SHELL
|
||
</span></span></code></pre></div><p>We are being invoked from a non-interactive shell. If this is an SSH session (as in “ssh host command”), source /etc/profile, so we get PATH and other essential variables.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#19177c">$-</span> !<span style="color:#666">=</span> *i* <span style="color:#666">]]</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#666">[[</span> -n <span style="color:#ba2121">"</span><span style="color:#19177c">$SSH_CLIENT</span><span style="color:#ba2121">"</span> <span style="color:#666">&&</span> -f <span style="color:#ba2121">"/etc/bashrc"</span> <span style="color:#666">]]</span> <span style="color:#666">&&</span> <span style="color:#008000">source</span> /etc/profile
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">return</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>If <code>termux-setup-storage</code> is available, then we’re running inside termux. It is necessary to source <code>~/.profile</code> manually.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">command</span> -v termux-setup-storage > /dev/null; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$IS_ANDROID</span><span style="color:#ba2121">"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">source</span> ~/.profile
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>Source the system-wide file</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> -f <span style="color:#ba2121">"/etc/bashrc"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">source</span> /etc/bashrc
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>xhost</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Allow other users to access X server. Necessary for stuff like aw-watcher-window.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>xhost +local:root > /dev/null 2>&<span style="color:#666">1</span>
|
||
</span></span></code></pre></div><p>Set manpager to bat</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># export MANPAGER="sh -c 'sed -e s/.\\\\x08//g | bat -l man -p'"</span>
|
||
</span></span></code></pre></div><p><a href="https://codeberg.org/akib/emacs-eat">eat</a> integration</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#666">[</span> -n <span style="color:#ba2121">"</span><span style="color:#19177c">$EAT_SHELL_INTEGRATION_DIR</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span> <span style="color:#666">&&</span> <span style="color:#008000">source</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$EAT_SHELL_INTEGRATION_DIR</span><span style="color:#ba2121">/bash"</span>
|
||
</span></span></code></pre></div><h4 id="launch-fish">Launch fish</h4>
|
||
<p>Launch fish shell unless bash itself is launched from fish.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#19177c">use_fish</span><span style="color:#666">=</span><span style="color:#008000">true</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#008000;font-weight:bold">$(</span>ps --no-header --pid<span style="color:#666">=</span><span style="color:#19177c">$PPID</span> --format<span style="color:#666">=</span>cmd<span style="color:#008000;font-weight:bold">)</span> !<span style="color:#666">=</span> <span style="color:#ba2121">"fish"</span> <span style="color:#666">&&</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">use_fish</span><span style="color:#b68;font-weight:bold">}</span> <span style="color:#666">&&</span> <span style="color:#008000;font-weight:bold">$(</span><span style="color:#008000">command</span> -v fish<span style="color:#008000;font-weight:bold">)</span> <span style="color:#666">]]</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">exec</span> fish
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p>The rest of <code>.bashrc</code> is not executed if fish was launched.</p>
|
||
<h4 id="colors-1">Colors</h4>
|
||
<p>Setting for colors, packed in the default <code>.bashrc</code> in Manjaro</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#19177c">use_color</span><span style="color:#666">=</span><span style="color:#008000">true</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># Set colorful PS1 only on colorful terminals.</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># dircolors --print-database uses its own built-in database</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># instead of using /etc/DIR_COLORS. Try to use the external file</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># first to take advantage of user additions. Use internal bash</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># globbing instead of external grep binary.</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">safe_term</span><span style="color:#666">=</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">TERM</span>//[^[:<span style="color:#19177c">alnum</span>:]]/?<span style="color:#b68;font-weight:bold">}</span> <span style="color:#408080;font-style:italic"># sanitize TERM</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">match_lhs</span><span style="color:#666">=</span><span style="color:#ba2121">""</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">[[</span> -f ~/.dir_colors <span style="color:#666">]]</span> <span style="color:#666">&&</span> <span style="color:#19177c">match_lhs</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">match_lhs</span><span style="color:#b68;font-weight:bold">}</span><span style="color:#008000;font-weight:bold">$(</span><~/.dir_colors<span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">[[</span> -f /etc/DIR_COLORS <span style="color:#666">]]</span> <span style="color:#666">&&</span> <span style="color:#19177c">match_lhs</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">match_lhs</span><span style="color:#b68;font-weight:bold">}</span><span style="color:#008000;font-weight:bold">$(</span></etc/DIR_COLORS<span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">[[</span> -z <span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">match_lhs</span><span style="color:#b68;font-weight:bold">}</span> <span style="color:#666">]]</span> <span style="color:#b62;font-weight:bold">\
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#b62;font-weight:bold"></span> <span style="color:#666">&&</span> <span style="color:#008000">type</span> -P dircolors >/dev/null <span style="color:#b62;font-weight:bold">\
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#b62;font-weight:bold"></span> <span style="color:#666">&&</span> <span style="color:#19177c">match_lhs</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>dircolors --print-database<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">[[</span> <span style="color:#ba2121">$'\n'</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">match_lhs</span><span style="color:#b68;font-weight:bold">}</span> <span style="color:#666">==</span> *<span style="color:#ba2121">$'\n'</span><span style="color:#ba2121">"TERM "</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">safe_term</span><span style="color:#b68;font-weight:bold">}</span>* <span style="color:#666">]]</span> <span style="color:#666">&&</span> <span style="color:#19177c">use_color</span><span style="color:#666">=</span><span style="color:#008000">true</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">use_color</span><span style="color:#b68;font-weight:bold">}</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic"># Enable colors for ls, etc. Prefer ~/.dir_colors #64489</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">type</span> -P dircolors >/dev/null ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> -f ~/.dir_colors <span style="color:#666">]]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">eval</span> <span style="color:#008000;font-weight:bold">$(</span>dircolors -b ~/.dir_colors<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">elif</span> <span style="color:#666">[[</span> -f /etc/DIR_COLORS <span style="color:#666">]]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">eval</span> <span style="color:#008000;font-weight:bold">$(</span>dircolors -b /etc/DIR_COLORS<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">EUID</span><span style="color:#b68;font-weight:bold">}</span> <span style="color:#666">==</span> <span style="color:#666">0</span> <span style="color:#666">]]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PS1</span><span style="color:#666">=</span><span style="color:#ba2121">'\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PS1</span><span style="color:#666">=</span><span style="color:#ba2121">'\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">ls</span><span style="color:#666">=</span><span style="color:#ba2121">'ls --color=auto'</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">grep</span><span style="color:#666">=</span><span style="color:#ba2121">'grep --colour=auto'</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">egrep</span><span style="color:#666">=</span><span style="color:#ba2121">'egrep --colour=auto'</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">fgrep</span><span style="color:#666">=</span><span style="color:#ba2121">'fgrep --colour=auto'</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">EUID</span><span style="color:#b68;font-weight:bold">}</span> <span style="color:#666">==</span> <span style="color:#666">0</span> <span style="color:#666">]]</span> ; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic"># show root@ when we don't have colors</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PS1</span><span style="color:#666">=</span><span style="color:#ba2121">'\u@\h \W \$ '</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">PS1</span><span style="color:#666">=</span><span style="color:#ba2121">'\u@\h \w \$ '</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">unset</span> use_color safe_term match_lhs sh
|
||
</span></span></code></pre></div><h4 id="settings">Settings</h4>
|
||
<p>Some general bash settings.</p>
|
||
<p>References:</p>
|
||
<ul>
|
||
<li><a href="https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html">shopt list</a></li>
|
||
</ul>
|
||
<!--listend-->
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000">complete</span> -cf sudo <span style="color:#408080;font-style:italic"># Sudo autocompletion</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">shopt</span> -s checkwinsize <span style="color:#408080;font-style:italic"># Check windows size after each command</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">shopt</span> -s expand_aliases <span style="color:#408080;font-style:italic"># Aliases</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">shopt</span> -s autocd <span style="color:#408080;font-style:italic"># Cd to directory just by typing its name (without cd)</span>
|
||
</span></span></code></pre></div><p>History control</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000">shopt</span> -s histappend
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">HISTCONTROL</span><span style="color:#666">=</span>ignoredups:erasedups
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">HISTSIZE</span><span style="color:#666">=</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">HISTFILESIZE</span><span style="color:#666">=</span>
|
||
</span></span></code></pre></div><p>Autocompletions</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#666">[</span> -r /usr/share/bash-completion/bash_completion <span style="color:#666">]</span> <span style="color:#666">&&</span> . /usr/share/bash-completion/bash_completion
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -d <span style="color:#ba2121">"/usr/share/fzf"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">source</span> /usr/share/fzf/completion.bash
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">source</span> /usr/share/fzf/key-bindings.bash
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h4 id="aliases">Aliases</h4>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000">alias</span> <span style="color:#19177c">v</span><span style="color:#666">=</span><span style="color:#ba2121">"vim"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">command</span> -v exa > /dev/null; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">ls</span><span style="color:#666">=</span><span style="color:#ba2121">"exa --icons"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">ll</span><span style="color:#666">=</span><span style="color:#ba2121">"exa -lah --icons"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">ll</span><span style="color:#666">=</span><span style="color:#ba2121">'ls -lah'</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias</span> <span style="color:#19177c">q</span><span style="color:#666">=</span><span style="color:#ba2121">"exit"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias</span> <span style="color:#19177c">c</span><span style="color:#666">=</span><span style="color:#ba2121">"clear"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias</span> <span style="color:#19177c">ci</span><span style="color:#666">=</span><span style="color:#ba2121">"init_mamba"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias</span> <span style="color:#19177c">ca</span><span style="color:#666">=</span><span style="color:#ba2121">"micromamba activate"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias</span> <span style="color:#19177c">cii</span><span style="color:#666">=</span><span style="color:#ba2121">"export INIT_MAMBA=true && init_mamba"</span>
|
||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> ! -z <span style="color:#ba2121">"</span><span style="color:#19177c">$SIMPLE</span><span style="color:#ba2121">"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">unalias</span> ls
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias</span> <span style="color:#19177c">ll</span><span style="color:#666">=</span><span style="color:#ba2121">"ls -lah"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h4 id="micromamba">Micromamba</h4>
|
||
<p>I’ve moved from conda to <a href="https://github.com/mamba-org/mamba">micromamba</a> because it’s faster.</p>
|
||
<blockquote>
|
||
<p>managed by ‘mamba init’ !!!</p>
|
||
</blockquote>
|
||
<p>Yeah, tell this to yourself</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>init_mamba <span style="color:#666">()</span> <span style="color:#666">{</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">MAMBA_EXE</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/.guix-extra-profiles/dev/dev/bin/micromamba"</span>;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">MAMBA_ROOT_PREFIX</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/micromamba"</span>;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">__mamba_setup</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#008000;font-weight:bold">$(</span><span style="color:#ba2121">"</span><span style="color:#19177c">$MAMBA_EXE</span><span style="color:#ba2121">"</span> shell hook --shell bash --prefix <span style="color:#ba2121">"</span><span style="color:#19177c">$MAMBA_ROOT_PREFIX</span><span style="color:#ba2121">"</span> 2> /dev/null<span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> <span style="color:#19177c">$?</span> -eq <span style="color:#666">0</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">eval</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$__mamba_setup</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -f <span style="color:#ba2121">"/home/pavel/micromamba/etc/profile.d/micromamba.sh"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> . <span style="color:#ba2121">"/home/pavel/micromamba/etc/profile.d/micromamba.sh"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">export</span> <span style="color:#19177c">PATH</span><span style="color:#666">=</span><span style="color:#ba2121">"/home/pavel/micromamba/bin:</span><span style="color:#19177c">$PATH</span><span style="color:#ba2121">"</span> <span style="color:#408080;font-style:italic"># extra space after export prevents interference from conda init</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">unset</span> __mamba_setup
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> ! -z <span style="color:#ba2121">"</span><span style="color:#19177c">$INIT_MAMBA</span><span style="color:#ba2121">"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> init_mamba
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h4 id="starship">Starship</h4>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> -z <span style="color:#ba2121">"</span><span style="color:#19177c">$SIMPLE</span><span style="color:#ba2121">"</span> <span style="color:#666">&&</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$TERM</span><span style="color:#ba2121">"</span> !<span style="color:#666">=</span> <span style="color:#ba2121">"dumb"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">eval</span> <span style="color:#ba2121">"</span><span style="color:#008000;font-weight:bold">$(</span>starship init bash<span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h4 id="yandex-cloud">Yandex Cloud</h4>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>init_yc <span style="color:#666">()</span> <span style="color:#666">{</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic"># The next line updates PATH for Yandex Cloud CLI.</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -f <span style="color:#ba2121">'/home/pavel/yandex-cloud/path.bash.inc'</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span> <span style="color:#008000">source</span> <span style="color:#ba2121">'/home/pavel/yandex-cloud/path.bash.inc'</span>; <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#408080;font-style:italic"># The next line enables shell command completion for yc.</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> -f <span style="color:#ba2121">'/home/pavel/yandex-cloud/completion.bash.inc'</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span> <span style="color:#008000">source</span> <span style="color:#ba2121">'/home/pavel/yandex-cloud/completion.bash.inc'</span>; <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
|
||
</span></span></code></pre></div><h2 id="fish">Fish</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>fish</td>
|
||
<td>An alternative non POSIX-compliant shell</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><a href="https://fishshell.com/">Fish shell</a> is a non-POSIX-compliant shell, which offers some fancy UI & UX features.</p>
|
||
<p>Launch starship</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$TERM</span><span style="color:#ba2121">"</span> !<span style="color:#666">=</span> <span style="color:#ba2121">"dumb"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">and</span> <span style="color:#008000">type</span> <span style="color:#7d9029">-q</span> starship;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">starship</span> init <span style="color:#008000">fish</span> <span style="color:#666">|</span> <span style="color:#008000">source
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#008000"></span><span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">function</span> <span style="color:#008000">fish_prompt</span> <span style="color:#7d9029">-d</span> <span style="color:#ba2121">"Write out the prompt"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">printf</span> <span style="color:#ba2121">'%s@%s %s%s%s > '</span> <span style="color:#19177c">$USER</span> <span style="color:#19177c">$hostname</span> <span style="color:#b62;font-weight:bold">\
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#b62;font-weight:bold"></span> <span style="color:#666">(</span><span style="color:#008000">set_color</span> <span style="color:#19177c">$fish_color_cwd</span><span style="color:#666">)</span> <span style="color:#666">(</span><span style="color:#00f">basename</span> <span style="color:#666">(</span><span style="color:#00f">pwd</span><span style="color:#666">))</span> <span style="color:#666">(</span><span style="color:#008000">set_color </span>normal<span style="color:#666">)</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span></code></pre></div><p>Enable vi keybindings & aliases. The alias syntax is the same as in bash, so it’s just a noweb reference to <code>.bashrc</code>.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$IS_VTERM</span><span style="color:#ba2121">"</span> !<span style="color:#666">=</span> <span style="color:#ba2121">"1"</span> <span style="color:#666">]</span>;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">fish_vi_key_bindings</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">fish_default_key_bindings</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias </span><span style="color:#19177c">q</span><span style="color:#666">=</span><span style="color:#ba2121">"exit"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias </span><span style="color:#19177c">c</span><span style="color:#666">=</span><span style="color:#ba2121">"clear"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">type</span> <span style="color:#7d9029">-q</span> exa
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias </span><span style="color:#19177c">ls</span><span style="color:#666">=</span><span style="color:#ba2121">"exa --icons"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias </span><span style="color:#19177c">ll</span><span style="color:#666">=</span><span style="color:#ba2121">"exa -lah --icons"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">alias </span><span style="color:#19177c">ll</span><span style="color:#666">=</span><span style="color:#ba2121">"ls -h"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span></code></pre></div><table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>dt-colorscripts</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Launch a random <a href="https://gitlab.com/dwt1/shell-color-scripts">DT’s colorscript</a> unless ran inside tmux or Emacs.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> ! test <span style="color:#7d9029">-n</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$TMUX</span><span style="color:#ba2121">"</span>; <span style="color:#008000;font-weight:bold">and</span> ! test <span style="color:#7d9029">-n</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$IS_EMACS</span><span style="color:#ba2121">"</span>; <span style="color:#008000;font-weight:bold">and</span> <span style="color:#008000">type</span> <span style="color:#7d9029">-q</span> colorscript
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">colorscript</span> <span style="color:#008000">random
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#008000"></span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span></code></pre></div><p>Suppress fish greeting</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#008000">fish_greeting</span>
|
||
</span></span></code></pre></div><h3 id="micromamba-1">Micromamba</h3>
|
||
<p>First, a function to initialize micromamba.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">init_mamba</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">set</span> <span style="color:#7d9029">-gx</span> <span style="color:#19177c">MAMBA_EXE</span> <span style="color:#ba2121">"/home/pavel/.guix-extra-profiles/dev/dev/bin/micromamba"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">set</span> <span style="color:#7d9029">-gx</span> <span style="color:#19177c">MAMBA_ROOT_PREFIX</span> <span style="color:#ba2121">"/home/pavel/micromamba"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">$MAMBA_EXE</span> shell hook <span style="color:#7d9029">--shell</span> <span style="color:#008000">fish</span> <span style="color:#7d9029">--prefix</span> <span style="color:#19177c">$MAMBA_ROOT_PREFIX</span> <span style="color:#666">|</span> <span style="color:#008000">source
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#008000"></span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000;font-weight:bold">test</span> <span style="color:#7d9029">-n</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$INIT_MAMBA</span><span style="color:#ba2121">"</span>;
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">init_mamba</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias </span><span style="color:#19177c">ca</span><span style="color:#666">=</span><span style="color:#ba2121">"micromamba activate"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias </span><span style="color:#19177c">ci</span><span style="color:#666">=</span><span style="color:#ba2121">"init_mamba"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">alias </span><span style="color:#19177c">cii</span><span style="color:#666">=</span><span style="color:#ba2121">"export INIT_MAMBA=true && init_mamba"</span>
|
||
</span></span></code></pre></div><p>Then, check if launched from Emacs with environment activated.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># if test -n "$EMACS_CONDA_ENV";
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"></span> <span style="color:#408080;font-style:italic"># conda activate $EMACS_CONDA_ENV
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># end
|
||
</span></span></span></code></pre></div><h3 id="colors-2">Colors</h3>
|
||
<p>Fish seems to have hardcoded colorcodes in some color settings. I set these to base16 colors, so they would match Xresources.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_command</span> cyan
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_comment</span> green
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_end</span> black
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_error</span> red
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_escape</span> yellow
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_operator</span> yellow
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_param</span> magenta
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_quote</span> green
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> <span style="color:#19177c">fish_color_redirection</span> yellow
|
||
</span></span></code></pre></div><h3 id="keybindings">Keybindings</h3>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000">bind</span> <span style="color:#7d9029">-M</span> insert <span style="color:#b62;font-weight:bold">\e</span>l forward-char
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">bind</span> <span style="color:#7d9029">-M</span> insert <span style="color:#b62;font-weight:bold">\e</span>h backward-char
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">bind</span> <span style="color:#7d9029">-M</span> insert <span style="color:#b62;font-weight:bold">\e</span>w forward-word
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">bind</span> <span style="color:#7d9029">-M</span> insert <span style="color:#b62;font-weight:bold">\e</span>b backward-word
|
||
</span></span></code></pre></div><h3 id="functions">Functions</h3>
|
||
<p>A small function to open the file with <code>$EDITOR</code>.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">function</span> <span style="color:#00f">e</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">eval</span> <span style="color:#19177c">$EDITOR</span> <span style="color:#19177c">$argv</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span></code></pre></div><h3 id="direnv">direnv</h3>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">type</span> <span style="color:#7d9029">-q</span> direnv
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">direnv</span> hook <span style="color:#008000">fish</span> <span style="color:#666">|</span> <span style="color:#008000">source
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#008000"></span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span></code></pre></div><h3 id="atuin">atuin</h3>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-fish" data-lang="fish"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">type</span> <span style="color:#7d9029">-q</span> atuin
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">set</span> <span style="color:#7d9029">-gx</span> <span style="color:#19177c">ATUIN_NOBIND</span> <span style="color:#ba2121">"true"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#00f">atuin</span> init <span style="color:#008000">fish</span> <span style="color:#666">|</span> <span style="color:#008000">source
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#008000"> bind</span> <span style="color:#b62;font-weight:bold">\c</span>r _atuin_search
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">bind</span> <span style="color:#7d9029">-M</span> insert <span style="color:#b62;font-weight:bold">\c</span>r _atuin_search
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">end</span>
|
||
</span></span></code></pre></div><h2 id="nushell">Nushell</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>nushell-bin</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>A structured shell. I don’t use it as of now, but perhaps one day.</p>
|
||
<h2 id="starship-prompt">Starship prompt</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>starship-bin</td>
|
||
<td>my prompt of choice</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><a href="https://starship.rs/">Starship</a> is a nice cross-shell prompt, written in Rust.</p>
|
||
<p>References:</p>
|
||
<ul>
|
||
<li><a href="https://starship.rs/config/">Startship config guide</a></li>
|
||
</ul>
|
||
<!--listend-->
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[character]
|
||
</span></span><span style="display:flex;"><span>success_symbol = <span style="color:#ba2121">"[> ](bold green)"</span>
|
||
</span></span><span style="display:flex;"><span>error_symbol = <span style="color:#ba2121">"[✕ ](bold red)"</span>
|
||
</span></span><span style="display:flex;"><span>vicmd_symbol = <span style="color:#ba2121">"[ᐊ ](bold green)"</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[aws]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># [battery]</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># full_symbol = ""</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># charging_symbol = ""</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># discharging_symbol = ""</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[conda]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[cmd_duration]
|
||
</span></span><span style="display:flex;"><span>min_time = <span style="color:#666">500</span>
|
||
</span></span><span style="display:flex;"><span>format = <span style="color:#ba2121">" [$duration]($style) "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[docker_context]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[elixir]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[elm]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[git_branch]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>truncation_length = <span style="color:#666">20</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[golang]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># [haskell]</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#408080;font-style:italic"># symbol = " "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[hg_branch]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[java]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[julia]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[memory_usage]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[nim]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[nix_shell]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[nodejs]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[package]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>disabled = <span style="color:#008000;font-weight:bold">true</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[php]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[python]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[ruby]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[rust]
|
||
</span></span><span style="display:flex;"><span>symbol = <span style="color:#ba2121">" "</span>
|
||
</span></span></code></pre></div><h2 id="tmux">Tmux</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>tmux</td>
|
||
</tr>
|
||
<tr>
|
||
<td>python-tmuxp</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><a href="https://github.com/tmux/tmux">tmux</a> is my terminal multiplexer of choice.</p>
|
||
<p>It provides pretty sane defaults, so the config is not too large. I rebind the prefix to <code>C-a</code> though.</p>
|
||
<h3 id="term-settings">Term settings</h3>
|
||
<p>I have no idea how and why these statements work.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g default-terminal <span style="color:#ba2121">"screen-256color"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -ga terminal-overrides <span style="color:#ba2121">",*256col*:Tc"</span>
|
||
</span></span></code></pre></div><p>History limit.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g history-limit <span style="color:#666">20000</span>
|
||
</span></span></code></pre></div><h3 id="keybindings-1">Keybindings</h3>
|
||
<p>Enable vi keys and mouse.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span>-window-option -g mode-keys vi
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span>-option -g xterm-keys on
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span>-option -g mouse on
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -sg escape-time <span style="color:#666">10</span>
|
||
</span></span></code></pre></div><p>Change prefix from <code>C-b</code> to <code>C-a</code>.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>unbind C-b
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g prefix C-a
|
||
</span></span><span style="display:flex;"><span>bind C-a send-prefix
|
||
</span></span></code></pre></div><p>Vi-like keybindings to manage panes & windows.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind h select-pane -L
|
||
</span></span><span style="display:flex;"><span>bind j select-pane -D
|
||
</span></span><span style="display:flex;"><span>bind k select-pane -U
|
||
</span></span><span style="display:flex;"><span>bind l select-pane -R
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>bind s split-window
|
||
</span></span><span style="display:flex;"><span>bind v split-window -h
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>bind-key n new-window
|
||
</span></span><span style="display:flex;"><span>bind-key t next-window
|
||
</span></span><span style="display:flex;"><span>bind-key T previous-window
|
||
</span></span></code></pre></div><p>Reload the config.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind r source-file ~/.tmux.conf
|
||
</span></span></code></pre></div><h3 id="copy-to-clipboard">Copy to clipboard</h3>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>xclip</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Make tmux copy to clipboard as well</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>bind-key -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">"xclip -selection clipboard -i"</span>
|
||
</span></span><span style="display:flex;"><span>bind-key -T copy-mode-vi y send-keys -X copy-pipe-and-cancel <span style="color:#ba2121">"xclip -selection clipboard -i"</span>
|
||
</span></span></code></pre></div><h3 id="ui">UI</h3>
|
||
<p>On <span class="timestamp-wrapper"><span class="timestamp">[2020-01-22 Wed]</span></span>, I had generated the first version of this following with <a href="https://github.com/edkolev/tmuxline.vim">tmuxline.vim</a> plugin and palenight theme for <a href="https://github.com/vim-airline/vim-airline">vim-airline</a>.</p>
|
||
<p>Then I adapted it to use the current Emacs theme.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-justify <span style="color:#ba2121">"centre"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status <span style="color:#ba2121">"on"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-left-style <span style="color:#ba2121">"none"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g message-command-style <span style="color:#ba2121">"fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-right-style <span style="color:#ba2121">"none"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g pane-active-border-style <span style="color:#ba2121">"fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-style <span style="color:#ba2121">"none,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g message-style <span style="color:#ba2121">"fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g pane-border-style <span style="color:#ba2121">"fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-right-length <span style="color:#ba2121">"100"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-left-length <span style="color:#ba2121">"100"</span>
|
||
</span></span><span style="display:flex;"><span>setw -g window-status-activity-style <span style="color:#ba2121">"none,fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span>setw -g window-status-separator <span style="color:#ba2121">""</span>
|
||
</span></span><span style="display:flex;"><span>setw -g window-status-style <span style="color:#ba2121">"none,fg=<<get-color(name="</span>fg<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-left <span style="color:#ba2121">"#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #S #[fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] #W #[fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">set</span> -g status-right <span style="color:#ba2121">"%-H:%M #[bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] %a, %b %d #[bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #H "</span>
|
||
</span></span><span style="display:flex;"><span>setw -g window-status-format <span style="color:#ba2121">"#[fg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>] #I #W #[align=left] #[fg=<<get-color(name="</span><span style="color:#008000">light</span>-blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span>
|
||
</span></span><span style="display:flex;"><span>setw -g window-status-current-format <span style="color:#ba2121">"#[fg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]#[fg=<<get-fg-for-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>] #I #W #[fg=<<get-color(name="</span>blue<span style="color:#ba2121">")>>,bg=<<get-color(name="</span>bg-other<span style="color:#ba2121">")>>,nobold,nounderscore,noitalics]"</span>
|
||
</span></span></code></pre></div><p>Source the line config:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-vim" data-lang="vim"><span style="display:flex;"><span>source ~/.tmux.line.conf
|
||
</span></span></code></pre></div><h2 id="alacritty">Alacritty</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>alacritty</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><a href="https://github.com/alacritty/alacritty">Alacritty</a> is a GPU-accelerated terminal emulator. I haven’t found it to be an inch faster than st, but <code>yml</code> configuration is way more convenient than patches.</p>
|
||
<p>References:</p>
|
||
<ul>
|
||
<li><a href="https://github.com/alacritty/alacritty/blob/master/alacritty.yml">default config</a></li>
|
||
</ul>
|
||
<!--listend-->
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-yaml" data-lang="yaml"><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">decorations</span>:<span style="color:#bbb"> </span>none<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#008000;font-weight:bold">font</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">normal</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">family</span>:<span style="color:#bbb"> </span>JetBrainsMono Nerd Font<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">style</span>:<span style="color:#bbb"> </span>Regular<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">size</span>:<span style="color:#bbb"> </span><span style="color:#666">10</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#008000;font-weight:bold">env</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">TERM</span>:<span style="color:#bbb"> </span>xterm-256color<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#008000;font-weight:bold">colors</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">primary</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">background</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="bg")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">foreground</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="fg")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">normal</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">black</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="black")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">red</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="red")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">green</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="green")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">yellow</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="yellow")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">blue</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="blue")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">magenta</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="magenta")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">cyan</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="cyan")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">white</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="white")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">bright</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Black</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-black")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Red</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-red")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Green</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-green")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Yellow</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-yellow")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Blue</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-blue")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Magenta</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-magenta")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">Cyan</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-cyan")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">White</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">'<<get-color(name="light-white")>>'</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#008000;font-weight:bold">window</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">padding</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">x</span>:<span style="color:#bbb"> </span><span style="color:#666">0</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">y</span>:<span style="color:#bbb"> </span><span style="color:#666">0</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">dynamic_padding</span>:<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">true</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">opacity</span>:<span style="color:#bbb"> </span><span style="color:#666">1</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"></span><span style="color:#008000;font-weight:bold">key_bindings</span>:<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Paste, action</span>:<span style="color:#bbb"> </span>Paste }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Copy, action</span>:<span style="color:#bbb"> </span>Copy }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: L, mods: Control, action</span>:<span style="color:#bbb"> </span>ClearLogNotice }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: L, mods: Control, mode: ~Vi|~Search, chars</span>:<span style="color:#bbb"> </span><span style="color:#ba2121">"\x0c"</span><span style="color:#bbb"> </span>}<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: PageUp, mods: Shift, mode: ~Alt, action</span>:<span style="color:#bbb"> </span>ScrollPageUp, }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: PageDown, mods: Shift, mode: ~Alt, action</span>:<span style="color:#bbb"> </span>ScrollPageDown }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Home, mods: Shift, mode: ~Alt, action</span>:<span style="color:#bbb"> </span>ScrollToTop, }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: End, mods: Shift, mode: ~Alt, action</span>:<span style="color:#bbb"> </span>ScrollToBottom }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#408080;font-style:italic"># Turn off vi mode</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Space, mods: Shift|Control, mode: ~Search, action</span>:<span style="color:#bbb"> </span>ReceiveChar }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span><span style="color:#408080;font-style:italic"># (Windows, Linux, and BSD only)</span><span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: V, mods: Control|Shift, mode: ~Vi, action</span>:<span style="color:#bbb"> </span>Paste }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: C, mods: Control|Shift, action</span>:<span style="color:#bbb"> </span>Copy }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: F, mods: Control|Shift, mode: ~Search, action</span>:<span style="color:#bbb"> </span>ReceiveChar }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: B, mods: Control|Shift, mode: ~Search, action</span>:<span style="color:#bbb"> </span>ReceiveChar }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Insert, mods: Shift, action</span>:<span style="color:#bbb"> </span>PasteSelection }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Key0, mods: Control, action</span>:<span style="color:#bbb"> </span>ResetFontSize }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Equals, mods: Control, action</span>:<span style="color:#bbb"> </span>IncreaseFontSize }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Plus, mods: Control, action</span>:<span style="color:#bbb"> </span>IncreaseFontSize }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: NumpadAdd, mods: Control, action</span>:<span style="color:#bbb"> </span>IncreaseFontSize }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: Minus, mods: Control, action</span>:<span style="color:#bbb"> </span>DecreaseFontSize }<span style="color:#bbb">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#bbb"> </span>- {<span style="color:#bbb"> </span><span style="color:#008000;font-weight:bold">key: NumpadSubtract, mods: Control, action</span>:<span style="color:#bbb"> </span>DecreaseFontSize }<span style="color:#bbb">
|
||
</span></span></span></code></pre></div><h2 id="bottom">Bottom</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>bottom-bin</td>
|
||
<td>resource monitor</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p><a href="https://github.com/ClementTsang/bottom">bottom</a> is a TUI system monitor.</p>
|
||
<p>See the <a href="https://github.com/ClementTsang/bottom/blob/master/sample_configs/default_config.toml">default config</a> for the avaliable options.</p>
|
||
<p><a id="code-snippet--bottom-theme"></a></p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-elisp" data-lang="elisp"><span style="display:flex;"><span>(<span style="color:#008000">if</span> (<span style="color:#19177c">my/light-p</span>) <span style="color:#ba2121">"default-light"</span> <span style="color:#ba2121">"default"</span>)
|
||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>[flags]
|
||
</span></span><span style="display:flex;"><span>hide_table_gap = <span style="color:#008000;font-weight:bold">true</span> <span style="color:#408080;font-style:italic"># Remove space in tables</span>
|
||
</span></span><span style="display:flex;"><span>color = <span style="color:#ba2121">"<<bottom-theme()>>"</span>
|
||
</span></span><span style="display:flex;"><span>process_command = <span style="color:#008000;font-weight:bold">true</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>[processes]
|
||
</span></span><span style="display:flex;"><span>columns = [<span style="color:#ba2121">"PID"</span>, <span style="color:#ba2121">"State"</span>, <span style="color:#ba2121">"Name"</span>, <span style="color:#ba2121">"CPU%"</span>, <span style="color:#ba2121">"Mem%"</span>, <span style="color:#ba2121">"R/s"</span>, <span style="color:#ba2121">"W/s"</span>, <span style="color:#ba2121">"User"</span>]
|
||
</span></span></code></pre></div><h2 id="atuin-1">Atuin</h2>
|
||
<p><a href="https://github.com/atuinsh/atuin">atuin</a> is a tool that replaces shell history with a SQLite database, providing some additional functionality.</p>
|
||
<p>See <a href="https://docs.atuin.sh/configuration/config/">config reference</a>.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span>update_check = <span style="color:#008000;font-weight:bold">false</span>
|
||
</span></span><span style="display:flex;"><span>enter_accept = <span style="color:#008000;font-weight:bold">true</span>
|
||
</span></span><span style="display:flex;"><span>keymap_mode = <span style="color:#ba2121">"vim-insert"</span>
|
||
</span></span></code></pre></div><h2 id="various-console-applications">Various console applications</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Guix dependency</th>
|
||
<th>Description</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>ncurses</td>
|
||
<td>Provides stuff like <code>clear</code></td>
|
||
</tr>
|
||
<tr>
|
||
<td>exa</td>
|
||
<td><code>ls</code> replacement, written in Rust</td>
|
||
</tr>
|
||
<tr>
|
||
<td>bat</td>
|
||
<td><code>cat</code> clone with syntax highlighting</td>
|
||
</tr>
|
||
<tr>
|
||
<td>htop</td>
|
||
<td>Interactive process viewer</td>
|
||
</tr>
|
||
<tr>
|
||
<td>nethogs</td>
|
||
<td>A tool to group processed by used bandwidth</td>
|
||
</tr>
|
||
<tr>
|
||
<td>osync</td>
|
||
<td>rsync wrapper</td>
|
||
</tr>
|
||
<tr>
|
||
<td>neofetch</td>
|
||
<td>Fetch system info</td>
|
||
</tr>
|
||
<tr>
|
||
<td>fzf</td>
|
||
<td>fuzzy finder</td>
|
||
</tr>
|
||
<tr>
|
||
<td>p7zip</td>
|
||
<td>archiver</td>
|
||
</tr>
|
||
<tr>
|
||
<td>password-store</td>
|
||
<td>CLI password manager</td>
|
||
</tr>
|
||
<tr>
|
||
<td>zip</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>unzip</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>jmtpfs</td>
|
||
<td>A tool to mount MTP devices (e.g. Android)</td>
|
||
</tr>
|
||
<tr>
|
||
<td>tokei</td>
|
||
<td>Count lines of code</td>
|
||
</tr>
|
||
<tr>
|
||
<td>sshfs</td>
|
||
<td>Mount stuff over SSH</td>
|
||
</tr>
|
||
<tr>
|
||
<td>lftp</td>
|
||
<td>File transfer</td>
|
||
</tr>
|
||
<tr>
|
||
<td>git-lfs</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>glibc-locales</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>direnv</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>jless-bin</td>
|
||
<td>JSON viewer</td>
|
||
</tr>
|
||
<tr>
|
||
<td>megacmd</td>
|
||
<td>mega.nz client</td>
|
||
</tr>
|
||
<tr>
|
||
<td>ncdu</td>
|
||
<td>disk usage analyzer</td>
|
||
</tr>
|
||
<tr>
|
||
<td>openssl</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>aria2</td>
|
||
<td>Download tool</td>
|
||
</tr>
|
||
<tr>
|
||
<td>man-db</td>
|
||
<td></td>
|
||
</tr>
|
||
<tr>
|
||
<td>pv</td>
|
||
<td></td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<h3 id="ripgrep-config">ripgrep config</h3>
|
||
<p>Occasionally I can’t exclude certain files from ripgrep via the VCS settings, so here is a simple config to ignore certain files globally.</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>--ignore-file=/home/pavel/.config/ripgrep/ripgrepignore
|
||
</span></span></code></pre></div><p>The ignore file:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>*.ts.snap
|
||
</span></span></code></pre></div><p>By default, ripgrep doesn’t read any configs, so it is necessary to set the <code>RIPGREP_CONFIG_PATH</code> variable in the <a href="#environment-1">.profile.</a></p>
|
||
<h2 id="misc-scripts">Misc scripts</h2>
|
||
<h3 id="nt-exec-command-with-a-finished-notification"><code>nt</code> - exec command with a finished notification</h3>
|
||
<p>Usage:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>nt <command>
|
||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-sh" data-lang="sh"><span style="display:flex;"><span><span style="color:#19177c">command</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#19177c">$@</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[</span> ! -z <span style="color:#ba2121">"</span><span style="color:#19177c">$command</span><span style="color:#ba2121">"</span> <span style="color:#666">]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">start_time</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#008000;font-weight:bold">$(</span>date -u +%s<span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">$command</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">end_time</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#008000;font-weight:bold">$(</span>date -u +%s<span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">elapsed</span><span style="color:#666">=</span><span style="color:#ba2121">"</span><span style="color:#008000;font-weight:bold">$((</span><span style="color:#19177c">$end_time</span><span style="color:#666">-</span><span style="color:#19177c">$start_time</span><span style="color:#008000;font-weight:bold">))</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> notify-send <span style="color:#ba2121">"Terminal"</span> <span style="color:#ba2121">"Command\n</span><span style="color:#19177c">$command</span><span style="color:#ba2121">\nexecuted in </span><span style="color:#19177c">$elapsed</span><span style="color:#ba2121"> seconds"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> notify-send <span style="color:#ba2121">"Terminal"</span> <span style="color:#ba2121">"Command execution complete"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><h3 id="autocommit"><code>autocommit</code></h3>
|
||
<p>A script to perform automatic commits in a repository. I use it to sync my org directory and password store. I guess it’s not how git is intended to be used, but it works for me.</p>
|
||
<p>Usage:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-text" data-lang="text"><span style="display:flex;"><span>autocommit <repository> [-F]
|
||
</span></span></code></pre></div><p>Environment:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Variable</th>
|
||
<th>Description</th>
|
||
<th>Default value</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td><code>TIMEOUT_MIN</code></td>
|
||
<td>Default timeout</td>
|
||
<td>60</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Here’s roughly what the script is doing:</p>
|
||
<ul>
|
||
<li>If there is a merge conflict, notify</li>
|
||
<li>If there were changed files in the last <code>TIMEOUT_MIN</code> minutes, commit</li>
|
||
<li>Fetch</li>
|
||
<li>If there were changes in the last <code>TTMEOUT_MIN</code>, merge (usually the merge is just fast-forward)</li>
|
||
<li>If the fetch was successful & the merge was either successful or delayed because of changes in the last <code>TIMEOUT_MIN</code>, push</li>
|
||
<li>Send a notification about the events above</li>
|
||
<li>Send a separate notification if there is a merge conflict</li>
|
||
</ul>
|
||
<!--listend-->
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#19177c">TIMEOUT_MIN</span><span style="color:#666">=</span><span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">TIMEOUT_MIN</span><span style="color:#008000;font-weight:bold">:-</span><span style="color:#19177c">60</span><span style="color:#b68;font-weight:bold">}</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">DISPLAY</span><span style="color:#666">=</span>:0
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">cd</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$1</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">TIMESTAMP</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>date +%s<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">LAST_COMMIT_TIMESTAMP</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>git log -1 --format<span style="color:#666">=</span><span style="color:#ba2121">"%at"</span> | xargs -I<span style="color:#666">{}</span> date -d @<span style="color:#666">{}</span> +%s<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">RECENTLY_CHANGED_NUM</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>find . -not -path <span style="color:#ba2121">'*/\.*'</span> -mmin -<span style="color:#19177c">$TIMEOUT_MIN</span> | wc -l<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">CHANGED_NUM</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>git status --porcelain | wc -l<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">COMMITED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">PUSHED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">FETCHED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">MERGED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>notify <span style="color:#666">()</span> <span style="color:#666">{</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">if</span> <span style="color:#008000">command</span> -v notify-send; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> notify-send -u <span style="color:#b68;font-weight:bold">${</span><span style="color:#19177c">LEVEL</span><span style="color:#008000;font-weight:bold">:-</span><span style="color:#19177c">normal</span><span style="color:#b68;font-weight:bold">}</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$1</span><span style="color:#ba2121">"</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$2</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">else</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">echo</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$1</span><span style="color:#ba2121">"</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$2</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#666">}</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#008000;font-weight:bold">$(</span>git ls-files -u | wc -l<span style="color:#008000;font-weight:bold">)</span> -gt <span style="color:#666">0</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">LEVEL</span><span style="color:#666">=</span>critical notify <span style="color:#ba2121">"Autocommit </span><span style="color:#008000;font-weight:bold">$(</span><span style="color:#008000">pwd</span><span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span> <span style="color:#ba2121">"Merge conflict!"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#666">(</span><span style="color:#19177c">$RECENTLY_CHANGED_NUM</span> -eq <span style="color:#666">0</span> <span style="color:#666">||</span> <span style="color:#19177c">$2</span> <span style="color:#666">=</span> <span style="color:#ba2121">"-F"</span><span style="color:#666">)</span> <span style="color:#666">&&</span> <span style="color:#19177c">$CHANGED_NUM</span> -gt <span style="color:#666">0</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">read</span> -r -d <span style="color:#ba2121">''</span> MESSAGE <span style="color:#ba2121"><< EOM
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Autocommit $(date -Iminutes)
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Hostname: $(hostname)
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">EOM</span>
|
||
</span></span><span style="display:flex;"><span> git add -A
|
||
</span></span><span style="display:flex;"><span> git commit -m <span style="color:#ba2121">"</span><span style="color:#19177c">$MESSAGE</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">COMMITED</span><span style="color:#666">=</span><span style="color:#ba2121">"Yes"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#19177c">NEED_TO_PUSH</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>git log origin/master..HEAD | wc -l<span style="color:#008000;font-weight:bold">)</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span>git fetch <span style="color:#666">&&</span> <span style="color:#19177c">FETCHED</span><span style="color:#666">=</span><span style="color:#ba2121">"Yes"</span> <span style="color:#666">||</span> <span style="color:#19177c">FETCHED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#19177c">$RECENTLY_CHANGED_NUM</span> -gt <span style="color:#666">0</span> <span style="color:#666">&&</span> <span style="color:#19177c">$2</span> !<span style="color:#666">=</span> <span style="color:#ba2121">'-F'</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">MERGED</span><span style="color:#666">=</span><span style="color:#ba2121">"Waiting"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#666">(</span><span style="color:#19177c">$RECENTLY_CHANGED_NUM</span> -eq <span style="color:#666">0</span> <span style="color:#666">||</span> <span style="color:#19177c">$2</span> <span style="color:#666">=</span> <span style="color:#ba2121">"-F"</span><span style="color:#666">)</span> <span style="color:#666">&&</span> <span style="color:#19177c">$FETCHED</span> <span style="color:#666">=</span> <span style="color:#ba2121">"Yes"</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">MERGE_OUT</span><span style="color:#666">=</span><span style="color:#008000;font-weight:bold">$(</span>git merge origin/master<span style="color:#008000;font-weight:bold">)</span> <span style="color:#666">&&</span> <span style="color:#19177c">MERGED</span><span style="color:#666">=</span><span style="color:#ba2121">"Yes"</span> <span style="color:#666">||</span> <span style="color:#19177c">MERGED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#19177c">$NEED_TO_PUSH</span> -gt <span style="color:#666">0</span> <span style="color:#666">&&</span> <span style="color:#666">(</span><span style="color:#19177c">$MERGED</span> <span style="color:#666">=</span> <span style="color:#ba2121">"Yes"</span> <span style="color:#666">||</span> <span style="color:#19177c">$MERGED</span> <span style="color:#666">=</span> <span style="color:#ba2121">"Waiting"</span><span style="color:#666">)</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> git push origin <span style="color:#666">&&</span> <span style="color:#19177c">PUSHED</span><span style="color:#666">=</span><span style="color:#ba2121">"Yes"</span> <span style="color:#666">||</span> <span style="color:#19177c">PUSHED</span><span style="color:#666">=</span><span style="color:#ba2121">"No"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#19177c">$PUSHED</span> <span style="color:#666">=</span> <span style="color:#ba2121">"Yes"</span> <span style="color:#666">||</span> <span style="color:#19177c">$COMMITED</span> <span style="color:#666">=</span> <span style="color:#ba2121">"Yes"</span> <span style="color:#666">||</span> <span style="color:#666">(</span><span style="color:#19177c">$MERGED</span> <span style="color:#666">=</span> <span style="color:#ba2121">"Yes"</span> <span style="color:#666">&&</span> <span style="color:#19177c">$MERGE_OUT</span> !<span style="color:#666">=</span> <span style="color:#ba2121">"Already up to date."</span><span style="color:#666">)]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#008000">read</span> -r -d <span style="color:#ba2121">''</span> NOTIFICATION <span style="color:#ba2121"><< EOM
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Commited: $COMMITED
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Fetched: $FETCHED
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Merged: $MERGED
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">Pushed: $PUSHED
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#ba2121">EOM</span>
|
||
</span></span><span style="display:flex;"><span> notify <span style="color:#ba2121">"Autocommit </span><span style="color:#008000;font-weight:bold">$(</span><span style="color:#008000">pwd</span><span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span> <span style="color:#ba2121">"</span><span style="color:#19177c">$NOTIFICATION</span><span style="color:#ba2121">"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">if</span> <span style="color:#666">[[</span> <span style="color:#008000;font-weight:bold">$(</span>git ls-files -u | wc -l<span style="color:#008000;font-weight:bold">)</span> -gt <span style="color:#666">0</span> <span style="color:#666">]]</span>; <span style="color:#008000;font-weight:bold">then</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c">LEVEL</span><span style="color:#666">=</span>critical notify <span style="color:#ba2121">"Autocommit </span><span style="color:#008000;font-weight:bold">$(</span><span style="color:#008000">pwd</span><span style="color:#008000;font-weight:bold">)</span><span style="color:#ba2121">"</span> <span style="color:#ba2121">"Merge conflict!"</span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000;font-weight:bold">fi</span>
|
||
</span></span></code></pre></div><p><code>mcron</code> job:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-scheme" data-lang="scheme"><span style="display:flex;"><span>(<span style="color:#00f">job</span> <span style="color:#ba2121">"0 * * * *"</span> <span style="color:#ba2121">"autocommit /home/pavel/30-39\\ Life/32\\ org-mode/"</span>)
|
||
</span></span><span style="display:flex;"><span>(<span style="color:#00f">job</span> <span style="color:#ba2121">"0,15,30,45 * * * *"</span> <span style="color:#ba2121">"autocommit ~/.password-store"</span>)
|
||
</span></span></code></pre></div><h2 id="guix-settings-1">Guix settings</h2>
|
||
<p><a id="code-snippet--packages"></a></p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-emacs-lisp" data-lang="emacs-lisp"><span style="display:flex;"><span>(<span style="color:#19177c">my/format-guix-dependencies</span>)
|
||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-scheme" data-lang="scheme"><span style="display:flex;"><span>(<span style="color:#00f">specifications->manifest</span>
|
||
</span></span><span style="display:flex;"><span> <span style="color:#666">'</span>(
|
||
</span></span><span style="display:flex;"><span> <span style="color:#19177c"><<packages</span>()<span style="color:#19177c">>></span>))
|
||
</span></span></code></pre></div><h2 id="android-notes">Android notes</h2>
|
||
<p>SSH instructions: <a href="https://wiki.termux.com/wiki/Remote_Access">https://wiki.termux.com/wiki/Remote_Access</a></p>
|
||
<h3 id="installation">Installation</h3>
|
||
<p>First, run</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>pkg update
|
||
</span></span></code></pre></div><p>Then install the following packages:</p>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th>Package</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>yadm</td>
|
||
</tr>
|
||
<tr>
|
||
<td>gnupg</td>
|
||
</tr>
|
||
<tr>
|
||
<td>git</td>
|
||
</tr>
|
||
<tr>
|
||
<td>which</td>
|
||
</tr>
|
||
<tr>
|
||
<td>starship</td>
|
||
</tr>
|
||
<tr>
|
||
<td>atuin</td>
|
||
</tr>
|
||
<tr>
|
||
<td>vim</td>
|
||
</tr>
|
||
<tr>
|
||
<td>tmux</td>
|
||
</tr>
|
||
<tr>
|
||
<td>emacs</td>
|
||
</tr>
|
||
<tr>
|
||
<td>make</td>
|
||
</tr>
|
||
<tr>
|
||
<td>clang</td>
|
||
</tr>
|
||
<tr>
|
||
<td>ripgrep</td>
|
||
</tr>
|
||
<tr>
|
||
<td>cmake</td>
|
||
</tr>
|
||
<tr>
|
||
<td>gperf</td>
|
||
</tr>
|
||
<tr>
|
||
<td>iproute2</td>
|
||
</tr>
|
||
<tr>
|
||
<td>wakatime-cli</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<p>Run</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>termux-setup-storage
|
||
</span></span></code></pre></div><p>Then import ssh and gpg keys. Set the main key to ultimate trust (<code>gpg --edit-key ...</code>, then <code>trust</code>).</p>
|
||
<p>Then:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yadm clone git@github.com/SqrtMinusOne/dotfiles.git
|
||
</span></span></code></pre></div><p>Install nerd fonts: <a href="https://github.com/notflawffles/termux-nerd-installer">https://github.com/notflawffles/termux-nerd-installer</a></p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://github.com/notflawffles/termux-nerd-installer.git
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">cd</span> termux-nerd-installer
|
||
</span></span><span style="display:flex;"><span>make install
|
||
</span></span></code></pre></div><p>Clone <code>passwords.git</code> to <code>~/.password-store/</code>, <code>org-mode.git</code> to <code>~/30-39 Life/32 org-mode</code>.</p>
|
||
<p>Create the file <code>~/.android-profile</code> with contents:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span><span style="color:#008000">export</span> <span style="color:#19177c">ANDROID_NAME</span><span style="color:#666">=</span><name>
|
||
</span></span></code></pre></div><p>Then <code>emacs</code> should launch fine.</p>
|
||
<p>Also:</p>
|
||
<ul>
|
||
<li>cleanup <code>$PREFIX/etc/motd</code> to remove hello message.</li>
|
||
</ul>
|
||
<h3 id="installation-of-dt-s-colorscripts">Installation of <a href="https://gitlab.com/dwt1/shell-color-scripts">DT’s colorscripts</a>:</h3>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git clone https://gitlab.com/dwt1/shell-color-scripts.git
|
||
</span></span><span style="display:flex;"><span><span style="color:#008000">cd</span> shell-color-scripts
|
||
</span></span></code></pre></div><p>Apply a patch:</p>
|
||
<div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-diff" data-lang="diff"><span style="display:flex;"><span><span style="color:#a00000">--- a/colorscript.sh
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+++ b/colorscript.sh
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span><span style="color:#800080;font-weight:bold">@@ -2,7 +2,7 @@
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#800080;font-weight:bold"></span>
|
||
</span></span><span style="display:flex;"><span> # Simple CLI for shell-color-scripts
|
||
</span></span><span style="display:flex;"><span>
|
||
</span></span><span style="display:flex;"><span><span style="color:#a00000">-DIR_COLORSCRIPTS="/opt/shell-color-scripts/colorscripts"
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#a00000"></span><span style="color:#00a000">+DIR_COLORSCRIPTS="$PREFIX/opt/shell-color-scripts/colorscripts"
|
||
</span></span></span><span style="display:flex;"><span><span style="color:#00a000"></span> LS_CMD="$(command -v ls)"
|
||
</span></span><span style="display:flex;"><span> fmt_help=" %-20s\t%-54s\n"
|
||
</span></span><span style="display:flex;"><span> list_colorscripts="$($LS_CMD "${DIR_COLORSCRIPTS}" | cut -d ' ' -f 1 | nl)"
|
||
</span></span></code></pre></div><div class="highlight"><pre tabindex="0" style=";-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>sudo mkdir -p <span style="color:#19177c">$PREFIX</span>/opt/shell-color-scripts/colorscripts <span style="color:#666">||</span> <span style="color:#008000;font-weight:bold">return</span> <span style="color:#666">1</span>
|
||
</span></span><span style="display:flex;"><span>sudo cp -rf colorscripts/* <span style="color:#19177c">$PREFIX</span>/opt/shell-color-scripts/colorscripts
|
||
</span></span><span style="display:flex;"><span>sudo cp colorscript.sh <span style="color:#19177c">$PREFIX</span>/bin/colorscript
|
||
</span></span></code></pre></div>
|
||
</div>
|
||
<div class="table-of-contents">
|
||
<div class="table-of-contents-text">
|
||
<b><a href="#">Table of Contents</a></b>
|
||
<nav id="TableOfContents">
|
||
<ul>
|
||
<li><a href="#colors">Colors</a></li>
|
||
<li><a href="#dot-profile"><code>.profile</code></a>
|
||
<ul>
|
||
<li><a href="#environment">Environment</a></li>
|
||
<li><a href="#my-paths">My paths</a></li>
|
||
<li><a href="#ssl-certs">SSL Certs</a></li>
|
||
<li><a href="#ssh-agent">ssh-agent</a></li>
|
||
<li><a href="#guix-settings">Guix settings</a></li>
|
||
<li><a href="#other-package-managers">Other package managers</a>
|
||
<ul>
|
||
<li><a href="#npm">npm</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#xresources">XResources</a></li>
|
||
<li><a href="#off--package-manager-paths"><span class="org-todo done OFF">OFF</span> (OFF) Package manager paths</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#bash">Bash</a>
|
||
<ul>
|
||
<li><a href="#dot-bash-profile"><code>.bash_profile</code></a></li>
|
||
<li><a href="#dot-bashrc"><code>.bashrc</code></a>
|
||
<ul>
|
||
<li><a href="#startup-and-environment">Startup & environment</a></li>
|
||
<li><a href="#launch-fish">Launch fish</a></li>
|
||
<li><a href="#colors-1">Colors</a></li>
|
||
<li><a href="#settings">Settings</a></li>
|
||
<li><a href="#aliases">Aliases</a></li>
|
||
<li><a href="#micromamba">Micromamba</a></li>
|
||
<li><a href="#starship">Starship</a></li>
|
||
<li><a href="#yandex-cloud">Yandex Cloud</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#fish">Fish</a>
|
||
<ul>
|
||
<li><a href="#micromamba-1">Micromamba</a></li>
|
||
<li><a href="#colors-2">Colors</a></li>
|
||
<li><a href="#keybindings">Keybindings</a></li>
|
||
<li><a href="#functions">Functions</a></li>
|
||
<li><a href="#direnv">direnv</a></li>
|
||
<li><a href="#atuin">atuin</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#nushell">Nushell</a></li>
|
||
<li><a href="#starship-prompt">Starship prompt</a></li>
|
||
<li><a href="#tmux">Tmux</a>
|
||
<ul>
|
||
<li><a href="#term-settings">Term settings</a></li>
|
||
<li><a href="#keybindings-1">Keybindings</a></li>
|
||
<li><a href="#copy-to-clipboard">Copy to clipboard</a></li>
|
||
<li><a href="#ui">UI</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#alacritty">Alacritty</a></li>
|
||
<li><a href="#bottom">Bottom</a></li>
|
||
<li><a href="#atuin-1">Atuin</a></li>
|
||
<li><a href="#various-console-applications">Various console applications</a>
|
||
<ul>
|
||
<li><a href="#ripgrep-config">ripgrep config</a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#misc-scripts">Misc scripts</a>
|
||
<ul>
|
||
<li><a href="#nt-exec-command-with-a-finished-notification"><code>nt</code> - exec command with a finished notification</a></li>
|
||
<li><a href="#autocommit"><code>autocommit</code></a></li>
|
||
</ul>
|
||
</li>
|
||
<li><a href="#guix-settings-1">Guix settings</a></li>
|
||
<li><a href="#android-notes">Android notes</a>
|
||
<ul>
|
||
<li><a href="#installation">Installation</a></li>
|
||
<li><a href="#installation-of-dt-s-colorscripts">Installation of DT’s colorscripts:</a></li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
<a id="unhide-all-button" class="hidden"><Expand></a>
|
||
<a id="hide-all-button" class="hidden"><Collapse></a>
|
||
</div>
|
||
</div>
|
||
|
||
</div><div id="footer" class="mb-5">
|
||
<hr>
|
||
<div class="container text-center">
|
||
|
||
</div>
|
||
|
||
<div class="container text-center">
|
||
|
||
|
||
<a href="https://creativecommons.org/licenses/by/4.0/legalcode" title="Licensed under CC-BY 4.0"><small>Licensed under CC-BY 4.0</small></a>
|
||
|
||
|
|
||
|
||
|
||
<a href="https://plausible.io/" title="Uses Plausible Analytics"><small>Uses Plausible Analytics</small></a>
|
||
|
||
|
||
<br>
|
||
|
||
<a href="https://sqrtminusone.xyz/" title="Pavel Korytov, 2024"><small>Pavel Korytov, 2024</small></a>
|
||
</div>
|
||
|
||
</div>
|
||
</body>
|
||
</html>
|