mirror of
https://github.com/SqrtMinusOne/sqrtminusone.github.io.git
synced 2025-12-11 16:13:03 +03:00
965 lines
91 KiB
HTML
965 lines
91 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">
|
|
|
|
|
|
|
|
|
|
|
|
</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>
|
|
|
|
|
|
|
|
</div>
|
|
</nav>
|
|
</div>
|
|
<hr>
|
|
<div id="content">
|
|
<div class="container">
|
|
<p>#+TOC headlines 6</p>
|
|
<h2 id="dot-profile"><code>.profile</code></h2>
|
|
<h3 id="environment">Environment</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#75715e"># export EDITOR=/usr/bin/vim</span>
|
|
<span style="color:#75715e"># export BROWSER=/usr/bin/firefox</span>
|
|
export QT_QPA_PLATFORMTHEME<span style="color:#f92672">=</span><span style="color:#e6db74">"qt5ct"</span>
|
|
export QT_AUTO_SCREEN_SCALE_FACTOR<span style="color:#f92672">=</span><span style="color:#ae81ff">0</span>
|
|
<span style="color:#75715e"># export GTK2_RC_FILES="$HOME/.gtkrc-2.0"</span>
|
|
</code></pre></div><h3 id="my-paths">My paths</h3>
|
|
<p>My script folders</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/bin"</span> <span style="color:#f92672">]</span> ; <span style="color:#66d9ef">then</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/bin:</span>$PATH<span style="color:#e6db74">"</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/bin/scripts:</span>$PATH<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><h3 id="guix-settings">Guix settings</h3>
|
|
<p>Enable extra profiles</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$IS_ANDROID<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
GUIX_EXTRA_PROFILES<span style="color:#f92672">=</span>$HOME/.guix-extra-profiles
|
|
<span style="color:#66d9ef">for</span> i in $GUIX_EXTRA_PROFILES/*; <span style="color:#66d9ef">do</span>
|
|
profile<span style="color:#f92672">=</span>$i/<span style="color:#66d9ef">$(</span>basename <span style="color:#e6db74">"</span>$i<span style="color:#e6db74">"</span><span style="color:#66d9ef">)</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -f <span style="color:#e6db74">"</span>$profile<span style="color:#e6db74">"</span>/etc/profile <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
GUIX_PROFILE<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$profile<span style="color:#e6db74">"</span>
|
|
. <span style="color:#e6db74">"</span>$GUIX_PROFILE<span style="color:#e6db74">"</span>/etc/profile
|
|
<span style="color:#66d9ef">fi</span>
|
|
export XDG_DATA_DIRS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$XDG_DATA_DIRS<span style="color:#e6db74">:</span>$profile<span style="color:#e6db74">/share"</span>
|
|
unset profile
|
|
<span style="color:#66d9ef">done</span>
|
|
<span style="color:#66d9ef">fi</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">export JUPYTER_CONFIG_DIR<span style="color:#f92672">=</span>$HOME/.config/jupyter
|
|
</code></pre></div><p>Set a folder for my packages.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">export GUIX_PACKAGE_PATH<span style="color:#f92672">=</span>~/guix-packages
|
|
</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.cask"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"/home/pavel/.cask/bin:</span>$PATH<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>Make flatpak apps visible to launchers:</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.local/share/flatpak"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
export XDG_DATA_DIRS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$XDG_DATA_DIRS<span style="color:#e6db74">:</span>$HOME<span style="color:#e6db74">/.local/share/flatpak/exports/share"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>Enable Nix</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -f /run/current-system/profile/etc/profile.d/nix.sh <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
. /run/current-system/profile/etc/profile.d/nix.sh
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>Use Guix fontconfig. Necessary for nix apps</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.guix-extra-profiles/desktop"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
export FONTCONFIG_PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.guix-extra-profiles/desktop/desktop/etc/fonts"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>Make nix apps visible to launchers:</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.nix-profile"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
export XDG_DATA_DIRS<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$XDG_DATA_DIRS<span style="color:#e6db74">:</span>$HOME<span style="color:#e6db74">/.nix-profile/share/applications"</span>
|
|
<span style="color:#66d9ef">fi</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>
|
|
<pre><code class="language-conf" data-lang="conf">prefix=/home/pavel/.npm-packages
|
|
</code></pre><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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">export NPM_CONFIG_USERCONFIG<span style="color:#f92672">=</span>$HOME/._npmrc
|
|
</code></pre></div><p>The variable is unset in a script in <a href="/configs/guix/">Guix.org</a>.</p>
|
|
<p>Set PATH & MANPATH</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">NPM_PACKAGES<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>HOME<span style="color:#e6db74">}</span><span style="color:#e6db74">/.npm-packages"</span>
|
|
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$PATH<span style="color:#e6db74">:</span>$NPM_PACKAGES<span style="color:#e6db74">/bin"</span>
|
|
export MANPATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>MANPATH-<span style="color:#66d9ef">$(</span>manpath<span style="color:#66d9ef">)</span><span style="color:#e6db74">}</span><span style="color:#e6db74">:</span>$NPM_PACKAGES<span style="color:#e6db74">/share/man"</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -z <span style="color:#e6db74">"</span>$IS_ANDROID<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
xrdb ~/.Xresources
|
|
<span style="color:#66d9ef">fi</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"/usr/local/texlive/2020"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
export MANPATH<span style="color:#f92672">=</span><span style="color:#e6db74">"/usr/local/texlive/2020/texmf-dist/doc/man:</span>$MANPATH<span style="color:#e6db74">"</span>
|
|
export INFOPATH<span style="color:#f92672">=</span><span style="color:#e6db74">"/usr/local/texlive/2020/texmf-dist/doc/info:</span>$INFOPATH<span style="color:#e6db74">"</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"/usr/local/texlive/2020/bin/x86_64-linux:</span>$PATH<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>Cargo (Rust)</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.cargo"</span> <span style="color:#f92672">]</span> ; <span style="color:#66d9ef">then</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.cargo/bin:</span>$PATH<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>RVM (Ruby)</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/.rvm"</span> <span style="color:#f92672">]</span> ; <span style="color:#66d9ef">then</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$PATH<span style="color:#e6db74">:</span>$HOME<span style="color:#e6db74">/.rvm/bin"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
<span style="color:#75715e"># if [ -d "$HOME/.gem" ]; then</span>
|
|
<span style="color:#75715e"># export PATH="$HOME/.gem/ruby/2.7.0/bin:$PATH"</span>
|
|
<span style="color:#75715e"># fi</span>
|
|
</code></pre></div><p>Go</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/go"</span> <span style="color:#f92672">]</span> ; <span style="color:#66d9ef">then</span>
|
|
export PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/go/bin:</span>$PATH<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>ghcup (Haskell)</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#f92672">[</span> -f <span style="color:#e6db74">"/home/pavel/.ghcup/env"</span> <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> source <span style="color:#e6db74">"/home/pavel/.ghcup/env"</span> <span style="color:#75715e"># ghcup-env</span>
|
|
</code></pre></div><p>Perl</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"</span>$HOME<span style="color:#e6db74">/perl5"</span> <span style="color:#f92672">]</span> ; <span style="color:#66d9ef">then</span>
|
|
PATH<span style="color:#f92672">=</span><span style="color:#e6db74">"/home/pavel/perl5/bin</span><span style="color:#e6db74">${</span>PATH:+:<span style="color:#e6db74">${</span>PATH<span style="color:#e6db74">}}</span><span style="color:#e6db74">"</span>
|
|
PERL5LIB<span style="color:#f92672">=</span><span style="color:#e6db74">"/home/pavel/perl5/lib/perl5</span><span style="color:#e6db74">${</span>PERL5LIB:+:<span style="color:#e6db74">${</span>PERL5LIB<span style="color:#e6db74">}}</span><span style="color:#e6db74">"</span>; export PERL5LIB;
|
|
PERL_LOCAL_LIB_ROOT<span style="color:#f92672">=</span><span style="color:#e6db74">"/home/pavel/perl5</span><span style="color:#e6db74">${</span>PERL_LOCAL_LIB_ROOT:+:<span style="color:#e6db74">${</span>PERL_LOCAL_LIB_ROOT<span style="color:#e6db74">}}</span><span style="color:#e6db74">"</span>; export PERL_LOCAL_LIB_ROOT;
|
|
PERL_MB_OPT<span style="color:#f92672">=</span><span style="color:#e6db74">"--install_base \"/home/pavel/perl5\""</span>; export PERL_MB_OPT;
|
|
PERL_MM_OPT<span style="color:#f92672">=</span><span style="color:#e6db74">"INSTALL_BASE=/home/pavel/perl5"</span>; export PERL_MM_OPT;
|
|
<span style="color:#66d9ef">fi</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#f92672">[[</span> -f ~/.profile <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> . ~/.profile
|
|
|
|
<span style="color:#f92672">[[</span> -f ~/.bashrc <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> . ~/.bashrc
|
|
</code></pre></div><h3 id="dot-bashrc"><code>.bashrc</code></h3>
|
|
<p>My <code>.bashrc</code>, which has pieces from the default ones 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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">export SHELL
|
|
</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $- !<span style="color:#f92672">=</span> *i* <span style="color:#f92672">]]</span>
|
|
<span style="color:#66d9ef">then</span>
|
|
<span style="color:#f92672">[[</span> -n <span style="color:#e6db74">"</span>$SSH_CLIENT<span style="color:#e6db74">"</span> <span style="color:#f92672">&&</span> -f <span style="color:#e6db74">"/etc/bashrc"</span> <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> source /etc/profile
|
|
<span style="color:#66d9ef">return</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>Source the system-wide file</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -f <span style="color:#e6db74">"/etc/bashrc"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
source /etc/bashrc
|
|
<span style="color:#66d9ef">fi</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">xhost +local:root > /dev/null 2>&<span style="color:#ae81ff">1</span>
|
|
</code></pre></div><p>Set manpager to bat</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">export MANPAGER<span style="color:#f92672">=</span><span style="color:#e6db74">"sh -c 'sed -e s/.\\\\x08//g | bat -l man -p'"</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">use_fish<span style="color:#f92672">=</span>true
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#66d9ef">$(</span>ps --no-header --pid<span style="color:#f92672">=</span>$PPID --format<span style="color:#f92672">=</span>cmd<span style="color:#66d9ef">)</span> !<span style="color:#f92672">=</span> <span style="color:#e6db74">"fish"</span> <span style="color:#f92672">&&</span> <span style="color:#e6db74">${</span>use_fish<span style="color:#e6db74">}</span> <span style="color:#f92672">&&</span> <span style="color:#66d9ef">$(</span>command -v fish<span style="color:#66d9ef">)</span> <span style="color:#f92672">]]</span>
|
|
<span style="color:#66d9ef">then</span>
|
|
exec fish
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p>The rest of <code>.bashrc</code> is not executed if fish was launched.</p>
|
|
<h4 id="colors">Colors</h4>
|
|
<p>Setting for colors, packed in the default <code>.bashrc</code> in Manjaro</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">use_color<span style="color:#f92672">=</span>true
|
|
|
|
<span style="color:#75715e"># Set colorful PS1 only on colorful terminals.</span>
|
|
<span style="color:#75715e"># dircolors --print-database uses its own built-in database</span>
|
|
<span style="color:#75715e"># instead of using /etc/DIR_COLORS. Try to use the external file</span>
|
|
<span style="color:#75715e"># first to take advantage of user additions. Use internal bash</span>
|
|
<span style="color:#75715e"># globbing instead of external grep binary.</span>
|
|
safe_term<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>TERM//[^[:alnum:]]/?<span style="color:#e6db74">}</span> <span style="color:#75715e"># sanitize TERM</span>
|
|
match_lhs<span style="color:#f92672">=</span><span style="color:#e6db74">""</span>
|
|
<span style="color:#f92672">[[</span> -f ~/.dir_colors <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> match_lhs<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>match_lhs<span style="color:#e6db74">}</span><span style="color:#66d9ef">$(</span><~/.dir_colors<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
|
|
<span style="color:#f92672">[[</span> -f /etc/DIR_COLORS <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> match_lhs<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#e6db74">${</span>match_lhs<span style="color:#e6db74">}</span><span style="color:#66d9ef">$(</span></etc/DIR_COLORS<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
|
|
<span style="color:#f92672">[[</span> -z <span style="color:#e6db74">${</span>match_lhs<span style="color:#e6db74">}</span> <span style="color:#f92672">]]</span> <span style="color:#ae81ff">\
|
|
</span><span style="color:#ae81ff"></span> <span style="color:#f92672">&&</span> type -P dircolors >/dev/null <span style="color:#ae81ff">\
|
|
</span><span style="color:#ae81ff"></span> <span style="color:#f92672">&&</span> match_lhs<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>dircolors --print-database<span style="color:#66d9ef">)</span>
|
|
<span style="color:#f92672">[[</span> <span style="color:#e6db74">$'\n'</span><span style="color:#e6db74">${</span>match_lhs<span style="color:#e6db74">}</span> <span style="color:#f92672">==</span> *<span style="color:#e6db74">$'\n'</span><span style="color:#e6db74">"TERM "</span><span style="color:#e6db74">${</span>safe_term<span style="color:#e6db74">}</span>* <span style="color:#f92672">]]</span> <span style="color:#f92672">&&</span> use_color<span style="color:#f92672">=</span>true
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#e6db74">${</span>use_color<span style="color:#e6db74">}</span> ; <span style="color:#66d9ef">then</span>
|
|
<span style="color:#75715e"># Enable colors for ls, etc. Prefer ~/.dir_colors #64489</span>
|
|
<span style="color:#66d9ef">if</span> type -P dircolors >/dev/null ; <span style="color:#66d9ef">then</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -f ~/.dir_colors <span style="color:#f92672">]]</span> ; <span style="color:#66d9ef">then</span>
|
|
eval <span style="color:#66d9ef">$(</span>dircolors -b ~/.dir_colors<span style="color:#66d9ef">)</span>
|
|
<span style="color:#66d9ef">elif</span> <span style="color:#f92672">[[</span> -f /etc/DIR_COLORS <span style="color:#f92672">]]</span> ; <span style="color:#66d9ef">then</span>
|
|
eval <span style="color:#66d9ef">$(</span>dircolors -b /etc/DIR_COLORS<span style="color:#66d9ef">)</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#e6db74">${</span>EUID<span style="color:#e6db74">}</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">]]</span> ; <span style="color:#66d9ef">then</span>
|
|
PS1<span style="color:#f92672">=</span><span style="color:#e6db74">'\[\033[01;31m\][\h\[\033[01;36m\] \W\[\033[01;31m\]]\$\[\033[00m\] '</span>
|
|
<span style="color:#66d9ef">else</span>
|
|
PS1<span style="color:#f92672">=</span><span style="color:#e6db74">'\[\033[01;32m\][\u@\h\[\033[01;37m\] \W\[\033[01;32m\]]\$\[\033[00m\] '</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
alias ls<span style="color:#f92672">=</span><span style="color:#e6db74">'ls --color=auto'</span>
|
|
alias grep<span style="color:#f92672">=</span><span style="color:#e6db74">'grep --colour=auto'</span>
|
|
alias egrep<span style="color:#f92672">=</span><span style="color:#e6db74">'egrep --colour=auto'</span>
|
|
alias fgrep<span style="color:#f92672">=</span><span style="color:#e6db74">'fgrep --colour=auto'</span>
|
|
<span style="color:#66d9ef">else</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#e6db74">${</span>EUID<span style="color:#e6db74">}</span> <span style="color:#f92672">==</span> <span style="color:#ae81ff">0</span> <span style="color:#f92672">]]</span> ; <span style="color:#66d9ef">then</span>
|
|
<span style="color:#75715e"># show root@ when we don't have colors</span>
|
|
PS1<span style="color:#f92672">=</span><span style="color:#e6db74">'\u@\h \W \$ '</span>
|
|
<span style="color:#66d9ef">else</span>
|
|
PS1<span style="color:#f92672">=</span><span style="color:#e6db74">'\u@\h \w \$ '</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
unset use_color safe_term match_lhs sh
|
|
</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%5Fnode/The-Shopt-Builtin.html">shopt list</a></li>
|
|
</ul>
|
|
<!--listend-->
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">complete -cf sudo <span style="color:#75715e"># Sudo autocompletion</span>
|
|
|
|
shopt -s checkwinsize <span style="color:#75715e"># Check windows size after each command</span>
|
|
shopt -s expand_aliases <span style="color:#75715e"># Aliases</span>
|
|
shopt -s autocd <span style="color:#75715e"># Cd to directory just by typing its name (without cd)</span>
|
|
</code></pre></div><p>History control</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">shopt -s histappend
|
|
export HISTCONTROL<span style="color:#f92672">=</span>ignoredups:erasedups
|
|
HISTSIZE<span style="color:#f92672">=</span>
|
|
HISTFILESIZE<span style="color:#f92672">=</span>
|
|
</code></pre></div><p>Autocompletions</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#f92672">[</span> -r /usr/share/bash-completion/bash_completion <span style="color:#f92672">]</span> <span style="color:#f92672">&&</span> . /usr/share/bash-completion/bash_completion
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -d <span style="color:#e6db74">"/usr/share/fzf"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
source /usr/share/fzf/completion.bash
|
|
source /usr/share/fzf/key-bindings.bash
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><h4 id="aliases">Aliases</h4>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">alias v<span style="color:#f92672">=</span><span style="color:#e6db74">"vim"</span>
|
|
alias gg<span style="color:#f92672">=</span><span style="color:#e6db74">"lazygit"</span>
|
|
alias ls<span style="color:#f92672">=</span><span style="color:#e6db74">"exa --icons"</span>
|
|
alias ll<span style="color:#f92672">=</span><span style="color:#e6db74">"exa -lah --icons"</span>
|
|
alias q<span style="color:#f92672">=</span><span style="color:#e6db74">"exit"</span>
|
|
alias c<span style="color:#f92672">=</span><span style="color:#e6db74">"clear"</span>
|
|
alias ci<span style="color:#f92672">=</span><span style="color:#e6db74">"init_conda"</span>
|
|
alias ca<span style="color:#f92672">=</span><span style="color:#e6db74">"conda activate"</span>
|
|
alias cii<span style="color:#f92672">=</span><span style="color:#e6db74">"export INIT_CONDA=true && init_conda"</span>
|
|
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> ! -z <span style="color:#e6db74">"</span>$SIMPLE<span style="color:#e6db74">"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
unalias ls
|
|
alias ll<span style="color:#f92672">=</span><span style="color:#e6db74">"ls -lah"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><h4 id="anaconda">Anaconda</h4>
|
|
<blockquote>
|
|
<p>managed by ‘conda init’ !!!</p>
|
|
</blockquote>
|
|
<p>Yeah, tell this to yourself</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">init_conda <span style="color:#f92672">()</span> <span style="color:#f92672">{</span>
|
|
__conda_setup<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span><span style="color:#e6db74">'/home/pavel/.guix-extra-profiles/dev/dev/bin/conda'</span> <span style="color:#e6db74">'shell.bash'</span> <span style="color:#e6db74">'hook'</span> 2> /dev/null<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> $? -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
eval <span style="color:#e6db74">"</span>$__conda_setup<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">else</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> -f <span style="color:#e6db74">"/home/pavel/.guix-extra-profiles/dev/dev/etc/profile.d/conda.sh"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
. <span style="color:#e6db74">"/home/pavel/.guix-extra-profiles/dev/dev/etc/profile.d/conda.sh"</span>
|
|
<span style="color:#66d9ef">else</span>
|
|
<span style="color:#75715e"># export PATH="/home/pavel/Programs/miniconda3/bin:$PATH"</span>
|
|
echo <span style="color:#e6db74">"what"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
unset __conda_setup
|
|
<span style="color:#f92672">}</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> ! -z <span style="color:#e6db74">"</span>$INIT_CONDA<span style="color:#e6db74">"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
init_conda
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><h4 id="starship-prompt">Starship prompt</h4>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash"><span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> -z <span style="color:#e6db74">"</span>$SIMPLE<span style="color:#e6db74">"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
eval <span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>starship init bash<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#a6e22e">starship</span> init fish <span style="color:#f92672">|</span> source
|
|
</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#a6e22e">fish_vi_key_bindings</span>
|
|
|
|
<span style="color:#e6db74"><<shell-alias</span>es<span style="color:#f92672">>></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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#66d9ef">if</span> ! test <span style="color:#a6e22e">-n</span> <span style="color:#e6db74">"</span>$TMUX<span style="color:#e6db74">"</span>; <span style="color:#66d9ef">and</span> ! test <span style="color:#a6e22e">-n</span> <span style="color:#e6db74">"</span>$IS_EMACS<span style="color:#e6db74">"</span>;
|
|
<span style="color:#a6e22e">colorscript</span> random
|
|
<span style="color:#66d9ef">end</span>
|
|
</code></pre></div><p>Suppress fish greeting</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#66d9ef">set</span> fish_greeting
|
|
</code></pre></div><h3 id="anaconda">Anaconda</h3>
|
|
<p>First, a function to initialize anaconda.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#66d9ef">function</span> <span style="color:#a6e22e">init_conda</span>
|
|
eval /home/pavel/.guix<span style="color:#a6e22e">-extra-profiles</span>/dev/dev/bin/conda <span style="color:#e6db74">"shell.fish"</span> <span style="color:#e6db74">"hook"</span> $argv <span style="color:#f92672">|</span> source
|
|
<span style="color:#66d9ef">end</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#66d9ef">test</span> <span style="color:#a6e22e">-n</span> <span style="color:#e6db74">"</span>$INIT_CONDA<span style="color:#e6db74">"</span>;
|
|
<span style="color:#a6e22e">init_conda</span>
|
|
<span style="color:#66d9ef">end</span>
|
|
</code></pre></div><p>Then, check if launched from Emacs with environment activated.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#66d9ef">if</span> <span style="color:#66d9ef">test</span> <span style="color:#a6e22e">-n</span> <span style="color:#e6db74">"</span>$EMACS_CONDA_ENV<span style="color:#e6db74">"</span>;
|
|
<span style="color:#a6e22e">conda</span> activate $EMACS_CONDA_ENV
|
|
<span style="color:#66d9ef">end</span>
|
|
</code></pre></div><h3 id="colors">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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish"><span style="color:#66d9ef">set</span> fish_color_command cyan
|
|
<span style="color:#66d9ef">set</span> fish_color_comment green
|
|
<span style="color:#66d9ef">set</span> fish_color_end white
|
|
<span style="color:#66d9ef">set</span> fish_color_error red
|
|
<span style="color:#66d9ef">set</span> fish_color_escape yellow
|
|
<span style="color:#66d9ef">set</span> fish_color_operator yellow
|
|
<span style="color:#66d9ef">set</span> fish_color_param magenta
|
|
<span style="color:#66d9ef">set</span> fish_color_quote brwhite
|
|
<span style="color:#66d9ef">set</span> fish_color_redirection yellow
|
|
</code></pre></div><h3 id="keybindings">Keybindings</h3>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-fish" data-lang="fish">bind <span style="color:#a6e22e">-M</span> insert <span style="color:#ae81ff">\e</span>l forward<span style="color:#a6e22e">-char</span>
|
|
bind <span style="color:#a6e22e">-M</span> insert <span style="color:#ae81ff">\e</span>h backward<span style="color:#a6e22e">-char</span>
|
|
bind <span style="color:#a6e22e">-M</span> insert <span style="color:#ae81ff">\e</span>w forward<span style="color:#a6e22e">-word</span>
|
|
bind <span style="color:#a6e22e">-M</span> insert <span style="color:#ae81ff">\e</span>b backward<span style="color:#a6e22e">-word</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>
|
|
<p>Set starship prompt</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-toml" data-lang="toml"><span style="color:#a6e22e">startup</span> = [
|
|
<span style="color:#960050;background-color:#1e0010"><<</span><span style="color:#a6e22e">nu-aliases</span><span style="color:#960050;background-color:#1e0010">>></span>,
|
|
<span style="color:#e6db74">"mkdir ~/.cache/starship"</span>,
|
|
<span style="color:#e6db74">"starship init nu | save ~/.cache/starship/init.nu"</span>,
|
|
<span style="color:#e6db74">"source ~/.cache/starship/init.nu"</span>,
|
|
]
|
|
<span style="color:#a6e22e">prompt</span> = <span style="color:#e6db74">"starship_prompt"</span>
|
|
</code></pre></div><p>Skip welcome message</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-toml" data-lang="toml"><span style="color:#a6e22e">skip_welcome_message</span> = <span style="color:#66d9ef">true</span>
|
|
</code></pre></div><p>Set table mode</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-toml" data-lang="toml"><span style="color:#a6e22e">table_mode</span> = <span style="color:#e6db74">"rounded"</span>
|
|
</code></pre></div><p>Aliases</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-toml" data-lang="toml"><span style="color:#e6db74">"alias ll = ls -l"</span>,
|
|
<span style="color:#e6db74">"alias c = clear"</span>,
|
|
<span style="color:#e6db74">"alias q = exit"</span>
|
|
</code></pre></div><p>Colors</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-toml" data-lang="toml">[<span style="color:#a6e22e">color_config</span>]
|
|
<span style="color:#a6e22e">primitive_filesize</span>=<span style="color:#e6db74">"ub"</span>
|
|
<span style="color:#a6e22e">primitive_boolean</span>=<span style="color:#e6db74">"yu"</span>
|
|
<span style="color:#a6e22e">primitive_duration</span>=<span style="color:#e6db74">"g"</span>
|
|
<span style="color:#a6e22e">primitive_path</span>=<span style="color:#e6db74">"y"</span>
|
|
<span style="color:#a6e22e">primitive_date</span>=<span style="color:#e6db74">"r"</span>
|
|
<span style="color:#a6e22e">primitive_int</span>=<span style="color:#e6db74">"c"</span>
|
|
<span style="color:#a6e22e">primitive_decimal</span>=<span style="color:#e6db74">"c"</span>
|
|
</code></pre></div><h2 id="starship-prompt">Starship prompt</h2>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Guix dependency</th>
|
|
<th>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>rust-starship</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-toml" data-lang="toml">[<span style="color:#a6e22e">character</span>]
|
|
<span style="color:#a6e22e">success_symbol</span> = <span style="color:#e6db74">"[➤ ](bold green)"</span>
|
|
<span style="color:#a6e22e">error_symbol</span> = <span style="color:#e6db74">"[ ](bold red)"</span>
|
|
<span style="color:#a6e22e">vicmd_symbol</span> = <span style="color:#e6db74">"[ᐊ ](bold green)"</span>
|
|
|
|
[<span style="color:#a6e22e">aws</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
<span style="color:#75715e"># [battery]</span>
|
|
<span style="color:#75715e"># full_symbol = ""</span>
|
|
<span style="color:#75715e"># charging_symbol = ""</span>
|
|
<span style="color:#75715e"># discharging_symbol = ""</span>
|
|
|
|
[<span style="color:#a6e22e">conda</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">cmd_duration</span>]
|
|
<span style="color:#a6e22e">min_time</span> = <span style="color:#ae81ff">500</span>
|
|
<span style="color:#a6e22e">format</span> = <span style="color:#e6db74">" [$duration]($style) "</span>
|
|
|
|
[<span style="color:#a6e22e">docker_context</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">elixir</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">elm</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">git_branch</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
<span style="color:#a6e22e">truncation_length</span> = <span style="color:#ae81ff">20</span>
|
|
|
|
[<span style="color:#a6e22e">golang</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
<span style="color:#75715e"># [haskell]</span>
|
|
<span style="color:#75715e"># symbol = " "</span>
|
|
|
|
[<span style="color:#a6e22e">hg_branch</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">java</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">julia</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">memory_usage</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">nim</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">nix_shell</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">nodejs</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">package</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
<span style="color:#a6e22e">disabled</span> = <span style="color:#66d9ef">true</span>
|
|
|
|
[<span style="color:#a6e22e">php</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">python</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">ruby</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</span>
|
|
|
|
[<span style="color:#a6e22e">rust</span>]
|
|
<span style="color:#a6e22e">symbol</span> = <span style="color:#e6db74">" "</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 two work.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">default</span>-<span style="color:#a6e22e">terminal</span> <span style="color:#e6db74">"screen-256color"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">ga</span> <span style="color:#a6e22e">terminal</span>-<span style="color:#a6e22e">overrides</span> <span style="color:#e6db74">",*256col*:Tc"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span></code></pre></div><p>History limit.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">history</span>-<span style="color:#a6e22e">limit</span> <span style="color:#ae81ff">20000</span><span style="color:#960050;background-color:#1e0010">
|
|
</span></code></pre></div><h3 id="keybindings">Keybindings</h3>
|
|
<p>Enable vi keys and mouse.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">set</span>-<span style="color:#a6e22e">window</span>-<span style="color:#a6e22e">option</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">mode</span>-<span style="color:#a6e22e">keys</span> <span style="color:#a6e22e">vi</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span>-<span style="color:#a6e22e">option</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">xterm</span>-<span style="color:#a6e22e">keys</span> <span style="color:#a6e22e">on</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span>-<span style="color:#a6e22e">option</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">mouse</span> <span style="color:#a6e22e">on</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">sg</span> <span style="color:#a6e22e">escape</span>-<span style="color:#a6e22e">time</span> <span style="color:#ae81ff">10</span><span style="color:#960050;background-color:#1e0010">
|
|
</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">unbind</span> <span style="color:#a6e22e">C</span>-<span style="color:#a6e22e">b</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">prefix</span> <span style="color:#a6e22e">C</span>-<span style="color:#a6e22e">a</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">C</span>-<span style="color:#a6e22e">a</span> <span style="color:#a6e22e">send</span>-<span style="color:#a6e22e">prefix</span><span style="color:#960050;background-color:#1e0010">
|
|
</span></code></pre></div><p>Vi-like keybindings to manage panes & windows.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">h</span> <span style="color:#a6e22e">select</span>-<span style="color:#a6e22e">pane</span> -<span style="color:#a6e22e">L</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">j</span> <span style="color:#a6e22e">select</span>-<span style="color:#a6e22e">pane</span> -<span style="color:#a6e22e">D</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">k</span> <span style="color:#a6e22e">select</span>-<span style="color:#a6e22e">pane</span> -<span style="color:#a6e22e">U</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">l</span> <span style="color:#a6e22e">select</span>-<span style="color:#a6e22e">pane</span> -<span style="color:#a6e22e">R</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">s</span> <span style="color:#a6e22e">split</span>-<span style="color:#a6e22e">window</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">v</span> <span style="color:#a6e22e">split</span>-<span style="color:#a6e22e">window</span> -<span style="color:#a6e22e">h</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span>-<span style="color:#a6e22e">key</span> <span style="color:#a6e22e">n</span> <span style="color:#a6e22e">new</span>-<span style="color:#a6e22e">window</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span>-<span style="color:#a6e22e">key</span> <span style="color:#a6e22e">t</span> <span style="color:#a6e22e">next</span>-<span style="color:#a6e22e">window</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span>-<span style="color:#a6e22e">key</span> <span style="color:#a6e22e">T</span> <span style="color:#a6e22e">previous</span>-<span style="color:#a6e22e">window</span><span style="color:#960050;background-color:#1e0010">
|
|
</span></code></pre></div><p>Reload the config.</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bind</span> <span style="color:#a6e22e">r</span> <span style="color:#a6e22e">source</span>-<span style="color:#a6e22e">file</span> ~/.<span style="color:#a6e22e">tmux</span>.<span style="color:#a6e22e">conf</span><span style="color:#960050;background-color:#1e0010">
|
|
</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 copying copy to clipboard as well</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">bind</span>-<span style="color:#a6e22e">key</span> -<span style="color:#a6e22e">T</span> <span style="color:#a6e22e">copy</span>-<span style="color:#a6e22e">mode</span>-<span style="color:#a6e22e">vi</span> <span style="color:#a6e22e">MouseDragEnd1Pane</span> <span style="color:#a6e22e">send</span>-<span style="color:#a6e22e">keys</span> -<span style="color:#a6e22e">X</span> <span style="color:#a6e22e">copy</span>-<span style="color:#a6e22e">pipe</span>-<span style="color:#a6e22e">and</span>-<span style="color:#a6e22e">cancel</span> <span style="color:#e6db74">"xclip -selection clipboard -i"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">bind</span>-<span style="color:#a6e22e">key</span> -<span style="color:#a6e22e">T</span> <span style="color:#a6e22e">copy</span>-<span style="color:#a6e22e">mode</span>-<span style="color:#a6e22e">vi</span> <span style="color:#a6e22e">y</span> <span style="color:#a6e22e">send</span>-<span style="color:#a6e22e">keys</span> -<span style="color:#a6e22e">X</span> <span style="color:#a6e22e">copy</span>-<span style="color:#a6e22e">pipe</span>-<span style="color:#a6e22e">and</span>-<span style="color:#a6e22e">cancel</span> <span style="color:#e6db74">"xclip -selection clipboard -i"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span></code></pre></div><h3 id="ui">UI</h3>
|
|
<p>I generated the 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>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"># <span style="color:#a6e22e">This</span> <span style="color:#a6e22e">tmux</span> <span style="color:#a6e22e">statusbar</span> <span style="color:#a6e22e">config</span> <span style="color:#a6e22e">was</span> <span style="color:#a6e22e">created</span> <span style="color:#a6e22e">by</span> <span style="color:#a6e22e">tmuxline</span>.<span style="color:#a6e22e">vim</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span># <span style="color:#a6e22e">on</span> <span style="color:#a6e22e">Wed</span>, <span style="color:#ae81ff">22</span> <span style="color:#a6e22e">Jan</span> <span style="color:#ae81ff">2020</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">justify</span> <span style="color:#e6db74">"centre"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span> <span style="color:#e6db74">"on"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">left</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"none"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">message</span>-<span style="color:#a6e22e">command</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"fg=#bfc7d5,bg=#474b59"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">right</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"none"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">pane</span>-<span style="color:#a6e22e">active</span>-<span style="color:#a6e22e">border</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"fg=#939ede"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"none,bg=#333747"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">message</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"fg=#bfc7d5,bg=#474b59"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">pane</span>-<span style="color:#a6e22e">border</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"fg=#474b59"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">right</span>-<span style="color:#a6e22e">length</span> <span style="color:#e6db74">"100"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">left</span>-<span style="color:#a6e22e">length</span> <span style="color:#e6db74">"100"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">setw</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">window</span>-<span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">activity</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"none,fg=#939ede,bg=#333747"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">setw</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">window</span>-<span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">separator</span> <span style="color:#e6db74">""</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">setw</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">window</span>-<span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">style</span> <span style="color:#e6db74">"none,fg=#bfc7d5,bg=#333747"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">left</span> <span style="color:#e6db74">"#[fg=#292D3E,bg=#939ede] #S #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">set</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">right</span> <span style="color:#e6db74">"#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#333747] %-H:%M #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] %a, %b %d #[fg=#939ede,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#292D3E,bg=#939ede] #H "</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">setw</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">window</span>-<span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">format</span> <span style="color:#e6db74">"#[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]#[default] #I #W #[align=left] #[fg=#333747,bg=#333747,nobold,nounderscore,noitalics]"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span><span style="color:#960050;background-color:#1e0010"></span><span style="color:#a6e22e">setw</span> -<span style="color:#a6e22e">g</span> <span style="color:#a6e22e">window</span>-<span style="color:#a6e22e">status</span>-<span style="color:#a6e22e">current</span>-<span style="color:#a6e22e">format</span> <span style="color:#e6db74">"#[fg=#333747,bg=#474b59,nobold,nounderscore,noitalics]#[fg=#bfc7d5,bg=#474b59] #I #W #[fg=#474b59,bg=#333747,nobold,nounderscore,noitalics]"</span><span style="color:#960050;background-color:#1e0010">
|
|
</span></code></pre></div><p>Source the line config:</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-vim" data-lang="vim"><span style="color:#a6e22e">source</span> ~/.<span style="color:#a6e22e">tmux</span>.<span style="color:#a6e22e">line</span>.<span style="color:#a6e22e">conf</span><span style="color:#960050;background-color:#1e0010">
|
|
</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 configuration the in yml format is way more convinient than patches.</p>
|
|
<p>Once again, we have an application which doesn’t support reading Xresources, so here goes noweb.</p>
|
|
<p><a id="code-snippet--get-xrdb"></a></p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">xrdb -query all | grep <span style="color:#e6db74">"</span>$color<span style="color:#e6db74">:"</span> | cut -f <span style="color:#ae81ff">2</span>
|
|
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(setq-local org-confirm-babel-evaluate <span style="color:#66d9ef">nil</span>)
|
|
</code></pre></div><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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-yaml" data-lang="yaml"><span style="color:#f92672">decorations</span>: <span style="color:#ae81ff">none</span>
|
|
|
|
<span style="color:#f92672">font</span>:
|
|
<span style="color:#f92672">normal</span>:
|
|
<span style="color:#f92672">family</span>: <span style="color:#ae81ff">JetBrainsMono Nerd Font</span>
|
|
<span style="color:#f92672">style</span>: <span style="color:#ae81ff">Regular</span>
|
|
|
|
<span style="color:#f92672">size</span>: <span style="color:#ae81ff">10</span>
|
|
|
|
<span style="color:#f92672">env</span>:
|
|
<span style="color:#f92672">TERM</span>: <span style="color:#ae81ff">xterm-256color</span>
|
|
|
|
<span style="color:#f92672">colors</span>:
|
|
<span style="color:#f92672">primary</span>:
|
|
<span style="color:#f92672">background</span>: <span style="color:#e6db74">'<<get-xrdb(color="color0")>>'</span>
|
|
<span style="color:#f92672">foreground</span>: <span style="color:#e6db74">'<<get-xrdb(color="color7")>>'</span>
|
|
<span style="color:#f92672">normal</span>:
|
|
<span style="color:#f92672">black</span>: <span style="color:#e6db74">'<<get-xrdb(color="color0")>>'</span>
|
|
<span style="color:#f92672">red</span>: <span style="color:#e6db74">'<<get-xrdb(color="color1")>>'</span>
|
|
<span style="color:#f92672">green</span>: <span style="color:#e6db74">'<<get-xrdb(color="color2")>>'</span>
|
|
<span style="color:#f92672">yellow</span>: <span style="color:#e6db74">'<<get-xrdb(color="color3")>>'</span>
|
|
<span style="color:#f92672">blue</span>: <span style="color:#e6db74">'<<get-xrdb(color="color4")>>'</span>
|
|
<span style="color:#f92672">magenta</span>: <span style="color:#e6db74">'<<get-xrdb(color="color5")>>'</span>
|
|
<span style="color:#f92672">cyan</span>: <span style="color:#e6db74">'<<get-xrdb(color="color6")>>'</span>
|
|
<span style="color:#f92672">white</span>: <span style="color:#e6db74">'<<get-xrdb(color="color7")>>'</span>
|
|
<span style="color:#f92672">bright</span>:
|
|
<span style="color:#f92672">Black</span>: <span style="color:#e6db74">'<<get-xrdb(color="color8")>>'</span>
|
|
<span style="color:#f92672">Red</span>: <span style="color:#e6db74">'<<get-xrdb(color="color9")>>'</span>
|
|
<span style="color:#f92672">Green</span>: <span style="color:#e6db74">'<<get-xrdb(color="color10")>>'</span>
|
|
<span style="color:#f92672">Yellow</span>: <span style="color:#e6db74">'<<get-xrdb(color="color11")>>'</span>
|
|
<span style="color:#f92672">Blue</span>: <span style="color:#e6db74">'<<get-xrdb(color="color12")>>'</span>
|
|
<span style="color:#f92672">Magenta</span>: <span style="color:#e6db74">'<<get-xrdb(color="color13")>>'</span>
|
|
<span style="color:#f92672">Cyan</span>: <span style="color:#e6db74">'<<get-xrdb(color="color14")>>'</span>
|
|
<span style="color:#f92672">White</span>: <span style="color:#e6db74">'<<get-xrdb(color="color15")>>'</span>
|
|
|
|
<span style="color:#f92672">background_opacity</span>: <span style="color:#ae81ff">0.80</span>
|
|
|
|
<span style="color:#f92672">window</span>:
|
|
<span style="color:#f92672">padding</span>:
|
|
<span style="color:#f92672">x</span>: <span style="color:#ae81ff">0</span>
|
|
<span style="color:#f92672">y</span>: <span style="color:#ae81ff">0</span>
|
|
<span style="color:#f92672">dynamic_padding</span>: <span style="color:#66d9ef">true</span>
|
|
|
|
<span style="color:#f92672">key_bindings</span>:
|
|
- { <span style="color:#f92672">key: Paste, action</span>: <span style="color:#ae81ff">Paste }</span>
|
|
- { <span style="color:#f92672">key: Copy, action</span>: <span style="color:#ae81ff">Copy }</span>
|
|
- { <span style="color:#f92672">key: L, mods: Control, action</span>: <span style="color:#ae81ff">ClearLogNotice }</span>
|
|
- { <span style="color:#f92672">key: L, mods: Control, mode: ~Vi|~Search, chars</span>: <span style="color:#e6db74">"\x0c"</span> }
|
|
- { <span style="color:#f92672">key: PageUp, mods: Shift, mode: ~Alt, action</span>: <span style="color:#ae81ff">ScrollPageUp, }</span>
|
|
- { <span style="color:#f92672">key: PageDown, mods: Shift, mode: ~Alt, action</span>: <span style="color:#ae81ff">ScrollPageDown }</span>
|
|
- { <span style="color:#f92672">key: Home, mods: Shift, mode: ~Alt, action</span>: <span style="color:#ae81ff">ScrollToTop, }</span>
|
|
- { <span style="color:#f92672">key: End, mods: Shift, mode: ~Alt, action</span>: <span style="color:#ae81ff">ScrollToBottom }</span>
|
|
|
|
<span style="color:#75715e"># Turn off vi mode</span>
|
|
- { <span style="color:#f92672">key: Space, mods: Shift|Control, mode: ~Search, action</span>: <span style="color:#ae81ff">ReceiveChar }</span>
|
|
|
|
<span style="color:#75715e"># (Windows, Linux, and BSD only)</span>
|
|
- { <span style="color:#f92672">key: V, mods: Control|Shift, mode: ~Vi, action</span>: <span style="color:#ae81ff">Paste }</span>
|
|
- { <span style="color:#f92672">key: C, mods: Control|Shift, action</span>: <span style="color:#ae81ff">Copy }</span>
|
|
- { <span style="color:#f92672">key: F, mods: Control|Shift, mode: ~Search, action</span>: <span style="color:#ae81ff">ReceiveChar }</span>
|
|
- { <span style="color:#f92672">key: B, mods: Control|Shift, mode: ~Search, action</span>: <span style="color:#ae81ff">ReceiveChar }</span>
|
|
- { <span style="color:#f92672">key: Insert, mods: Shift, action</span>: <span style="color:#ae81ff">PasteSelection }</span>
|
|
- { <span style="color:#f92672">key: Key0, mods: Control, action</span>: <span style="color:#ae81ff">ResetFontSize }</span>
|
|
- { <span style="color:#f92672">key: Equals, mods: Control, action</span>: <span style="color:#ae81ff">IncreaseFontSize }</span>
|
|
- { <span style="color:#f92672">key: Plus, mods: Control, action</span>: <span style="color:#ae81ff">IncreaseFontSize }</span>
|
|
- { <span style="color:#f92672">key: NumpadAdd, mods: Control, action</span>: <span style="color:#ae81ff">IncreaseFontSize }</span>
|
|
- { <span style="color:#f92672">key: Minus, mods: Control, action</span>: <span style="color:#ae81ff">DecreaseFontSize }</span>
|
|
- { <span style="color:#f92672">key: NumpadSubtract, mods: Control, action</span>: <span style="color:#ae81ff">DecreaseFontSize }</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>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>
|
|
</tbody>
|
|
</table>
|
|
<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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">nt <command>
|
|
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-sh" data-lang="sh">command<span style="color:#f92672">=</span><span style="color:#e6db74">"</span>$@<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[</span> ! -z <span style="color:#e6db74">"</span>$command<span style="color:#e6db74">"</span> <span style="color:#f92672">]</span>; <span style="color:#66d9ef">then</span>
|
|
start_time<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>date -u +%s<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
|
|
$command
|
|
end_time<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$(</span>date -u +%s<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span>
|
|
elapsed<span style="color:#f92672">=</span><span style="color:#e6db74">"</span><span style="color:#66d9ef">$((</span>$end_time<span style="color:#f92672">-</span>$start_time<span style="color:#66d9ef">))</span><span style="color:#e6db74">"</span>
|
|
notify-send <span style="color:#e6db74">"Terminal"</span> <span style="color:#e6db74">"Command\n</span>$command<span style="color:#e6db74">\nexecuted in </span>$elapsed<span style="color:#e6db74"> seconds"</span>
|
|
<span style="color:#66d9ef">else</span>
|
|
notify-send <span style="color:#e6db74">"Terminal"</span> <span style="color:#e6db74">"Command execution complete"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><h3 id="autocommit"><code>autocommit</code></h3>
|
|
<p>A script to autocommit files 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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-text" data-lang="text">autocommit <repository> [-F]
|
|
</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 more or less what the script is doing:</p>
|
|
<ul>
|
|
<li>If there is a merge conflict, notify</li>
|
|
<li>If there are changed files in the last <code>TIMEOUT_MIN</code> minutes, commit</li>
|
|
<li>Fetch</li>
|
|
<li>If there are were changes in the last <code>TTMEOUT_MIN</code>, merge (usually the merge has to be fast-forward)</li>
|
|
<li>If fetch was successful & merge was 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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">TIMEOUT_MIN<span style="color:#f92672">=</span><span style="color:#e6db74">${</span>TIMEOUT_MIN<span style="color:#66d9ef">:-</span>60<span style="color:#e6db74">}</span>
|
|
|
|
export DISPLAY<span style="color:#f92672">=</span>:0
|
|
cd <span style="color:#e6db74">"</span>$1<span style="color:#e6db74">"</span>
|
|
|
|
TIMESTAMP<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>date +%s<span style="color:#66d9ef">)</span>
|
|
LAST_COMMIT_TIMESTAMP<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>git log -1 --format<span style="color:#f92672">=</span><span style="color:#e6db74">"%at"</span> | xargs -I<span style="color:#f92672">{}</span> date -d @<span style="color:#f92672">{}</span> +%s<span style="color:#66d9ef">)</span>
|
|
RECENTLY_CHANGED_NUM<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>find . -not -path <span style="color:#e6db74">'*/\.*'</span> -mmin -$TIMEOUT_MIN | wc -l<span style="color:#66d9ef">)</span>
|
|
CHANGED_NUM<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>git status --porcelain | wc -l<span style="color:#66d9ef">)</span>
|
|
COMMITED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
PUSHED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
FETCHED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
MERGED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#66d9ef">$(</span>git ls-files -u | wc -l<span style="color:#66d9ef">)</span> -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
notify-send -u critical <span style="color:#e6db74">"Autocommit </span><span style="color:#66d9ef">$(</span>pwd<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> <span style="color:#e6db74">"Merge conflict!"</span>
|
|
exit
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#f92672">(</span>$RECENTLY_CHANGED_NUM -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">||</span> $2 <span style="color:#f92672">=</span> <span style="color:#e6db74">"-F"</span><span style="color:#f92672">)</span> <span style="color:#f92672">&&</span> $CHANGED_NUM -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
read -r -d <span style="color:#e6db74">''</span> MESSAGE <span style="color:#e6db74"><< EOM
|
|
</span><span style="color:#e6db74">Autocommit $(date -Iminutes)
|
|
</span><span style="color:#e6db74">
|
|
</span><span style="color:#e6db74">Hostname: $(hostname)
|
|
</span><span style="color:#e6db74">EOM</span>
|
|
git add -A
|
|
git commit -m <span style="color:#e6db74">"</span>$MESSAGE<span style="color:#e6db74">"</span>
|
|
COMMITED<span style="color:#f92672">=</span><span style="color:#e6db74">"Yes"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
NEED_TO_PUSH<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>git log origin/master..HEAD | wc -l<span style="color:#66d9ef">)</span>
|
|
|
|
git fetch <span style="color:#f92672">&&</span> FETCHED<span style="color:#f92672">=</span><span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">||</span> FETCHED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $RECENTLY_CHANGED_NUM -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">&&</span> $2 !<span style="color:#f92672">=</span> <span style="color:#e6db74">'-F'</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
MERGED<span style="color:#f92672">=</span><span style="color:#e6db74">"Waiting"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#f92672">(</span>$RECENTLY_CHANGED_NUM -eq <span style="color:#ae81ff">0</span> <span style="color:#f92672">||</span> $2 <span style="color:#f92672">=</span> <span style="color:#e6db74">"-F"</span><span style="color:#f92672">)</span> <span style="color:#f92672">&&</span> $FETCHED <span style="color:#f92672">=</span> <span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
MERGE_OUT<span style="color:#f92672">=</span><span style="color:#66d9ef">$(</span>git merge origin/master<span style="color:#66d9ef">)</span> <span style="color:#f92672">&&</span> MERGED<span style="color:#f92672">=</span><span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">||</span> MERGED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $NEED_TO_PUSH -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">&&</span> <span style="color:#f92672">(</span>$MERGED <span style="color:#f92672">=</span> <span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">||</span> $MERGED <span style="color:#f92672">=</span> <span style="color:#e6db74">"Waiting"</span><span style="color:#f92672">)</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
git push origin <span style="color:#f92672">&&</span> PUSHED<span style="color:#f92672">=</span><span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">||</span> PUSHED<span style="color:#f92672">=</span><span style="color:#e6db74">"No"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> $PUSHED <span style="color:#f92672">=</span> <span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">||</span> $COMMITED <span style="color:#f92672">=</span> <span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">||</span> <span style="color:#f92672">(</span>$MERGED <span style="color:#f92672">=</span> <span style="color:#e6db74">"Yes"</span> <span style="color:#f92672">&&</span> $MERGE_OUT !<span style="color:#f92672">=</span> <span style="color:#e6db74">"Already up to date."</span><span style="color:#f92672">)]]</span>; <span style="color:#66d9ef">then</span>
|
|
read -r -d <span style="color:#e6db74">''</span> NOTIFICATION <span style="color:#e6db74"><< EOM
|
|
</span><span style="color:#e6db74">Commited: $COMMITED
|
|
</span><span style="color:#e6db74">Fetched: $FETCHED
|
|
</span><span style="color:#e6db74">Merged: $MERGED
|
|
</span><span style="color:#e6db74">Pushed: $PUSHED
|
|
</span><span style="color:#e6db74">EOM</span>
|
|
notify-send <span style="color:#e6db74">"Autocommit </span><span style="color:#66d9ef">$(</span>pwd<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> <span style="color:#e6db74">"</span>$NOTIFICATION<span style="color:#e6db74">"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
|
|
<span style="color:#66d9ef">if</span> <span style="color:#f92672">[[</span> <span style="color:#66d9ef">$(</span>git ls-files -u | wc -l<span style="color:#66d9ef">)</span> -gt <span style="color:#ae81ff">0</span> <span style="color:#f92672">]]</span>; <span style="color:#66d9ef">then</span>
|
|
notify-send -u critical <span style="color:#e6db74">"Autocommit </span><span style="color:#66d9ef">$(</span>pwd<span style="color:#66d9ef">)</span><span style="color:#e6db74">"</span> <span style="color:#e6db74">"Merge conflict!"</span>
|
|
<span style="color:#66d9ef">fi</span>
|
|
</code></pre></div><p><code>mcron</code> job:</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">job</span> <span style="color:#e6db74">"0 * * * *"</span> <span style="color:#e6db74">"autocommit ~/Documents/org-mode"</span>)
|
|
(<span style="color:#a6e22e">job</span> <span style="color:#e6db74">"0,15,30,45 * * * *"</span> <span style="color:#e6db74">"autocommit ~/.password-store"</span>)
|
|
</code></pre></div><h2 id="guix-settings">Guix settings</h2>
|
|
<p><a id="code-snippet--packages"></a></p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-emacs-lisp" data-lang="emacs-lisp">(my/format-guix-dependencies)
|
|
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-scheme" data-lang="scheme">(<span style="color:#a6e22e">specifications->manifest</span>
|
|
<span style="color:#f92672">'</span>(
|
|
<<packages()>>))
|
|
</code></pre></div><h2 id="android-notes">Android notes</h2>
|
|
<p>SSH instructions: <a href="https://wiki.termux.com/wiki/Remote%5FAccess">https://wiki.termux.com/wiki/Remote%5FAccess</a></p>
|
|
<p>Don’t forget to install the following termux packages:</p>
|
|
<table>
|
|
<thead>
|
|
<tr>
|
|
<th>Termux package</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td>vim</td>
|
|
</tr>
|
|
<tr>
|
|
<td>tmux</td>
|
|
</tr>
|
|
<tr>
|
|
<td>starship</td>
|
|
</tr>
|
|
<tr>
|
|
<td>fish</td>
|
|
</tr>
|
|
<tr>
|
|
<td>exa</td>
|
|
</tr>
|
|
<tr>
|
|
<td>bat</td>
|
|
</tr>
|
|
<tr>
|
|
<td>git</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
<p>Also:</p>
|
|
<ul>
|
|
<li>cleanup <code>$PREFIX/etc/motd</code> to remove hello message.</li>
|
|
<li>copy the required font at <code>$HOME/.termux/font.ttf</code> and run <code>termux-reload-settings</code>.</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="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">git clone https://gitlab.com/dwt1/shell-color-scripts.git
|
|
cd shell-color-scripts
|
|
</code></pre></div><p>Apply a patch:</p>
|
|
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-diff" data-lang="diff"><span style="color:#f92672">--- a/colorscript.sh
|
|
</span><span style="color:#f92672"></span><span style="color:#a6e22e">+++ b/colorscript.sh
|
|
</span><span style="color:#a6e22e"></span><span style="color:#75715e">@@ -2,7 +2,7 @@
|
|
</span><span style="color:#75715e"></span>
|
|
# Simple CLI for shell-color-scripts
|
|
|
|
<span style="color:#f92672">-DIR_COLORSCRIPTS="/opt/shell-color-scripts/colorscripts"
|
|
</span><span style="color:#f92672"></span><span style="color:#a6e22e">+DIR_COLORSCRIPTS="$PREFIX/opt/shell-color-scripts/colorscripts"
|
|
</span><span style="color:#a6e22e"></span> LS_CMD="$(command -v ls)"
|
|
fmt_help=" %-20s\t%-54s\n"
|
|
list_colorscripts="$($LS_CMD "${DIR_COLORSCRIPTS}" | cut -d ' ' -f 1 | nl)"
|
|
</code></pre></div><div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4"><code class="language-bash" data-lang="bash">sudo mkdir -p $PREFIX/opt/shell-color-scripts/colorscripts <span style="color:#f92672">||</span> <span style="color:#66d9ef">return</span> <span style="color:#ae81ff">1</span>
|
|
sudo cp -rf colorscripts/* $PREFIX/opt/shell-color-scripts/colorscripts
|
|
sudo cp colorscript.sh $PREFIX/bin/colorscript
|
|
</code></pre></div>
|
|
</div>
|
|
|
|
</div><div id="footer" class="mb-5">
|
|
<hr>
|
|
<div class="container text-center">
|
|
|
|
</div>
|
|
|
|
<div class="container text-center">
|
|
<a href="https://sqrtminusone.xyz/" title="Pavel Korytov, 2021"><small>Pavel Korytov, 2021</small></a>
|
|
</div>
|
|
|
|
</div>
|
|
</body>
|
|
</html>
|