90s-style #1

Merged
never merged 25 commits from 90s-style into main 2026-02-11 19:06:32 +01:00
71 changed files with 3209 additions and 536 deletions

69
Makefile Normal file
View file

@ -0,0 +1,69 @@
SHELL = /bin/sh
SRCDIR := src
BUILDDIR := build
INSTALLDIR_HTML := public_html/eh/eh/eh/eh-eh/
INSTALLDIR_ANSI := public_ansi/
ARTICLEDIR := articles
PANDOCDIR := pandoc
STYLEDIR := styles
IMAGEDIR := images
# The name of the stylesheet. This needs to be copied to any directory containing html files that use it.
style := $(STYLEDIR)/style.css
# Main html template that pandoc uses to generate .html from .md files
template_html := $(PANDOCDIR)/template.html
template_ansi := $(PANDOCDIR)/template
# Template for extracting metadata of .md files in json format
list_template := $(PANDOCDIR)/meta-json-template.txt
# Location of the shark.js
shark_js := $(PANDOCDIR)/shark.js
# List of articles with their metadata to be used in the creation of the article list in index.html
article_list := $(SRCDIR)/articles.json
# article targets
articles_md := $(wildcard $(SRCDIR)/$(ARTICLEDIR)/*.md)
articles_html := $(patsubst $(SRCDIR)/%.md, $(BUILDDIR)/%.html, $(articles_md))
articles_ansi := $(patsubst $(SRCDIR)/%.md, $(BUILDDIR)/%, $(articles_md))
all: $(BUILDDIR)/index.html $(BUILDDIR)/index
install:
cp -r $(BUILDDIR)/index.html $(articles_html) $(STYLEDIR) $(IMAGEDIR) $(INSTALLDIR_HTML); \
cp -r $(BUILDDIR)/index $(articles_ansi) $(INSTALLDIR_ANSI);
clean:
echo '{"articles": []}' > $(article_list); \
rm -r $(BUILDDIR)
$(BUILDDIR):
mkdir $(BUILDDIR) $(BUILDDIR)/$(ARTICLEDIR)
$(BUILDDIR)/$(ARTICLEDIR)/%.html: $(SRCDIR)/$(ARTICLEDIR)/%.md | $(BUILDDIR)
jq 'del(.articles[] | select(.filename == "$(notdir $@)"))' $(article_list) > articles.json.tmp; \
mv ./articles.json.tmp $(article_list); \
# Build articles using pandoc
pandoc $< --template $(template_html) --css $(style) --highlight-style zenburn --mathml --toc --output $@; \
# Extract metadata from .md file, append filename field to the article object.
# This is used to link to the article from index.html. Append article object to the article list.
jq '.articles += [$(shell pandoc $< --template $(list_template) | jq '. += {"filename": "$(patsubst %.html, %, $(notdir $@))"}')]' $(article_list) > articles.json.tmp; \
mv ./articles.json.tmp $(article_list); \
$(BUILDDIR)/$(ARTICLEDIR)/%: $(SRCDIR)/$(ARTICLEDIR)/%.md | $(BUILDDIR)
pandoc $< --template $(template_ansi) --to ansi --output $@
$(BUILDDIR)/index.html: $(SRCDIR)/index.md $(articles_html) | $(BUILDDIR)
# Build index.html with metadata injected from articles_list
pandoc $< --template $(template_html) --include-after-body $(shark_js) --css $(style) --metadata-file $(article_list) --highlight-style zenburn --mathml --toc --output $@; \
$(BUILDDIR)/index: $(SRCDIR)/index.md $(articles_ansi) | $(BUILDDIR)
pandoc $< --template $(template_ansi) --metadata-file $(article_list) --to ansi --output $@

View file

@ -0,0 +1,18 @@
Latex Endeavors
Some unintuitive quirks of Latex
Never
9.1.2026
────────────────────
BIBLATEX AND BIBER
Biber doesnt run
Biber doenst run if the (fedora) package  libxcrypt-compat  is missing.
It will fail with the error message
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
]8;;\

View file

@ -0,0 +1,68 @@
<!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" />
<title>Latex Endeavors</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;
}
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<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">9.1.2026</p>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
and Biber</a>
<ul>
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesnt
run</a></li>
</ul></li>
</ul>
</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>
</section>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,21 @@
Random linux utilities
Neat things I picked up along the way
Never
25.7.2025
────────────────────
MERGE PDFS
Using Ghostscript
Ghostscript has a feature to merge multiple pdf files into one. Although
ImageMagick also has this feature, I prefer this one, as it doesnt
rasterize and scales down the pdf files.
gs -dNOPAUSE -sDEVICE=pdfwrite \
 -sOUTPUTFILE=output.pdf \
 -dBATCH 1.pdf 2.pdf
]8;;\

View file

@ -4,8 +4,9 @@
<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 Gude" />
<title>Article 1</title>
<meta name="author" content="Never" />
<title>Random linux utilities</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
@ -86,26 +87,18 @@
code span.vs { color: #cc9393; } /* VerbatimString */
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
</style>
<link rel="stylesheet" href="pandoc/style.css" />
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox" checked><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<header id="title-block-header">
<h1 class="title">Article 1</h1>
<p class="subtitle">Just testimg</p>
<p class="author">Never Gude</p>
<p class="date">10.12.2025</p>
<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">25.7.2025</p>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
@ -118,27 +111,24 @@ Ghostscript</a></li>
</ul>
</nav>
<article>
<h2 id="merge-pdfs">Merge pdfs</h2>
<h3 id="using-ghostscript">Using Ghostscript</h3>
<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
doesnt rasterize and scales down the pdf files.</p>
<blockquote>
<p>Block quote time yay</p>
</blockquote>
<div class="sourceCode" id="cb1"><pre
class="sourceCode numberSource bash numberLines"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-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"></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"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
<div class="sourceCode" id="cb2"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> hello_world<span class="op">(</span><span class="dt">int</span> x<span class="op">)</span> <span class="op">{</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> printf<span class="op">(</span><span class="st">&quot;Hello World </span><span class="sc">%i</span><span class="st">&quot;</span><span class="op">,</span> x<span class="op">);</span></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> x<span class="op">;</span></span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
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>
</section>
<footer id="page-footer">
<embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,116 @@
Using rsync on Android to syncronise my Music library
Never
12.01.2026
────────────────────
SETUP TERMUX
Install Termux using F-Droid.
Update software repos.
pkg update
Grant file access permissions using.
termux-setup-storage
ESTABLISHING AN SSH CONNECTION
If network (such as eduroam) is blocking ssh trafic between machines,
open a Wi-Fi Hotspot on your Linux machine and connect the Android
device to it before using  rsync  or  ssh .
Configuring Android
Install the openssh server on Termux.
pkg install openssh
Start the ssh server daemon.
sshd
Get the ip address of the Android machine (in the Hotspot).
ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
 inet 127.0.0.1 netmask 255.0.0.0
 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
 inet 10.200.157.166 netmask 255.255.255.0 destination 10.200.157.166
 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
In this case 10.42.0.200.
The ssh server should now be running and listening on port 8022. You can
check by running
nmap -Pn <ip_address>
For me  <ip_address>  whould be 10.42.0.200.
Get the username.
whoami
u0_a700
Set a password for this user.
passwd
Connecting to Android via ssh
Make sure you have an ssh key pair on the Linux system. If not generate
one using  ssh-keygen .
Now connect to Android by  ssh .
ssh <username>@<ip_address> -p 8022
SYNCRONISING FILES WITH RSYNC
Install  rsync  on Termux and Linux. Make sure to keep your own openssl
config.
pkg install rsync
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

@ -0,0 +1,215 @@
<!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" />
<title>Using rsync on Android to syncronise my Music library</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;
}
pre.numberSource { margin-left: 3em; padding-left: 4px; }
div.sourceCode
{ color: #cccccc; background-color: #303030; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ffcfaf; } /* Alert */
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
code span.at { } /* Attribute */
code span.bn { color: #dca3a3; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #f0dfaf; } /* ControlFlow */
code span.ch { color: #dca3a3; } /* Char */
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
code span.co { color: #7f9f7f; } /* Comment */
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
code span.do { color: #7f9f7f; } /* Documentation */
code span.dt { color: #dfdfbf; } /* DataType */
code span.dv { color: #dcdccc; } /* DecVal */
code span.er { color: #c3bf9f; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #c0bed1; } /* Float */
code span.fu { color: #efef8f; } /* Function */
code span.im { } /* Import */
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
code span.kw { color: #f0dfaf; } /* Keyword */
code span.op { color: #f0efd0; } /* Operator */
code span.ot { color: #efef8f; } /* Other */
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
code span.sc { color: #dca3a3; } /* SpecialChar */
code span.ss { color: #cc9393; } /* SpecialString */
code span.st { color: #cc9393; } /* String */
code span.va { } /* Variable */
code span.vs { color: #cc9393; } /* VerbatimString */
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<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">12.01.2026</p>
</header>
<section id="content">
<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
connection</a>
<ul>
<li><a href="#configuring-android"
id="toc-configuring-android">Configuring Android</a></li>
<li><a href="#connecting-to-android-via-ssh"
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>
</ul>
</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>
<p>Grant file access permissions using.</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">termux-setup-storage</span></span></code></pre></div>
<h1 id="establishing-an-ssh-connection">Establishing an ssh
connection</h1>
<p>If network (such as eduroam) is blocking ssh trafic between machines,
open a Wi-Fi Hotspot on your Linux machine and connect the Android
device to it before using <code>rsync</code> or <code>ssh</code>.</p>
<h2 id="configuring-android">Configuring Android</h2>
<p>Install the openssh server on Termux.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install openssh</span></code></pre></div>
<p>Start the ssh server daemon.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">sshd</span></span></code></pre></div>
<p>Get the ip address of the Android machine (in the Hotspot).</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ifconfig</span></span></code></pre></div>
<pre><code>Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt; mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
rmnet0: flags=4305&lt;UP,POINTOPOINT,RUNNING,NOARP,MULTICAST&gt; mtu 1280
inet 10.200.157.166 netmask 255.255.255.0 destination 10.200.157.166
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
wlan0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 1500
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)</code></pre>
<p>In this case 10.42.0.200.</p>
<p>The ssh server should now be running and listening on port 8022. You
can check by running</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nmap</span> <span class="at">-Pn</span> <span class="op">&lt;</span>ip_address<span class="op">&gt;</span></span></code></pre></div>
<p>For me <code>&lt;ip_address&gt;</code> whould be 10.42.0.200.</p>
<p>Get the username.</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">whoami</span></span></code></pre></div>
<pre><code>u0_a700</code></pre>
<p>Set a password for this user.</p>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">passwd</span></span></code></pre></div>
<h2 id="connecting-to-android-via-ssh">Connecting to Android via
ssh</h2>
<p>Make sure you have an ssh key pair on the Linux system. If not
generate one using <code>ssh-keygen</code>.</p>
<p>Now connect to Android by <code>ssh</code>.</p>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ssh</span> <span class="op">&lt;</span>username<span class="op">&gt;</span>@<span class="op">&lt;</span>ip_address<span class="op">&gt;</span> -p 8022</span></code></pre></div>
<h1 id="syncronising-files-with-rsync">Syncronising files with
rsync</h1>
<p>Install <code>rsync</code> on Termux and Linux. Make sure to keep
your own openssl config.</p>
<div class="sourceCode" id="cb12"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install rsync</span></code></pre></div>
<p>Now on your Linux machine, syncronise your Music library with
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>
</section>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

26
build/index Normal file
View file

@ -0,0 +1,26 @@
Home
────────────────────
Hello World
ARTICLES
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 - 9.1.2026
Random linux utilities (random-linux-utils)
Tricks and tools I learned about, while tweaking my Linux sytem or
trying to do productive things.
Never - 25.7.2025
Using rsync on Android to syncronise my Music
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 - 12.01.2026
]8;;\

154
build/index.html Normal file
View file

@ -0,0 +1,154 @@
<!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" />
<title>Home</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;
}
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<header id="title-block-header">
<h1 class="title">Home</h1>
</header>
<section id="content">
<article>
<p>Hello World</p>
</article>
<nav id="articles">
<h2>Articles</h2>
<ul>
<li>
<div class="articles-header">
<a href="latex-endeavors.html" class="articles-title">Latex
Endeavors</a>
<p class="articles-author"><em>Never</em></p>
</div>
<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>
<p class="articles-date">9.1.2026</p>
</li>
<li>
<div class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
utilities</a>
<p class="articles-author"><em>Never</em></p>
</div>
<p class="articles-summary">Tricks and tools I learned about, while
tweaking my Linux sytem or trying to do productive things.</p>
<p class="articles-date">25.7.2025</p>
</li>
<li>
<div class="articles-header">
<a href="rsync-android.html" class="articles-title">Using rsync on
Android to syncronise my Music library</a>
<p class="articles-author"><em>Never</em></p>
</div>
<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>
<p class="articles-date">12.01.2026</p>
</li>
</ul>
</nav>
</section>
<script>
let speed = 10;
let scale = 0.33; // Image scale (I work on 1080p monitor)
let canvas;
let ctx;
let logoColor;
let dvd = {
x: 256,
y: 354,
xspeed: 2,
yspeed: 2,
img: new Image()
};
(function main(){
canvas = document.getElementById("tv-screen");
ctx = canvas.getContext("2d");
dvd.img.src = 'images/shark.png';
//Draw the "tv screen"
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
pickColor();
update();
})();
function update() {
setTimeout(() => {
//Draw the canvas background
ctx.fillStyle = '#00000000';
ctx.clearRect(0, 0, canvas.width, canvas.height);
//Draw DVD Logo and his background
//ctx.fillStyle = logoColor;
//ctx.fillRect(dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
ctx.drawImage(dvd.img, dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
//Move the logo
dvd.x+=dvd.xspeed;
dvd.y+=dvd.yspeed;
//Check for collision
checkHitBox();
update();
}, speed)
}
//Check for border collision
function checkHitBox(){
if(dvd.x+dvd.img.width*scale >= canvas.width || dvd.x <= 0){
dvd.xspeed *= -1;
pickColor();
}
if(dvd.y+dvd.img.height*scale >= canvas.height || dvd.y <= 0){
dvd.yspeed *= -1;
pickColor();
}
}
//Pick a random color in RGB format
function pickColor(){
r = Math.random() * (254 - 0) + 0;
g = Math.random() * (254 - 0) + 0;
b = Math.random() * (254 - 0) + 0;
logoColor = 'rgb('+r+','+g+', '+b+')';
}
</script>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before After
Before After

BIN
images/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

BIN
images/shark.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

68
pandoc/shark.js Normal file
View file

@ -0,0 +1,68 @@
<script>
let speed = 10;
let scale = 0.33; // Image scale (I work on 1080p monitor)
let canvas;
let ctx;
let logoColor;
let dvd = {
x: 256,
y: 354,
xspeed: 2,
yspeed: 2,
img: new Image()
};
(function main(){
canvas = document.getElementById("tv-screen");
ctx = canvas.getContext("2d");
dvd.img.src = 'images/shark.png';
//Draw the "tv screen"
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
pickColor();
update();
})();
function update() {
setTimeout(() => {
//Draw the canvas background
ctx.fillStyle = '#00000000';
ctx.clearRect(0, 0, canvas.width, canvas.height);
//Draw DVD Logo and his background
//ctx.fillStyle = logoColor;
//ctx.fillRect(dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
ctx.drawImage(dvd.img, dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
//Move the logo
dvd.x+=dvd.xspeed;
dvd.y+=dvd.yspeed;
//Check for collision
checkHitBox();
update();
}, speed)
}
//Check for border collision
function checkHitBox(){
if(dvd.x+dvd.img.width*scale >= canvas.width || dvd.x <= 0){
dvd.xspeed *= -1;
pickColor();
}
if(dvd.y+dvd.img.height*scale >= canvas.height || dvd.y <= 0){
dvd.yspeed *= -1;
pickColor();
}
}
//Pick a random color in RGB format
function pickColor(){
r = Math.random() * (254 - 0) + 0;
g = Math.random() * (254 - 0) + 0;
b = Math.random() * (254 - 0) + 0;
logoColor = 'rgb('+r+','+g+', '+b+')';
}
</script>

36
pandoc/template Normal file
View file

@ -0,0 +1,36 @@
$if(titleblock)$
$titleblock$
$endif$
$for(header-includes)$
$header-includes$
$endfor$
$for(include-before)$
$include-before$
$endfor$
$if(toc)$
$table-of-contents$
$endif$
$body$
$if(articles)$
ARTICLES
$for(articles)$
$if(articles.title)$
$articles.title$$if(articles.filename)$ ($articles.filename$)$endif$
$endif$
$if(articles.summary)$
$articles.summary$
$endif$
$if(articles.author)$ $articles.author$$endif$$if(articles.date)$ - $articles.date$$endif$
$endfor$
$endif$
$for(include-after)$
$include-after$
$endfor$

View file

@ -17,11 +17,12 @@ $if(description-meta)$
<meta name="description" content="$description-meta$" />
$endif$
<title>$if(title-prefix)$$title-prefix$ $endif$$pagetitle$</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<style>
$styles.html()$
</style>
$for(css)$
<link rel="stylesheet" href="$css$" />
<link rel="stylesheet" href="$css$">
$endfor$
$for(header-includes)$
$header-includes$
@ -34,17 +35,9 @@ $endif$
$endif$
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox" checked><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
<ul><li><a href="index.html">Home</a></li></ul>
</header>
$for(include-before)$
$include-before$
@ -83,36 +76,40 @@ $body$
</article>
$if(articles)$
<nav id="articles">
<h2>Articles</h2>
<ul>
$for(articles)$
<li>
<div class="articles-header">
$if(articles.title)$
<a href="$articles.filename$" class="articles-title">$articles.title$</a>
$endif$
$if(articles.author)$
<p class="articles-author"><em>$articles.author$</em></p>
$endif$
</div>
$if(articles.summary)$
<p class="articles-summary">$articles.summary$</p>
$endif$
$if(articles.date)$
<p class="articles-date">$articles.date$</p>
$endif$
</li>
$endfor$
</ul>
<h2>Articles</h2>
<ul>
$for(articles)$
<li>
<div class="articles-header">
$if(articles.title)$
<a href="$articles.filename$.html" class="articles-title">$articles.title$</a>
$endif$
$if(articles.author)$
<p class="articles-author"><em>$articles.author$</em></p>
$endif$
</div>
$if(articles.summary)$
<p class="articles-summary">$articles.summary$</p>
$endif$
$if(articles.date)$
<p class="articles-date">$articles.date$</p>
$endif$
</li>
$endfor$
</ul>
</nav>
$endif$
</section>
$for(include-after)$
$include-after$
$endfor$
<footer id="page-footer">
<embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

10
public_ansi/about Normal file
View file

@ -0,0 +1,10 @@
About
────────────────────
]8;;https://nevereverever.de/eh/eh/eh/eh-eh/rsync-android.html\Rsync Android]8;;\
Stuff
$$ \sum_{i=1}^k i = \frac{k(k+1)}{2} $$
]8;;\

26
public_ansi/index Normal file
View file

@ -0,0 +1,26 @@
Home
────────────────────
Hello World
ARTICLES
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 - 9.1.2026
Random linux utilities (random-linux-utils)
Tricks and tools I learned about, while tweaking my Linux sytem or
trying to do productive things.
Never - 25.7.2025
Using rsync on Android to syncronise my Music
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 - 12.01.2026
]8;;\

View file

@ -0,0 +1,18 @@
Latex Endeavors
Some unintuitive quirks of Latex
Never
9.1.2026
────────────────────
BIBLATEX AND BIBER
Biber doesnt run
Biber doenst run if the (fedora) package  libxcrypt-compat  is missing.
It will fail with the error message
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
]8;;\

View file

@ -0,0 +1,21 @@
Random linux utilities
Neat things I picked up along the way
Never
25.7.2025
────────────────────
MERGE PDFS
Using Ghostscript
Ghostscript has a feature to merge multiple pdf files into one. Although
ImageMagick also has this feature, I prefer this one, as it doesnt
rasterize and scales down the pdf files.
gs -dNOPAUSE -sDEVICE=pdfwrite \
 -sOUTPUTFILE=output.pdf \
 -dBATCH 1.pdf 2.pdf
]8;;\

116
public_ansi/rsync-android Normal file
View file

@ -0,0 +1,116 @@
Using rsync on Android to syncronise my Music library
Never
12.01.2026
────────────────────
SETUP TERMUX
Install Termux using F-Droid.
Update software repos.
pkg update
Grant file access permissions using.
termux-setup-storage
ESTABLISHING AN SSH CONNECTION
If network (such as eduroam) is blocking ssh trafic between machines,
open a Wi-Fi Hotspot on your Linux machine and connect the Android
device to it before using  rsync  or  ssh .
Configuring Android
Install the openssh server on Termux.
pkg install openssh
Start the ssh server daemon.
sshd
Get the ip address of the Android machine (in the Hotspot).
ifconfig
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
 inet 127.0.0.1 netmask 255.0.0.0
 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
 inet 10.200.157.166 netmask 255.255.255.0 destination 10.200.157.166
 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
 inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
 unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
In this case 10.42.0.200.
The ssh server should now be running and listening on port 8022. You can
check by running
nmap -Pn <ip_address>
For me  <ip_address>  whould be 10.42.0.200.
Get the username.
whoami
u0_a700
Set a password for this user.
passwd
Connecting to Android via ssh
Make sure you have an ssh key pair on the Linux system. If not generate
one using  ssh-keygen .
Now connect to Android by  ssh .
ssh <username>@<ip_address> -p 8022
SYNCRONISING FILES WITH RSYNC
Install  rsync  on Termux and Linux. Make sure to keep your own openssl
config.
pkg install rsync
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,27 +0,0 @@
template := pandoc/template.html
style := pandoc/style.css
article_list := articles.json
list_template := pandoc/meta-json-template.txt
articles := $(patsubst %.md,%.html,$(wildcard articles/*.md))
all: index.html about.html
clean:
echo '{"articles": []}' > $(article_list); \
# rm $(notdir $(articles)); \
rm ./index.html ./about.html ./articles.json.tmp;
$(articles): %.html: %.md clean
pandoc $< --template $(template) --css $(style) --highlight-style zenburn --mathml --toc --output $(notdir $@); \
pandoc $< --template $(list_template) > article.json.tmp.0; \
jq '. += {"filename": "$(notdir $@)"}' article.json.tmp.0 > article.json.tmp.1; \
jq '.articles += [$(shell cat article.json.tmp.1)]' $(article_list) > articles.json.tmp; \
cat ./articles.json.tmp > ./articles.json;
index.html: index.md $(articles)
pandoc $< --template $(template) --css $(style) --metadata-file $(article_list) --highlight-style zenburn --mathml --toc --output $@
about.html: about.md
pandoc $< --template $(template) --css $(style) --highlight-style zenburn --mathml --toc --output $@

View file

@ -1,58 +0,0 @@
<!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" />
<title>About</title>
<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;
}
</style>
<link rel="stylesheet" href="pandoc/style.css" />
</head>
<body>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox" checked><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
</header>
<header id="title-block-header">
<h1 class="title">About</h1>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#stuff" id="toc-stuff">Stuff</a></li>
</ul>
</nav>
<article>
<h2 id="stuff">Stuff</h2>
<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>k</mi></munderover><mi>i</mi><mo>=</mo><mfrac><mrow><mi>k</mi><mo stretchy="false" form="prefix">(</mo><mi>k</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}^k i = \frac{k(k+1)}{2} </annotation></semantics></math></p>
</article>
</section>
<footer id="page-footer">
<embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;">
</footer>
</body>
</html>

View file

@ -1,8 +0,0 @@
---
title: About
---
## Stuff
$$ \sum_{i=1}^k i = \frac{k(k+1)}{2} $$

View file

@ -1,144 +0,0 @@
<!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 Gude" />
<title>Article DSADASD</title>
<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;
}
pre.numberSource { margin-left: 3em; padding-left: 4px; }
div.sourceCode
{ color: #cccccc; background-color: #303030; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ffcfaf; } /* Alert */
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
code span.at { } /* Attribute */
code span.bn { color: #dca3a3; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #f0dfaf; } /* ControlFlow */
code span.ch { color: #dca3a3; } /* Char */
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
code span.co { color: #7f9f7f; } /* Comment */
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
code span.do { color: #7f9f7f; } /* Documentation */
code span.dt { color: #dfdfbf; } /* DataType */
code span.dv { color: #dcdccc; } /* DecVal */
code span.er { color: #c3bf9f; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #c0bed1; } /* Float */
code span.fu { color: #efef8f; } /* Function */
code span.im { } /* Import */
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
code span.kw { color: #f0dfaf; } /* Keyword */
code span.op { color: #f0efd0; } /* Operator */
code span.ot { color: #efef8f; } /* Other */
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
code span.sc { color: #dca3a3; } /* SpecialChar */
code span.ss { color: #cc9393; } /* SpecialString */
code span.st { color: #cc9393; } /* String */
code span.va { } /* Variable */
code span.vs { color: #cc9393; } /* VerbatimString */
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
</style>
<link rel="stylesheet" href="pandoc/style.css" />
</head>
<body>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox" checked><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
</header>
<header id="title-block-header">
<h1 class="title">Article DSADASD</h1>
<p class="subtitle">Just testimg too</p>
<p class="author">Never Gude</p>
<p class="date">10.12.2025</p>
</header>
<section id="content">
<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>
<h2 id="merge-pdfs">Merge pdfs</h2>
<h3 id="using-ghostscript">Using Ghostscript</h3>
<p>Ghostscript has a feature to merge multiple pdf files into one.
Although ImageMagick also has this feature, I prefer this one, as it
doesnt rasterize and scales down the pdf files.</p>
<blockquote>
<p>Block quote time yay</p>
</blockquote>
<div class="sourceCode" id="cb1"><pre
class="sourceCode numberSource bash numberLines"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-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"></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"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
<div class="sourceCode" id="cb2"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> hello_world<span class="op">(</span><span class="dt">int</span> x<span class="op">)</span> <span class="op">{</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> printf<span class="op">(</span><span class="st">&quot;Hello World </span><span class="sc">%i</span><span class="st">&quot;</span><span class="op">,</span> x<span class="op">);</span></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> x<span class="op">;</span></span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
</article>
</section>
<footer id="page-footer">
<embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;">
</footer>
</body>
</html>

View file

@ -1 +0,0 @@
{"author":"Never Gude","date":"25.7.2025","subtitle":"Neat things I picked up along the way","summary":"Testing dsa dsa dsa dsa DDDDDDDDDDDa","title":"Random linux utilities"}

View file

@ -1,8 +0,0 @@
{
"author": "Never Gude",
"date": "25.7.2025",
"subtitle": "Neat things I picked up along the way",
"summary": "Testing dsa dsa dsa dsa DDDDDDDDDDDa",
"title": "Random linux utilities",
"filename": "random-linux-utils.html"
}

View file

@ -1,26 +0,0 @@
{
"articles": [
{
"author": "Never Gude",
"date": "25.7.2025",
"subtitle": "Neat things I picked up along the way",
"summary": "Testing dsa dsa dsa dsa DDDDDDDDDDDa",
"title": "Random linux utilities",
"filename": "random-linux-utils.html"
},
{
"author": "Never Gude",
"date": "10.12.2025",
"subtitle": "Just testimg too",
"title": "Article DSADASD",
"filename": "article-1.html"
},
{
"author": "Never Gude",
"date": "10.12.2025",
"subtitle": "Just testimg",
"title": "Article 1",
"filename": "article-2.html"
}
]
}

View file

@ -1,26 +0,0 @@
{
"articles": [
{
"author": "Never Gude",
"date": "25.7.2025",
"subtitle": "Neat things I picked up along the way",
"summary": "Testing dsa dsa dsa dsa DDDDDDDDDDDa",
"title": "Random linux utilities",
"filename": "random-linux-utils.html"
},
{
"author": "Never Gude",
"date": "10.12.2025",
"subtitle": "Just testimg too",
"title": "Article DSADASD",
"filename": "article-1.html"
},
{
"author": "Never Gude",
"date": "10.12.2025",
"subtitle": "Just testimg",
"title": "Article 1",
"filename": "article-2.html"
}
]
}

View file

@ -1,30 +0,0 @@
---
title: Article DSADASD
subtitle: Just testimg too
author: Never Gude
date: 10.12.2025
---
## Merge pdfs
### Using Ghostscript
Ghostscript has a feature to merge multiple pdf files into one.
Although ImageMagick also has this feature, I prefer this one, as it doesn't rasterize and scales down
the pdf files.
> Block
> quote
> time yay
```bash {.numberLines}
gs -dNOPAUSE -sDEVICE=pdfwrite \
-sOUTPUTFILE=output.pdf \
-dBATCH 1.pdf 2.pdf
```
```c
int hello_world(int x) {
printf("Hello World %i", x);
return x;
}
```

View file

@ -1,30 +0,0 @@
---
title: Article 1
subtitle: Just testimg
author: Never Gude
date: 10.12.2025
---
## Merge pdfs
### Using Ghostscript
Ghostscript has a feature to merge multiple pdf files into one.
Although ImageMagick also has this feature, I prefer this one, as it doesn't rasterize and scales down
the pdf files.
> Block
> quote
> time yay
```bash {.numberLines}
gs -dNOPAUSE -sDEVICE=pdfwrite \
-sOUTPUTFILE=output.pdf \
-dBATCH 1.pdf 2.pdf
```
```c
int hello_world(int x) {
printf("Hello World %i", x);
return x;
}
```

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0757"
height="1552.4"
viewBox="0 0 1619.0757 1552.4"
version="1.1"
id="svg8"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 1592.9148,1678.6922 c -144.8203,64.6914 -389.8359,52.168 -569.3164,-93.1797 -179.48429,-145.3516 -293.43359,-423.5312 -74.39059,-529.8203 219.04299,-106.293 771.08199,-40.6992 674.21489,130.5781 -96.8672,171.2813 -842.64459,448.2461 -1185.58988,366.6328 -342.949214,-81.6093 -283.07031,-521.7929 26.38281,-620.7929 309.45708,-99.0039 868.49217,143.1796 1143.73047,400.2304 275.2383,257.0469 266.6836,528.9649 255.8945,531.086 -10.789,2.1172 -23.8086,-265.5625 -52.6367,-328.4493 -28.8281,-62.8867 -73.4648,79.0196 -218.2891,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 160.20001,128.2 48,-528 208,1168 655.99999,-464 -1231.99999,272 -272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 832.20001,128.2 -688,688 672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1168.2,112.2 -687.99999,688 671.99999,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1344.2,112.2 -687.99999,688 671.99999,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1504.2,112.2 -687.99999,688 671.99999,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1008.2,112.2 -687.99999,688 672,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0757"
height="1552.4"
viewBox="0 0 1619.0757 1552.4"
version="1.1"
id="svg8"
sodipodi:docname="arrow_left.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.25766555"
inkscape:cx="454.07701"
inkscape:cy="923.67802"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 1592.9148,1678.6922 c -144.8203,64.6914 -389.8359,52.168 -569.3164,-93.1797 -179.48429,-145.3516 -293.43359,-423.5312 -74.39059,-529.8203 219.04299,-106.293 771.08199,-40.6992 674.21489,130.5781 -96.8672,171.2813 -842.64459,448.2461 -1185.58988,366.6328 -342.949214,-81.6093 -283.07031,-521.7929 26.38281,-620.7929 309.45708,-99.0039 868.49217,143.1796 1143.73047,400.2304 275.2383,257.0469 266.6836,528.9649 255.8945,531.086 -10.789,2.1172 -23.8086,-265.5625 -52.6367,-328.4493 -28.8281,-62.8867 -73.4648,79.0196 -218.2891,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 160.20001,128.2 48,-528 208,1168 655.99999,-464 -1231.99999,272 -272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 832.20001,128.2 -688,688 672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1168.2,112.2 -687.99999,688 671.99999,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1344.2,112.2 -687.99999,688 671.99999,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1504.2,112.2 -687.99999,688 671.99999,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1008.2,112.2 -687.99999,688 672,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="4144.0171"
height="2112.3999"
viewBox="0 0 4144.0171 2112.3999"
version="1.1"
id="svg10"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4">
<g
id="g4">
<g
id="glyph-0-0">
<path
d="m 969.45312,-1150.1563 c 0,-30.4843 -1.5625,-32.1718 -10.9375,-32.1718 -6.23437,0 -7.79687,1.6875 -18.73437,22.0156 l -68.6875,142.2813 c -76.48438,-105.0157 -170.15625,-166.0001 -290.35938,-166.0001 -266.95312,0 -508.92187,255.7813 -508.92187,604.7188 0,352.32813 241.96875,606.421875 510.48437,606.421875 238.84375,0 387.15625,-228.687495 387.15625,-423.484375 0,-16.9375 0,-23.70312 -14.04687,-23.70312 -12.5,0 -12.5,5.07812 -14.0625,20.3125 C 928.85937,-162.60937 772.75,-16.9375 604.15625,-16.9375 c -159.23438,0 -413.70313,-121.96875 -413.70313,-562.375 0,-442.1094 259.14063,-560.6719 410.57813,-560.6719 176.40625,0 304.40625,166.00003 334.07812,401.45315 3.125,20.32813 3.125,23.70313 17.17188,23.70313 17.17187,0 17.17187,-3.375 17.17187,-33.875 z m 0,0"
id="path1" />
</g>
<g
id="glyph-0-1">
<path
d="m 843,-387.90625 c 0,226.98438 -135.8125,370.96875 -284.125,370.96875 -79.60938,0 -151.42188,-45.734375 -195.14063,-116.875 -49.95312,-81.3125 -56.20312,-186.32812 -56.20312,-245.625 v -657.2188 c 0,-76.2343 17.17187,-76.2343 124.89062,-76.2343 v -44.0313 c -45.26562,3.375 -128,3.375 -176.40625,3.375 -48.39062,0 -131.12499,0 -176.406245,-3.375 v 44.0313 c 107.718745,0 124.890625,0 124.890625,76.2343 v 648.75005 c 0,243.92188 170.17187,415.015625 351.25,415.015625 202.95312,0 320.03125,-225.296875 320.03125,-391.296875 v -643.6719 c 0,-94.8594 79.625,-105.0312 124.89065,-105.0312 v -44.0313 c -35.90628,3.375 -101.46878,3.375 -140.50003,3.375 -39.03125,0 -106.15625,0 -142.0625,-3.375 v 44.0313 C 843,-1112.8906 843,-1033.2656 843,-990.92187 Z m 0,0"
id="path2" />
</g>
<g
id="glyph-0-2">
<path
d="M 309.09375,-543.73437 H 558.875 c 201.39062,0 348.125,-142.29688 348.125,-303.20313 0,-160.9219 -143.625,-309.9844 -348.125,-309.9844 H 81.171875 v 44.0313 c 107.718745,0 124.890625,0 124.890625,76.2343 v 916.39067 c 0,76.218755 -17.17188,76.218755 -124.890625,76.218755 V 0 C 126.45313,-3.390625 209.1875,-3.390625 257.57812,-3.390625 c 48.40625,0 131.14063,0 176.40625,3.390625 v -44.046875 c -107.71875,0 -124.89062,0 -124.89062,-76.218755 z m -3.10938,-35.57813 v -467.5156 c 0,-57.5938 3.10938,-66.0625 65.5625,-66.0625 h 157.67188 c 201.375,0 259.14062,125.35935 259.14062,265.9531 0,154.14063 -68.6875,267.625 -259.14062,267.625 z m 0,0"
id="path3" />
</g>
<g
id="glyph-0-3">
<path
d="m 683.76562,-1150.1563 c 0,-30.4843 -1.5625,-32.1718 -10.92187,-32.1718 -9.375,0 -12.5,6.7656 -18.73438,22.0156 l -46.84375,111.7969 c -59.3125,-93.1719 -149.85937,-135.5157 -248.20312,-135.5157 -159.23438,0 -287.25,137.2032 -287.25,309.98443 0,52.51562 10.921875,127.04687 64,198.1875 57.76562,77.92187 112.40625,91.46875 237.29687,127.03125 46.82813,13.5625 124.89063,35.57812 140.5,42.35937 88.98438,40.65625 135.8125,142.28125 135.8125,237.14063 0,121.95312 -79.60937,252.39062 -215.4375,252.39062 -167.03125,0 -323.14062,-101.64063 -334.07812,-338.78125 -1.5625,-27.09375 -3.125,-28.79687 -14.046875,-28.79687 -12.484375,0 -14.046875,1.70312 -14.046875,35.57812 V -6.78125 c 0,30.5 1.5625,32.1875 10.921875,32.1875 10.9375,0 14.046875,-8.46875 35.906255,-60.984375 1.5625,-5.078125 1.5625,-8.46875 31.21874,-72.828125 78.0625,111.796875 209.20313,135.515625 284.125,135.515625 170.17188,0 290.375,-154.156255 290.375,-333.703125 0,-88.07812 -29.67187,-155.84375 -46.84375,-186.32812 -65.5625,-108.40625 -135.8125,-128.73438 -210.75,-149.0625 -10.92187,-5.07813 -14.04687,-5.07813 -101.46875,-28.79688 C 281,-694.5 245.09375,-706.35937 206.0625,-752.09375 162.35937,-804.59375 146.75,-858.79687 146.75,-913 c 0,-110.1094 81.17187,-230.375 213.85937,-230.375 165.48438,0 268.51563,127.0469 291.9375,338.78125 4.6875,30.48438 6.23438,32.17188 17.17188,32.17188 14.04687,0 14.04687,-5.07813 14.04687,-33.875 z m 0,0"
id="path4" />
</g>
</g>
</defs>
<path
fill-rule="evenodd"
fill="#00ff00"
fill-opacity="1"
stroke-width="0.4"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 3196.4305,272.19995 c 128,-80 400,-80 618.668,120 218.664,200 384,600 18.664,856.00005 -365.332,256 -1261.332,368 -1280,437.332 -18.664,69.3359 840,96 1037.336,-58.6641 197.332,-154.6679 -266.668,-490.6679 -184,-552 82.664,-61.3359 712,152 736,189.3321 24,37.332 -557.336,-101.3321 -856,-242.668 -298.668,-141.33205 -314.668,-285.33205 -298.668,-344.00005 16,-58.664 64,-32 80,-98.664 16,-66.668 0,-226.668 128,-306.668 z m 0,0"
id="path5" />
<path
fill-rule="evenodd"
fill="#ffd700"
fill-opacity="1"
stroke-width="0.4"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1916.4305,896.19995 80,-512 816,96 -688,1312.00005 400,-1616.00005 1088,1104.00005 -1824,-848.00005 1504,-208 -1040,880.00005 -848,1008 224,-2112.00004951 1168,1616.00004951 896,-816.00005 -1776,208.00005 z m 0,0"
id="path6" />
<path
fill-rule="evenodd"
fill="#ff0000"
fill-opacity="1"
stroke-width="0.4"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 9.762574,277.53195 c 45.33594,154.668 247.999996,346.668 594.667966,258.668 346.66797,-88 837.33196,-456 1013.33196,-312 176,144 37.336,800.00005 -306.664,1090.66795 -343.99999,290.6641 -893.33593,216 -794.66796,-88 98.66797,-303.99998 845.33196,-837.33595 1250.66796,-834.66795 405.332,2.668 469.332,541.33203 445.332,821.33205 -24,280 -136,301.3359 -488,37.3359 -352,-263.99998 -943.99996,-813.33595 -1295.99996,-1029.33595 -351.999996,-215.9999995 -463.999996,-98.664 -418.667966,56 z m 0,0"
id="path7" />
<g
fill="#000000"
fill-opacity="1"
id="g10"
transform="translate(-815.56946,-616.80005)">
<use
xlink:href="#glyph-0-0"
x="1073.5159"
y="2043.7217"
id="use7" />
<use
xlink:href="#glyph-0-1"
x="2114.7791"
y="2043.7217"
id="use8" />
<use
xlink:href="#glyph-0-2"
x="3196.6311"
y="2043.7217"
id="use9" />
<use
xlink:href="#glyph-0-3"
x="4177.0107"
y="2043.7217"
id="use10" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3108.012817" height="1584.299927" viewBox="0 0 3108.012817 1584.299927">
<defs>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 1914 166 L 3108.011719 166 L 3108.011719 1306 L 1914 1306 Z M 1914 166 "/>
</clipPath>
<clipPath id="clip-1">
<path clip-rule="nonzero" d="M 1053 0 L 2770 0 L 2770 1584.300781 L 1053 1584.300781 Z M 1053 0 "/>
</clipPath>
<clipPath id="clip-2">
<path clip-rule="nonzero" d="M 247 182 L 3065 182 L 3065 1091 L 247 1091 Z M 247 182 "/>
</clipPath>
<clipPath id="clip-3">
<path clip-rule="nonzero" d="M 920.550781 207.574219 C 920.550781 184.710938 919.378906 183.445312 912.347656 183.445312 C 907.671875 183.445312 906.5 184.710938 898.296875 199.957031 L 846.78125 306.667969 C 789.417969 227.90625 719.164062 182.167969 629.011719 182.167969 C 428.796875 182.167969 247.320312 374.003906 247.320312 635.707031 C 247.320312 899.953125 428.796875 1090.523438 630.183594 1090.523438 C 809.316406 1090.523438 920.550781 919.007812 920.550781 772.910156 C 920.550781 760.207031 920.550781 755.132812 910.015625 755.132812 C 900.640625 755.132812 900.640625 758.941406 899.46875 770.367188 C 890.105469 948.234375 773.023438 1057.488281 646.578125 1057.488281 C 527.152344 1057.488281 336.300781 966.011719 336.300781 635.707031 C 336.300781 304.125 530.65625 215.203125 644.234375 215.203125 C 776.539062 215.203125 872.539062 339.703125 894.792969 516.292969 C 897.136719 531.539062 897.136719 534.070312 907.671875 534.070312 C 920.550781 534.070312 920.550781 531.539062 920.550781 508.664062 Z M 1606.65625 779.261719 C 1606.65625 949.5 1504.796875 1057.488281 1393.5625 1057.488281 C 1333.855469 1057.488281 1279.996094 1023.1875 1247.207031 969.832031 C 1209.742188 908.847656 1205.054688 830.085938 1205.054688 785.613281 L 1205.054688 292.699219 C 1205.054688 235.523438 1217.933594 235.523438 1298.722656 235.523438 L 1298.722656 202.5 C 1264.773438 205.03125 1202.722656 205.03125 1166.417969 205.03125 C 1130.125 205.03125 1068.074219 205.03125 1034.113281 202.5 L 1034.113281 235.523438 C 1114.902344 235.523438 1127.78125 235.523438 1127.78125 292.699219 L 1127.78125 779.261719 C 1127.78125 962.203125 1255.410156 1090.523438 1391.21875 1090.523438 C 1543.433594 1090.523438 1631.242188 921.550781 1631.242188 797.050781 L 1631.242188 314.296875 C 1631.242188 243.152344 1690.960938 235.523438 1724.910156 235.523438 L 1724.910156 202.5 C 1697.980469 205.03125 1648.808594 205.03125 1619.535156 205.03125 C 1590.261719 205.03125 1539.917969 205.03125 1512.988281 202.5 L 1512.988281 235.523438 C 1606.65625 235.523438 1606.65625 295.242188 1606.65625 327 Z M 2017.617188 662.390625 L 2204.953125 662.390625 C 2355.996094 662.390625 2466.046875 555.667969 2466.046875 434.988281 C 2466.046875 314.296875 2358.328125 202.5 2204.953125 202.5 L 1846.675781 202.5 L 1846.675781 235.523438 C 1927.464844 235.523438 1940.34375 235.523438 1940.34375 292.699219 L 1940.34375 979.992188 C 1940.34375 1037.15625 1927.464844 1037.15625 1846.675781 1037.15625 L 1846.675781 1070.191406 C 1880.636719 1067.648438 1942.6875 1067.648438 1978.980469 1067.648438 C 2015.285156 1067.648438 2077.335938 1067.648438 2111.285156 1070.191406 L 2111.285156 1037.15625 C 2030.496094 1037.15625 2017.617188 1037.15625 2017.617188 979.992188 Z M 2015.285156 635.707031 L 2015.285156 285.070312 C 2015.285156 241.875 2017.617188 235.523438 2064.457031 235.523438 L 2182.710938 235.523438 C 2333.742188 235.523438 2377.066406 329.542969 2377.066406 434.988281 C 2377.066406 550.59375 2325.550781 635.707031 2182.710938 635.707031 Z M 3033.90625 207.574219 C 3033.90625 184.710938 3032.734375 183.445312 3025.714844 183.445312 C 3018.683594 183.445312 3016.339844 188.519531 3011.664062 199.957031 L 2976.53125 283.804688 C 2932.046875 213.925781 2864.136719 182.167969 2790.378906 182.167969 C 2670.953125 182.167969 2574.941406 285.070312 2574.941406 414.65625 C 2574.941406 454.042969 2583.132812 509.941406 2622.941406 563.296875 C 2666.265625 621.738281 2707.246094 631.898438 2800.914062 658.570312 C 2836.035156 668.742188 2894.582031 685.253906 2906.289062 690.339844 C 2973.027344 720.832031 3008.148438 797.050781 3008.148438 868.195312 C 3008.148438 959.660156 2948.441406 1057.488281 2846.570312 1057.488281 C 2721.296875 1057.488281 2604.214844 981.257812 2596.011719 803.402344 C 2594.839844 783.082031 2593.667969 781.804688 2585.476562 781.804688 C 2576.113281 781.804688 2574.941406 783.082031 2574.941406 808.488281 L 2574.941406 1065.105469 C 2574.941406 1087.980469 2576.113281 1089.246094 2583.132812 1089.246094 C 2591.335938 1089.246094 2593.667969 1082.894531 2610.0625 1043.507812 C 2611.234375 1039.699219 2611.234375 1037.15625 2633.476562 988.886719 C 2692.023438 1072.734375 2790.378906 1090.523438 2846.570312 1090.523438 C 2974.199219 1090.523438 3064.351562 974.90625 3064.351562 840.246094 C 3064.351562 774.1875 3042.097656 723.363281 3029.21875 700.5 C 2980.046875 619.195312 2927.359375 603.949219 2871.15625 588.703125 C 2862.964844 584.894531 2860.621094 584.894531 2795.054688 567.105469 C 2731.832031 549.316406 2704.902344 540.421875 2675.628906 506.121094 C 2642.851562 466.746094 2631.144531 426.09375 2631.144531 385.441406 C 2631.144531 302.859375 2692.023438 212.660156 2791.539062 212.660156 C 2915.652344 212.660156 2992.925781 307.945312 3010.492188 466.746094 C 3014.007812 489.609375 3015.167969 490.875 3023.371094 490.875 C 3033.90625 490.875 3033.90625 487.066406 3033.90625 465.46875 Z M 3033.90625 207.574219 "/>
</clipPath>
</defs>
<path fill-rule="evenodd" fill="rgb(0%, 100%, 0%)" fill-opacity="1" d="M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
<g clip-path="url(#clip-0)">
<path fill="none" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
</g>
<g clip-path="url(#clip-1)">
<path fill-rule="evenodd" fill="rgb(100%, 84.312439%, 0%)" fill-opacity="1" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1437.324219 672.148438 L 1497.324219 288.148438 L 2109.324219 360.148438 L 1593.324219 1344.148438 L 1893.324219 132.148438 L 2709.324219 960.148438 L 1341.324219 324.148438 L 2469.324219 168.148438 L 1689.324219 828.148438 L 1053.324219 1584.148438 L 1221.324219 0.148438 L 2097.324219 1212.148438 L 2769.324219 600.148438 L 1437.324219 756.148438 Z M 1437.324219 672.148438 "/>
</g>
<path fill-rule="evenodd" fill="rgb(100%, 0%, 0%)" fill-opacity="1" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 7.320312 208.148438 C 41.324219 324.148438 193.320312 468.148438 453.324219 402.148438 C 713.324219 336.148438 1081.320312 60.148438 1213.320312 168.148438 C 1345.320312 276.148438 1241.324219 768.148438 983.324219 986.152344 C 725.324219 1204.148438 313.320312 1148.152344 387.324219 920.152344 C 461.324219 692.152344 1021.320312 292.148438 1325.324219 294.148438 C 1629.324219 296.152344 1677.324219 700.148438 1659.324219 910.148438 C 1641.324219 1120.148438 1557.324219 1136.152344 1293.324219 938.152344 C 1029.324219 740.152344 585.324219 328.148438 321.324219 166.148438 C 57.324219 4.148438 -26.675781 92.152344 7.320312 208.148438 Z M 7.320312 208.148438 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 920.550781 207.574219 C 920.550781 184.710938 919.378906 183.445312 912.347656 183.445312 C 907.671875 183.445312 906.5 184.710938 898.296875 199.957031 L 846.78125 306.667969 C 789.417969 227.90625 719.164062 182.167969 629.011719 182.167969 C 428.796875 182.167969 247.320312 374.003906 247.320312 635.707031 C 247.320312 899.953125 428.796875 1090.523438 630.183594 1090.523438 C 809.316406 1090.523438 920.550781 919.007812 920.550781 772.910156 C 920.550781 760.207031 920.550781 755.132812 910.015625 755.132812 C 900.640625 755.132812 900.640625 758.941406 899.46875 770.367188 C 890.105469 948.234375 773.023438 1057.488281 646.578125 1057.488281 C 527.152344 1057.488281 336.300781 966.011719 336.300781 635.707031 C 336.300781 304.125 530.65625 215.203125 644.234375 215.203125 C 776.539062 215.203125 872.539062 339.703125 894.792969 516.292969 C 897.136719 531.539062 897.136719 534.070312 907.671875 534.070312 C 920.550781 534.070312 920.550781 531.539062 920.550781 508.664062 Z M 920.550781 207.574219 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 1606.65625 779.261719 C 1606.65625 949.5 1504.796875 1057.488281 1393.5625 1057.488281 C 1333.855469 1057.488281 1279.996094 1023.1875 1247.207031 969.832031 C 1209.742188 908.847656 1205.054688 830.085938 1205.054688 785.613281 L 1205.054688 292.699219 C 1205.054688 235.523438 1217.933594 235.523438 1298.722656 235.523438 L 1298.722656 202.5 C 1264.773438 205.03125 1202.722656 205.03125 1166.417969 205.03125 C 1130.125 205.03125 1068.074219 205.03125 1034.113281 202.5 L 1034.113281 235.523438 C 1114.902344 235.523438 1127.78125 235.523438 1127.78125 292.699219 L 1127.78125 779.261719 C 1127.78125 962.203125 1255.410156 1090.523438 1391.21875 1090.523438 C 1543.433594 1090.523438 1631.242188 921.550781 1631.242188 797.050781 L 1631.242188 314.296875 C 1631.242188 243.152344 1690.960938 235.523438 1724.910156 235.523438 L 1724.910156 202.5 C 1697.980469 205.03125 1648.808594 205.03125 1619.535156 205.03125 C 1590.261719 205.03125 1539.917969 205.03125 1512.988281 202.5 L 1512.988281 235.523438 C 1606.65625 235.523438 1606.65625 295.242188 1606.65625 327 Z M 1606.65625 779.261719 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 2017.617188 662.390625 L 2204.953125 662.390625 C 2355.996094 662.390625 2466.046875 555.667969 2466.046875 434.988281 C 2466.046875 314.296875 2358.328125 202.5 2204.953125 202.5 L 1846.675781 202.5 L 1846.675781 235.523438 C 1927.464844 235.523438 1940.34375 235.523438 1940.34375 292.699219 L 1940.34375 979.992188 C 1940.34375 1037.15625 1927.464844 1037.15625 1846.675781 1037.15625 L 1846.675781 1070.191406 C 1880.636719 1067.648438 1942.6875 1067.648438 1978.980469 1067.648438 C 2015.285156 1067.648438 2077.335938 1067.648438 2111.285156 1070.191406 L 2111.285156 1037.15625 C 2030.496094 1037.15625 2017.617188 1037.15625 2017.617188 979.992188 Z M 2015.285156 635.707031 L 2015.285156 285.070312 C 2015.285156 241.875 2017.617188 235.523438 2064.457031 235.523438 L 2182.710938 235.523438 C 2333.742188 235.523438 2377.066406 329.542969 2377.066406 434.988281 C 2377.066406 550.59375 2325.550781 635.707031 2182.710938 635.707031 Z M 2015.285156 635.707031 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 3033.90625 207.574219 C 3033.90625 184.710938 3032.734375 183.445312 3025.714844 183.445312 C 3018.683594 183.445312 3016.339844 188.519531 3011.664062 199.957031 L 2976.53125 283.804688 C 2932.046875 213.925781 2864.136719 182.167969 2790.378906 182.167969 C 2670.953125 182.167969 2574.941406 285.070312 2574.941406 414.65625 C 2574.941406 454.042969 2583.132812 509.941406 2622.941406 563.296875 C 2666.265625 621.738281 2707.246094 631.898438 2800.914062 658.570312 C 2836.035156 668.742188 2894.582031 685.253906 2906.289062 690.339844 C 2973.027344 720.832031 3008.148438 797.050781 3008.148438 868.195312 C 3008.148438 959.660156 2948.441406 1057.488281 2846.570312 1057.488281 C 2721.296875 1057.488281 2604.214844 981.257812 2596.011719 803.402344 C 2594.839844 783.082031 2593.667969 781.804688 2585.476562 781.804688 C 2576.113281 781.804688 2574.941406 783.082031 2574.941406 808.488281 L 2574.941406 1065.105469 C 2574.941406 1087.980469 2576.113281 1089.246094 2583.132812 1089.246094 C 2591.335938 1089.246094 2593.667969 1082.894531 2610.0625 1043.507812 C 2611.234375 1039.699219 2611.234375 1037.15625 2633.476562 988.886719 C 2692.023438 1072.734375 2790.378906 1090.523438 2846.570312 1090.523438 C 2974.199219 1090.523438 3064.351562 974.90625 3064.351562 840.246094 C 3064.351562 774.1875 3042.097656 723.363281 3029.21875 700.5 C 2980.046875 619.195312 2927.359375 603.949219 2871.15625 588.703125 C 2862.964844 584.894531 2860.621094 584.894531 2795.054688 567.105469 C 2731.832031 549.316406 2704.902344 540.421875 2675.628906 506.121094 C 2642.851562 466.746094 2631.144531 426.09375 2631.144531 385.441406 C 2631.144531 302.859375 2692.023438 212.660156 2791.539062 212.660156 C 2915.652344 212.660156 2992.925781 307.945312 3010.492188 466.746094 C 3014.007812 489.609375 3015.167969 490.875 3023.371094 490.875 C 3033.90625 490.875 3033.90625 487.066406 3033.90625 465.46875 Z M 3033.90625 207.574219 "/>
<g clip-path="url(#clip-2)">
<g clip-path="url(#clip-3)">
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 7.320312 208.148438 C 41.324219 324.148438 193.320312 468.148438 453.324219 402.148438 C 713.324219 336.148438 1081.320312 60.148438 1213.320312 168.148438 C 1345.320312 276.148438 1241.324219 768.148438 983.324219 986.152344 C 725.324219 1204.148438 313.320312 1148.152344 387.324219 920.152344 C 461.324219 692.152344 1021.320312 292.148438 1325.324219 294.148438 C 1629.324219 296.152344 1677.324219 700.148438 1659.324219 910.148438 C 1641.324219 1120.148438 1557.324219 1136.152344 1293.324219 938.152344 C 1029.324219 740.152344 585.324219 328.148438 321.324219 166.148438 C 57.324219 4.148438 -26.675781 92.152344 7.320312 208.148438 Z M 1437.324219 672.148438 L 1497.324219 288.148438 L 2109.324219 360.148438 L 1593.324219 1344.148438 L 1893.324219 132.148438 L 2709.324219 960.148438 L 1341.324219 324.148438 L 2469.324219 168.148438 L 1689.324219 828.148438 L 1053.324219 1584.148438 L 1221.324219 0.148438 L 2097.324219 1212.148438 L 2769.324219 600.148438 L 1437.324219 756.148438 Z M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0758"
height="1552.4"
viewBox="0 0 1619.0758 1552.4"
version="1.1"
id="svg8"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 26.160933,1678.6922 c 144.820317,64.6914 389.835937,52.168 569.316407,-93.1797 C 774.9617,1440.1609 888.9109,1161.9813 669.86796,1055.6922 450.825,949.3992 -101.21407,1014.993 -4.3468768,1186.2703 92.520313,1357.5516 838.2977,1634.5164 1181.243,1552.9031 c 342.9492,-81.6093 283.0703,-521.7929 -26.3828,-620.7929 -309.4571,-99.0039 -868.49224,143.1796 -1143.730517,400.2304 -275.238273,257.0469 -266.683593,528.9649 -255.894523,531.086 10.78906,2.1172 23.80859,-265.5625 52.63672,-328.4493 28.82812,-62.8867 73.46483,79.0196 218.289053,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 1458.8758,128.2 -48,-528 -208,1168 -656.00002,-464 1232.00002,272 272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 786.8758,128.2 688,688 -672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 450.87578,112.2 688.00002,688 -672.00002,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 274.87578,112.2 688.00002,688 -672.00002,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 114.87578,112.2 688.00002,688 -672.00002,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 610.87578,112.2 688.00002,688 -672.00002,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0758"
height="1552.4"
viewBox="0 0 1619.0758 1552.4"
version="1.1"
id="svg8"
sodipodi:docname="arrow_right.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.25766555"
inkscape:cx="374.51651"
inkscape:cy="1269.087"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 26.160933,1678.6922 c 144.820317,64.6914 389.835937,52.168 569.316407,-93.1797 C 774.9617,1440.1609 888.9109,1161.9813 669.86796,1055.6922 450.825,949.3992 -101.21407,1014.993 -4.3468768,1186.2703 92.520313,1357.5516 838.2977,1634.5164 1181.243,1552.9031 c 342.9492,-81.6093 283.0703,-521.7929 -26.3828,-620.7929 -309.4571,-99.0039 -868.49224,143.1796 -1143.730517,400.2304 -275.238273,257.0469 -266.683593,528.9649 -255.894523,531.086 10.78906,2.1172 23.80859,-265.5625 52.63672,-328.4493 28.82812,-62.8867 73.46483,79.0196 218.289053,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 1458.8758,128.2 -48,-528 -208,1168 -656.00002,-464 1232.00002,272 272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 786.8758,128.2 688,688 -672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 450.87578,112.2 688.00002,688 -672.00002,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 274.87578,112.2 688.00002,688 -672.00002,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 114.87578,112.2 688.00002,688 -672.00002,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 610.87578,112.2 688.00002,688 -672.00002,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

View file

@ -5,6 +5,7 @@
<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">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
@ -21,63 +22,133 @@
vertical-align: middle;
}
</style>
<link rel="stylesheet" href="pandoc/style.css" />
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox" checked><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<header id="title-block-header">
<h1 class="title">Home</h1>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
</nav>
<article>
<p>Hello World</p>
</article>
<nav id="articles">
<h2>Articles</h2>
<ul>
<li>
<div class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
<h2>Articles</h2>
<ul>
<li>
<div class="articles-header">
<a href="latex-endeavors.html" class="articles-title">Latex
Endeavors</a>
<p class="articles-author"><em>Never</em></p>
</div>
<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>
<p class="articles-date">9.1.2026</p>
</li>
<li>
<div class="articles-header">
<a href="random-linux-utils.html" class="articles-title">Random linux
utilities</a>
<p class="articles-author"><em>Never Gude</em></p>
</div>
<p class="articles-summary">Testing dsa dsa dsa dsa DDDDDDDDDDDa</p>
<p class="articles-date">25.7.2025</p>
</li>
<li>
<div class="articles-header">
<a href="article-1.html" class="articles-title">Article DSADASD</a>
<p class="articles-author"><em>Never Gude</em></p>
</div>
<p class="articles-date">10.12.2025</p>
</li>
<li>
<div class="articles-header">
<a href="article-2.html" class="articles-title">Article 1</a>
<p class="articles-author"><em>Never Gude</em></p>
</div>
<p class="articles-date">10.12.2025</p>
</li>
</ul>
<p class="articles-author"><em>Never</em></p>
</div>
<p class="articles-summary">Tricks and tools I learned about, while
tweaking my Linux sytem or trying to do productive things.</p>
<p class="articles-date">25.7.2025</p>
</li>
<li>
<div class="articles-header">
<a href="rsync-android.html" class="articles-title">Using rsync on
Android to syncronise my Music library</a>
<p class="articles-author"><em>Never</em></p>
</div>
<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>
<p class="articles-date">12.01.2026</p>
</li>
</ul>
</nav>
</section>
<script>
let speed = 10;
let scale = 0.33; // Image scale (I work on 1080p monitor)
let canvas;
let ctx;
let logoColor;
let dvd = {
x: 256,
y: 354,
xspeed: 2,
yspeed: 2,
img: new Image()
};
(function main(){
canvas = document.getElementById("tv-screen");
ctx = canvas.getContext("2d");
dvd.img.src = 'images/shark.png';
//Draw the "tv screen"
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
pickColor();
update();
})();
function update() {
setTimeout(() => {
//Draw the canvas background
ctx.fillStyle = '#00000000';
ctx.clearRect(0, 0, canvas.width, canvas.height);
//Draw DVD Logo and his background
//ctx.fillStyle = logoColor;
//ctx.fillRect(dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
ctx.drawImage(dvd.img, dvd.x, dvd.y, dvd.img.width*scale, dvd.img.height*scale);
//Move the logo
dvd.x+=dvd.xspeed;
dvd.y+=dvd.yspeed;
//Check for collision
checkHitBox();
update();
}, speed)
}
//Check for border collision
function checkHitBox(){
if(dvd.x+dvd.img.width*scale >= canvas.width || dvd.x <= 0){
dvd.xspeed *= -1;
pickColor();
}
if(dvd.y+dvd.img.height*scale >= canvas.height || dvd.y <= 0){
dvd.yspeed *= -1;
pickColor();
}
}
//Pick a random color in RGB format
function pickColor(){
r = Math.random() * (254 - 0) + 0;
g = Math.random() * (254 - 0) + 0;
b = Math.random() * (254 - 0) + 0;
logoColor = 'rgb('+r+','+g+', '+b+')';
}
</script>
<footer id="page-footer">
<embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,68 @@
<!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" />
<title>Latex Endeavors</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;
}
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<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">9.1.2026</p>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
and Biber</a>
<ul>
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesnt
run</a></li>
</ul></li>
</ul>
</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>
</section>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

@ -4,8 +4,9 @@
<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 Gude" />
<meta name="author" content="Never" />
<title>Random linux utilities</title>
<link rel="icon" type="image/x-icon" href="images/favicon.png">
<style>
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
@ -86,25 +87,17 @@
code span.vs { color: #cc9393; } /* VerbatimString */
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
</style>
<link rel="stylesheet" href="pandoc/style.css" />
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox" checked><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<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 Gude</p>
<p class="author">Never</p>
<p class="date">25.7.2025</p>
</header>
<section id="content">
@ -118,27 +111,24 @@ Ghostscript</a></li>
</ul>
</nav>
<article>
<h2 id="merge-pdfs">Merge pdfs</h2>
<h3 id="using-ghostscript">Using Ghostscript</h3>
<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
doesnt rasterize and scales down the pdf files.</p>
<blockquote>
<p>Block quote time yay</p>
</blockquote>
<div class="sourceCode" id="cb1"><pre
class="sourceCode numberSource bash numberLines"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-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"></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"></a> <span class="at">-dBATCH</span> 1.pdf 2.pdf</span></code></pre></div>
<div class="sourceCode" id="cb2"><pre class="sourceCode c"><code class="sourceCode c"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="dt">int</span> hello_world<span class="op">(</span><span class="dt">int</span> x<span class="op">)</span> <span class="op">{</span></span>
<span id="cb2-2"><a href="#cb2-2" aria-hidden="true" tabindex="-1"></a> printf<span class="op">(</span><span class="st">&quot;Hello World </span><span class="sc">%i</span><span class="st">&quot;</span><span class="op">,</span> x<span class="op">);</span></span>
<span id="cb2-3"><a href="#cb2-3" aria-hidden="true" tabindex="-1"></a> <span class="cf">return</span> x<span class="op">;</span></span>
<span id="cb2-4"><a href="#cb2-4" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
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>
</section>
<footer id="page-footer">
<embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,215 @@
<!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" />
<title>Using rsync on Android to syncronise my Music library</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;
}
pre.numberSource { margin-left: 3em; padding-left: 4px; }
div.sourceCode
{ color: #cccccc; background-color: #303030; }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ffcfaf; } /* Alert */
code span.an { color: #7f9f7f; font-weight: bold; } /* Annotation */
code span.at { } /* Attribute */
code span.bn { color: #dca3a3; } /* BaseN */
code span.bu { } /* BuiltIn */
code span.cf { color: #f0dfaf; } /* ControlFlow */
code span.ch { color: #dca3a3; } /* Char */
code span.cn { color: #dca3a3; font-weight: bold; } /* Constant */
code span.co { color: #7f9f7f; } /* Comment */
code span.cv { color: #7f9f7f; font-weight: bold; } /* CommentVar */
code span.do { color: #7f9f7f; } /* Documentation */
code span.dt { color: #dfdfbf; } /* DataType */
code span.dv { color: #dcdccc; } /* DecVal */
code span.er { color: #c3bf9f; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #c0bed1; } /* Float */
code span.fu { color: #efef8f; } /* Function */
code span.im { } /* Import */
code span.in { color: #7f9f7f; font-weight: bold; } /* Information */
code span.kw { color: #f0dfaf; } /* Keyword */
code span.op { color: #f0efd0; } /* Operator */
code span.ot { color: #efef8f; } /* Other */
code span.pp { color: #ffcfaf; font-weight: bold; } /* Preprocessor */
code span.sc { color: #dca3a3; } /* SpecialChar */
code span.ss { color: #cc9393; } /* SpecialString */
code span.st { color: #cc9393; } /* String */
code span.va { } /* Variable */
code span.vs { color: #cc9393; } /* VerbatimString */
code span.wa { color: #7f9f7f; font-weight: bold; } /* Warning */
</style>
<link rel="stylesheet" href="styles/style.css">
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul><li><a href="index.html">Home</a></li></ul>
</header>
<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">12.01.2026</p>
</header>
<section id="content">
<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
connection</a>
<ul>
<li><a href="#configuring-android"
id="toc-configuring-android">Configuring Android</a></li>
<li><a href="#connecting-to-android-via-ssh"
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>
</ul>
</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>
<p>Grant file access permissions using.</p>
<div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true" tabindex="-1"></a><span class="ex">termux-setup-storage</span></span></code></pre></div>
<h1 id="establishing-an-ssh-connection">Establishing an ssh
connection</h1>
<p>If network (such as eduroam) is blocking ssh trafic between machines,
open a Wi-Fi Hotspot on your Linux machine and connect the Android
device to it before using <code>rsync</code> or <code>ssh</code>.</p>
<h2 id="configuring-android">Configuring Android</h2>
<p>Install the openssh server on Termux.</p>
<div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install openssh</span></code></pre></div>
<p>Start the ssh server daemon.</p>
<div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true" tabindex="-1"></a><span class="ex">sshd</span></span></code></pre></div>
<p>Get the ip address of the Android machine (in the Hotspot).</p>
<div class="sourceCode" id="cb5"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb5-1"><a href="#cb5-1" aria-hidden="true" tabindex="-1"></a><span class="ex">ifconfig</span></span></code></pre></div>
<pre><code>Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73&lt;UP,LOOPBACK,RUNNING&gt; mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
rmnet0: flags=4305&lt;UP,POINTOPOINT,RUNNING,NOARP,MULTICAST&gt; mtu 1280
inet 10.200.157.166 netmask 255.255.255.0 destination 10.200.157.166
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
wlan0: flags=4163&lt;UP,BROADCAST,RUNNING,MULTICAST&gt; mtu 1500
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)</code></pre>
<p>In this case 10.42.0.200.</p>
<p>The ssh server should now be running and listening on port 8022. You
can check by running</p>
<div class="sourceCode" id="cb7"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb7-1"><a href="#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="fu">nmap</span> <span class="at">-Pn</span> <span class="op">&lt;</span>ip_address<span class="op">&gt;</span></span></code></pre></div>
<p>For me <code>&lt;ip_address&gt;</code> whould be 10.42.0.200.</p>
<p>Get the username.</p>
<div class="sourceCode" id="cb8"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb8-1"><a href="#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="fu">whoami</span></span></code></pre></div>
<pre><code>u0_a700</code></pre>
<p>Set a password for this user.</p>
<div class="sourceCode" id="cb10"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb10-1"><a href="#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="fu">passwd</span></span></code></pre></div>
<h2 id="connecting-to-android-via-ssh">Connecting to Android via
ssh</h2>
<p>Make sure you have an ssh key pair on the Linux system. If not
generate one using <code>ssh-keygen</code>.</p>
<p>Now connect to Android by <code>ssh</code>.</p>
<div class="sourceCode" id="cb11"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb11-1"><a href="#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="fu">ssh</span> <span class="op">&lt;</span>username<span class="op">&gt;</span>@<span class="op">&lt;</span>ip_address<span class="op">&gt;</span> -p 8022</span></code></pre></div>
<h1 id="syncronising-files-with-rsync">Syncronising files with
rsync</h1>
<p>Install <code>rsync</code> on Termux and Linux. Make sure to keep
your own openssl config.</p>
<div class="sourceCode" id="cb12"><pre
class="sourceCode sh"><code class="sourceCode bash"><span id="cb12-1"><a href="#cb12-1" aria-hidden="true" tabindex="-1"></a><span class="ex">pkg</span> install rsync</span></code></pre></div>
<p>Now on your Linux machine, syncronise your Music library with
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>
</section>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30"></a>
</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0757"
height="1552.4"
viewBox="0 0 1619.0757 1552.4"
version="1.1"
id="svg8"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 1592.9148,1678.6922 c -144.8203,64.6914 -389.8359,52.168 -569.3164,-93.1797 -179.48429,-145.3516 -293.43359,-423.5312 -74.39059,-529.8203 219.04299,-106.293 771.08199,-40.6992 674.21489,130.5781 -96.8672,171.2813 -842.64459,448.2461 -1185.58988,366.6328 -342.949214,-81.6093 -283.07031,-521.7929 26.38281,-620.7929 309.45708,-99.0039 868.49217,143.1796 1143.73047,400.2304 275.2383,257.0469 266.6836,528.9649 255.8945,531.086 -10.789,2.1172 -23.8086,-265.5625 -52.6367,-328.4493 -28.8281,-62.8867 -73.4648,79.0196 -218.2891,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 160.20001,128.2 48,-528 208,1168 655.99999,-464 -1231.99999,272 -272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 832.20001,128.2 -688,688 672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1168.2,112.2 -687.99999,688 671.99999,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1344.2,112.2 -687.99999,688 671.99999,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1504.2,112.2 -687.99999,688 671.99999,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1008.2,112.2 -687.99999,688 672,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0757"
height="1552.4"
viewBox="0 0 1619.0757 1552.4"
version="1.1"
id="svg8"
sodipodi:docname="arrow_left.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.25766555"
inkscape:cx="454.07701"
inkscape:cy="923.67802"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 1592.9148,1678.6922 c -144.8203,64.6914 -389.8359,52.168 -569.3164,-93.1797 -179.48429,-145.3516 -293.43359,-423.5312 -74.39059,-529.8203 219.04299,-106.293 771.08199,-40.6992 674.21489,130.5781 -96.8672,171.2813 -842.64459,448.2461 -1185.58988,366.6328 -342.949214,-81.6093 -283.07031,-521.7929 26.38281,-620.7929 309.45708,-99.0039 868.49217,143.1796 1143.73047,400.2304 275.2383,257.0469 266.6836,528.9649 255.8945,531.086 -10.789,2.1172 -23.8086,-265.5625 -52.6367,-328.4493 -28.8281,-62.8867 -73.4648,79.0196 -218.2891,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 160.20001,128.2 48,-528 208,1168 655.99999,-464 -1231.99999,272 -272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 832.20001,128.2 -688,688 672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1168.2,112.2 -687.99999,688 671.99999,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1344.2,112.2 -687.99999,688 671.99999,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1504.2,112.2 -687.99999,688 671.99999,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1008.2,112.2 -687.99999,688 672,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -0,0 +1,103 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="4144.0171"
height="2112.3999"
viewBox="0 0 4144.0171 2112.3999"
version="1.1"
id="svg10"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs4">
<g
id="g4">
<g
id="glyph-0-0">
<path
d="m 969.45312,-1150.1563 c 0,-30.4843 -1.5625,-32.1718 -10.9375,-32.1718 -6.23437,0 -7.79687,1.6875 -18.73437,22.0156 l -68.6875,142.2813 c -76.48438,-105.0157 -170.15625,-166.0001 -290.35938,-166.0001 -266.95312,0 -508.92187,255.7813 -508.92187,604.7188 0,352.32813 241.96875,606.421875 510.48437,606.421875 238.84375,0 387.15625,-228.687495 387.15625,-423.484375 0,-16.9375 0,-23.70312 -14.04687,-23.70312 -12.5,0 -12.5,5.07812 -14.0625,20.3125 C 928.85937,-162.60937 772.75,-16.9375 604.15625,-16.9375 c -159.23438,0 -413.70313,-121.96875 -413.70313,-562.375 0,-442.1094 259.14063,-560.6719 410.57813,-560.6719 176.40625,0 304.40625,166.00003 334.07812,401.45315 3.125,20.32813 3.125,23.70313 17.17188,23.70313 17.17187,0 17.17187,-3.375 17.17187,-33.875 z m 0,0"
id="path1" />
</g>
<g
id="glyph-0-1">
<path
d="m 843,-387.90625 c 0,226.98438 -135.8125,370.96875 -284.125,370.96875 -79.60938,0 -151.42188,-45.734375 -195.14063,-116.875 -49.95312,-81.3125 -56.20312,-186.32812 -56.20312,-245.625 v -657.2188 c 0,-76.2343 17.17187,-76.2343 124.89062,-76.2343 v -44.0313 c -45.26562,3.375 -128,3.375 -176.40625,3.375 -48.39062,0 -131.12499,0 -176.406245,-3.375 v 44.0313 c 107.718745,0 124.890625,0 124.890625,76.2343 v 648.75005 c 0,243.92188 170.17187,415.015625 351.25,415.015625 202.95312,0 320.03125,-225.296875 320.03125,-391.296875 v -643.6719 c 0,-94.8594 79.625,-105.0312 124.89065,-105.0312 v -44.0313 c -35.90628,3.375 -101.46878,3.375 -140.50003,3.375 -39.03125,0 -106.15625,0 -142.0625,-3.375 v 44.0313 C 843,-1112.8906 843,-1033.2656 843,-990.92187 Z m 0,0"
id="path2" />
</g>
<g
id="glyph-0-2">
<path
d="M 309.09375,-543.73437 H 558.875 c 201.39062,0 348.125,-142.29688 348.125,-303.20313 0,-160.9219 -143.625,-309.9844 -348.125,-309.9844 H 81.171875 v 44.0313 c 107.718745,0 124.890625,0 124.890625,76.2343 v 916.39067 c 0,76.218755 -17.17188,76.218755 -124.890625,76.218755 V 0 C 126.45313,-3.390625 209.1875,-3.390625 257.57812,-3.390625 c 48.40625,0 131.14063,0 176.40625,3.390625 v -44.046875 c -107.71875,0 -124.89062,0 -124.89062,-76.218755 z m -3.10938,-35.57813 v -467.5156 c 0,-57.5938 3.10938,-66.0625 65.5625,-66.0625 h 157.67188 c 201.375,0 259.14062,125.35935 259.14062,265.9531 0,154.14063 -68.6875,267.625 -259.14062,267.625 z m 0,0"
id="path3" />
</g>
<g
id="glyph-0-3">
<path
d="m 683.76562,-1150.1563 c 0,-30.4843 -1.5625,-32.1718 -10.92187,-32.1718 -9.375,0 -12.5,6.7656 -18.73438,22.0156 l -46.84375,111.7969 c -59.3125,-93.1719 -149.85937,-135.5157 -248.20312,-135.5157 -159.23438,0 -287.25,137.2032 -287.25,309.98443 0,52.51562 10.921875,127.04687 64,198.1875 57.76562,77.92187 112.40625,91.46875 237.29687,127.03125 46.82813,13.5625 124.89063,35.57812 140.5,42.35937 88.98438,40.65625 135.8125,142.28125 135.8125,237.14063 0,121.95312 -79.60937,252.39062 -215.4375,252.39062 -167.03125,0 -323.14062,-101.64063 -334.07812,-338.78125 -1.5625,-27.09375 -3.125,-28.79687 -14.046875,-28.79687 -12.484375,0 -14.046875,1.70312 -14.046875,35.57812 V -6.78125 c 0,30.5 1.5625,32.1875 10.921875,32.1875 10.9375,0 14.046875,-8.46875 35.906255,-60.984375 1.5625,-5.078125 1.5625,-8.46875 31.21874,-72.828125 78.0625,111.796875 209.20313,135.515625 284.125,135.515625 170.17188,0 290.375,-154.156255 290.375,-333.703125 0,-88.07812 -29.67187,-155.84375 -46.84375,-186.32812 -65.5625,-108.40625 -135.8125,-128.73438 -210.75,-149.0625 -10.92187,-5.07813 -14.04687,-5.07813 -101.46875,-28.79688 C 281,-694.5 245.09375,-706.35937 206.0625,-752.09375 162.35937,-804.59375 146.75,-858.79687 146.75,-913 c 0,-110.1094 81.17187,-230.375 213.85937,-230.375 165.48438,0 268.51563,127.0469 291.9375,338.78125 4.6875,30.48438 6.23438,32.17188 17.17188,32.17188 14.04687,0 14.04687,-5.07813 14.04687,-33.875 z m 0,0"
id="path4" />
</g>
</g>
</defs>
<path
fill-rule="evenodd"
fill="#00ff00"
fill-opacity="1"
stroke-width="0.4"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 3196.4305,272.19995 c 128,-80 400,-80 618.668,120 218.664,200 384,600 18.664,856.00005 -365.332,256 -1261.332,368 -1280,437.332 -18.664,69.3359 840,96 1037.336,-58.6641 197.332,-154.6679 -266.668,-490.6679 -184,-552 82.664,-61.3359 712,152 736,189.3321 24,37.332 -557.336,-101.3321 -856,-242.668 -298.668,-141.33205 -314.668,-285.33205 -298.668,-344.00005 16,-58.664 64,-32 80,-98.664 16,-66.668 0,-226.668 128,-306.668 z m 0,0"
id="path5" />
<path
fill-rule="evenodd"
fill="#ffd700"
fill-opacity="1"
stroke-width="0.4"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 1916.4305,896.19995 80,-512 816,96 -688,1312.00005 400,-1616.00005 1088,1104.00005 -1824,-848.00005 1504,-208 -1040,880.00005 -848,1008 224,-2112.00004951 1168,1616.00004951 896,-816.00005 -1776,208.00005 z m 0,0"
id="path6" />
<path
fill-rule="evenodd"
fill="#ff0000"
fill-opacity="1"
stroke-width="0.4"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 9.762574,277.53195 c 45.33594,154.668 247.999996,346.668 594.667966,258.668 346.66797,-88 837.33196,-456 1013.33196,-312 176,144 37.336,800.00005 -306.664,1090.66795 -343.99999,290.6641 -893.33593,216 -794.66796,-88 98.66797,-303.99998 845.33196,-837.33595 1250.66796,-834.66795 405.332,2.668 469.332,541.33203 445.332,821.33205 -24,280 -136,301.3359 -488,37.3359 -352,-263.99998 -943.99996,-813.33595 -1295.99996,-1029.33595 -351.999996,-215.9999995 -463.999996,-98.664 -418.667966,56 z m 0,0"
id="path7" />
<g
fill="#000000"
fill-opacity="1"
id="g10"
transform="translate(-815.56946,-616.80005)">
<use
xlink:href="#glyph-0-0"
x="1073.5159"
y="2043.7217"
id="use7" />
<use
xlink:href="#glyph-0-1"
x="2114.7791"
y="2043.7217"
id="use8" />
<use
xlink:href="#glyph-0-2"
x="3196.6311"
y="2043.7217"
id="use9" />
<use
xlink:href="#glyph-0-3"
x="4177.0107"
y="2043.7217"
id="use10" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="3108.012817" height="1584.299927" viewBox="0 0 3108.012817 1584.299927">
<defs>
<clipPath id="clip-0">
<path clip-rule="nonzero" d="M 1914 166 L 3108.011719 166 L 3108.011719 1306 L 1914 1306 Z M 1914 166 "/>
</clipPath>
<clipPath id="clip-1">
<path clip-rule="nonzero" d="M 1053 0 L 2770 0 L 2770 1584.300781 L 1053 1584.300781 Z M 1053 0 "/>
</clipPath>
<clipPath id="clip-2">
<path clip-rule="nonzero" d="M 247 182 L 3065 182 L 3065 1091 L 247 1091 Z M 247 182 "/>
</clipPath>
<clipPath id="clip-3">
<path clip-rule="nonzero" d="M 920.550781 207.574219 C 920.550781 184.710938 919.378906 183.445312 912.347656 183.445312 C 907.671875 183.445312 906.5 184.710938 898.296875 199.957031 L 846.78125 306.667969 C 789.417969 227.90625 719.164062 182.167969 629.011719 182.167969 C 428.796875 182.167969 247.320312 374.003906 247.320312 635.707031 C 247.320312 899.953125 428.796875 1090.523438 630.183594 1090.523438 C 809.316406 1090.523438 920.550781 919.007812 920.550781 772.910156 C 920.550781 760.207031 920.550781 755.132812 910.015625 755.132812 C 900.640625 755.132812 900.640625 758.941406 899.46875 770.367188 C 890.105469 948.234375 773.023438 1057.488281 646.578125 1057.488281 C 527.152344 1057.488281 336.300781 966.011719 336.300781 635.707031 C 336.300781 304.125 530.65625 215.203125 644.234375 215.203125 C 776.539062 215.203125 872.539062 339.703125 894.792969 516.292969 C 897.136719 531.539062 897.136719 534.070312 907.671875 534.070312 C 920.550781 534.070312 920.550781 531.539062 920.550781 508.664062 Z M 1606.65625 779.261719 C 1606.65625 949.5 1504.796875 1057.488281 1393.5625 1057.488281 C 1333.855469 1057.488281 1279.996094 1023.1875 1247.207031 969.832031 C 1209.742188 908.847656 1205.054688 830.085938 1205.054688 785.613281 L 1205.054688 292.699219 C 1205.054688 235.523438 1217.933594 235.523438 1298.722656 235.523438 L 1298.722656 202.5 C 1264.773438 205.03125 1202.722656 205.03125 1166.417969 205.03125 C 1130.125 205.03125 1068.074219 205.03125 1034.113281 202.5 L 1034.113281 235.523438 C 1114.902344 235.523438 1127.78125 235.523438 1127.78125 292.699219 L 1127.78125 779.261719 C 1127.78125 962.203125 1255.410156 1090.523438 1391.21875 1090.523438 C 1543.433594 1090.523438 1631.242188 921.550781 1631.242188 797.050781 L 1631.242188 314.296875 C 1631.242188 243.152344 1690.960938 235.523438 1724.910156 235.523438 L 1724.910156 202.5 C 1697.980469 205.03125 1648.808594 205.03125 1619.535156 205.03125 C 1590.261719 205.03125 1539.917969 205.03125 1512.988281 202.5 L 1512.988281 235.523438 C 1606.65625 235.523438 1606.65625 295.242188 1606.65625 327 Z M 2017.617188 662.390625 L 2204.953125 662.390625 C 2355.996094 662.390625 2466.046875 555.667969 2466.046875 434.988281 C 2466.046875 314.296875 2358.328125 202.5 2204.953125 202.5 L 1846.675781 202.5 L 1846.675781 235.523438 C 1927.464844 235.523438 1940.34375 235.523438 1940.34375 292.699219 L 1940.34375 979.992188 C 1940.34375 1037.15625 1927.464844 1037.15625 1846.675781 1037.15625 L 1846.675781 1070.191406 C 1880.636719 1067.648438 1942.6875 1067.648438 1978.980469 1067.648438 C 2015.285156 1067.648438 2077.335938 1067.648438 2111.285156 1070.191406 L 2111.285156 1037.15625 C 2030.496094 1037.15625 2017.617188 1037.15625 2017.617188 979.992188 Z M 2015.285156 635.707031 L 2015.285156 285.070312 C 2015.285156 241.875 2017.617188 235.523438 2064.457031 235.523438 L 2182.710938 235.523438 C 2333.742188 235.523438 2377.066406 329.542969 2377.066406 434.988281 C 2377.066406 550.59375 2325.550781 635.707031 2182.710938 635.707031 Z M 3033.90625 207.574219 C 3033.90625 184.710938 3032.734375 183.445312 3025.714844 183.445312 C 3018.683594 183.445312 3016.339844 188.519531 3011.664062 199.957031 L 2976.53125 283.804688 C 2932.046875 213.925781 2864.136719 182.167969 2790.378906 182.167969 C 2670.953125 182.167969 2574.941406 285.070312 2574.941406 414.65625 C 2574.941406 454.042969 2583.132812 509.941406 2622.941406 563.296875 C 2666.265625 621.738281 2707.246094 631.898438 2800.914062 658.570312 C 2836.035156 668.742188 2894.582031 685.253906 2906.289062 690.339844 C 2973.027344 720.832031 3008.148438 797.050781 3008.148438 868.195312 C 3008.148438 959.660156 2948.441406 1057.488281 2846.570312 1057.488281 C 2721.296875 1057.488281 2604.214844 981.257812 2596.011719 803.402344 C 2594.839844 783.082031 2593.667969 781.804688 2585.476562 781.804688 C 2576.113281 781.804688 2574.941406 783.082031 2574.941406 808.488281 L 2574.941406 1065.105469 C 2574.941406 1087.980469 2576.113281 1089.246094 2583.132812 1089.246094 C 2591.335938 1089.246094 2593.667969 1082.894531 2610.0625 1043.507812 C 2611.234375 1039.699219 2611.234375 1037.15625 2633.476562 988.886719 C 2692.023438 1072.734375 2790.378906 1090.523438 2846.570312 1090.523438 C 2974.199219 1090.523438 3064.351562 974.90625 3064.351562 840.246094 C 3064.351562 774.1875 3042.097656 723.363281 3029.21875 700.5 C 2980.046875 619.195312 2927.359375 603.949219 2871.15625 588.703125 C 2862.964844 584.894531 2860.621094 584.894531 2795.054688 567.105469 C 2731.832031 549.316406 2704.902344 540.421875 2675.628906 506.121094 C 2642.851562 466.746094 2631.144531 426.09375 2631.144531 385.441406 C 2631.144531 302.859375 2692.023438 212.660156 2791.539062 212.660156 C 2915.652344 212.660156 2992.925781 307.945312 3010.492188 466.746094 C 3014.007812 489.609375 3015.167969 490.875 3023.371094 490.875 C 3033.90625 490.875 3033.90625 487.066406 3033.90625 465.46875 Z M 3033.90625 207.574219 "/>
</clipPath>
</defs>
<path fill-rule="evenodd" fill="rgb(0%, 100%, 0%)" fill-opacity="1" d="M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
<g clip-path="url(#clip-0)">
<path fill="none" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
</g>
<g clip-path="url(#clip-1)">
<path fill-rule="evenodd" fill="rgb(100%, 84.312439%, 0%)" fill-opacity="1" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 1437.324219 672.148438 L 1497.324219 288.148438 L 2109.324219 360.148438 L 1593.324219 1344.148438 L 1893.324219 132.148438 L 2709.324219 960.148438 L 1341.324219 324.148438 L 2469.324219 168.148438 L 1689.324219 828.148438 L 1053.324219 1584.148438 L 1221.324219 0.148438 L 2097.324219 1212.148438 L 2769.324219 600.148438 L 1437.324219 756.148438 Z M 1437.324219 672.148438 "/>
</g>
<path fill-rule="evenodd" fill="rgb(100%, 0%, 0%)" fill-opacity="1" stroke-width="0.3" stroke-linecap="butt" stroke-linejoin="round" stroke="rgb(0%, 0%, 0%)" stroke-opacity="1" stroke-miterlimit="10" d="M 7.320312 208.148438 C 41.324219 324.148438 193.320312 468.148438 453.324219 402.148438 C 713.324219 336.148438 1081.320312 60.148438 1213.320312 168.148438 C 1345.320312 276.148438 1241.324219 768.148438 983.324219 986.152344 C 725.324219 1204.148438 313.320312 1148.152344 387.324219 920.152344 C 461.324219 692.152344 1021.320312 292.148438 1325.324219 294.148438 C 1629.324219 296.152344 1677.324219 700.148438 1659.324219 910.148438 C 1641.324219 1120.148438 1557.324219 1136.152344 1293.324219 938.152344 C 1029.324219 740.152344 585.324219 328.148438 321.324219 166.148438 C 57.324219 4.148438 -26.675781 92.152344 7.320312 208.148438 Z M 7.320312 208.148438 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 920.550781 207.574219 C 920.550781 184.710938 919.378906 183.445312 912.347656 183.445312 C 907.671875 183.445312 906.5 184.710938 898.296875 199.957031 L 846.78125 306.667969 C 789.417969 227.90625 719.164062 182.167969 629.011719 182.167969 C 428.796875 182.167969 247.320312 374.003906 247.320312 635.707031 C 247.320312 899.953125 428.796875 1090.523438 630.183594 1090.523438 C 809.316406 1090.523438 920.550781 919.007812 920.550781 772.910156 C 920.550781 760.207031 920.550781 755.132812 910.015625 755.132812 C 900.640625 755.132812 900.640625 758.941406 899.46875 770.367188 C 890.105469 948.234375 773.023438 1057.488281 646.578125 1057.488281 C 527.152344 1057.488281 336.300781 966.011719 336.300781 635.707031 C 336.300781 304.125 530.65625 215.203125 644.234375 215.203125 C 776.539062 215.203125 872.539062 339.703125 894.792969 516.292969 C 897.136719 531.539062 897.136719 534.070312 907.671875 534.070312 C 920.550781 534.070312 920.550781 531.539062 920.550781 508.664062 Z M 920.550781 207.574219 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 1606.65625 779.261719 C 1606.65625 949.5 1504.796875 1057.488281 1393.5625 1057.488281 C 1333.855469 1057.488281 1279.996094 1023.1875 1247.207031 969.832031 C 1209.742188 908.847656 1205.054688 830.085938 1205.054688 785.613281 L 1205.054688 292.699219 C 1205.054688 235.523438 1217.933594 235.523438 1298.722656 235.523438 L 1298.722656 202.5 C 1264.773438 205.03125 1202.722656 205.03125 1166.417969 205.03125 C 1130.125 205.03125 1068.074219 205.03125 1034.113281 202.5 L 1034.113281 235.523438 C 1114.902344 235.523438 1127.78125 235.523438 1127.78125 292.699219 L 1127.78125 779.261719 C 1127.78125 962.203125 1255.410156 1090.523438 1391.21875 1090.523438 C 1543.433594 1090.523438 1631.242188 921.550781 1631.242188 797.050781 L 1631.242188 314.296875 C 1631.242188 243.152344 1690.960938 235.523438 1724.910156 235.523438 L 1724.910156 202.5 C 1697.980469 205.03125 1648.808594 205.03125 1619.535156 205.03125 C 1590.261719 205.03125 1539.917969 205.03125 1512.988281 202.5 L 1512.988281 235.523438 C 1606.65625 235.523438 1606.65625 295.242188 1606.65625 327 Z M 1606.65625 779.261719 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 2017.617188 662.390625 L 2204.953125 662.390625 C 2355.996094 662.390625 2466.046875 555.667969 2466.046875 434.988281 C 2466.046875 314.296875 2358.328125 202.5 2204.953125 202.5 L 1846.675781 202.5 L 1846.675781 235.523438 C 1927.464844 235.523438 1940.34375 235.523438 1940.34375 292.699219 L 1940.34375 979.992188 C 1940.34375 1037.15625 1927.464844 1037.15625 1846.675781 1037.15625 L 1846.675781 1070.191406 C 1880.636719 1067.648438 1942.6875 1067.648438 1978.980469 1067.648438 C 2015.285156 1067.648438 2077.335938 1067.648438 2111.285156 1070.191406 L 2111.285156 1037.15625 C 2030.496094 1037.15625 2017.617188 1037.15625 2017.617188 979.992188 Z M 2015.285156 635.707031 L 2015.285156 285.070312 C 2015.285156 241.875 2017.617188 235.523438 2064.457031 235.523438 L 2182.710938 235.523438 C 2333.742188 235.523438 2377.066406 329.542969 2377.066406 434.988281 C 2377.066406 550.59375 2325.550781 635.707031 2182.710938 635.707031 Z M 2015.285156 635.707031 "/>
<path fill-rule="nonzero" fill="rgb(100%, 100%, 100%)" fill-opacity="1" d="M 3033.90625 207.574219 C 3033.90625 184.710938 3032.734375 183.445312 3025.714844 183.445312 C 3018.683594 183.445312 3016.339844 188.519531 3011.664062 199.957031 L 2976.53125 283.804688 C 2932.046875 213.925781 2864.136719 182.167969 2790.378906 182.167969 C 2670.953125 182.167969 2574.941406 285.070312 2574.941406 414.65625 C 2574.941406 454.042969 2583.132812 509.941406 2622.941406 563.296875 C 2666.265625 621.738281 2707.246094 631.898438 2800.914062 658.570312 C 2836.035156 668.742188 2894.582031 685.253906 2906.289062 690.339844 C 2973.027344 720.832031 3008.148438 797.050781 3008.148438 868.195312 C 3008.148438 959.660156 2948.441406 1057.488281 2846.570312 1057.488281 C 2721.296875 1057.488281 2604.214844 981.257812 2596.011719 803.402344 C 2594.839844 783.082031 2593.667969 781.804688 2585.476562 781.804688 C 2576.113281 781.804688 2574.941406 783.082031 2574.941406 808.488281 L 2574.941406 1065.105469 C 2574.941406 1087.980469 2576.113281 1089.246094 2583.132812 1089.246094 C 2591.335938 1089.246094 2593.667969 1082.894531 2610.0625 1043.507812 C 2611.234375 1039.699219 2611.234375 1037.15625 2633.476562 988.886719 C 2692.023438 1072.734375 2790.378906 1090.523438 2846.570312 1090.523438 C 2974.199219 1090.523438 3064.351562 974.90625 3064.351562 840.246094 C 3064.351562 774.1875 3042.097656 723.363281 3029.21875 700.5 C 2980.046875 619.195312 2927.359375 603.949219 2871.15625 588.703125 C 2862.964844 584.894531 2860.621094 584.894531 2795.054688 567.105469 C 2731.832031 549.316406 2704.902344 540.421875 2675.628906 506.121094 C 2642.851562 466.746094 2631.144531 426.09375 2631.144531 385.441406 C 2631.144531 302.859375 2692.023438 212.660156 2791.539062 212.660156 C 2915.652344 212.660156 2992.925781 307.945312 3010.492188 466.746094 C 3014.007812 489.609375 3015.167969 490.875 3023.371094 490.875 C 3033.90625 490.875 3033.90625 487.066406 3033.90625 465.46875 Z M 3033.90625 207.574219 "/>
<g clip-path="url(#clip-2)">
<g clip-path="url(#clip-3)">
<path fill-rule="nonzero" fill="rgb(0%, 0%, 0%)" fill-opacity="1" d="M 7.320312 208.148438 C 41.324219 324.148438 193.320312 468.148438 453.324219 402.148438 C 713.324219 336.148438 1081.320312 60.148438 1213.320312 168.148438 C 1345.320312 276.148438 1241.324219 768.148438 983.324219 986.152344 C 725.324219 1204.148438 313.320312 1148.152344 387.324219 920.152344 C 461.324219 692.152344 1021.320312 292.148438 1325.324219 294.148438 C 1629.324219 296.152344 1677.324219 700.148438 1659.324219 910.148438 C 1641.324219 1120.148438 1557.324219 1136.152344 1293.324219 938.152344 C 1029.324219 740.152344 585.324219 328.148438 321.324219 166.148438 C 57.324219 4.148438 -26.675781 92.152344 7.320312 208.148438 Z M 1437.324219 672.148438 L 1497.324219 288.148438 L 2109.324219 360.148438 L 1593.324219 1344.148438 L 1893.324219 132.148438 L 2709.324219 960.148438 L 1341.324219 324.148438 L 2469.324219 168.148438 L 1689.324219 828.148438 L 1053.324219 1584.148438 L 1221.324219 0.148438 L 2097.324219 1212.148438 L 2769.324219 600.148438 L 1437.324219 756.148438 Z M 2397.324219 204.148438 C 2493.324219 144.148438 2697.324219 144.148438 2861.324219 294.148438 C 3025.320312 444.148438 3149.324219 744.148438 2875.320312 936.148438 C 2601.324219 1128.148438 1929.324219 1212.148438 1915.320312 1264.148438 C 1901.324219 1316.152344 2545.320312 1336.148438 2693.324219 1220.152344 C 2841.324219 1104.148438 2493.324219 852.148438 2555.324219 806.152344 C 2617.320312 760.148438 3089.324219 920.152344 3107.324219 948.148438 C 3125.324219 976.148438 2689.320312 872.152344 2465.324219 766.148438 C 2241.324219 660.148438 2229.324219 552.148438 2241.324219 508.148438 C 2253.324219 464.152344 2289.324219 484.148438 2301.324219 434.152344 C 2313.324219 384.148438 2301.324219 264.148438 2397.324219 204.148438 Z M 2397.324219 204.148438 "/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0758"
height="1552.4"
viewBox="0 0 1619.0758 1552.4"
version="1.1"
id="svg8"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 26.160933,1678.6922 c 144.820317,64.6914 389.835937,52.168 569.316407,-93.1797 C 774.9617,1440.1609 888.9109,1161.9813 669.86796,1055.6922 450.825,949.3992 -101.21407,1014.993 -4.3468768,1186.2703 92.520313,1357.5516 838.2977,1634.5164 1181.243,1552.9031 c 342.9492,-81.6093 283.0703,-521.7929 -26.3828,-620.7929 -309.4571,-99.0039 -868.49224,143.1796 -1143.730517,400.2304 -275.238273,257.0469 -266.683593,528.9649 -255.894523,531.086 10.78906,2.1172 23.80859,-265.5625 52.63672,-328.4493 28.82812,-62.8867 73.46483,79.0196 218.289053,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 1458.8758,128.2 -48,-528 -208,1168 -656.00002,-464 1232.00002,272 272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 786.8758,128.2 688,688 -672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 450.87578,112.2 688.00002,688 -672.00002,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 274.87578,112.2 688.00002,688 -672.00002,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 114.87578,112.2 688.00002,688 -672.00002,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 610.87578,112.2 688.00002,688 -672.00002,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none" />
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="1619.0758"
height="1552.4"
viewBox="0 0 1619.0758 1552.4"
version="1.1"
id="svg8"
sodipodi:docname="arrow_right.svg"
inkscape:version="1.4.2 (ebf0e940d0, 2025-05-08)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview1"
pagecolor="#ffffff"
bordercolor="#000000"
borderopacity="0.25"
inkscape:showpageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#d1d1d1"
inkscape:zoom="0.25766555"
inkscape:cx="374.51651"
inkscape:cy="1269.087"
inkscape:window-width="1920"
inkscape:window-height="1011"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<defs
id="defs8" />
<path
fill-rule="evenodd"
fill="#ee82ee"
fill-opacity="1"
d="m 26.160933,1678.6922 c 144.820317,64.6914 389.835937,52.168 569.316407,-93.1797 C 774.9617,1440.1609 888.9109,1161.9813 669.86796,1055.6922 450.825,949.3992 -101.21407,1014.993 -4.3468768,1186.2703 92.520313,1357.5516 838.2977,1634.5164 1181.243,1552.9031 c 342.9492,-81.6093 283.0703,-521.7929 -26.3828,-620.7929 -309.4571,-99.0039 -868.49224,143.1796 -1143.730517,400.2304 -275.238273,257.0469 -266.683593,528.9649 -255.894523,531.086 10.78906,2.1172 23.80859,-265.5625 52.63672,-328.4493 28.82812,-62.8867 73.46483,79.0196 218.289053,143.7149 z m 0,0"
id="path2" />
<path
fill-rule="evenodd"
fill="#a01ff0"
fill-opacity="1"
d="m 1458.8758,128.2 -48,-528 -208,1168 -656.00002,-464 1232.00002,272 272,-112 z m 0,0"
id="path3" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 786.8758,128.2 688,688 -672,624"
id="path4"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 450.87578,112.2 688.00002,688 -672.00002,624"
id="path5"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 274.87578,112.2 688.00002,688 -672.00002,624"
id="path6"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 114.87578,112.2 688.00002,688 -672.00002,624"
id="path7"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
<path
fill="none"
stroke-width="10"
stroke-linecap="butt"
stroke-linejoin="round"
stroke="#000000"
stroke-opacity="1"
stroke-miterlimit="10"
d="m 610.87578,112.2 688.00002,688 -672.00002,624"
id="path8"
style="stroke-width:40;stroke-dasharray:none;stroke:#ffffff;stroke-opacity:1" />
</svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

View file

@ -1,26 +1,36 @@
:root {
--foreground: #1a1a1a;
--background: #fdfdfd;
--background: #fdfdfdf0;
--border: #c9c9c9;
--background-html: #e3e3e3;
--html-background: #e3e3e3;
--blockquote-text: #606060;
--blockquote-border: #e6e6e6;
--button-border: #e3e3e3;
--button-background: #d0d0d0;
}
:root:has(#dark-mode-toggle:checked) {
--foreground: #fdfdfd;
--background: #1a1a1a;
--border: #4c4c4c;
--background-html: #333333;
--blockquote-text: #e6e6e6;
--blockquote-border: #606060;
@media (prefers-color-scheme: dark) {
:root {
--foreground: #fdfdfd;
--background: #1a1a1af0;
--border: #4c4c4c;
--html-background: #303030;
--blockquote-text: #e6e6e6;
--blockquote-border: #606060;
--button-border: #4c4c4c;
--button-background: #404040;
}
}
html {
color: var(--foreground);
background-color: var(--background-html);
font-family: Cambria, Cochin, Georgia, Times, 'Times New Roman', serif;
/*background: url("recursion.gif");*/
background: var(--html-background);
background-repeat: repeat-y;
background-size: cover;
font-family: serif;
font-size: 14pt;
}
body {
@ -38,19 +48,40 @@ body {
font-kerning: normal;
}
#tv-screen {
position: fixed;
top: 0;
left: 0;
z-index: -1;
}
#page-header {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
text-align: left;
border: 1pt solid var(--foreground);
border: 4pt ridge var(--border);
background: url("images/shark-top-small.png");
background-size: contain;
}
#page-header li {
list-style: none;
display: inline-block;
padding: 12pt;
}
#page-header a:active {
border: 2pt inset var(--button-border)
}
#page-header a {
color: var(--foreground);
text-decoration: none;
margin: 4pt;
padding: 4pt;
border: 2pt outset var(--button-border);
background-color: var(--button-background)
}
#page-header ul,
@ -89,12 +120,18 @@ body {
text-align: right;
}
a:not(:hover) {
text-decoration: none;
#page-footer {
border: 4pt ridge var(--border);
background: url("images/shark-top-small.png");
background-size: contain;
display: flex;
justify-content: center;
}
#page-footer {
border: 1pt solid var(--foreground);
#page-footer p {
display: flex;
flex-direction: row;
align-items: center;
}
/*
@ -122,12 +159,6 @@ article {
h1 {
font-size: 1.8em;
}
/*
section {
flex-direction: column;
}
*/
}
@media print {
@ -166,11 +197,15 @@ p {
}
a {
color: var(--foreground);
color: #268bd2;
}
a:not(:hover) {
text-decoration: none;
}
a:visited {
color: var(--foreground);
color: #6c71c4;
}
img {
@ -220,7 +255,7 @@ blockquote {
}
code {
font-family: Menlo, Monaco, Consolas, 'Lucida Console', monospace;
font-family: monospace;
font-size: 85%;
margin: 0;
hyphens: manual;

27
src/articles.json Normal file
View file

@ -0,0 +1,27 @@
{
"articles": [
{
"author": "Never",
"date": "9.1.2026",
"subtitle": "Some unintuitive quirks of Latex",
"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.",
"title": "Latex Endeavors",
"filename": " latex-endeavors"
},
{
"author": "Never",
"date": "25.7.2025",
"subtitle": "Neat things I picked up along the way",
"summary": "Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.",
"title": "Random linux utilities",
"filename": " random-linux-utils"
},
{
"author": "Never",
"date": "12.01.2026",
"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.",
"title": "Using rsync on Android to syncronise my Music library",
"filename": " rsync-android"
}
]
}

View file

@ -0,0 +1,16 @@
---
title: Latex Endeavors
subtitle: Some unintuitive quirks of Latex
author: Never
date: 9.1.2026
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.
---
# BibLaTeX and Biber
## Biber doesn't run
Biber doens't run if the (fedora) package `libxcrypt-compat` is missing.
It will fail with the error message
```
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
```

View file

@ -0,0 +1,18 @@
Latex Endeavors
Some unintuitive quirks of Latex
Never
9.1.2026
────────────────────
BIBLATEX AND BIBER
Biber doesnt run
Biber doenst run if the (fedora) package  libxcrypt-compat  is missing.
It will fail with the error message
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
]8;;\

View file

@ -0,0 +1,80 @@
<!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" />
<title>Latex Endeavors</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;
}
</style>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<!--
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox"><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
-->
</header>
<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">9.1.2026</p>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
and Biber</a>
<ul>
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesnt
run</a></li>
</ul></li>
</ul>
</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>
</section>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30/"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60/"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30/"></a>
</p>
</footer>
</body>
</html>

View file

@ -1,31 +1,20 @@
---
title: Random linux utilities
subtitle: Neat things I picked up along the way
author: Never Gude
author: Never
date: 25.7.2025
summary: Testing dsa dsa dsa dsa DDDDDDDDDDDa
summary: Tricks and tools I learned about, while tweaking my Linux sytem or trying to do productive things.
---
## Merge pdfs
### Using Ghostscript
# Merge pdfs
## Using Ghostscript
Ghostscript has a feature to merge multiple pdf files into one.
Although ImageMagick also has this feature, I prefer this one, as it doesn't rasterize and scales down
the pdf files.
> Block
> quote
> time yay
```bash {.numberLines}
```bash
gs -dNOPAUSE -sDEVICE=pdfwrite \
-sOUTPUTFILE=output.pdf \
-dBATCH 1.pdf 2.pdf
```
```c
int hello_world(int x) {
printf("Hello World %i", x);
return x;
}
```

View file

@ -0,0 +1,18 @@
Latex Endeavors
Some unintuitive quirks of Latex
Never
9.1.2026
────────────────────
BIBLATEX AND BIBER
Biber doesnt run
Biber doenst run if the (fedora) package  libxcrypt-compat  is missing.
It will fail with the error message
biber: error while loading shared libraries: libcrypt.so.1: cannot open shared object file: No such file or directory
]8;;\

View file

@ -0,0 +1,80 @@
<!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" />
<title>Latex Endeavors</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;
}
</style>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<canvas id="tv-screen"></canvas>
<header id="page-header">
<ul>
<li><a href="index.html">Home</a></li><li><a href="about.html">About</a></li>
</ul>
<!--
<ul>
<li>
<span id="dark-mode">
<input id="dark-mode-toggle" type="checkbox"><label for="dark-mode-toggle">Dark mode</label>
</span>
</li>
</ul>
-->
</header>
<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">9.1.2026</p>
</header>
<section id="content">
<nav id="TOC" role="doc-toc">
<ul>
<li><a href="#biblatex-and-biber" id="toc-biblatex-and-biber">BibLaTeX
and Biber</a>
<ul>
<li><a href="#biber-doesnt-run" id="toc-biber-doesnt-run">Biber doesnt
run</a></li>
</ul></li>
</ul>
</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>
</section>
<footer id="page-footer">
<!-- <embed type="text/html" src="https://cups.teabucket.eu/embed?from=never" style="width:320px; height: 120px; scale: 0.66;"> -->
<p class="cups-light">
<a href="https://cups.teabucket.eu/prev?from=never" target="_parent"><img alt="Previous" src="images/cups_left.svg" width="30" height="30/"></a>
<a href="https://cups.teabucket.eu/" target="_parent"><img alt="CUPS" src="images/cups_logo.svg" width="120" height="60/"></a>
<a href="https://cups.teabucket.eu/next?from=never" target="_parent"><img alt="Next" src="images/cups_right.svg" width="30" height="30/"></a>
</p>
</footer>
</body>
</html>

View file

@ -0,0 +1,127 @@
---
title: Using rsync on Android to syncronise my Music library
author: Never
date: 12.01.2026
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.
---
# Setup Termux
Install Termux using F-Droid.
Update software repos.
```sh
pkg update
```
Grant file access permissions using.
```sh
termux-setup-storage
```
# Establishing an ssh connection
If network (such as eduroam) is blocking ssh trafic between machines, open a Wi-Fi Hotspot
on your Linux machine and connect the Android device to it before using `rsync` or `ssh`.
## Configuring Android
Install the openssh server on Termux.
```sh
pkg install openssh
```
Start the ssh server daemon.
```sh
sshd
```
Get the ip address of the Android machine (in the Hotspot).
```sh
ifconfig
```
```
Warning: cannot open /proc/net/dev (Permission denied). Limited output.
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
rmnet0: flags=4305<UP,POINTOPOINT,RUNNING,NOARP,MULTICAST> mtu 1280
inet 10.200.157.166 netmask 255.255.255.0 destination 10.200.157.166
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.42.0.200 netmask 255.255.255.0 broadcast 10.42.0.210
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 1000 (UNSPEC)
```
In this case 10.42.0.200.
The ssh server should now be running and listening on port 8022.
You can check by running
```sh
nmap -Pn <ip_address>
```
For me `<ip_address>` whould be 10.42.0.200.
Get the username.
```sh
whoami
```
```
u0_a700
```
Set a password for this user.
```sh
passwd
```
## Connecting to Android via ssh
Make sure you have an ssh key pair on the Linux system.
If not generate one using `ssh-keygen`.
Now connect to Android by `ssh`.
```sh
ssh <username>@<ip_address> -p 8022
```
# Syncronising files with rsync
Install `rsync` on Termux and Linux.
Make sure to keep your own openssl config.
```sh
pkg install rsync
```
Now on your Linux machine, syncronise your Music library with rsync.
```sh
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/
```

View file

@ -1,4 +1,4 @@
---
title: Home
toc: true
---
Hello World

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

BIN
styles/images/shark_top.xcf Normal file

Binary file not shown.

334
styles/style.css Normal file
View file

@ -0,0 +1,334 @@
:root {
--foreground: #1a1a1a;
--background: #fdfdfdf0;
--border: #c9c9c9;
--html-background: #e3e3e3;
--blockquote-text: #606060;
--blockquote-border: #e6e6e6;
--button-border: #e3e3e3;
--button-background: #d0d0d0;
}
@media (prefers-color-scheme: dark) {
:root {
--foreground: #fdfdfd;
--background: #1a1a1af0;
--border: #4c4c4c;
--html-background: #303030;
--blockquote-text: #e6e6e6;
--blockquote-border: #606060;
--button-border: #4c4c4c;
--button-background: #404040;
}
}
html {
color: var(--foreground);
/*background: url("recursion.gif");*/
background: var(--html-background);
background-repeat: repeat-y;
background-size: cover;
font-family: serif;
font-size: 14pt;
}
body {
background-color: var(--background);
border: solid 1px var(--border);
margin: 0 auto;
max-width: 48em;
padding-left: 50pt;
padding-right: 50pt;
padding-top: 50pt;
padding-bottom: 50pt;
hyphens: auto;
overflow-wrap: break-word;
text-rendering: optimizeLegibility;
font-kerning: normal;
}
#tv-screen {
position: fixed;
top: 0;
left: 0;
z-index: -1;
}
#page-header {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
text-align: left;
border: 4pt ridge var(--border);
background: url("images/shark-top-small.png");
background-size: contain;
}
#page-header li {
list-style: none;
display: inline-block;
}
#page-header a:active {
border: 2pt inset var(--button-border)
}
#page-header a {
color: var(--foreground);
text-decoration: none;
margin: 4pt;
padding: 4pt;
border: 2pt outset var(--button-border);
background-color: var(--button-background)
}
#page-header ul,
#articles ul {
padding-left: 0;
}
#articles li {
list-style: none;
display: block;
}
.articles-header {
display: flex;
flex-direction: row;
flex-wrap: nowrap;
justify-content: space-between;
}
.articles-title {
margin: 8pt 0 4pt 0;
font-size: 14pt;
font-weight: bold;
}
.articles-author {
margin: 12pt 0 4pt 0;
}
.articles-summary {
margin: 0;
}
.articles-date {
margin: 0;
text-align: right;
}
#page-footer {
border: 4pt ridge var(--border);
background: url("images/shark-top-small.png");
background-size: contain;
display: flex;
justify-content: center;
}
#page-footer p {
display: flex;
flex-direction: row;
align-items: center;
}
/*
#TOC {
padding: 24px;
}
section {
display: flex;
flex-direction: row;
}
article {
padding: 12px;
overflow: auto;
}
*/
@media (max-width: 600px) {
body {
font-size: 0.9em;
padding: 12pt;
}
h1 {
font-size: 1.8em;
}
}
@media print {
html {
background-color: white;
}
body {
background-color: transparent;
color: black;
border: none;
font-size: 12pt;
}
p,
h2,
h3 {
orphans: 3;
widows: 3;
}
h2,
h3,
h4 {
page-break-after: avoid;
}
#page-header,
#page-footer {
display: none;
}
}
p {
margin: 1em 0;
}
a {
color: #268bd2;
}
a:not(:hover) {
text-decoration: none;
}
a:visited {
color: #6c71c4;
}
img {
max-width: 100%;
}
svg {
height: auto;
max-width: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6 {
margin-top: 1.4em;
}
h5,
h6 {
font-size: 1em;
font-style: italic;
}
h6 {
font-weight: normal;
}
ol,
ul {
padding-left: 1.7em;
margin-top: 1em;
}
li>ol,
li>ul {
margin-top: 0;
}
blockquote {
margin: 1em 0 1em 1.7em;
padding-left: 1em;
border-left: 2pt solid var(--blockquote-border);
color: var(--blockquote-text);
}
code {
font-family: monospace;
font-size: 85%;
margin: 0;
hyphens: manual;
}
pre {
margin: 1em 0;
overflow: auto;
}
pre code {
padding: 0;
overflow: visible;
overflow-wrap: normal;
}
.sourceCode {
background-color: transparent;
overflow: visible;
}
hr {
background-color: var(--foreground);
border: none;
height: 1pt;
margin: 1em 0;
}
table {
margin: 1em 0;
border-collapse: collapse;
width: 100%;
overflow-x: auto;
display: block;
font-variant-numeric: lining-nums tabular-nums;
}
table caption {
margin-bottom: 0.75em;
}
tbody {
margin-top: 0.5em;
border-top: 1pt solid var(--foreground);
border-bottom: 1pt solid var(--foreground);
}
th {
border-top: 1pt solid var(--foreground);
padding: 0.25em 0.5em 0.25em 0.5em;
}
td {
padding: 0.125em 0.5em 0.25em 0.5em;
}
header {
margin-bottom: 4em;
text-align: center;
}
#TOC li {
list-style: none;
}
#TOC ul {
padding-left: 1.3em;
}
#TOC>ul {
padding-left: 0;
}
#TOC a:not(:hover) {
text-decoration: none;
}