add rss alternate link

This commit is contained in:
Never Gude 2026-02-24 21:59:59 +01:00
parent a0e0703704
commit 615ec476d2
22 changed files with 2264 additions and 1468 deletions

View file

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
@ -8,39 +9,41 @@
<meta name="dcterms.date" content="2026-01-09" />
<title>Latex Endeavors</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
}
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Latex Endeavors</h1>
<p class="subtitle">Some unintuitive quirks of Latex</p>
<p class="author">Never</p>
<p class="date">2026-01-09</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Latex Endeavors</h1>
<p class="subtitle">Some unintuitive quirks of Latex</p>
<p class="author">Never</p>
<p class="date">2026-01-09</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
and Biber</a>
<ul>
@ -48,23 +51,26 @@ and Biber</a>
run</a></li>
</ul></li>
</ul>
</nav>
<article>
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
</nav>
<article>
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
<h2 id="biber-doesnt-run">Biber doesnt run</h2>
<p>Biber doenst run if the (fedora) package
<code>libxcrypt-compat</code> is missing. It will fail with the error
message</p>
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
@ -8,42 +9,43 @@
<meta name="dcterms.date" content="2025-07-25" />
<title>Random linux utilities</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
@ -54,69 +56,70 @@
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Random linux utilities</h1>
<p class="subtitle">Neat things I picked up along the way</p>
<p class="author">Never</p>
<p class="date">2025-07-25</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Random linux utilities</h1>
<p class="subtitle">Neat things I picked up along the way</p>
<p class="author">Never</p>
<p class="date">2025-07-25</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#merge-pdfs" id="toc-merge-pdfs">Merge pdfs</a>
<ul>
<li><a href="#using-ghostscript" id="toc-using-ghostscript">Using
Ghostscript</a></li>
</ul></li>
</ul>
</nav>
<article>
<h1 id="merge-pdfs">Merge pdfs</h1>
</nav>
<article>
<h1 id="merge-pdfs">Merge pdfs</h1>
<h2 id="using-ghostscript">Using Ghostscript</h2>
<p>Ghostscript has a feature to merge multiple pdf files into one.
Although ImageMagick also has this feature, I prefer this one, as it
@ -125,15 +128,18 @@ doesnt rasterize and scales down the pdf files.</p>
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gs</span> <span class="at">-dNOPAUSE</span> <span class="at">-sDEVICE</span><span class="op">=</span>pdfwrite <span class="dt">\</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-sOUTPUTFILE</span><span class="op">=</span>output.pdf <span class="dt">\</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -89,28 +89,4 @@ config.
Now on your Linux machine, syncronise your Music library with rsync.
rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music
Refreshing the Android MediaStore
Android uses a Database to store files. In order to play your music,
this database needs to be refreshed. This can be achieved by a reboot or
by using adb to manually refresh it.
sudo dnf install adb
Connect the Android device via USB and see if it is listed.
adb devices
If it is, restart adb in TCP mode with port 5555
adb tcpip 5555
Connect to the device using its .
adb connect <ip_address>
Refresh MediaStore.
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN -d file:///data/data/com.termux/files/home/storage/music/
]8;;\

View file

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
@ -8,42 +9,43 @@
<meta name="dcterms.date" content="2026-01-12" />
<title>Using rsync on Android to syncronise my Music library</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
@ -54,60 +56,61 @@
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Using rsync on Android to syncronise my Music
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Using rsync on Android to syncronise my Music
library</h1>
<p class="author">Never</p>
<p class="date">2026-01-12</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<p class="author">Never</p>
<p class="date">2026-01-12</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#setup-termux" id="toc-setup-termux">Setup Termux</a></li>
<li><a href="#establishing-an-ssh-connection"
id="toc-establishing-an-ssh-connection">Establishing an ssh
@ -120,16 +123,12 @@ id="toc-connecting-to-android-via-ssh">Connecting to Android via
ssh</a></li>
</ul></li>
<li><a href="#syncronising-files-with-rsync"
id="toc-syncronising-files-with-rsync">Syncronising files with rsync</a>
<ul>
<li><a href="#refreshing-the-android-mediastore"
id="toc-refreshing-the-android-mediastore">Refreshing the Android
MediaStore</a></li>
</ul></li>
id="toc-syncronising-files-with-rsync">Syncronising files with
rsync</a></li>
</ul>
</nav>
<article>
<h1 id="setup-termux">Setup Termux</h1>
</nav>
<article>
<h1 id="setup-termux">Setup Termux</h1>
<p>Install Termux using F-Droid.</p>
<p>Update software repos.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> update</span></code></pre></div>
@ -187,34 +186,18 @@ class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#
rsync.</p>
<div class="sourceCode" id="cb13"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">rsync</span> <span class="at">-av</span> <span class="at">-e</span> <span class="st">&quot;ssh -p 8022&quot;</span> ~/Music <span class="op">&lt;</span>username<span class="op">&gt;</span>@<span class="op">&lt;</span>ip_address<span class="op">&gt;</span>:/data/data/com.termux/files/home/storage/music</span></code></pre></div>
<h2 id="refreshing-the-android-mediastore">Refreshing the Android
MediaStore</h2>
<p>Android uses a Database to store files. In order to play your music,
this database needs to be refreshed. This can be achieved by a reboot or
by using adb to manually refresh it.</p>
<div class="sourceCode" id="cb14"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> dnf install adb</span></code></pre></div>
<p>Connect the Android device via USB and see if it is listed.</p>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> devices</span></code></pre></div>
<p>If it is, restart adb in TCP mode with port 5555</p>
<div class="sourceCode" id="cb16"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> tcpip 5555</span></code></pre></div>
<p>Connect to the device using its <ip_address>.</p>
<div class="sourceCode" id="cb17"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> connect <span class="op">&lt;</span>ip_address<span class="op">&gt;</span></span></code></pre></div>
<p>Refresh MediaStore.</p>
<div class="sourceCode" id="cb18"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> shell am broadcast <span class="at">-a</span> android.intent.action.MEDIA_SCANNER_SCAN <span class="at">-d</span> file:///data/data/com.termux/files/home/storage/music/</span></code></pre></div>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -20,16 +20,16 @@ library (rsync-android)
As Spotify is getting enshittified by capitalism, keeping a music
library is kind of essential. Here I use rsync to syncronise my library
with my Android smartphone.
Never - 2026-01-12
Never - 2026-01-12
Latex Endeavors (latex-endeavors)
Latex undoubtedly has some quirks. Some of them have a rather
unintuitive solution. In this article I cover some quirks and solutions
I have encountered.
Never - 2026-01-09
Never - 2026-01-09
Random linux utilities (random-linux-utils)
Tricks and tools I learned about, while tweaking my Linux sytem or
trying to do productive things.
Never - 2025-07-25
Never - 2025-07-25
]8;;\

View file

