trying to fix

This commit is contained in:
Chris Cochrun 2022-01-03 12:41:35 -06:00
parent fa407dfeb6
commit e013d7569e
22945 changed files with 447936 additions and 0 deletions

View file

@ -0,0 +1,77 @@
<p>The Suckless community recently announced the release of
<a href="https://st.suckless.org/">st-0.8.2</a>. Seeing as I maintain <a href="https://gitlab.com/protesilaos/st">a soft
fork</a>, it was time to refactor my
repo. I took this opportunity to also review my build, which led me to
the realisation that I need no added features whatsoever. The generic
terminal emulator is good enough.</p>
<h2>What my fork is about</h2>
<p>In terms of functionality, I build <code>st</code> in the users home directory.
This is how I have designed my custom desktop session (distributed via
<a href="https://gitlab.com/protesilaos/dotfiles">my dotfiles</a>): there is
<code>$HOME/bin</code> which is added to <code>$PATH</code>.</p>
<p>As for aesthetics:</p>
<ul>
<li>I have modified the font definition to leverage my <code>fonts.conf</code>
settings in order to use my custom typefaces (see my dotfiles).</li>
<li>All options related to colours are sourced from another file via an
<code>#include</code> directive. This allows me to (i) add my <a href="https://protesilaos.com/tempus-themes/">Tempus
themes</a> and (ii) control STs appearance through
scripts that are part of my custom desktop session (where I perform
live theme switches across the entire environment).</li>
</ul>
<p>Here are a couple of video demonstrations:</p>
<ul>
<li>Basics of <a href="https://protesilaos.com/codelog/2018-12-27-bspwm-demo-video/">my BSPWM session</a>.</li>
<li>Using <a href="https://protesilaos.com/codelog/2019-01-13-tmux-demo-bspwm/">ST and TMUX with BSPWM</a>.</li>
</ul>
<h2>How I prepared my fork</h2>
<p>Downloaded the latest release tarball and extracted it in place:</p>
<pre><code>tar xf st-0.8.2.tar.gz
</code></pre>
<p>I made two copies of the decompressed directory. The one served as
a reference point, while the other was used to apply my modifications.</p>
<p>Once I was done altering the source code, I did:</p>
<pre><code>diff -up ~/st-0.8.2-upstream ~/st-0.8.2-prot-soft-fork/ &gt; \
st-protesilaos-stavrou-soft-fork-0.8.2.diff
</code></pre>
<p>The generated <code>.diff</code> could then be applied to the upstream code base
with the following:</p>
<pre><code>patch path/to/st-protesilaos-stavrou-soft-fork-0.8.2.diff
</code></pre>
<h2>Review and refactor</h2>
<p>After applying my changes, I decided to review my use of upstream
patches, such as the one offering clipboard support, or the other that
improves the appearance of box-drawing characters.</p>
<p>All of them have been removed from my fork in the interest of long-term
maintainability. It is difficult to guarantee that such features will
work with new upstream releases. Plus their functionality is
inessential to my workflow… Learn to work with less!</p>
<p>To use [my] <code>st-0.8.2</code> on Debian Buster we need:</p>
<pre><code>sudo apt install libx11-dev libxft-dev libxext-dev libfreetype6-dev pkgconf
</code></pre>
<p>Simplifying things makes my life easier. It is now trivial to maintain my
fork, which is an integral part of my custom desktop session.</p>