2025-06-20 | What Do I Use Revisited, Revisited

This commit is contained in:
Don Harper 2025-06-21 00:05:16 -05:00
parent 199c6f4cb8
commit 8a6cde7329
3 changed files with 27 additions and 540 deletions

View file

@ -0,0 +1,27 @@
+++
title = "What Do I Use Revisited, Revisited"
subtitle = "A look way back"
summary = "Revisiting another old article"
date = 2025-06-20T11:00:00
draft = false
tags = ["cli", "tui"]
categories = ["software"]
+++
After last week's [series of post](/posts/2025/06/tui-challenge-day-1/), I decided to revisit a
[post](/posts/2019/07/what-do-i-use-revisited/) from 6 years ago, which in itself revisiting a post from 19 years ago
called [What Do I Use?](/posts/2006/06/what-do-i-use/) which listed some of the software I used on a daily basis.
And, guess what? It is still pretty much the same software.
|Original|Past|Preset|Comments|
|:---|:---|:-----|:-------|
|[bash](https://www.gnu.org/software/bash/) - my shell of choice|Still Bash|Still bash|Why change something that works|
|[screen](https://www.gnu.org/software/screen) - a shell multiplexer and more|[tmux](https://github.com/tmux/tmux/wiki)|tmux + [tmuxinator](https://github.com/tmuxinator/tmuxinator)|Scripted tmux? Yes, please|
|mutt-ng - a mua on steroids|[mutt](https://mutt.org)|[neomutt](https://neomutt.org)|Better intergration with other tools|
|centericq - IM. How do you stay in touch?|nothing|Still nothing I have found that I like|CLI chat is mainly dead, sadly|
|snownews - an RSS feed reader|[newsboat](https://www.newsboat.org)|Same|Feed readers are still a thing|
|calcurse - a calendar/todo manger|Sadly, Google Calendar|[khal](https://github.com/pimutils/khal/)|Now, backed by [Nextcloud](https://nextcloud.com)|
|bashblogger - the CMS for this site|[Hugo](https://gohugo.io)|Still Hugo|Have not found anything easier for me|

View file

@ -1,269 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head>
<meta name="generator" content="Hugo 0.147.7"><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>duckland.org</title>
<meta name="description" content="Random Quacking">
<meta name="author" content="Don Harper">
<link rel="canonical" href="https://www.duckland.org/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.8fe10233a706bc87f2e08b3cf97b8bd4c0a80f10675a143675d59212121037c0.css" integrity="sha256-j&#43;ECM6cGvIfy4Is8&#43;XuL1MCoDxBnWhQ2ddWSEhIQN8A=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://www.duckland.org/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://www.duckland.org/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://www.duckland.org/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://www.duckland.org/apple-touch-icon.png">
<link rel="mask-icon" href="https://www.duckland.org/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://www.duckland.org/index.xml">
<link rel="alternate" hreflang="en" href="https://www.duckland.org/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://www.duckland.org/">
<meta property="og:site_name" content="duckland.org">
<meta property="og:title" content="duckland.org">
<meta property="og:description" content="Random Quacking">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="duckland.org">
<meta name="twitter:description" content="Random Quacking">
<meta name="twitter:site" content="@https://fosstodon.org/@duckunix">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "duckland.org",
"url": "https://www.duckland.org/",
"description": "Random Quacking",
"logo": "https://www.duckland.org/favicon.ico",
"sameAs": [
]
}
</script>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://www.duckland.org/" accesskey="h" title="duckland.org (Alt + H)">duckland.org</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)" aria-label="Toggle theme">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
</ul>
</nav>
</header>
<main class="main">
<article class="first-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Check-in 2025Q2
</h2>
</header>
<div class="entry-content">
<p>Check point 2025Q2</p>
</div>
<footer class="entry-footer"><span title='2025-06-17 04:00:00 -0700 -0700'>June 17, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to Check-in 2025Q2" href="https://www.duckland.org/post/2025/06/check-in-2025q2/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 7
</h2>
</header>
<div class="entry-content">
<p>This is the end, my friend</p>
</div>
<footer class="entry-footer"><span title='2025-06-14 04:00:00 -0700 -0700'>June 14, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 7" href="https://www.duckland.org/post/2025/06/tui-challenge-day-7/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 6
</h2>
</header>
<div class="entry-content">
<p>Every Task In Its Place</p>
</div>
<footer class="entry-footer"><span title='2025-06-13 04:00:00 -0700 -0700'>June 13, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 6" href="https://www.duckland.org/post/2025/06/tui-challenge-day-6/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 5
</h2>
</header>
<div class="entry-content">
<p>A Song For The Terminal</p>
</div>
<footer class="entry-footer"><span title='2025-06-12 04:00:00 -0700 -0700'>June 12, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 5" href="https://www.duckland.org/post/2025/06/tui-challenge-day-5/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 4
</h2>
</header>
<div class="entry-content">
<p>A Song For The Terminal</p>
</div>
<footer class="entry-footer"><span title='2025-06-11 04:00:00 -0700 -0700'>June 11, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 4" href="https://www.duckland.org/post/2025/06/tui-challenge-day-4/"></a>
</article>
<footer class="page-footer">
<nav class="pagination">
<a class="next" href="https://www.duckland.org/page/2/">Next&nbsp;&nbsp;»
</a>
</nav>
</footer>
</main>
<footer class="footer">
<span>All rights reserved - 2006-</span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>

View file

@ -1,271 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="auto">
<head>
<meta name="generator" content="Hugo 0.147.7"><meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="robots" content="index, follow">
<title>duckland.org</title>
<meta name="description" content="Random Quacking">
<meta name="author" content="Don Harper">
<link rel="canonical" href="https://www.duckland.org/">
<link crossorigin="anonymous" href="/assets/css/stylesheet.8fe10233a706bc87f2e08b3cf97b8bd4c0a80f10675a143675d59212121037c0.css" integrity="sha256-j&#43;ECM6cGvIfy4Is8&#43;XuL1MCoDxBnWhQ2ddWSEhIQN8A=" rel="preload stylesheet" as="style">
<link rel="icon" href="https://www.duckland.org/favicon.ico">
<link rel="icon" type="image/png" sizes="16x16" href="https://www.duckland.org/favicon-16x16.png">
<link rel="icon" type="image/png" sizes="32x32" href="https://www.duckland.org/favicon-32x32.png">
<link rel="apple-touch-icon" href="https://www.duckland.org/apple-touch-icon.png">
<link rel="mask-icon" href="https://www.duckland.org/safari-pinned-tab.svg">
<meta name="theme-color" content="#2e2e33">
<meta name="msapplication-TileColor" content="#2e2e33">
<link rel="alternate" type="application/rss+xml" href="https://www.duckland.org/index.xml">
<link rel="alternate" hreflang="en" href="https://www.duckland.org/">
<noscript>
<style>
#theme-toggle,
.top-link {
display: none;
}
</style>
<style>
@media (prefers-color-scheme: dark) {
:root {
--theme: rgb(29, 30, 32);
--entry: rgb(46, 46, 51);
--primary: rgb(218, 218, 219);
--secondary: rgb(155, 156, 157);
--tertiary: rgb(65, 66, 68);
--content: rgb(196, 196, 197);
--code-block-bg: rgb(46, 46, 51);
--code-bg: rgb(55, 56, 62);
--border: rgb(51, 51, 51);
}
.list {
background: var(--theme);
}
.list:not(.dark)::-webkit-scrollbar-track {
background: 0 0;
}
.list:not(.dark)::-webkit-scrollbar-thumb {
border-color: var(--theme);
}
}
</style>
</noscript><meta property="og:url" content="https://www.duckland.org/">
<meta property="og:site_name" content="duckland.org">
<meta property="og:title" content="duckland.org">
<meta property="og:description" content="Random Quacking">
<meta property="og:locale" content="en-us">
<meta property="og:type" content="website">
<meta name="twitter:card" content="summary">
<meta name="twitter:title" content="duckland.org">
<meta name="twitter:description" content="Random Quacking">
<meta name="twitter:site" content="@https://fosstodon.org/@duckunix">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "duckland.org",
"url": "https://www.duckland.org/",
"description": "Random Quacking",
"logo": "https://www.duckland.org/favicon.ico",
"sameAs": [
]
}
</script>
</head>
<body class="list" id="top">
<script>
if (localStorage.getItem("pref-theme") === "dark") {
document.body.classList.add('dark');
} else if (localStorage.getItem("pref-theme") === "light") {
document.body.classList.remove('dark')
} else if (window.matchMedia('(prefers-color-scheme: dark)').matches) {
document.body.classList.add('dark');
}
</script>
<header class="header">
<nav class="nav">
<div class="logo">
<a href="https://www.duckland.org/" accesskey="h" title="duckland.org (Alt + H)">duckland.org</a>
<div class="logo-switches">
<button id="theme-toggle" accesskey="t" title="(Alt + T)" aria-label="Toggle theme">
<svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
</svg>
<svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="18" viewBox="0 0 24 24"
fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round">
<circle cx="12" cy="12" r="5"></circle>
<line x1="12" y1="1" x2="12" y2="3"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
<line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
<line x1="1" y1="12" x2="3" y2="12"></line>
<line x1="21" y1="12" x2="23" y2="12"></line>
<line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
<line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
</svg>
</button>
</div>
</div>
<ul id="menu">
</ul>
</nav>
</header>
<main class="main">
<article class="first-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">Check-in 2025Q2
</h2>
</header>
<div class="entry-content">
<p>Well, aside from the burst of posts, it as been a spell since I last posted something. Sorry about that.
Computer Well, I think my little Challenge with NixOS which I started way back in January 2023 has been passed. I have one local server, one local appliance, and one VPS not on NixOS. Everything else has been converted for a while. Keeping my laptops config synced turned out to be a good thing. My main laptop ate its drive just before work one morning, I was able to grab the pixelbook and start working as it was fully configured, and the needed data was synced in place. Nice.
...</p>
</div>
<footer class="entry-footer"><span title='2025-06-17 04:00:00 -0700 -0700'>June 17, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to Check-in 2025Q2" href="https://www.duckland.org/post/2025/06/check-in-2025q2/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 7
</h2>
</header>
<div class="entry-content">
<p>This is the end, my friend</p>
</div>
<footer class="entry-footer"><span title='2025-06-14 04:00:00 -0700 -0700'>June 14, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 7" href="https://www.duckland.org/post/2025/06/tui-challenge-day-7/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 6
</h2>
</header>
<div class="entry-content">
<p>Every Task In Its Place</p>
</div>
<footer class="entry-footer"><span title='2025-06-13 04:00:00 -0700 -0700'>June 13, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 6" href="https://www.duckland.org/post/2025/06/tui-challenge-day-6/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 5
</h2>
</header>
<div class="entry-content">
<p>A Song For The Terminal</p>
</div>
<footer class="entry-footer"><span title='2025-06-12 04:00:00 -0700 -0700'>June 12, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 5" href="https://www.duckland.org/post/2025/06/tui-challenge-day-5/"></a>
</article>
<article class="post-entry">
<header class="entry-header">
<h2 class="entry-hint-parent">TUI Challenge: Day 4
</h2>
</header>
<div class="entry-content">
<p>A Song For The Terminal</p>
</div>
<footer class="entry-footer"><span title='2025-06-11 04:00:00 -0700 -0700'>June 11, 2025</span>&nbsp;·&nbsp;Don Harper</footer>
<a class="entry-link" aria-label="post link to TUI Challenge: Day 4" href="https://www.duckland.org/post/2025/06/tui-challenge-day-4/"></a>
</article>
<footer class="page-footer">
<nav class="pagination">
<a class="next" href="https://www.duckland.org/page/2/">Next&nbsp;&nbsp;»
</a>
</nav>
</footer>
</main>
<footer class="footer">
<span>All rights reserved - 2006-</span> ·
<span>
Powered by
<a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
<a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a>
</span>
</footer>
<a href="#top" aria-label="go to top" title="Go to Top (Alt + G)" class="top-link" id="top-link" accesskey="g">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 6" fill="currentColor">
<path d="M12 6H0l6-6z" />
</svg>
</a>
<script>
let menu = document.getElementById('menu')
if (menu) {
menu.scrollLeft = localStorage.getItem("menu-scroll-position");
menu.onscroll = function () {
localStorage.setItem("menu-scroll-position", menu.scrollLeft);
}
}
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener("click", function (e) {
e.preventDefault();
var id = this.getAttribute("href").substr(1);
if (!window.matchMedia('(prefers-reduced-motion: reduce)').matches) {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView({
behavior: "smooth"
});
} else {
document.querySelector(`[id='${decodeURIComponent(id)}']`).scrollIntoView();
}
if (id === "top") {
history.replaceState(null, null, " ");
} else {
history.pushState(null, null, `#${id}`);
}
});
});
</script>
<script>
var mybutton = document.getElementById("top-link");
window.onscroll = function () {
if (document.body.scrollTop > 800 || document.documentElement.scrollTop > 800) {
mybutton.style.visibility = "visible";
mybutton.style.opacity = "1";
} else {
mybutton.style.visibility = "hidden";
mybutton.style.opacity = "0";
}
};
</script>
<script>
document.getElementById("theme-toggle").addEventListener("click", () => {
if (document.body.className.includes("dark")) {
document.body.classList.remove('dark');
localStorage.setItem("pref-theme", 'light');
} else {
document.body.classList.add('dark');
localStorage.setItem("pref-theme", 'dark');
}
})
</script>
</body>
</html>