@ -1,47 +1,49 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Home</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
@ -52,115 +54,119 @@
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Home</h1>
</header>
<article>
<p>Hello! I am Never and this is my little place on the internet where I
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Home</h1>
</header>
<article>
<p>Hello! I am Never and this is my little place on the internet where I
post the stuff that I am currently nerding out about.</p>
<p>This Website itself is one of those projects, that I like to tweak
and tinker with. Maybe Ill write an article about its build system. It
is also viewable via <code>curl</code>. Just run</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">curl</span> nevereverever.de</span></code></pre></div>
<p>There also is an RSS Feed to stay updated about my doings.</p>
</article>
<nav id="articles">
<h1>Articles</h1>
<ul>
<li>
<header class="articles-header">
<a href="rsync-android.html" class="articles-title">Using rsync on
</article>
<nav id="articles">
<h1>Articles</h1>
<ul>
<li>
<header class="articles-header">
<a href="rsync-android.html" class="articles-title">Using rsync on
Android to syncronise my Music library</a>
</header>
<p class="articles-summary">As Spotify is getting enshittified by
</header>
<p class="articles-summary">As Spotify is getting enshittified by
capitalism, keeping a music library is kind of essential. Here I use
rsync to syncronise my library with my Android smartphone.</p>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-12</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="latex-endeavors.html" class="articles-title">Latex
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-12</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="latex-endeavors.html" class="articles-title">Latex
Endeavors</a>
</header>
<p class="articles-summary">Latex undoubtedly has some quirks. Some of
</header>
<p class="articles-summary">Latex undoubtedly has some quirks. Some of
them have a rather unintuitive solution. In this article I cover some
quirks and solutions I have encountered.</p>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-09</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-09</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
utilities</a>
</header>
<p class="articles-summary">Tricks and tools I learned about, while
</header>
<p class="articles-summary">Tricks and tools I learned about, while
tweaking my Linux sytem or trying to do productive things.</p>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2025-07-25</div>
</footer>
</li>
</ul>
</nav>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2025-07-25</div>
</footer>
</li>
</ul>
</nav>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -1,44 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>nevereverever.de</title>
<link>https://nevereverever.de/eh/eh/eh/eh-eh</link>
<description>Here I post random stuff.</description>
<language>en-us</language>
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<lastBuildDate>Sat, 21 Feb 2026 15:40:08 +0100</lastBuildDate>
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>pandoc</generator>
<managingEditor>n.gude@posteo.de (Never)</managingEditor>
<webMaster>n.gude@poster.de (Never)</webMaster>
<item>
<title>Using rsync on Android to syncronise my Music library</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html</link>
<description>As Spotify is getting enshittified by capitalism, keeping a
<channel>
<title>nevereverever.de</title>
<link>https://nevereverever.de/eh/eh/eh/eh-eh</link>
<description>Here I post random stuff.</description>
<language>en-us</language>
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<lastBuildDate>Tue, 24 Feb 2026 21:56:55 +0100</lastBuildDate>
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>pandoc</generator>
<managingEditor>n.gude@posteo.de (Never)</managingEditor>
<webMaster>n.gude@poster.de (Never)</webMaster>
<item>
<title>Using rsync on Android to syncronise my Music library</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html</link>
<description>As Spotify is getting enshittified by capitalism, keeping a
music library is kind of essential. Here I use rsync to syncronise my
library with my Android smartphone.</description>
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<guid>rsync-android</guid>
</item>
<item>
<title>Latex Endeavors</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/latex-endeavors.html</link>
<description>Latex undoubtedly has some quirks. Some of them have a
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<guid>rsync-android</guid>
</item>
<item>
<title>Latex Endeavors</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/latex-endeavors.html</link>
<description>Latex undoubtedly has some quirks. Some of them have a
rather unintuitive solution. In this article I cover some quirks and
solutions I have encountered.</description>
<pubDate>Fri, 09 Jan 2026 00:00:00 +0100</pubDate>
<guid>latex-endeavors</guid>
</item>
<item>
<title>Random linux utilities</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/random-linux-utils.html</link>
<description>Tricks and tools I learned about, while tweaking my Linux
<pubDate>Fri, 09 Jan 2026 00:00:00 +0100</pubDate>
<guid>latex-endeavors</guid>
</item>
<item>
<title>Random linux utilities</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/random-linux-utils.html</link>
<description>Tricks and tools I learned about, while tweaking my Linux
sytem or trying to do productive things.</description>
<pubDate>Fri, 25 Jul 2025 00:00:00 +0200</pubDate>
<guid>random-linux-utils</guid>
</item>
</channel>
<pubDate>Fri, 25 Jul 2025 00:00:00 +0200</pubDate>
<guid>random-linux-utils</guid>
</item>
</channel>
</rss>

209
pandoc.md Normal file
View file

@ -0,0 +1,209 @@
---
title: Testing pandoc markdown capabilities
subtitle: Things I hope just work
author: Never
email: n.gude@posteo.de
date: 2025-07-25
summary: Pandocs wonderful Markdown features tested out.
---
# Level 1 Heading
A link to a Heading [Level 4 Heading] followed by another paragraph.
* fruits
Everything is a fruit
+ apples
- macintosh
- red delicious
+ pears
+ peaches
* vegetables
+ broccoli
+ chard
1. first
2. second
3. third
i. subone
ii. subtwo
iii. subthree
- [ ] an unchecked task list item
- [x] checked item
Lorem _ipsum dolor_ sit amet, consectetur *adipi*scing elit. Integer nisl enim, condimentum ~~vitae lacus vel~~, semper efficitur est. Cras pretium porta luctus. __Nulla iaculis__ nisi at quam varius, et con**sequat** lorem blandit. Ut tincidunt leo sit amet velit lobortis, et blandit metus mollis. Nam H~2~O tristique ex a quam aliquet, eget 2^10^ vehicula sapien `rhoncus`. Aliquam `return 0;`{.c} sodales pretium auctor. [Aliquam convallis]{.smallcaps} sodales [elementum]{.mark}.
```c
#include <stdio.h>
// TODO: A funny comment
int main() {
char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
char greetings2[] = "Hello World!";
printf("%zu\n", sizeof(greetings));
printf("%zu\n", sizeof(greetings2));
return 0;
}
```
Aenean eros lacus, volutpat at molestie vitae, pretium eu diam. Quisque sit $1 + 2 + 3 + \cdots + n$ amet nisl ut dolor congue sodales.
$$
\sum_{i=1}^{n} i = \frac{n (n + 1)}{2}
$$
## Level 2 Heading
> This is a block quote with
> two lines and a
>
> 1. List item
> 2. Another list item
>
> > And a nested block quote
>
> Yeah
Term 1
: Definition 1
Term 2 with *inline markup*
: Definition 2
{ some code, part of Definition 2 }
Third paragraph of definition 2.
Term 1
~ Definition 1
Term 2
~ Definition 2a
~ Definition 2b
### Level 3 Heading
A little poem
| The limerick packs laughs anatomical
| In space that is quite economical.
| But the good ones I've seen
| So seldom are clean
| And the clean ones so seldom are comical
* * * *
(@) My first example will be numbered (1).
(@good) My second example will be numbered (2).
Explanation of examples.
(@) My third example will be numbered (3).
As (@good) illustrates, ...
---------------
#### Level 4 Heading
Right Left Center Default
------- ------ ---------- -------
12 12 12 12
123 123 123 123
1 1 1 1
Table: Demonstration of simple table syntax.
Following is a multiline table
-------------------------------------------------------------
Centered Default Right Left
Header Aligned Aligned Aligned
----------- ------- --------------- -------------------------
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Here's another one. Note
the blank line between
rows.
-------------------------------------------------------------
Table: Here's the caption. It, too, may span
multiple lines.
Then we have a Grid table
+---------------------+-----------------------+
| Location | Temperature 1961-1990 |
| | in degree Celsius |
| +-------+-------+-------+
| | min | mean | max |
+:====================+======:+======:+======:+
| Antarctica | -89.2 | N/A | 19.8 |
+---------------------+-------+-------+-------+
| Earth | -89.2 | 14 | 56.7 |
+---------------------+-------+-------+-------+
Table: Grid table
An a Pipe table
| Right | Left | Default | Center |
|------:|:-----|---------|:------:|
| 12 | 12 | 12 | 12 |
| 123 | 123 | 123 | 123 |
| 1 | 1 | 1 | 1 |
: Demonstration of pipe table syntax.
##### Level 5 Heading
<https://google.com>
<sam@green.eggs.ham>
[my label 1]: index.html "My title, optional"
[my label 2]: .
[my label 3]: https://fsf.org (The Free Software Foundation)
[my label 4]: index.html#articles 'A title in single quotes'
Link to [my label 1] and [my label 2] and [my label 3] and [my label 4]
This is an [inline link](/url), and here's [one with
a title](https://fsf.org "click here for a good time!") and [Write me!](mailto:sam@green.eggs.ham)
![The wonderful shork](images/shork.png "the shork"){width=20%}
Here is a footnote reference,[^1] and another.[^longnote]
[^1]: Here is the footnote.
[^longnote]: Here's one with multiple blocks.
Subsequent paragraphs are indented to show that they
belong to the previous footnote.
{ some.code }
The whole paragraph can be indented, or just the first
line. In this way, multi-paragraph footnotes work like
multi-paragraph list items.
This paragraph won't be part of the note, because it
isn't indented.
###### Level 6 Heading
::: Warning ::::::
This is a warning.
::: Danger
This is a warning within a warning.
:::
::::::::::::::::::

View file

@ -26,7 +26,7 @@ $endif$
$if(articles.summary)$
$articles.summary$
$endif$
$if(articles.author)$ $articles.author$$endif$$if(articles.date)$ - $articles.date$$endif$
$if(articles.author)$ $articles.author$$endif$$if(articles.date)$ - $articles.date$$endif$
$endfor$
$endif$

View file

@ -1,118 +1,124 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$>
<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$" $if(dir)$ dir="$dir$" $endif$>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
$for(author-meta)$
$for(author-meta)$
<meta name="author" content="$author-meta$" />
$endfor$
$if(date-meta)$
$endfor$
$if(date-meta)$
<meta name="dcterms.date" content="$date-meta$" />
$endif$
$if(keywords)$
$endif$
$if(keywords)$
<meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" />
$endif$
$if(description-meta)$
$endif$
$if(description-meta)$
<meta name="description" content="$description-meta$" />
$endif$
$endif$
<title>$if(title-prefix)$$title-prefix$ $endif$$pagetitle$</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
$styles.html()$
</style>
$for(css)$
$for(css)$
<link rel="stylesheet" href="$css$">
$endfor$
$for(header-includes)$
$endfor$
$for(header-includes)$
$header-includes$
$endfor$
$if(math)$
$if(mathjax)$
$endfor$
$if(math)$
$if(mathjax)$
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
$endif$
$endif$
$math$
$endif$
$endif$
</head>
<body>
$for(include-before)$
$include-before$
$endfor$
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
$if(title)$
<header id="title-block-header">
<h1 class="title">$title$</h1>
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$if(date)$
<p class="date">$date$</p>
$endif$
$if(abstract)$
<div class="abstract">
<div class="abstract-title">$abstract-title$</div>
$abstract$
</div>
$endif$
</header>
$endif$
$if(toc)$
<nav id="$idprefix$TOC" role="doc-toc">
$if(toc-title)$
<h2 id="$idprefix$toc-title">$toc-title$</h2>
$endif$
$table-of-contents$
</nav>
$endif$
<article>
$body$
</article>
$if(articles)$
<nav id="articles">
<h1>Articles</h1>
<ul>
$for(articles)$
<li>
<header class="articles-header">
$if(articles.title)$
<a href="$articles.filename$.html" class="articles-title">$articles.title$</a>
$endif$
</header>
$if(articles.summary)$
<p class="articles-summary">$articles.summary$</p>
$endif$
<footer class="articles-footer">
$if(articles.author)$
<div class="articles-author">$articles.author$</div>
$endif$
$if(articles.date)$
<div class="articles-date">$articles.date$</div>
$endif$
</footer>
</li>
$endfor$
</ul>
</nav>
$endif$
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
$for(include-after)$
$include-after$
$endfor$
$for(include-before)$
$include-before$
$endfor$
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
$if(title)$
<header id="title-block-header">
<h1 class="title">$title$</h1>
$if(subtitle)$
<p class="subtitle">$subtitle$</p>
$endif$
$for(author)$
<p class="author">$author$</p>
$endfor$
$if(date)$
<p class="date">$date$</p>
$endif$
$if(abstract)$
<div class="abstract">
<div class="abstract-title">$abstract-title$</div>
$abstract$
</div>
$endif$
</header>
$endif$
$if(toc)$
<nav id="$idprefix$TOC" role="doc-toc">
$if(toc-title)$
<h2 id="$idprefix$toc-title">$toc-title$</h2>
$endif$
$table-of-contents$
</nav>
$endif$
<article>
$body$
</article>
$if(articles)$
<nav id="articles">
<h1>Articles</h1>
<ul>
$for(articles)$
<li>
<header class="articles-header">
$if(articles.title)$
<a href="$articles.filename$.html" class="articles-title">$articles.title$</a>
$endif$
</header>
$if(articles.summary)$
<p class="articles-summary">$articles.summary$</p>
$endif$
<footer class="articles-footer">
$if(articles.author)$
<div class="articles-author">$articles.author$</div>
$endif$
$if(articles.date)$
<div class="articles-date">$articles.date$</div>
$endif$
</footer>
</li>
$endfor$
</ul>
</nav>
$endif$
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
$for(include-after)$
$include-after$
$endfor$
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -1,53 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
$if(title)$
<title>$title$</title>
$endif$
$if(link)$
<link>$link$</link>
$endif$
$if(description)$
<description>$description$</description>
$endif$
$if(lang)$
<language>$lang$</language>
$endif$
$if(pubdate)$
<pubDate>$pubdate$</pubDate>
$endif$
$if(builddate)$
<lastBuildDate>$builddate$</lastBuildDate>
$endif$
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>pandoc</generator>
$if(editor)$
<managingEditor>$editor$</managingEditor>
$endif$
$if(webmaster)$
<webMaster>$webmaster$</webMaster>
$endif$
$for(articles)$
<item>
$if(articles.title)$
<title>$articles.title$</title>
$endif$
$if(articles.email)$
<author>$articles.email$$if(articles.author)$ ($articles.author$)$endif$</author>
$endif$
$if(articles.filename)$
<link>$link$/$articles.filename$.html</link>
$endif$
$if(articles.summary)$
<description>$articles.summary$</description>
$endif$
$if(articles.date)$
<pubDate>$articles.pubdate$</pubDate>
$endif$
$if(articles.filename)$
<guid>$articles.filename$</guid>
$endif$
</item>
$endfor$
</channel>
<channel>
$if(title)$
<title>$title$</title>
$endif$
$if(link)$
<link>$link$</link>
$endif$
$if(description)$
<description>$description$</description>
$endif$
$if(lang)$
<language>$lang$</language>
$endif$
$if(pubdate)$
<pubDate>$pubdate$</pubDate>
$endif$
$if(builddate)$
<lastBuildDate>$builddate$</lastBuildDate>
$endif$
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>pandoc</generator>
$if(editor)$
<managingEditor>$editor$</managingEditor>
$endif$
$if(webmaster)$
<webMaster>$webmaster$</webMaster>
$endif$
$for(articles)$
<item>
$if(articles.title)$
<title>$articles.title$</title>
$endif$
$if(articles.email)$
<author>$articles.email$$if(articles.author)$ ($articles.author$)$endif$</author>
$endif$
$if(articles.filename)$
<link>$link$/$articles.filename$.html</link>
$endif$
$if(articles.summary)$
<description>$articles.summary$</description>
$endif$
$if(articles.pubdate)$
<pubDate>$articles.pubdate$</pubDate>
$endif$
$if(articles.filename)$
<guid>$articles.filename$</guid>
$endif$
</item>
$endfor$
</channel>
</rss>

View file

@ -20,16 +20,16 @@ library (rsync-android)
As Spotify is getting enshittified by capitalism, keeping a music
library is kind of essential. Here I use rsync to syncronise my library
with my Android smartphone.
Never - 2026-01-12
Never - 2026-01-12
Latex Endeavors (latex-endeavors)
Latex undoubtedly has some quirks. Some of them have a rather
unintuitive solution. In this article I cover some quirks and solutions
I have encountered.
Never - 2026-01-09
Never - 2026-01-09
Random linux utilities (random-linux-utils)
Tricks and tools I learned about, while tweaking my Linux sytem or
trying to do productive things.
Never - 2025-07-25
Never - 2025-07-25
]8;;\

218
public_ansi/pandoc Normal file
View file

@ -0,0 +1,218 @@
Testing pandoc markdown capabilities
Things I hope just work
Never
2025-07-25
────────────────────
LEVEL 1 HEADING
A link to a Heading ]8;;#level-4-heading\Level 4 Heading]8;;\ followed by another paragraph.
• fruits
Everything is a fruit
• apples
• macintosh
• red delicious
• pears
• peaches
• vegetables
• broccoli
• chard
1. first
2. second
3. third
i. subone
ii. subtwo
iii. subthree
• ☐ an unchecked task list item
• ☒ checked item
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nisl
enim, condimentum vitae lacus vel, semper efficitur est. Cras pretium
porta luctus. Nulla iaculis nisi at quam varius, et consequat lorem
blandit. Ut tincidunt leo sit amet velit lobortis, et blandit metus
mollis. Nam H₂O tristique ex a quam aliquet, eget 2¹⁰ vehicula sapien
 rhoncus . Aliquam  return 0;  sodales pretium auctor. Aliquam convallis
sodales elementum.
#include <stdio.h>
// TODO: A funny comment
int main() {
 char greetings[] = {'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '\0'};
 char greetings2[] = "Hello World!";
 printf("%zu\n", sizeof(greetings));
 printf("%zu\n", sizeof(greetings2));
 return 0;
}
Aenean eros lacus, volutpat at molestie vitae, pretium eu diam. Quisque
sit 1+2+3+ ⋯ +n amet nisl ut dolor congue sodales.
$$
\sum_{i=1}^{n} i = \frac{n (n + 1)}{2}
$$
Level 2 Heading
│ This is a block quote with two lines and a
│ 1. List item
│ 2. Another list item
│ │ And a nested block quote
│ Yeah
Term 1
Definition 1
Term 2 with inline markup
Definition 2
{ some code, part of Definition 2 }
Third paragraph of definition 2.
Term 1
Definition 1
Term 2
Definition 2a
Definition 2b
Level 3 Heading
A little poem
The limerick packs laughs anatomical
In space that is quite economical.
   But the good ones Ive seen
   So seldom are clean
And the clean ones so seldom are comical
────────────────────
(1) My first example will be numbered (1).
(2) My second example will be numbered (2).
Explanation of examples.
(3) My third example will be numbered (3).
As (2) illustrates, …
────────────────────
Level 4 Heading
Right Left Center Default
───────────────── ───────────────── ───────────────── ─────────────────
12 12 12 12
123 123 123 123
1 1 1 1
───────────────── ───────────────── ───────────────── ─────────────────
Demonstration of simple table syntax.
Following is a multiline table
Centered Default Right Aligned Left Aligned
Header Aligned
─────────── ─────── ─────────────── ────────────────────────
First row 12.0 Example of a row that
spans multiple lines.
Second row 5.0 Heres another one. Note
the blank line between
rows.
─────────── ─────── ─────────────── ────────────────────────
Heres the caption. It, too, may span multiple lines.
Then we have a Grid table
Location Temperature 1961-1990
in degree Celsius
min mean max
───────────────────── ─────── ─────── ───────
Antarctica -89.2 N/A 19.8
Earth -89.2 14 56.7
───────────────────── ─────── ─────── ───────
Grid table
An a Pipe table
Right Left Default Center
───────────────── ───────────────── ───────────────── ─────────────────
12 12 12 12
123 123 123 123
1 1 1 1
───────────────── ───────────────── ───────────────── ─────────────────
Demonstration of pipe table syntax.
Level 5 Heading
]8;;https://google.com\https://google.com]8;;\
]8;;mailto:sam@green.eggs.ham\sam@green.eggs.ham]8;;\
Link to ]8;;index.html\my label 1]8;;\ and ]8;;.\my label 2]8;;\ and ]8;;https://fsf.org\my label 3]8;;\ and ]8;;index.html#articles\my label 4]8;;\
This is an ]8;;/url\inline link]8;;\, and heres ]8;;https://fsf.org\one with a title]8;;\ and ]8;;mailto:sam@green.eggs.ham\Write me!]8;;\
[image]
The wonderful shork
Here is a footnote reference,¹ and another.²
This paragraph wont be part of the note, because it isnt indented.
Level 6 Heading
This is a warning.
This is a warning within a warning.
────────────────────
1. Here is the footnote.
2. Heres one with multiple blocks.
Subsequent paragraphs are indented to show that they belong to the
previous footnote.
{ some.code }
The whole paragraph can be indented, or just the first line. In
this way, multi-paragraph footnotes work like multi-paragraph list
items.
]8;;\

View file

@ -89,28 +89,4 @@ config.
Now on your Linux machine, syncronise your Music library with rsync.
rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music
Refreshing the Android MediaStore
Android uses a Database to store files. In order to play your music,
this database needs to be refreshed. This can be achieved by a reboot or
by using adb to manually refresh it.
sudo dnf install adb
Connect the Android device via USB and see if it is listed.
adb devices
If it is, restart adb in TCP mode with port 5555
adb tcpip 5555
Connect to the device using its .
adb connect <ip_address>
Refresh MediaStore.
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN -d file:///data/data/com.termux/files/home/storage/music/
]8;;\

View file

@ -1,47 +1,49 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Home</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
@ -52,115 +54,119 @@
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Home</h1>
</header>
<article>
<p>Hello! I am Never and this is my little place on the internet where I
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Home</h1>
</header>
<article>
<p>Hello! I am Never and this is my little place on the internet where I
post the stuff that I am currently nerding out about.</p>
<p>This Website itself is one of those projects, that I like to tweak
and tinker with. Maybe Ill write an article about its build system. It
is also viewable via <code>curl</code>. Just run</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">curl</span> nevereverever.de</span></code></pre></div>
<p>There also is an RSS Feed to stay updated about my doings.</p>
</article>
<nav id="articles">
<h1>Articles</h1>
<ul>
<li>
<header class="articles-header">
<a href="rsync-android.html" class="articles-title">Using rsync on
</article>
<nav id="articles">
<h1>Articles</h1>
<ul>
<li>
<header class="articles-header">
<a href="rsync-android.html" class="articles-title">Using rsync on
Android to syncronise my Music library</a>
</header>
<p class="articles-summary">As Spotify is getting enshittified by
</header>
<p class="articles-summary">As Spotify is getting enshittified by
capitalism, keeping a music library is kind of essential. Here I use
rsync to syncronise my library with my Android smartphone.</p>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-12</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="latex-endeavors.html" class="articles-title">Latex
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-12</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="latex-endeavors.html" class="articles-title">Latex
Endeavors</a>
</header>
<p class="articles-summary">Latex undoubtedly has some quirks. Some of
</header>
<p class="articles-summary">Latex undoubtedly has some quirks. Some of
them have a rather unintuitive solution. In this article I cover some
quirks and solutions I have encountered.</p>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-09</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2026-01-09</div>
</footer>
</li>
<li>
<header class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
utilities</a>
</header>
<p class="articles-summary">Tricks and tools I learned about, while
</header>
<p class="articles-summary">Tricks and tools I learned about, while
tweaking my Linux sytem or trying to do productive things.</p>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2025-07-25</div>
</footer>
</li>
</ul>
</nav>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<footer class="articles-footer">
<div class="articles-author">Never</div>
<div class="articles-date">2025-07-25</div>
</footer>
</li>
</ul>
</nav>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
@ -8,39 +9,41 @@
<meta name="dcterms.date" content="2026-01-09" />
<title>Latex Endeavors</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
}
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Latex Endeavors</h1>
<p class="subtitle">Some unintuitive quirks of Latex</p>
<p class="author">Never</p>
<p class="date">2026-01-09</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Latex Endeavors</h1>
<p class="subtitle">Some unintuitive quirks of Latex</p>
<p class="author">Never</p>
<p class="date">2026-01-09</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
and Biber</a>
<ul>
@ -48,23 +51,26 @@ and Biber</a>
run</a></li>
</ul></li>
</ul>
</nav>
<article>
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
</nav>
<article>
<h1 id="biblatex-and-biber">BibLaTeX and Biber</h1>
<h2 id="biber-doesnt-run">Biber doesnt run</h2>
<p>Biber doenst run if the (fedora) package
<code>libxcrypt-compat</code> is missing. It will fail with the error
message</p>
<pre><code>biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory</code></pre>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -0,0 +1,437 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta name="author" content="Never" />
<meta name="dcterms.date" content="2025-07-25" />
<title>Testing pandoc markdown capabilities</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Testing pandoc markdown capabilities</h1>
<p class="subtitle">Things I hope just work</p>
<p class="author">Never</p>
<p class="date">2025-07-25</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#level-1-heading" id="toc-level-1-heading">Level 1
Heading</a>
<ul>
<li><a href="#level-2-heading" id="toc-level-2-heading">Level 2
Heading</a>
<ul>
<li><a href="#level-3-heading" id="toc-level-3-heading">Level 3
Heading</a></li>
</ul></li>
</ul></li>
</ul>
</nav>
<article>
<h1 id="level-1-heading">Level 1 Heading</h1>
<p>A link to a Heading <a href="#level-4-heading">Level 4 Heading</a>
followed by another paragraph.</p>
<ul>
<li><p>fruits</p>
<p>Everything is a fruit</p>
<ul>
<li>apples
<ul>
<li>macintosh</li>
<li>red delicious</li>
</ul></li>
<li>pears</li>
<li>peaches</li>
</ul></li>
<li><p>vegetables</p>
<ul>
<li>broccoli</li>
<li>chard</li>
</ul></li>
</ul>
<ol type="1">
<li>first</li>
<li>second</li>
<li>third
<ol type="i">
<li>subone</li>
<li>subtwo</li>
<li>subthree</li>
</ol></li>
</ol>
<ul class="task-list">
<li><label><input type="checkbox" />an unchecked task list
item</label></li>
<li><label><input type="checkbox" checked="" />checked item</label></li>
</ul>
<p>Lorem <em>ipsum dolor</em> sit amet, consectetur <em>adipi</em>scing
elit. Integer nisl enim, condimentum <del>vitae lacus vel</del>, semper
efficitur est. Cras pretium porta luctus. <strong>Nulla iaculis</strong>
nisi at quam varius, et con<strong>sequat</strong> lorem blandit. Ut
tincidunt leo sit amet velit lobortis, et blandit metus mollis. Nam
H<sub>2</sub>O tristique ex a quam aliquet, eget 2<sup>10</sup> vehicula
sapien <code>rhoncus</code>. Aliquam <code
class="sourceCode c"><span class="cf">return</span> <span class="dv">0</span><span class="op">;</span></code>
sodales pretium auctor. <span class="smallcaps">Aliquam convallis</span>
sodales <mark>elementum</mark>.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="pp">#include </span><span class="im">&lt;stdio.h&gt;</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a><span class="co">// </span><span class="al">TODO</span><span class="co">: A funny comment</span></span>
<span id="cb1-4"><a href="#cb1-4" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> main<span class="op">()</span> <span class="op">{</span></span>
<span id="cb1-5"><a href="#cb1-5" aria-hidden="true" tabindex="-1"></a> <span class="dt">char</span> greetings<span class="op">[]</span> <span class="op">=</span> <span class="op">{</span><span class="ch">&#39;H&#39;</span><span class="op">,</span> <span class="ch">&#39;e&#39;</span><span class="op">,</span> <span class="ch">&#39;l&#39;</span><span class="op">,</span> <span class="ch">&#39;l&#39;</span><span class="op">,</span> <span class="ch">&#39;o&#39;</span><span class="op">,</span> <span class="ch">&#39; &#39;</span><span class="op">,</span> <span class="ch">&#39;W&#39;</span><span class="op">,</span> <span class="ch">&#39;o&#39;</span><span class="op">,</span> <span class="ch">&#39;r&#39;</span><span class="op">,</span> <span class="ch">&#39;l&#39;</span><span class="op">,</span> <span class="ch">&#39;d&#39;</span><span class="op">,</span> <span class="ch">&#39;!&#39;</span><span class="op">,</span> <span class="ch">&#39;</span><span class="sc">\0</span><span class="ch">&#39;</span><span class="op">};</span></span>
<span id="cb1-6"><a href="#cb1-6" aria-hidden="true" tabindex="-1"></a> <span class="dt">char</span> greetings2<span class="op">[]</span> <span class="op">=</span> <span class="st">&quot;Hello World!&quot;</span><span class="op">;</span></span>
<span id="cb1-7"><a href="#cb1-7" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-8"><a href="#cb1-8" aria-hidden="true" tabindex="-1"></a> printf<span class="op">(</span><span class="st">&quot;</span><span class="sc">%zu\n</span><span class="st">&quot;</span><span class="op">,</span> <span class="kw">sizeof</span><span class="op">(</span>greetings<span class="op">));</span></span>
<span id="cb1-9"><a href="#cb1-9" aria-hidden="true" tabindex="-1"></a> printf<span class="op">(</span><span class="st">&quot;</span><span class="sc">%zu\n</span><span class="st">&quot;</span><span class="op">,</span> <span class="kw">sizeof</span><span class="op">(</span>greetings2<span class="op">));</span></span>
<span id="cb1-10"><a href="#cb1-10" aria-hidden="true" tabindex="-1"></a></span>
<span id="cb1-11"><a href="#cb1-11" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> <span class="dv">0</span><span class="op">;</span></span>
<span id="cb1-12"><a href="#cb1-12" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
<p>Aenean eros lacus, volutpat at molestie vitae, pretium eu diam.
Quisque sit
<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mn>1</mn><mo>+</mo><mn>2</mn><mo>+</mo><mn>3</mn><mo>+</mo><mi></mi><mo>+</mo><mi>n</mi></mrow><annotation encoding="application/x-tex">1 + 2 + 3 + \cdots + n</annotation></semantics></math>
amet nisl ut dolor congue sodales.</p>
<p><math display="block" xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><munderover><mo></mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>n</mi></munderover><mi>i</mi><mo>=</mo><mfrac><mrow><mi>n</mi><mo stretchy="false" form="prefix">(</mo><mi>n</mi><mo>+</mo><mn>1</mn><mo stretchy="false" form="postfix">)</mo></mrow><mn>2</mn></mfrac></mrow><annotation encoding="application/x-tex">
\sum_{i=1}^{n} i = \frac{n (n + 1)}{2}
</annotation></semantics></math></p>
<h2 id="level-2-heading">Level 2 Heading</h2>
<blockquote>
<p>This is a block quote with two lines and a</p>
<ol type="1">
<li>List item</li>
<li>Another list item</li>
</ol>
<blockquote>
<p>And a nested block quote</p>
</blockquote>
<p>Yeah</p>
</blockquote>
<dl>
<dt>Term 1</dt>
<dd>
<p>Definition 1</p>
</dd>
<dt>Term 2 with <em>inline markup</em></dt>
<dd>
<p>Definition 2</p>
<pre><code>{ some code, part of Definition 2 }</code></pre>
<p>Third paragraph of definition 2.</p>
</dd>
<dt>Term 1</dt>
<dd>
Definition 1
</dd>
<dt>Term 2</dt>
<dd>
Definition 2a
</dd>
<dd>
Definition 2b
</dd>
</dl>
<h3 id="level-3-heading">Level 3 Heading</h3>
<p>A little poem</p>
<div class="line-block">The limerick packs laughs anatomical<br />
In space that is quite economical.<br />
   But the good ones Ive seen<br />
   So seldom are clean<br />
And the clean ones so seldom are comical</div>
<hr />
<ol class="example" type="1">
<li>My first example will be numbered (1).</li>
<li>My second example will be numbered (2).</li>
</ol>
<p>Explanation of examples.</p>
<ol start="3" class="example" type="1">
<li>My third example will be numbered (3).</li>
</ol>
<p>As (2) illustrates, …</p>
<hr />
<h4 id="level-4-heading">Level 4 Heading</h4>
<table>
<caption>Demonstration of simple table syntax.</caption>
<thead>
<tr>
<th style="text-align: right;">Right</th>
<th style="text-align: left;">Left</th>
<th style="text-align: center;">Center</th>
<th>Default</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: right;">12</td>
<td style="text-align: left;">12</td>
<td style="text-align: center;">12</td>
<td>12</td>
</tr>
<tr>
<td style="text-align: right;">123</td>
<td style="text-align: left;">123</td>
<td style="text-align: center;">123</td>
<td>123</td>
</tr>
<tr>
<td style="text-align: right;">1</td>
<td style="text-align: left;">1</td>
<td style="text-align: center;">1</td>
<td>1</td>
</tr>
</tbody>
</table>
<p>Following is a multiline table</p>
<table style="width:86%;">
<caption>Heres the caption. It, too, may span multiple lines.</caption>
<colgroup>
<col style="width: 16%" />
<col style="width: 11%" />
<col style="width: 22%" />
<col style="width: 36%" />
</colgroup>
<thead>
<tr>
<th style="text-align: center;">Centered Header</th>
<th>Default Aligned</th>
<th style="text-align: right;">Right Aligned</th>
<th style="text-align: left;">Left Aligned</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: center;">First</td>
<td>row</td>
<td style="text-align: right;">12.0</td>
<td style="text-align: left;">Example of a row that spans multiple
lines.</td>
</tr>
<tr>
<td style="text-align: center;">Second</td>
<td>row</td>
<td style="text-align: right;">5.0</td>
<td style="text-align: left;">Heres another one. Note the blank line
between rows.</td>
</tr>
</tbody>
</table>
<p>Then we have a Grid table</p>
<table style="width:64%;">
<caption>Grid table</caption>
<colgroup>
<col style="width: 30%" />
<col style="width: 11%" />
<col style="width: 11%" />
<col style="width: 11%" />
</colgroup>
<thead>
<tr>
<th rowspan="2" style="text-align: left;">Location</th>
<th colspan="3" style="text-align: right;">Temperature 1961-1990 in
degree Celsius</th>
</tr>
<tr>
<th style="text-align: right;">min</th>
<th style="text-align: right;">mean</th>
<th style="text-align: right;">max</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">Antarctica</td>
<td style="text-align: right;">-89.2</td>
<td style="text-align: right;">N/A</td>
<td style="text-align: right;">19.8</td>
</tr>
<tr>
<td style="text-align: left;">Earth</td>
<td style="text-align: right;">-89.2</td>
<td style="text-align: right;">14</td>
<td style="text-align: right;">56.7</td>
</tr>
</tbody>
</table>
<p>An a Pipe table</p>
<table>
<caption>Demonstration of pipe table syntax.</caption>
<thead>
<tr>
<th style="text-align: right;">Right</th>
<th style="text-align: left;">Left</th>
<th>Default</th>
<th style="text-align: center;">Center</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: right;">12</td>
<td style="text-align: left;">12</td>
<td>12</td>
<td style="text-align: center;">12</td>
</tr>
<tr>
<td style="text-align: right;">123</td>
<td style="text-align: left;">123</td>
<td>123</td>
<td style="text-align: center;">123</td>
</tr>
<tr>
<td style="text-align: right;">1</td>
<td style="text-align: left;">1</td>
<td>1</td>
<td style="text-align: center;">1</td>
</tr>
</tbody>
</table>
<h5 id="level-5-heading">Level 5 Heading</h5>
<p><a href="https://google.com" class="uri">https://google.com</a></p>
<p><a href="mailto:sam@green.eggs.ham"
class="email">sam@green.eggs.ham</a></p>
<p>Link to <a href="index.html" title="My title, optional">my label
1</a> and <a href=".">my label 2</a> and <a href="https://fsf.org"
title="The Free Software Foundation">my label 3</a> and <a
href="index.html#articles" title="A title in single quotes">my label
4</a></p>
<p>This is an <a href="/url">inline link</a>, and heres <a
href="https://fsf.org" title="click here for a good time!">one with a
title</a> and <a href="mailto:sam@green.eggs.ham">Write me!</a></p>
<figure>
<img src="images/shork.png" title="the shork" style="width:20.0%"
alt="The wonderful shork" />
<figcaption aria-hidden="true">The wonderful shork</figcaption>
</figure>
<p>Here is a footnote reference,<a href="#fn1" class="footnote-ref"
id="fnref1" role="doc-noteref"><sup>1</sup></a> and another.<a
href="#fn2" class="footnote-ref" id="fnref2"
role="doc-noteref"><sup>2</sup></a></p>
<p>This paragraph wont be part of the note, because it isnt
indented.</p>
<h6 id="level-6-heading">Level 6 Heading</h6>
<div class="Warning">
<p>This is a warning.</p>
<div class="Danger">
<p>This is a warning within a warning.</p>
</div>
</div>
<section id="footnotes" class="footnotes footnotes-end-of-document"
role="doc-endnotes">
<hr />
<ol>
<li id="fn1"><p>Here is the footnote.<a href="#fnref1"
class="footnote-back" role="doc-backlink">↩︎</a></p></li>
<li id="fn2"><p>Heres one with multiple blocks.</p>
<p>Subsequent paragraphs are indented to show that they belong to the
previous footnote.</p>
<pre><code>{ some.code }</code></pre>
<p>The whole paragraph can be indented, or just the first line. In this
way, multi-paragraph footnotes work like multi-paragraph list items.<a
href="#fnref2" class="footnote-back" role="doc-backlink">↩︎</a></p></li>
</ol>
</section>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
@ -8,42 +9,43 @@
<meta name="dcterms.date" content="2025-07-25" />
<title>Random linux utilities</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
@ -54,69 +56,70 @@
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Random linux utilities</h1>
<p class="subtitle">Neat things I picked up along the way</p>
<p class="author">Never</p>
<p class="date">2025-07-25</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Random linux utilities</h1>
<p class="subtitle">Neat things I picked up along the way</p>
<p class="author">Never</p>
<p class="date">2025-07-25</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#merge-pdfs" id="toc-merge-pdfs">Merge pdfs</a>
<ul>
<li><a href="#using-ghostscript" id="toc-using-ghostscript">Using
Ghostscript</a></li>
</ul></li>
</ul>
</nav>
<article>
<h1 id="merge-pdfs">Merge pdfs</h1>
</nav>
<article>
<h1 id="merge-pdfs">Merge pdfs</h1>
<h2 id="using-ghostscript">Using Ghostscript</h2>
<p>Ghostscript has a feature to merge multiple pdf files into one.
Although ImageMagick also has this feature, I prefer this one, as it
@ -125,15 +128,18 @@ doesnt rasterize and scales down the pdf files.</p>
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">gs</span> <span class="at">-dNOPAUSE</span> <span class="at">-sDEVICE</span><span class="op">=</span>pdfwrite <span class="dt">\</span></span>
<span id="cb1-2"><a href="#cb1-2" aria-hidden="true" tabindex="-1"></a> <span class="at">-sOUTPUTFILE</span><span class="op">=</span>output.pdf <span class="dt">\</span></span>
<span id="cb1-3"><a href="#cb1-3" aria-hidden="true" tabindex="-1"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -1,44 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>nevereverever.de</title>
<link>https://nevereverever.de/eh/eh/eh/eh-eh</link>
<description>Here I post random stuff.</description>
<language>en-us</language>
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<lastBuildDate>Sat, 21 Feb 2026 15:40:08 +0100</lastBuildDate>
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>pandoc</generator>
<managingEditor>n.gude@posteo.de (Never)</managingEditor>
<webMaster>n.gude@poster.de (Never)</webMaster>
<item>
<title>Using rsync on Android to syncronise my Music library</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html</link>
<description>As Spotify is getting enshittified by capitalism, keeping a
<channel>
<title>nevereverever.de</title>
<link>https://nevereverever.de/eh/eh/eh/eh-eh</link>
<description>Here I post random stuff.</description>
<language>en-us</language>
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<lastBuildDate>Tue, 24 Feb 2026 21:56:55 +0100</lastBuildDate>
<docs>https://www.rssboard.org/rss-specification</docs>
<generator>pandoc</generator>
<managingEditor>n.gude@posteo.de (Never)</managingEditor>
<webMaster>n.gude@poster.de (Never)</webMaster>
<item>
<title>Using rsync on Android to syncronise my Music library</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html</link>
<description>As Spotify is getting enshittified by capitalism, keeping a
music library is kind of essential. Here I use rsync to syncronise my
library with my Android smartphone.</description>
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<guid>rsync-android</guid>
</item>
<item>
<title>Latex Endeavors</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/latex-endeavors.html</link>
<description>Latex undoubtedly has some quirks. Some of them have a
<pubDate>Mon, 12 Jan 2026 00:00:00 +0100</pubDate>
<guid>rsync-android</guid>
</item>
<item>
<title>Latex Endeavors</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/latex-endeavors.html</link>
<description>Latex undoubtedly has some quirks. Some of them have a
rather unintuitive solution. In this article I cover some quirks and
solutions I have encountered.</description>
<pubDate>Fri, 09 Jan 2026 00:00:00 +0100</pubDate>
<guid>latex-endeavors</guid>
</item>
<item>
<title>Random linux utilities</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/random-linux-utils.html</link>
<description>Tricks and tools I learned about, while tweaking my Linux
<pubDate>Fri, 09 Jan 2026 00:00:00 +0100</pubDate>
<guid>latex-endeavors</guid>
</item>
<item>
<title>Random linux utilities</title>
<author>n.gude@posteo.de (Never)</author>
<link>https://nevereverever.de/eh/eh/eh/eh-eh/random-linux-utils.html</link>
<description>Tricks and tools I learned about, while tweaking my Linux
sytem or trying to do productive things.</description>
<pubDate>Fri, 25 Jul 2025 00:00:00 +0200</pubDate>
<guid>random-linux-utils</guid>
</item>
</channel>
<pubDate>Fri, 25 Jul 2025 00:00:00 +0200</pubDate>
<guid>random-linux-utils</guid>
</item>
</channel>
</rss>

View file

@ -1,5 +1,6 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="" >
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
@ -8,42 +9,43 @@
<meta name="dcterms.date" content="2026-01-12" />
<title>Using rsync on Android to syncronise my Music library</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<link rel="alternate" type="application/rss+xml" title="RSS" href="https://nevereverever.de/eh/eh/eh/eh-eh/rss.xml">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
@ -54,60 +56,61 @@
background-color: #073642;
color: #586e75;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
pre.numberSource { margin-left: 3em; border-left: 1px solid #586e75; padding-left: 4px; }
div.sourceCode
{ color: #839496; background-color: #002b36; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #d33682; } /* Alert */
code span.an { color: #dc322f; } /* Annotation */
code span.at { color: #dc322f; } /* Attribute */
code span.bn { color: #2aa198; } /* BaseN */
code span.bu { color: #b58900; } /* BuiltIn */
code span.cf { color: #859900; } /* ControlFlow */
code span.ch { color: #2aa198; } /* Char */
code span.cn { color: #b58900; } /* Constant */
code span.co { color: #586e75; font-style: italic; } /* Comment */
code span.cv { color: #268bd2; } /* CommentVar */
code span.do { color: #586e75; font-style: italic; } /* Documentation */
code span.dt { color: #b58900; } /* DataType */
code span.dv { color: #2aa198; } /* DecVal */
code span.er { color: #dc322f; text-decoration: underline; } /* Error */
code span.ex { color: #b58900; } /* Extension */
code span.fl { color: #2aa198; } /* Float */
code span.fu { } /* Function */
code span.im { color: #cb4b16; } /* Import */
code span.in { color: #268bd2; } /* Information */
code span.kw { color: #93a1a1; font-weight: bold; } /* Keyword */
code span.op { } /* Operator */
code span.ot { } /* Other */
code span.pp { color: #cb4b16; } /* Preprocessor */
code span.re { color: #cb4b16; } /* RegionMarker */
code span.sc { color: #dc322f; } /* SpecialChar */
code span.ss { color: #b58900; } /* SpecialString */
code span.st { color: #2aa198; } /* String */
code span.va { color: #cb4b16; } /* Variable */
code span.vs { color: #dc322f; } /* VerbatimString */
code span.wa { color: #b58900; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
</head>
<body>
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Using rsync on Android to syncronise my Music
<img id="shork" src="images/shork.png"></img>
<header id="page-header">
<a class="page-header-button" href="index.html">Home</a>
<a class="rss-button" href="rss.xml">RSS Feed</a>
</header>
<main id="page">
<header id="title-block-header">
<h1 class="title">Using rsync on Android to syncronise my Music
library</h1>
<p class="author">Never</p>
<p class="date">2026-01-12</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<p class="author">Never</p>
<p class="date">2026-01-12</p>
</header>
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#setup-termux" id="toc-setup-termux">Setup Termux</a></li>
<li><a href="#establishing-an-ssh-connection"
id="toc-establishing-an-ssh-connection">Establishing an ssh
@ -120,16 +123,12 @@ id="toc-connecting-to-android-via-ssh">Connecting to Android via
ssh</a></li>
</ul></li>
<li><a href="#syncronising-files-with-rsync"
id="toc-syncronising-files-with-rsync">Syncronising files with rsync</a>
<ul>
<li><a href="#refreshing-the-android-mediastore"
id="toc-refreshing-the-android-mediastore">Refreshing the Android
MediaStore</a></li>
</ul></li>
id="toc-syncronising-files-with-rsync">Syncronising files with
rsync</a></li>
</ul>
</nav>
<article>
<h1 id="setup-termux">Setup Termux</h1>
</nav>
<article>
<h1 id="setup-termux">Setup Termux</h1>
<p>Install Termux using F-Droid.</p>
<p>Update software repos.</p>
<div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> update</span></code></pre></div>
@ -187,34 +186,18 @@ class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#
rsync.</p>
<div class="sourceCode" id="cb13"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb13-1"><a href="#cb13-1" aria-hidden="true" tabindex="-1"></a><span class="fu">rsync</span> <span class="at">-av</span> <span class="at">-e</span> <span class="st">&quot;ssh -p 8022&quot;</span> ~/Music <span class="op">&lt;</span>username<span class="op">&gt;</span>@<span class="op">&lt;</span>ip_address<span class="op">&gt;</span>:/data/data/com.termux/files/home/storage/music</span></code></pre></div>
<h2 id="refreshing-the-android-mediastore">Refreshing the Android
MediaStore</h2>
<p>Android uses a Database to store files. In order to play your music,
this database needs to be refreshed. This can be achieved by a reboot or
by using adb to manually refresh it.</p>
<div class="sourceCode" id="cb14"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb14-1"><a href="#cb14-1" aria-hidden="true" tabindex="-1"></a><span class="fu">sudo</span> dnf install adb</span></code></pre></div>
<p>Connect the Android device via USB and see if it is listed.</p>
<div class="sourceCode" id="cb15"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb15-1"><a href="#cb15-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> devices</span></code></pre></div>
<p>If it is, restart adb in TCP mode with port 5555</p>
<div class="sourceCode" id="cb16"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb16-1"><a href="#cb16-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> tcpip 5555</span></code></pre></div>
<p>Connect to the device using its <ip_address>.</p>
<div class="sourceCode" id="cb17"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb17-1"><a href="#cb17-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> connect <span class="op">&lt;</span>ip_address<span class="op">&gt;</span></span></code></pre></div>
<p>Refresh MediaStore.</p>
<div class="sourceCode" id="cb18"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb18-1"><a href="#cb18-1" aria-hidden="true" tabindex="-1"></a><span class="ex">adb</span> shell am broadcast <span class="at">-a</span> android.intent.action.MEDIA_SCANNER_SCAN <span class="at">-d</span> file:///data/data/com.termux/files/home/storage/music/</span></code></pre></div>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
</article>
</main>
<footer id="page-footer">
<nav id="webring">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous"
src="images/cups_left_dark.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo_dark.svg"
width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next"
src="images/cups_right_dark.svg" width="30" height="30"></a>
</nav>
</footer>
</body>
<script src="scripts/shork.js"></script>
</html>

View file

@ -98,31 +98,3 @@ Now on your Linux machine, syncronise your Music library with rsync.
rsync -av -e "ssh -p 8022" ~/Music <username>@<ip_address>:/data/data/com.termux/files/home/storage/music
```
## Refreshing the Android MediaStore
Android uses a Database to store files. In order to play your music, this database
needs to be refreshed. This can be achieved by a reboot or by using adb to manually
refresh it.
```sh
sudo dnf install adb
```
Connect the Android device via USB and see if it is listed.
```sh
adb devices
```
If it is, restart adb in TCP mode with port 5555
```sh
adb tcpip 5555
```
Connect to the device using its <ip_address>.
```sh
adb connect <ip_address>
```
Refresh MediaStore.
```sh
adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN -d file:///data/data/com.termux/files/home/storage/music/
```