<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Linux und Ich</title>
	<atom:link href="https://linuxundich.de/en/feed/" rel="self" type="application/rss+xml" />
	<link>https://linuxundich.de/en</link>
	<description>A German Linux blog, in English</description>
	<lastBuildDate>Thu, 12 Nov 2026 09:58:05 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<item>
		<title>Mounting Fritzbox Shares on Linux: GNOME, Plasma and fstab Compared by Speed</title>
		<link>https://linuxundich.de/en/mount-fritzbox-share-linux-samba-gnome-plasma-fstab/</link>
					<comments>https://linuxundich.de/en/mount-fritzbox-share-linux-samba-gnome-plasma-fstab/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Thu, 12 Nov 2026 09:58:05 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[File Manager]]></category>
		<category><![CDATA[Fritzbox]]></category>
		<category><![CDATA[fstab]]></category>
		<category><![CDATA[GNOME]]></category>
		<category><![CDATA[Homelab]]></category>
		<category><![CDATA[KDE Plasma]]></category>
		<category><![CDATA[NAS]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Samba]]></category>
		<category><![CDATA[Server]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/?p=373</guid>

					<description><![CDATA[A Fritzbox makes a handy mini NAS, but on Linux several routes lead to the files. Nautilus, Dolphin, mount.cifs, smbclient and FTP measured against each other: which one suits which job.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A USB stick on the Fritzbox, and everyone in the house has a network drive: photos, documents, the music collection. On Linux, though, the share is more than one click away, because there are several ways to reach it. The file manager mounts it conveniently, while <code>/etc/fstab</code> makes it permanently available. Both get you there, but they differ in speed and reliability.</p>



<p class="wp-block-paragraph">So what is the best way? Are there pros and cons to mounting Fritzbox shares through the file manager? What about the <code>/etc/fstab</code> file or systemd? And what about FTP: is the almost forgotten protocol any faster? A series of measurements on two systems provides the answers.</p>



<p class="wp-block-paragraph">Before we get to Linux tools: the Fritzbox shares can also be opened in a browser, at <code>https://fritz.box/nas#/</code>. After login, the FritzNAS web interface shows the same folders that later appear in the file manager, including the folder of the USB stick. <em>Add</em> and <em>New folder</em> let you upload files and create folders, and there is a search as well. That is enough for single files; for everyday use the methods below are more convenient.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769911d&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769911d" class="wp-block-image wp-lightbox-container"><img fetchpriority="high" decoding="async" height="877" sizes="(max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/01-fritzbox-nas-weboberflaeche-1-640x439.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/01-fritzbox-nas-weboberflaeche-1-768x526.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/01-fritzbox-nas-weboberflaeche-1-1280x877.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/01-fritzbox-nas-weboberflaeche-1-1536x1053.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/01-fritzbox-nas-weboberflaeche-1.webp 1780w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/01-fritzbox-nas-weboberflaeche-1-1280x877.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The FritzNAS web interface in the browser: it shows the folders of the share, including the USB stick, with the buttons <em>Add</em>, <em>New folder</em> and <em>Refresh</em> and a search field.</figcaption></figure>



<h2 class="wp-block-heading">What to set up in the Fritzbox first</h2>



<p class="wp-block-paragraph">Nothing works without a user, because the Fritzbox does not let guests near the storage. Access over the network is always tied to an account. So create a dedicated user for the Linux machine under <em>System</em> | <em>FRITZ!Box Users</em> and give it the permission <em>Access to NAS content</em>, with <em>Full access</em> if you also want to write. A link to this page also sits in the storage settings under <em>Manage users</em>.</p>



<p class="wp-block-paragraph">You switch the services on under <em>Home Network</em> | <em>USB / Storage</em> | <em>Home Network Sharing</em>. There you need the checkbox for <em>Access via network drive (SMB)</em>. The share name is <code>FRITZ.NAS</code> out of the box and the workgroup is <code>WORKGROUP</code>. <em>Support for SMBv1</em> stays off; you do not need it. If you also want to use FTP, tick <em>Access via FTP</em>. In the <em>Device overview</em>, <em>NAS storage function</em> must also be set to <em>Active</em>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397699511&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397699511" class="wp-block-image wp-lightbox-container"><img decoding="async" height="877" sizes="(max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/02-fritzbox-heimnetzfreigabe-1-640x439.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/02-fritzbox-heimnetzfreigabe-1-768x526.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/02-fritzbox-heimnetzfreigabe-1-1280x877.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/02-fritzbox-heimnetzfreigabe-1-1536x1053.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/02-fritzbox-heimnetzfreigabe-1.webp 1780w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/02-fritzbox-heimnetzfreigabe-1-1280x877.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The <em>Home Network Sharing</em> tab of the Fritzbox with the checkboxes for SMB and FTP, the share name FRITZ.NAS and the list of users with access to NAS content.</figcaption></figure>



<p class="wp-block-paragraph">The share is reachable at <code>fritz.box</code>. It uses SMB, the protocol Windows also uses for network drives; AVM names versions 2 and 3. Below it lie the folders of the storage, and a plugged-in USB stick appears as a subfolder of its own. The name <code>fritz.box</code> only works inside the home network. The interface also shows the IP address of the box, which you can use instead of the name if <code>fritz.box</code> is ever not found.</p>



<div class="wp-block-group lui-callout is-tip is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// USB stick with USB 3.0</p>



<p class="wp-block-paragraph">The Fritzbox may at first report a USB 3.0 stick as USB 2.0 only. Under <em>Home Network</em> | <em>USB / Storage</em> | <em>USB Settings</em> you will find the <em>USB power saving mode</em>: it must be set to <em>Power Mode (USB 3.0)</em>, not <em>Green Mode (USB 2.0)</em>. Then unplug the stick once and plug it back in, and it shows up in the device overview as USB 3.0.</p>
</div>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397699c5d&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397699c5d" class="wp-block-image wp-lightbox-container"><img decoding="async" height="877" sizes="(max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/03-fritzbox-usb-einstellungen-1-640x439.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/03-fritzbox-usb-einstellungen-1-768x526.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/03-fritzbox-usb-einstellungen-1-1280x877.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/03-fritzbox-usb-einstellungen-1-1536x1053.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/03-fritzbox-usb-einstellungen-1.webp 1780w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/03-fritzbox-usb-einstellungen-1-1280x877.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The <em>USB Settings</em> of the Fritzbox: under <em>USB power saving mode</em>, <em>Power Mode</em> with USB 3.0 is selected, not <em>Green Mode</em> with USB 2.0.</figcaption></figure>



<p class="wp-block-paragraph">You can see whether it worked in the <em>Device overview</em>: the stick is listed as <em>USB storage</em>, with the note <em>USB 3.0</em> below it. On the Fritzbox 5690 Pro the power saving mode was active from the factory, which throttled the stick. The difference is noticeable, because in power saving mode the port only delivers USB 2.0 speed.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397699e56&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397699e56" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="877" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/04-fritzbox-geraeteuebersicht-1-640x439.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/04-fritzbox-geraeteuebersicht-1-768x526.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/04-fritzbox-geraeteuebersicht-1-1280x877.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/04-fritzbox-geraeteuebersicht-1-1536x1053.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/04-fritzbox-geraeteuebersicht-1.webp 1780w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/04-fritzbox-geraeteuebersicht-1-1280x877.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The <em>Device overview</em> shows the internal storage of the Fritzbox and the Samsung stick, which now runs at USB 3.0.</figcaption></figure>



<div class="wp-block-group lui-callout is-tip is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// A dedicated user is worth it</p>



<p class="wp-block-paragraph">Do not use the main account of your Fritzbox for the Linux machine. A dedicated user with NAS permission but without rights to change settings limits the damage if the credentials end up in plain text somewhere. With <code>/etc/fstab</code> that happens faster than you might think. Such an account can also be locked or given a new password later without any other device noticing.</p>
</div>



<h2 class="wp-block-heading">GNOME: Files</h2>



<p class="wp-block-paragraph">On Ubuntu with GNOME you do not need to install anything; the support for network shares is on board. It is called GVfs and is the layer through which Nautilus accesses network shares. Open <em>Files</em>, press <code>Ctrl</code>+<code>L</code> and type <code>smb://fritz.box</code> into the location bar. Whether the box shows up in the network view does not matter; the direct address is enough.</p>



<p class="wp-block-paragraph">Under <em>Windows Network on fritz.box</em>, Nautilus first shows only the entry <em>FRITZ.NAS</em>, and it does not ask for a password yet. Only a double-click on it opens the login dialog. There you switch <em>Connect as</em> to <em>Registered User</em>, enter the Fritzbox user and password, and leave the domain at <code>WORKGROUP</code>. If you choose <em>Remember forever</em>, GNOME stores the password in the keyring and the dialog stays away from then on.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769a1ff&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769a1ff" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="806" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/05-nautilus-anmeldung-1-640x403.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/05-nautilus-anmeldung-1-768x484.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/05-nautilus-anmeldung-1-1280x806.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/05-nautilus-anmeldung-1-1536x968.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/05-nautilus-anmeldung-1.webp 1735w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/05-nautilus-anmeldung-1-1280x806.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The login dialog when opening FRITZ.NAS: under <em>Connect as</em>, <em>Registered User</em> is selected, followed by user name, password and the option <em>Remember forever</em>.</figcaption></figure>



<p class="wp-block-paragraph">After that, Nautilus shows the folders of the share, and the sidebar on the left gets an entry for <code>fritz.nas on fritz.box</code>, through which you can reopen it at any time. The eject icon next to it ends the connection. The plugged-in USB stick appears as a folder of its own, named after the volume. Files can be copied, moved and deleted there like in any other folder.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769a458&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769a458" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="806" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/06-nautilus-freigabe-1-640x403.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/06-nautilus-freigabe-1-768x484.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/06-nautilus-freigabe-1-1280x806.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/06-nautilus-freigabe-1-1536x968.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/06-nautilus-freigabe-1.webp 1735w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/06-nautilus-freigabe-1-1280x806.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">After login, Nautilus shows the folders of the share, including the USB stick, and adds the connection to the sidebar.</figcaption></figure>



<p class="wp-block-paragraph">Even programs that know nothing about GNOME can reach the files. GNOME additionally exposes the share as an ordinary folder under <code>/run/user/1000/gvfs/smb-share:server=fritz.box,share=fritz.nas</code>, where <code>ls</code>, <code>cp</code> or <code>dd</code> work as usual. That helps with scripts. The path contains the user ID and exists only while the share is connected. On the command line, <code>gio mount</code> mounts the share without a file manager:</p>



<pre class="wp-block-code"><code>$ gio mount smb://fritz.box/FRITZ.NAS</code></pre>



<h2 class="wp-block-heading">KDE Plasma: Dolphin</h2>



<p class="wp-block-paragraph">On TUXEDO OS with Plasma, you press <code>Ctrl</code>+<code>L</code> in Dolphin, type <code>smb://fritz.box/</code> into the location bar and confirm with <code>Enter</code>. Unlike Nautilus, Dolphin asks for user name and password right away, before it shows anything. Enter the Fritzbox user and, if you do not want to see the dialog every time, tick <em>Remember password</em>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769a716&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769a716" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="806" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/07-dolphin-anmeldung-1-640x403.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/07-dolphin-anmeldung-1-768x484.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/07-dolphin-anmeldung-1-1280x806.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/07-dolphin-anmeldung-1-1536x968.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/07-dolphin-anmeldung-1.webp 1735w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/07-dolphin-anmeldung-1-1280x806.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Dolphin&#8217;s authentication dialog when opening smb://fritz.box: user name and password, with the checkbox <em>Remember password</em> below.</figcaption></figure>



<p class="wp-block-paragraph">When you open the share, Dolphin asks a second time, now for <code>FRITZ.NAS</code> itself (server <code>fritz.box</code>, resource <code>FRITZ.NAS</code>). The fields are already filled in, so you just confirm with <em>OK</em>. Dolphin then shows the folders of the share, and the USB stick again appears as a folder of its own. Reading and creating a folder worked in the test.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769a94a&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769a94a" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="806" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/08-dolphin-freigabe-1-640x403.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/08-dolphin-freigabe-1-768x484.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/08-dolphin-freigabe-1-1280x806.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/08-dolphin-freigabe-1-1536x968.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/08-dolphin-freigabe-1.webp 1735w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/08-dolphin-freigabe-1-1280x806.webp" alt=""/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">After login, Dolphin shows the folders of the FRITZ.NAS share, including the USB stick.</figcaption></figure>



<p class="wp-block-paragraph">Other programs do not see the share without further ado: Dolphin uses the KDE-specific layer KIO for this, which only KDE programs understand. An add-on service called kio-fuse would expose the share as a folder to all programs, but in the test it denied every access. Dolphin itself could write. If you need fixed paths that every program understands, <code>/etc/fstab</code> is the better choice.</p>



<h2 class="wp-block-heading">Permanent: the share in /etc/fstab</h2>



<p class="wp-block-paragraph">The file <code>/etc/fstab</code> defines which drives Linux mounts. If you enter the share there, you get an ordinary folder, for example <code>/mnt/fritz</code>. That pays off mainly for programs that only know regular paths, and for scripts without a login dialog. You need the package <code>cifs-utils</code> for this (usually already installed on Ubuntu). The credentials do not belong in the fstab, but in a separate file that only root may read:</p>



<pre class="wp-block-code"><code>$ sudo install -m 600 /dev/null /etc/fritz-smb.cred
$ sudo nano /etc/fritz-smb.cred</code></pre>



<pre data-lui-lang="ini" data-lui-file="/etc/fritz-smb.cred" class="wp-block-code"><code>username=YOUR_FRITZBOX_USER
password=YOUR_PASSWORD</code></pre>



<p class="wp-block-paragraph">Next you create the folder in which the share should appear (the mount point) and add a line to the fstab. It names the source, the mount point, the file system type and the options; the two zeros at the end always stay that way for network shares. The options <code>x-systemd.automount</code> and <code>noauto</code> make sure the share is only mounted on first access. That way the computer does not wait for the Fritzbox at boot or on foreign Wi-Fi:</p>



<pre class="wp-block-code"><code>$ sudo mkdir -p /mnt/fritz
$ sudo nano /etc/fstab</code></pre>



<pre data-lui-lang="conf" data-lui-file="/etc/fstab" class="wp-block-code"><code>//fritz.box/FRITZ.NAS  /mnt/fritz  cifs  credentials=/etc/fritz-smb.cred,uid=1000,gid=1000,file_mode=0644,dir_mode=0755,noserverino,_netdev,nofail,noauto,x-systemd.automount,x-systemd.idle-timeout=60,x-systemd.mount-timeout=10  0  0</code></pre>



<div class="wp-block-group lui-callout is-info is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// uid and gid</p>



<p class="wp-block-paragraph">With <code>uid</code> and <code>gid</code> you decide which user and which group the files of the share belong to on your computer. Linux knows both internally only as numbers. On desktop systems the first user created usually gets 1000, but the group number can differ: on one of the test machines it was 1004. <code>id</code> shows your numbers, and <code>id -u</code> and <code>id -g</code> return them individually:</p>



<pre class="wp-block-code"><code>$ id
uid=1000(NAME) gid=1000(NAME) groups=1000(NAME),27(sudo)
$ id -u
1000
$ id -g
1000</code></pre>
</div>



<p class="wp-block-paragraph">Then you reload the configuration and trigger the mount with a first access. In the test this worked right away, and after 60 seconds of idleness systemd released the mount again, leaving the folder behind as an empty trigger. <code>uid</code> and <code>gid</code> should match your account; the box above shows how to find them. Without <code>file_mode</code> and <code>dir_mode</code>, all files appear as executable:</p>



<pre class="wp-block-code"><code>$ sudo systemctl daemon-reload
$ ls /mnt/fritz</code></pre>



<div class="wp-block-group lui-callout is-warning is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// Without noserverino: &#8220;Stale file handle&#8221;</p>



<p class="wp-block-paragraph">In the test, the default mount ran into an error: after the cache had been cleared, a file that had just been written could no longer be opened, and the system reported <em>Stale file handle</em>. With the option <code>noserverino</code> the problem was gone, while <code>nohandlecache</code> did not help. It could be reproduced on Ubuntu and TUXEDO OS, on internal storage and on the stick, in every run. <code>noserverino</code> therefore always belongs in the options for a Fritzbox.</p>



<p class="wp-block-paragraph">Linux identifies every file by an internal number supplied by the server. The Fritzbox, however, reports changing numbers for the same file, in the test first one and after clearing the cache a completely different one. Linux then takes the file for a different one and gives up. With <code>noserverino</code>, Linux assigns the numbers itself, and the problem disappears.</p>



<p class="wp-block-paragraph">The price is that Linux no longer recognizes links to the same file (hard links), which hardly matters on a photo archive. Why the box answers this way is not clear. The same error appears in the <a href="https://community.home-assistant.io/t/samba-error-with-fritz-nas-cifs-stale-file-handle/567110">Home Assistant forum</a> (&#8220;Samba error with Fritz.Nas: CIFS stale file handle&#8221;) and in an <a href="https://github.com/getumbrel/umbrel/issues/2199">Umbrel issue</a> with a Fritzbox as storage, where the same option helped.</p>
</div>



<h3 class="wp-block-heading">Alternative for advanced users: systemd units instead of fstab</h3>



<p class="wp-block-paragraph">If you prefer working with systemd units, you write a <code>.mount</code> and an <code>.automount</code> file instead of the fstab line. The result is the same, because systemd generates exactly these units from the fstab anyway. The advantage: each unit can be checked individually with <code>systemctl status</code>, and the messages end up in a log of their own with <code>journalctl -u mnt-fritz.mount</code>.</p>



<p class="wp-block-paragraph">The file names are not freely selectable; they must match the path of the mount point. <code>/mnt/fritz</code> becomes <code>mnt-fritz</code>. Both files live in <code>/etc/systemd/system/</code>. You do not need to create the mount point by hand, since systemd creates <code>/mnt/fritz</code> itself on the first mount. <code>systemd-escape</code> shows which name systemd expects; for the first file it is <code>mnt-fritz.mount</code>:</p>



<pre class="wp-block-code"><code>$ systemd-escape -p --suffix=mount /mnt/fritz
mnt-fritz.mount</code></pre>



<pre data-lui-lang="systemd" data-lui-file="/etc/systemd/system/mnt-fritz.mount" class="wp-block-code"><code>[Unit]
Description=Fritzbox share FRITZ.NAS
After=network-online.target
Wants=network-online.target

[Mount]
What=//fritz.box/FRITZ.NAS
Where=/mnt/fritz
Type=cifs
Options=credentials=/etc/fritz-smb.cred,uid=1000,gid=1000,file_mode=0644,dir_mode=0755,noserverino
TimeoutSec=10</code></pre>



<p class="wp-block-paragraph">Next comes <code>mnt-fritz.automount</code>. The options <code>_netdev</code>, <code>nofail</code>, <code>noauto</code> and the <code>x-systemd.…</code> entries of the fstab line are dropped, because the sections of the units take over their jobs: <code>After=network-online.target</code> waits for the network, and <code>TimeoutIdleSec=60</code> disconnects after a minute of idleness. The <code>.automount</code> file makes sure the share is only mounted on first access and disappears again after a while without use. It points to the same mount point as the <code>.mount</code> file:</p>



<pre data-lui-lang="systemd" data-lui-file="/etc/systemd/system/mnt-fritz.automount" class="wp-block-code"><code>[Unit]
Description=Mount Fritzbox share FRITZ.NAS on access

[Automount]
Where=/mnt/fritz
TimeoutIdleSec=60

[Install]
WantedBy=multi-user.target</code></pre>



<p class="wp-block-paragraph">You enable the <code>.automount</code> file, not the <code>.mount</code> file. First systemd reads the new files, then the automount starts immediately and by itself after every reboot. In the test the mount point then stood ready as <code>autofs</code> while the actual mount was still inactive. The first access mounted the share, and after 75 seconds of idleness only the <code>autofs</code> trigger was left:</p>



<pre class="wp-block-code"><code>$ sudo systemctl daemon-reload
$ sudo systemctl enable --now mnt-fritz.automount
$ ls /mnt/fritz</code></pre>



<p class="wp-block-paragraph">Another advantage shows with services that should not run without the share, such as a backup or a media server. They add a single line to the <code>[Unit]</code> section of their unit. In the test, systemd mounted the share itself when such a service started and only then launched it. In <code>systemctl list-dependencies</code>, <code>mnt-fritz.mount</code> then appears as a dependency. With the fstab line this is only possible via detours:</p>



<pre data-lui-lang="systemd" data-lui-file="my-service.service" class="wp-block-code"><code>[Unit]
RequiresMountsFor=/mnt/fritz</code></pre>



<p class="wp-block-paragraph">If you have a laptop that moves between networks, an older article about the <a href="https://linuxundich.de/netzwerkfreigaben-automatisch-einhaengen-was-beim-networkmanager-dispatcher-schiefgehen-kann/">NetworkManager dispatcher</a> (in German) describes another variant, pitfalls included. There the share is mounted by a script as soon as the home network is reachable and unmounted again when the network changes. That is an alternative to the automount if the connection should really exist only on the home network.</p>



<h2 class="wp-block-heading">Multiple users and computers</h2>



<p class="wp-block-paragraph">The Fritzbox assigns the permissions, not Linux. Every user under <em>System</em> | <em>FRITZ!Box Users</em> gets the permission <em>Access to NAS content</em>. When editing the user (pencil icon) you decide how far it reaches: <em>Full access</em> for reading and writing, <em>Read-only access</em> or <em>Individual settings</em>. With the individual variant you choose, folder by folder, where the user may read and where they may also write.</p>



<p class="wp-block-paragraph">It makes sense to have one user per person instead of one account for everyone. That way an account can be locked later without the others needing a new password, and a guest or a child gets only <em>Read-only access</em>. The same account may log in from several computers at once, which worked without problems in the test. If you change a password, you must update the credentials file used by the fstab.</p>



<p class="wp-block-paragraph">The Linux permissions on the mounted folder, on the other hand, are only a facade. They merely determine what <code>ls -l</code> displays: in the test, <code>chmod 600</code> reported success and left the mode at 644 anyway, and <code>chown root</code> did not change the owner. Anyone who really wants to lock something down does so in the Fritzbox, not with <code>chmod</code>. The same applies to the options <code>uid</code>, <code>gid</code>, <code>file_mode</code> and <code>dir_mode</code> of the fstab line: they only change the display.</p>



<p class="wp-block-paragraph">On a computer with several accounts, the fstab mount has exactly one login, and every local user who can get into the folder works with the rights of that Fritzbox user. With <code>dir_mode=0755</code>, even the system user <code>nobody</code> could list the folder in the test. On shared computers, set <code>dir_mode=0700</code> or a dedicated group with <code>gid=</code> and <code>dir_mode=0770</code>. The route through <em>Files</em> in GNOME or KDE&#8217;s Dolphin, by contrast, logs in each account individually.</p>



<div class="wp-block-group lui-callout is-warning is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// No locks between computers</p>



<p class="wp-block-paragraph">If two computers access the same file, the Fritzbox does not protect you. In the test, a virtual machine held a lock on a file, and a second, real computer got the very same lock anyway. Programs that rely on such locks, such as SQLite databases or the KeePass password file, should therefore never be open on the share from two devices at the same time.</p>
</div>



<p class="wp-block-paragraph">The cache plays a role too. With the default settings, the second computer saw a changed file immediately. With <code>cache=loose,actimeo=30</code>, it still read the old content one second after the change. For folders that several people write to, the default therefore stays. In any case, the share belongs on the home network. Never open the SMB port 445 of the Fritzbox to the internet; when you are away, a VPN does the job.</p>



<h2 class="wp-block-heading">More options: smbclient, FTP and rclone</h2>



<p class="wp-block-paragraph">For one-off copying, the package <code>smbclient</code> is enough. It needs no mount and no extra rights, and the credentials file from above can be reused with <code>-A</code>. FTP works too once you have enabled <em>Access via FTP</em>: the Fritzbox then has port 21 open, and <code>curl</code> uploads files. Dolphin and Nautilus understand <code>ftp://</code> as well, but it is inconvenient as a permanent solution. A download with <code>smbclient</code> and an upload via FTP look like this:</p>



<pre class="wp-block-code"><code>$ smbclient //fritz.box/FRITZ.NAS -A /path/to/cred -c &quot;get file&quot;
$ curl --user USER -T file ftp://fritz.box/</code></pre>



<h3 class="wp-block-heading">Example: nightly backup to the Fritzbox</h3>



<p class="wp-block-paragraph">A typical use for <code>smbclient</code> is a backup that runs at night. The script packs a folder into a <code>tar.gz</code> archive and pushes it to the share. The weekday is part of the file name, so there are at most seven archives that overwrite each other in turn, and you need no cleanup script. The credentials file is the same as for the fstab, and you replace <code>NAME_OF_THE_STICK</code> with the folder of your stick:</p>



<pre data-lui-lang="bash" data-lui-file="~/bin/fritz-backup.sh" class="wp-block-code"><code>#!/bin/bash
# Nightly backup: push a folder as tar.gz to the Fritzbox
set -euo pipefail

SOURCE=&quot;$HOME/Documents&quot;                 # this folder gets backed up
SHARE=&quot;//fritz.box/FRITZ.NAS&quot;
TARGET=&quot;NAME_OF_THE_STICK/Backup&quot;        # folder on the share
CRED=&quot;$HOME/.fritz-smb&quot;                  # credentials file with username= and password=
FILE=&quot;/tmp/backup-$(date +%a).tar.gz&quot;    # weekday in the name: seven archives in rotation

tar -czf &quot;$FILE&quot; -C &quot;$(dirname &quot;$SOURCE&quot;)&quot; &quot;$(basename &quot;$SOURCE&quot;)&quot;
smbclient &quot;$SHARE&quot; -A &quot;$CRED&quot; -c &quot;mkdir $TARGET&quot; &gt;/dev/null 2&gt;&amp;1 || true
smbclient &quot;$SHARE&quot; -A &quot;$CRED&quot; -c &quot;put $FILE $TARGET/$(basename &quot;$FILE&quot;)&quot;
rm -f &quot;$FILE&quot;</code></pre>



<p class="wp-block-paragraph">For a test, run the script twice: the first time it creates the target folder, the second time it overwrites the archive from the same weekday. With an impossible target it ends with exit code 1, so that a timer records the error in the log. Fetching an archive back and unpacking it worked as well; only the weekday in the file name has to match the state you want:</p>



<pre class="wp-block-code"><code>$ smbclient //fritz.box/FRITZ.NAS -A ~/.fritz-smb -c &quot;get NAME_OF_THE_STICK/Backup/backup-Mon.tar.gz&quot;
$ tar -xzf backup-Mon.tar.gz</code></pre>



<p class="wp-block-paragraph">If you prefer FTP, replace the two <code>smbclient</code> lines with a <code>curl</code> call. The target folder is created automatically. The credentials live in a separate file in your home directory that only you may read (<code>chmod 600</code>), so the password appears neither in the script nor in the process list. This too should work for you; in the test the archive landed in the target folder on the stick:</p>



<pre class="wp-block-code"><code>$ install -m 600 /dev/null ~/.fritz-netrc
$ nano ~/.fritz-netrc</code></pre>



<pre data-lui-lang="conf" data-lui-file="~/.fritz-netrc" class="wp-block-code"><code>machine fritz.box login YOUR_FRITZBOX_USER password YOUR_PASSWORD</code></pre>



<pre class="wp-block-code"><code>curl --fail --silent --show-error --ftp-create-dirs \
     --netrc-file &quot;$HOME/.fritz-netrc&quot; \
     -T &quot;$FILE&quot; &quot;ftp://fritz.box/$TARGET/$(basename &quot;$FILE&quot;)&quot;</code></pre>



<p class="wp-block-paragraph">For the night you need a timer. Under systemd, two small files in the user directory <code>~/.config/systemd/user/</code> are enough, and the script lives at <code>~/bin/fritz-backup.sh</code>. The service starts the script, and the timer calls it at 2:30 a.m. <code>Persistent=true</code> catches up on a missed run, for example when the computer was off at that time:</p>



<pre data-lui-lang="systemd" data-lui-file="~/.config/systemd/user/fritz-backup.service" class="wp-block-code"><code>[Unit]
Description=Backup to the Fritzbox

[Service]
Type=oneshot
ExecStart=%h/bin/fritz-backup.sh</code></pre>



<pre data-lui-lang="systemd" data-lui-file="~/.config/systemd/user/fritz-backup.timer" class="wp-block-code"><code>[Unit]
Description=Backup to the Fritzbox every night

[Timer]
OnCalendar=*-*-* 02:30
Persistent=true

[Install]
WantedBy=timers.target</code></pre>



<p class="wp-block-paragraph">You enable the timer, not the service. The third command starts a run immediately so you can see whether everything works, and the fourth shows the log. In the test, the next run then appeared in the list for 2:30 a.m., and the manually started run put the archive on the stick:</p>



<pre class="wp-block-code"><code>$ systemctl --user enable --now fritz-backup.timer
$ systemctl --user list-timers fritz-backup.timer
$ systemctl --user start fritz-backup.service
$ journalctl --user -u fritz-backup.service</code></pre>



<p class="wp-block-paragraph">If you want to address several cloud storages and the Fritzbox with one tool, use <code>rclone</code> with the SMB backend. The share is set up there as a storage of its own, and the share name <code>FRITZ.NAS</code> goes into the path. Copying and mirroring a folder worked in the test. With this command the password ends up in the shell history; if you want to avoid that, enter it interactively through <code>rclone config</code> instead:</p>



<pre class="wp-block-code"><code>$ rclone config create fritz smb host fritz.box user YOUR_USER pass YOUR_PASSWORD --obscure
$ rclone sync ~/Documents fritz:FRITZ.NAS/NAME_OF_THE_STICK/Backup/Documents</code></pre>



<p class="wp-block-paragraph">WebDAV and SSH (sshfs), on the other hand, are not possible: port 22 is closed, and there appears to be no WebDAV access to the storage. In everyday use that hardly matters, because SMB and FTP cover the usual cases: uploading files, storing backups and mounting a share as a folder. NFS gets a section of its own further down.</p>



<h2 class="wp-block-heading">Speed comparison</h2>



<p class="wp-block-paragraph">The measurements ran on a TUXEDO laptop with Ubuntu 26.04.1, GNOME 50.1 and kernel 7.0, connected through a 2.5 Gbit USB adapter to a Fritzbox 5690 Pro attached to a gigabit port. Two storages were tested: the internal one of the box (1.7 GB) and a 128 GB USB 3.0 stick. Every test ran three times, and the table shows the median. A 512 MB file (filled with zeros, cache cleared before each read) was read and written.</p>



<figure class="wp-block-table"><table><thead><tr><th class="has-text-align-left" data-align="left">Method</th><th class="has-text-align-right" data-align="right">Write internal (MB/s)</th><th class="has-text-align-right" data-align="right">Write stick (MB/s)</th><th class="has-text-align-right" data-align="right">Read internal (MB/s)</th><th class="has-text-align-right" data-align="right">Read stick (MB/s)</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">GVfs (Files/Nautilus)</td><td class="has-text-align-right" data-align="right">49.2</td><td class="has-text-align-right" data-align="right">60.2</td><td class="has-text-align-right" data-align="right">66.3</td><td class="has-text-align-right" data-align="right">64.6</td></tr><tr><td class="has-text-align-left" data-align="left">mount.cifs, SMB 3.1.1</td><td class="has-text-align-right" data-align="right">45.5</td><td class="has-text-align-right" data-align="right">44.9</td><td class="has-text-align-right" data-align="right">104.7</td><td class="has-text-align-right" data-align="right">104.9</td></tr><tr><td class="has-text-align-left" data-align="left">mount.cifs, SMB 3.0</td><td class="has-text-align-right" data-align="right">45.3</td><td class="has-text-align-right" data-align="right">44.8</td><td class="has-text-align-right" data-align="right">104.4</td><td class="has-text-align-right" data-align="right">104.6</td></tr><tr><td class="has-text-align-left" data-align="left">mount.cifs, SMB 2.1</td><td class="has-text-align-right" data-align="right">45.7</td><td class="has-text-align-right" data-align="right">45.1</td><td class="has-text-align-right" data-align="right">104.8</td><td class="has-text-align-right" data-align="right">105.2</td></tr><tr><td class="has-text-align-left" data-align="left">mount.cifs, <code>cache=loose</code></td><td class="has-text-align-right" data-align="right">48.4</td><td class="has-text-align-right" data-align="right">44.6</td><td class="has-text-align-right" data-align="right">109.4</td><td class="has-text-align-right" data-align="right">109.4</td></tr><tr><td class="has-text-align-left" data-align="left">smbclient</td><td class="has-text-align-right" data-align="right">54.7</td><td class="has-text-align-right" data-align="right">70.6</td><td class="has-text-align-right" data-align="right">106.8</td><td class="has-text-align-right" data-align="right">103.9</td></tr><tr><td class="has-text-align-left" data-align="left">FTP (curl)</td><td class="has-text-align-right" data-align="right">53.9</td><td class="has-text-align-right" data-align="right">65.5</td><td class="has-text-align-right" data-align="right">107.7</td><td class="has-text-align-right" data-align="right">107.6</td></tr></tbody></table></figure>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6af639769ba00&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-2 wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769c421&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769c421" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="988" height="832" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="375" src="https://linuxundich.de/en/wp-content/uploads/2026/11/09a-measurement-write.webp" alt="" class="wp-image-375" srcset="https://linuxundich.de/en/wp-content/uploads/2026/11/09a-measurement-write.webp 988w, https://linuxundich.de/en/wp-content/uploads/2026/11/09a-measurement-write-300x253.webp 300w, https://linuxundich.de/en/wp-content/uploads/2026/11/09a-measurement-write-768x647.webp 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Large file, write: kernel mount at 45 MB/s, smbclient and FTP up to 71 on the stick.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769cd89&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769cd89" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="988" height="832" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="376" src="https://linuxundich.de/en/wp-content/uploads/2026/11/09b-measurement-read.webp" alt="" class="wp-image-376" srcset="https://linuxundich.de/en/wp-content/uploads/2026/11/09b-measurement-read.webp 988w, https://linuxundich.de/en/wp-content/uploads/2026/11/09b-measurement-read-300x253.webp 300w, https://linuxundich.de/en/wp-content/uploads/2026/11/09b-measurement-read-768x647.webp 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Large file, read: all but GVfs reach just over 100 MB/s, limited by gigabit.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769d856&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769d856" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="988" height="832" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="377" src="https://linuxundich.de/en/wp-content/uploads/2026/11/09c-measurement-small-files.webp" alt="" class="wp-image-377" srcset="https://linuxundich.de/en/wp-content/uploads/2026/11/09c-measurement-small-files.webp 988w, https://linuxundich.de/en/wp-content/uploads/2026/11/09c-measurement-small-files-300x253.webp 300w, https://linuxundich.de/en/wp-content/uploads/2026/11/09c-measurement-small-files-768x647.webp 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">300 small files: GVfs needs over 2 seconds, the kernel mount under 1.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639769e22b&quot;}" data-wp-interactive="core/image" data-wp-key="6af639769e22b" class="wp-block-image size-full wp-lightbox-container"><img loading="lazy" decoding="async" width="988" height="832" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" data-id="378" src="https://linuxundich.de/en/wp-content/uploads/2026/11/09d-measurement-options.webp" alt="" class="wp-image-378" srcset="https://linuxundich.de/en/wp-content/uploads/2026/11/09d-measurement-options.webp 988w, https://linuxundich.de/en/wp-content/uploads/2026/11/09d-measurement-options-300x253.webp 300w, https://linuxundich.de/en/wp-content/uploads/2026/11/09d-measurement-options-768x647.webp 768w" sizes="auto, (max-width: 781px) 100vw, 680px" /><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Kernel mount options: nostrictsync gives 95 MB/s, sign drops to 25.6.</figcaption></figure>

</figure>



<p class="wp-block-paragraph">The same runs were repeated later on the same laptop under TUXEDO OS (kernel 7.2, Plasma). The values are almost identical: the kernel mount writes at 46 to 49 MB/s and reads at 105 MB/s, <code>smbclient</code> writes at 64 to 68 MB/s, FTP at 52 to 65 MB/s, depending on the storage. Deviations of more than 3 MB/s occurred only when writing with <code>smbclient</code> to the internal storage (64 instead of 55 MB/s).</p>



<p class="wp-block-paragraph">When reading large files, it is not Linux that holds things back but the network: the Fritzbox sits on a gigabit port, and a good 100 MB/s is just under what such a connection can deliver. Internal storage and stick give the same result. The laptop&#8217;s 2.5 Gbit adapter is not used to capacity. The SMB version makes no difference; 2.1, 3.0 and 3.1.1 are equally fast.</p>



<p class="wp-block-paragraph">When writing, the kernel mount stays at around 45 MB/s, whether internal or on the stick. <code>smbclient</code> and FTP, by contrast, write to the USB 3 stick at 65 to 71 MB/s, and GVfs at 60 MB/s. So the storage is not the bottleneck with the kernel mount, and the measuring method is not the cause either; that was cross-checked.</p>



<p class="wp-block-paragraph">The cause turned up while trying out settings. Buffer sizes (<code>wsize</code>) and other options change nothing, and packet signing (<code>sign</code>) even costs almost half. With <code>nostrictsync</code>, however, writing jumps to around 95 MB/s. The option stops Linux from demanding, when a file is closed, that the box write it to the storage medium. The box then reports &#8220;done&#8221; before the data is on the stick.</p>



<div class="wp-block-group lui-callout is-warning is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// Use nostrictsync with care</p>



<p class="wp-block-paragraph">The speed of <code>nostrictsync</code> is bought at a price: the data initially sits only in the working memory of the Fritzbox. If the power fails there, or you pull the stick right after copying, files can be missing or damaged. For backups the option should stay off; for a photo archive that you back up elsewhere anyway, it is acceptable.</p>
</div>



<p class="wp-block-paragraph">With many small files (300 of 16 KB each), GVfs is clearly behind: on the stick it needs 2.4 seconds to write and 2.5 to read, the kernel mount only 0.8. For a few photos that goes unnoticed, for a folder with thousands of files it does not. On the internal storage the picture was the same (2.3 against 0.7 seconds).</p>



<p class="wp-block-paragraph"><code>cache=loose</code> brings four percent when reading and nothing measurable when writing. You will hardly notice four percent in everyday use. In return, the computer sees changes made by other devices later. For a network drive that several people use, it should stay off. The measurements come from a single day and a single router, so the values are guideposts, not guarantees.</p>



<div class="wp-block-group lui-callout is-info is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// Which method for what</p>



<p class="wp-block-paragraph">For everyday use, the share in the file manager is fast enough and the most convenient. If you copy many files or let programs access the share, use <code>/etc/fstab</code> with <code>x-systemd.automount</code>. For single large files that you write to the box, <code>smbclient</code> or FTP are fastest. It is best to do without <code>cache=loose</code> and <code>nostrictsync</code> as long as several devices write.</p>
</div>



<h2 class="wp-block-heading">NFS and Freetz</h2>



<p class="wp-block-paragraph">The Fritzbox itself offers no NFS: the box does not answer on ports 2049 and 111. In the past, the add-on project <a href="https://freetz.github.io/wiki/">Freetz</a> helped; among other things it retrofitted an NFS server. The original Freetz is considered outdated, its last release dates from 2012. In old forum posts you will find many guides that refer to boxes and firmware versions that have long since stopped being current.</p>



<p class="wp-block-paragraph">The fork <a href="https://freetz-ng.github.io/freetz-ng/">Freetz-NG</a>, which continues the work of the original project, is alive: its <a href="https://freetz-ng.github.io/freetz-ng/NEWS/">news</a> run up to November 2026, and a new version appeared in September. An NFS server with a web interface also remains part of it, the <a href="https://freetz-ng.github.io/freetz-ng/make/nfsd-cgi/">nfsd-cgi</a>. The <a href="https://freetz-ng.github.io/freetz-ng/FIRMWARES/">list of supported firmware</a> includes many Fritzboxes, among them the 5690 Pro. If you want to try it, first find out which firmware your own box runs.</p>



<p class="wp-block-paragraph">It is still no sure thing. Freetz-NG replaces the box&#8217;s firmware with a self-built image, and according to the news, newer FRITZ!OS 8.5 versions only partly work, with many patches failing. The documentation of the NFS server names only an old Fritzbox 7390 as a test device. For the 5690 Pro it is untested, and the gain would be modest: when reading, the network is already at its limit, and when writing, it is the writing to the storage medium that slows things down.</p>



<h2 class="wp-block-heading">Experiences and measurements</h2>



<p class="wp-block-paragraph">How do you mount your Fritzbox shares? Experiences and tips are welcome in the comments, especially on other Fritzbox models and firmware versions, on USB storage with other file systems and on per-user folder permissions, which this test could not settle. Measurements from faster storage or a 2.5 Gbit port on the box are welcome too.</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/mount-fritzbox-share-linux-samba-gnome-plasma-fstab/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FOSS keyboards for Android: alternatives to Gboard and SwiftKey tested</title>
		<link>https://linuxundich.de/en/foss-keyboards-android-alternatives-gboard-swiftkey/</link>
					<comments>https://linuxundich.de/en/foss-keyboards-android-alternatives-gboard-swiftkey/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Tue, 10 Nov 2026 08:36:23 +0000</pubDate>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[F-Droid]]></category>
		<category><![CDATA[FOSS]]></category>
		<category><![CDATA[Gboard]]></category>
		<category><![CDATA[Keyboard]]></category>
		<category><![CDATA[Privacy]]></category>
		<category><![CDATA[SwiftKey]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/foss-keyboards-android-alternatives-gboard-swiftkey/</guid>

					<description><![CDATA[Gboard and SwiftKey see every keystroke, and both belong to big tech companies. There are plenty of free keyboards like HeliBoard, FlorisBoard or WM Keyboard – but not all of them deserve your trust.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">A keyboard sees everything you type on your phone: passwords, messages, search queries, the PIN for online banking. Yet hardly anyone asks who actually wrote it. Most Android devices come with Gboard, many Samsung users have SwiftKey, and both come from big tech companies that make their money with data. Free alternatives do exist.</p>



<p class="wp-block-paragraph">This article was prompted by a <a href="https://www.reddit.com/r/flossdroid/comments/1xp3cnj/foss_keyboards_for_android/">thread on r/flossdroid</a> in which users collect free keyboards for Android: LeanType, Bucky, Simple Keyboard, plus WM Keyboard, HeliBoard and FUTO. The candidates run here with a German layout, in the Android emulator and on a Pixel 10. On top of that comes a look at the requested permissions and the repositories: What does the app ask for, who develops it, how up to date is it?</p>



<h2 class="wp-block-heading">A keyboard knows everything</h2>



<p class="wp-block-paragraph">Technically, a keyboard is an ordinary app that hooks into the system as an input method. It receives every keystroke, <a href="https://developer.android.com/develop/ui/views/touch-and-input/creating-input-method">can read the text before and after the cursor</a> and even learns when a password field is open. Android warns you about this when you enable a keyboard. But the system can’t enforce anything: whether a keyboard handles your data decently is ultimately a matter of trust.</p>



<p class="wp-block-paragraph">That this isn’t just theory is shown by a <a href="https://pure.skku.edu/en/publications/keyboard-or-keylogger-a-security-analysis-of-third-party-keyboard/">study presented at the IEEE conference PST 2015</a>: of 139 keyboards from Google Play, 84 could have been abused as keyloggers. That doesn’t prove every one of them did. That it does happen is shown by cases like <a href="https://www.androidcentral.com/aitype-virtual-keyboard-leaks-personal-data-31-million-android-users">ai.type</a>, whose database with data from 31 million users sat openly on the internet, or <a href="https://citizenlab.ca/2024/04/vulnerabilities-across-keyboard-apps-reveal-keystrokes-to-network-eavesdroppers/">Chinese keyboard apps</a> that let eavesdroppers read keystrokes. The bar is low, and that’s exactly why it pays to look at who you entrust your input to.</p>



<h2 class="wp-block-heading">Gboard: convenience with a line to Google</h2>



<p class="wp-block-paragraph">Gboard is good, no question. The suggestions are spot on, and on a Pixel phone German and English run on a single space bar right away. Google names the price itself in its <a href="https://support.google.com/gboard/answer/9058584">own help pages</a>: search queries from the keyboard go to Google, as do usage statistics, and when you dictate, your voice is sent to Google’s servers for transcription. Fittingly, the app asks for internet access.</p>



<p class="wp-block-paragraph">Then there are the word suggestions. To improve them, <a href="https://research.google/blog/improving-gboard-language-models-via-private-federated-analytics/">Gboard learns directly on your phones</a>. Your texts are supposed to stay on the device, and only the learning results go to Google, mixed with random values so that no individual can be singled out. That sounds clean. Still, your phone does computing work for Google, and you can’t check whether this holds up to what Google <a href="https://arxiv.org/abs/2306.14793">promises</a>: Gboard’s source code isn’t free.</p>



<p class="wp-block-paragraph">Gboard has had security holes, too. <a href="https://nvd.nist.gov/vuln/detail/CVE-2022-20125">CVE-2022-20125</a> allowed bypassing Factory Reset Protection, which keeps a reset phone locked to its owner. Android 10 to 12L were affected, and the hole was fixed in June 2022. An attacker needed the device in hand, though. I found no case of data leaking from Gboard itself.</p>



<h2 class="wp-block-heading">SwiftKey belongs to Microsoft</h2>



<p class="wp-block-paragraph">Microsoft bought SwiftKey in February 2016. The price was officially never disclosed, the Financial Times reported <a href="https://www.informationweek.com/software-services/microsoft-snaps-up-swiftkey-in-ai-push">around 250 million US dollars</a>. As early as July of the same year, cloud sync showed some users <a href="https://www.engadget.com/2016/07/29/swiftkey-leaked-user-email-addresses-as-text-predictions/">other people’s email addresses and phone numbers as word suggestions</a>. SwiftKey turned off sync and removed email suggestions. A bug turned into a data breach.</p>



<p class="wp-block-paragraph">Older is the hole in the Samsung keyboard, which used SwiftKey technology. It downloaded language packs unencrypted and unverified, which according to <a href="https://www.securityweek.com/swiftkey-bug-puts-millions-samsung-galaxy-phones-risk/">security firm NowSecure</a> allowed remote code execution. An estimated 600 million devices were affected, the standalone SwiftKey apps were not. According to NowSecure, Samsung had known about the problem since November 2014.</p>



<p class="wp-block-paragraph">Then there’s the direction of recent years. On Android, <a href="https://windowscentral.com/software-apps/microsoft-swiftkey-ditches-bing-for-copilot">Copilot has replaced the Bing button</a>, and since May 31, 2026 you need a Microsoft account for backup and sync, with the data stored in OneDrive. Accounts created via Google or Apple were deleted (<a href="https://www.heise.de/news/Microsoft-SwiftKey-Zwang-zum-Microsoft-Konto-fuer-Backups-kommt-Ende-Mai-11217652.html">heise, German</a>). So you keep typing on a keyboard that is growing ever closer to your Microsoft account.</p>



<h2 class="wp-block-heading">The free alternatives tested</h2>



<p class="wp-block-paragraph">Free here means: the source code is open, and ideally the app doesn’t ask for internet access at all. You can check the latter without trusting the project page: the permissions are in the installation file (APK) and can be read out with a tool from Google. Version and release date are listed for each keyboard.</p>



<p class="wp-block-paragraph">Testing takes place in the Android emulator (Pixel 10 profile, Android 17, German system language), while LeanType and FUTO run on a real Pixel 10. Each keyboard gets the German layout and types a different search term. That shows layout, suggestions and structure. Swipe typing and dictation are not tested.</p>



<h3 class="wp-block-heading">HeliBoard</h3>



<p class="wp-block-paragraph">HeliBoard is the top dog among free keyboards. It descends from Android’s own keyboard, by way of OpenBoard. The current version is 4.2 from October 12 under GPL-3.0. F-Droid builds it <a href="https://f-droid.org/docs/Reproducible_Builds/">reproducibly</a>, which verifies that the installation file really comes from the published source code. The <a href="https://github.com/HeliBorg/HeliBoard">project</a> has since moved to HeliBorg. There’s no internet permission, it only asks for the user dictionary, contacts, vibration and autostart.</p>



<p class="wp-block-paragraph">In the test, HeliBoard is the quickest to get going: the German layout is set up automatically, and while typing “datenschutz” (German for privacy), the suggestion bar offers three variants right away. The weak spots: you download additional dictionaries yourself, and swipe typing only works with a proprietary library that you have to get on your own. Since June 2025, <a href="https://nlnet.nl/project/GestureTyping/">NLnet has been funding a free replacement</a>. On top of that, almost all changes come from one developer. If he drops out, the project stalls.</p>



<h3 class="wp-block-heading">FlorisBoard</h3>



<p class="wp-block-paragraph"><a href="https://github.com/florisboard/florisboard">FlorisBoard</a> has its own code base in Kotlin, is licensed under Apache-2.0 and, with almost 8,800 stars, has the largest fan base. The catch: the stable version 0.5.2 dates from November 2025, the pre-release 0.6.0 from January 2026. Word suggestions and spell checking are still missing, both are planned for 0.6. The test shows it: while typing “kernel”, the suggestion bar stays empty.</p>



<p class="wp-block-paragraph">You first have to add the German layout as an input style in the settings. In return, you get a clipboard, emoji, themes and its own glide typing without any third-party library, which the roadmap plans to rebuild from 0.7 on. The app asks for only three permissions, internet isn’t one of them. Here, too, the lion’s share of commits comes from one person.</p>



<h3 class="wp-block-heading">AnySoftKeyboard</h3>



<p class="wp-block-paragraph"><a href="https://github.com/AnySoftKeyboard/AnySoftKeyboard">AnySoftKeyboard</a> is the veteran: the code base dates back to 2012, the license is Apache-2.0, the current version is 1.13, also on the Play Store. It offers glide typing, voice input, an incognito mode and themes as add-ons. German isn’t included. You install a separate language pack and enable the layout in the app, and it only shows up in the list after restarting the app.</p>



<p class="wp-block-paragraph">After that, it works: for “firefox”, the suggestion bar proposes the spelling “Firefox”. There’s no internet permission here either, but the app asks for contacts. Setup takes more effort than HeliBoard, and maintenance also rests on one developer. If you like a keyboard with an add-on system, AnySoftKeyboard remains an option.</p>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6af63976cabe7&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-2 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cacb9&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cacb9" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/gboard-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/gboard-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/gboard-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/gboard-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/gboard-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/gboard-suche-456x1024.webp" alt="Gboard with a German QWERTZ layout in a search field, with the suggestion bar above it."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Gboard for comparison: searching for “tastatur” brings up suggestions, and the space bar shows German and English.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cae71&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cae71" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/heliboard-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/heliboard-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/heliboard-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/heliboard-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/heliboard-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/heliboard-suche-456x1024.webp" alt="HeliBoard with German layout and suggestion bar, with the search field above."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">HeliBoard offers three suggestions while typing “datenschutz”, and the German layout is set up automatically.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cb04a&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cb04a" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/florisboard-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/florisboard-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/florisboard-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/florisboard-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/florisboard-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/florisboard-suche-456x1024.webp" alt="FlorisBoard with toolbar and German layout, the search field shows “kernel” with topics and results."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">FlorisBoard has a toolbar, but no word suggestions yet while typing “kernel”.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cb1d9&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cb1d9" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/anysoftkeyboard-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/anysoftkeyboard-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/anysoftkeyboard-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/anysoftkeyboard-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/anysoftkeyboard-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/anysoftkeyboard-suche-456x1024.webp" alt="AnySoftKeyboard with German layout and the suggestion bar, the search field shows “firefox”."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">AnySoftKeyboard needs a language pack for German, but then suggests “Firefox”.</figcaption></figure>

</figure>



<h3 class="wp-block-heading">Simple Keyboard</h3>



<p class="wp-block-paragraph"><a href="https://github.com/rkkr/simple-keyboard">Simple Keyboard by rkkr</a> does what the name says. The README explicitly rules out emoji, GIFs, spell checking and swipe typing, and the only permission is vibration. The current version is 6.8 from October 22 under Apache-2.0, also based on Android’s own keyboard. In the test, the German layout is set up automatically, there’s no suggestion bar, and that’s exactly the point. Watch out for the name, though.</p>



<p class="wp-block-paragraph">The Simple Mobile Tools also had a keyboard called Simple Keyboard, as far as I can tell. Their developers sold to ZipoApps at the end of 2023, a company that <a href="https://liliputing.com/android-app-maker-simple-mobile-tools-acquired-by-zipoapps/">monetizes acquired apps with ads</a>. The fork <a href="https://f-droid.org/en/packages/org.fossify.keyboard">Fossify Keyboard</a> carries it on without internet permission. This article means the keyboard by rkkr. However, it has received only eight commits in the last 90 days, a project in permanent idle mode.</p>



<h3 class="wp-block-heading">WM Keyboard</h3>



<p class="wp-block-paragraph"><a href="https://github.com/wasi-master/wmkeyboard">WM Keyboard</a> is the favorite in the Reddit thread, and it’s the opposite of Simple Keyboard. The developer created the repository in August 2026 and has since written 3,381 commits in 90 days, and the README openly states that he develops with AI assistance. In return, the keyboard comes with swipe typing, offline dictation via several engines, Emoji 18, a theme editor, 89 tools and Lua plugins. The license is MIT, the source code is open.</p>



<p class="wp-block-paragraph">The APK reveals more: the regular build from GitHub requests 44 permissions, including internet, location, calendar, contacts, camera, microphone, full access to all files, drawing over other apps and installing packages. Requested doesn’t mean granted, and some of this is probably for the integrations with to-do and flashcard apps. For a keyboard, it’s still a hefty package.</p>



<p class="wp-block-paragraph">There’s an offline build without internet permission, its other permissions weren’t checked. The setup wizard offers German (QWERTZ) right away. While typing “gnome”, the German suggestions “Gnomen”, “GNOME” and “Gnom” appear, and a number row and a toolbar sit above the keyboard. More features than any other keyboard in the test – but also more that someone would have to review.</p>



<h3 class="wp-block-heading">Bucky Keys</h3>



<p class="wp-block-paragraph"><a href="https://github.com/DimiVlachos/bucky">Bucky</a> aims to be the successor to Hacker’s Keyboard: a complete PC layout with Esc, Tab, Ctrl, Alt, Home, End, arrow keys and function keys, meant for Termux, SSH and programming. The license is Apache-2.0, according to the README there’s no internet permission, and indeed the APK contains not a single real permission. The catch: it’s an alpha (0.1.0-alpha12 from November 3) with 20 stars, by one person, since October.</p>



<p class="wp-block-paragraph">In a regular search field, Bucky shows a compact layout, in its own app’s test field the full PC layout. German isn’t available: the only choices are English (US), Greek, Estonian and Finnish. That’s fine for the terminal and for English, but useless for German text. The PC layout itself is complete, and for Termux there’s a dedicated key row in the settings.</p>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6af63976cb902&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-3 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cb9a2&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cb9a2" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/simple-keyboard-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/simple-keyboard-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/simple-keyboard-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/simple-keyboard-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/simple-keyboard-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/simple-keyboard-suche-456x1024.webp" alt="Simple Keyboard with German layout in a search field, the field shows “android”."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Simple Keyboard does without a suggestion bar, and the German layout is there right away.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cbbfd&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cbbfd" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/wm-keyboard-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/wm-keyboard-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/wm-keyboard-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/wm-keyboard-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/wm-keyboard-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/wm-keyboard-suche-456x1024.webp" alt="WM Keyboard with suggestion bar, number row and toolbar, the search field shows “gnome”."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">WM Keyboard offers suggestions, a number row and a toolbar above the keys.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cbdc9&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cbdc9" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/bucky-suche-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-suche-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-suche-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-suche-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-suche.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/bucky-suche-456x1024.webp" alt="Bucky Keys with a compact English layout, the search field shows “flatpak”."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">In a search field, Bucky shows a compact layout, and German is missing from the language list.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cbf93&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cbf93" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/bucky-pc-layout-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-pc-layout-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-pc-layout-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-pc-layout-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/bucky-pc-layout.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/bucky-pc-layout-456x1024.webp" alt="Bucky Keys with a PC layout including function keys, Esc, Ctrl, Alt, Home, End and arrow keys."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">In the Bucky app’s test field, the full PC layout appears with function keys, Ctrl, Alt and arrow keys.</figcaption></figure>

</figure>



<h3 class="wp-block-heading">LeanType</h3>



<p class="wp-block-paragraph"><a href="https://github.com/LeanBitLab/LeanType">LeanType</a> is a fork of HeliBoard, GPL-3.0, with around 1,150 stars. It comes with many more features: cloud AI integration (Gemini, Groq, OpenAI), GIF search, offline dictation via a Whisper plugin, screenshot suggestions and its own update checker. For that, the standard variant has internet permission, including the version F-Droid ships. The offline variant doesn’t, but still asks for camera and microphone.</p>



<p class="wp-block-paragraph">The welcome screen promises “100% private &amp; secure”, with no telemetry and no network tracking. The developer has been active on GitHub since November 2025 and has written 1,933 commits, 1,257 of them in the last 90 days, plus several betas per week. Of the last 200 commits, two state AI involvement. On the plus side: F-Droid builds the keyboard reproducibly against the developer’s signature.</p>



<p class="wp-block-paragraph">On the Pixel 10, LeanType appears right away with the German layout. The suggestion bar stays empty: the offline variant ships without a dictionary, and the toolbar points to a download from Codeberg for German.</p>



<p class="wp-block-paragraph">Then the settings: opening them brings up a donation request, and the gesture library shows “Not installed”, so it has to be downloaded separately. If you like HeliBoard but want more switches and features, this is the extended version. If you want as little attack surface as possible, stick with HeliBoard.</p>



<h3 class="wp-block-heading">FUTO Keyboard</h3>



<p class="wp-block-paragraph"><a href="https://github.com/futo-org/android-keyboard">FUTO Keyboard</a> runs right away on the Pixel 10 with the German layout. The APK contains no internet permission, but the microphone for the built-in offline dictation with Whisper. While typing “tuxedo”, however, the bar suggests “zu del”, “zu Edo” and “zu edi”: the prediction struggles with proper names. More important is the license. <a href="https://github.com/futo-org/android-keyboard/blob/master/LICENSE.md">The FUTO Source First License</a> prohibits commercial modifications and is not an open source license <a href="https://opensource.org/osd">as defined by the OSI</a>.</p>



<p class="wp-block-paragraph">The source code is public, development happens internally on GitLab, GitHub is a mirror, and anyone who wants to contribute has to grant FUTO rights to their code by contract. That’s also why FUTO isn’t in the official F-Droid repository but in its own package source. Swipe typing is recognized by an AI model on the device, the library is under GPL, the models under their own license. I wouldn’t call FUTO “FOSS”, but “source available” fits.</p>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6af63976cc4b4&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-4 is-cropped wp-block-gallery-4 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cc532&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cc532" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/leantype-pixel-10-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-pixel-10-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-pixel-10-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-pixel-10-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-pixel-10.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/leantype-pixel-10-456x1024.webp" alt="LeanType on the Pixel 10 with German layout and the toolbar, the search field shows “Wayland”."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">LeanType works right away on the Pixel 10, only the German dictionary is missing in the offline variant.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cc749&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cc749" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/leantype-gesten-tippen-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-gesten-tippen-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-gesten-tippen-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-gesten-tippen-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-gesten-tippen.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/leantype-gesten-tippen-456x1024.webp" alt="Gesture typing page in LeanType with the entry for loading the gesture typing library and the status Not installed."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Gesture typing in LeanType needs a library that you download separately.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976cc911&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976cc911" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/leantype-spendenhinweis-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-spendenhinweis-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-spendenhinweis-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-spendenhinweis-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/leantype-spendenhinweis.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/leantype-spendenhinweis-456x1024.webp" alt="Dialog asking to sponsor the project, with buttons for GitHub and Open Collective and Not now."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">When you open the settings, LeanType asks for a donation.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63976ccafe&quot;}" data-wp-interactive="core/image" data-wp-key="6af63976ccafe" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 456px) 100vw, 456px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/futo-suche-pixel-10-456x1024.webp 456w, https://linuxundich.de/wp-content/uploads/2026/11/futo-suche-pixel-10-640x1437.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/futo-suche-pixel-10-684x1536.webp 684w, https://linuxundich.de/wp-content/uploads/2026/11/futo-suche-pixel-10-768x1724.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/futo-suche-pixel-10.webp 800w" width="456" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/futo-suche-pixel-10-456x1024.webp" alt="FUTO Keyboard on the Pixel 10 with German layout and suggestion bar, the search field shows “tuxedo”."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">For “tuxedo”, FUTO Keyboard only suggests oddities like “zu del”, it doesn’t know the name.</figcaption></figure>

</figure>



<h2 class="wp-block-heading">Key facts at a glance</h2>



<figure class="wp-block-table"><table><thead><tr><th>Keyboard</th><th>License</th><th>Internet permission</th><th>Swipe typing</th><th>Release</th></tr></thead><tbody><tr><td>HeliBoard</td><td>GPL-3.0</td><td>no</td><td>only with third-party library</td><td>4.2 (2026-10-12)</td></tr><tr><td>LeanType</td><td>GPL-3.0</td><td>yes (standard), no (offline)</td><td>library downloaded separately</td><td>4.3.1 (2026-11-04)</td></tr><tr><td>FlorisBoard</td><td>Apache-2.0</td><td>no</td><td>own implementation</td><td>0.5.2 (2025-11-28)</td></tr><tr><td>AnySoftKeyboard</td><td>Apache-2.0</td><td>no</td><td>own implementation</td><td>1.13 (2026-09-08)</td></tr><tr><td>Simple Keyboard</td><td>Apache-2.0</td><td>no</td><td>not planned</td><td>6.8 (2026-10-22)</td></tr><tr><td>WM Keyboard</td><td>MIT</td><td>yes (except offline build)</td><td>own implementation</td><td>0.6.5 (2026-11-05)</td></tr><tr><td>Bucky Keys</td><td>Apache-2.0</td><td>no</td><td>not planned</td><td>0.1.0-alpha12 (2026-11-03)</td></tr><tr><td>FUTO Keyboard</td><td>Source First</td><td>no</td><td>AI model on the device</td><td>0.1.30 (2026-08-04)</td></tr></tbody></table></figure>



<h2 class="wp-block-heading">Which keyboard should you pick?</h2>



<p class="wp-block-paragraph">For everyday use on a regular phone, after this test I would go with HeliBoard: no internet, reproducible builds, suggestions, German layout out of the box, active maintenance. If you want swipe typing, you have to live with the extra library, FlorisBoard swipes without one but still types without suggestions. If you just want to type, Simple Keyboard is a good choice. For Termux, Bucky is worth a look once there’s a stable version.</p>



<p class="wp-block-paragraph">WM Keyboard and LeanType are tempting with their feature sets. Whether they deserve your trust is up to you: a keyboard sees everything, and a one-person project with dozens of commits per week is hard to review. Internet permission and 44 requested permissions are no small matter for WM Keyboard. For a keyboard, that would be too much trust in advance for me.</p>



<p class="wp-block-paragraph">Which keyboard do you type on, and what do you look for when choosing one? Feel free to share in the comments.</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/foss-keyboards-android-alternatives-gboard-swiftkey/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OpenSSH Vulnerability *sshole: Now Long Passwords Are a Problem Too</title>
		<link>https://linuxundich.de/en/openssh-vulnerability-sshole-musl-alpine-openwrt/</link>
					<comments>https://linuxundich.de/en/openssh-vulnerability-sshole-musl-alpine-openwrt/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Thu, 05 Nov 2026 16:19:24 +0000</pubDate>
				<category><![CDATA[News]]></category>
		<category><![CDATA[Alpine Linux]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[OpenWrt]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/openssh-vulnerability-sshole-musl-alpine-openwrt/</guid>

					<description><![CDATA[Log in as root via SSH with any password longer than 256 bytes: the *sshole vulnerability hits OpenSSH on systems with musl libc. The Linux desktop is off the hook, routers, containers and embedded devices not so much.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">For decades we have all been hearing the same sermon: short passwords are a security problem. Use a long passphrase instead, ideally with special characters, ideally from a password manager. As of today, we know that long passwords are a problem too. At least when they are longer than 256 bytes and hit an OpenSSH server running without PAM on musl libc. Because then every password is the right one.</p>



<h2 class="wp-block-heading">An asterisk is an asterisk</h2>



<p class="wp-block-paragraph">The vulnerability goes by the lovely name <a href="https://sshhole.com/">*sshole</a> and was found by Özgün Kültekin (Wakefield). Under the right conditions, an attacker can log in via SSH with any password between 257 and 1024 bytes. And of all accounts, it works on the ones that are actually locked and are not supposed to have a password at all. That can include root.</p>



<p class="wp-block-paragraph">The cause is almost comical. Instead of a password hash, locked accounts often just have a <code>*</code> in <code>/etc/shadow</code>. musl&#8217;s <code>crypt()</code> function also returns a <code>*</code> when something goes wrong while processing the password. And that is exactly what happens with passwords over 256 bytes. OpenSSH then compares asterisk with asterisk, finds them equal, and politely waves the visitor through.</p>



<p class="wp-block-paragraph">This was not caused by a single blunder, but by several changes that were harmless on their own. In 2012, musl introduced both the return value on failure and the length limit. In 2016, OpenSSH plugged a timing leak and, in doing so, made sure the bug also reaches real users with <code>*</code>. Nobody noticed for about ten years.</p>



<h2 class="wp-block-heading">All clear for the Linux desktop</h2>



<p class="wp-block-paragraph">If you run sshd on your Arch machine, your Ubuntu laptop or your little Debian home server, you can sit back and relax. The big distributions use glibc instead of musl and have OpenSSH check passwords through PAM in their default configuration. So the path to the asterisk comparison is never open in the first place. According to the analysis, Debian, Ubuntu and Fedora are not affected, and neither are OpenBSD and Dropbear.</p>



<p class="wp-block-paragraph">Only systems where all of these points come together are affected:</p>



<ul class="wp-block-list">

<li>Linux with musl libc (such as Alpine Linux, OpenWrt, Buildroot or Yocto)</li>


<li>OpenSSH without PAM</li>


<li>password authentication enabled</li>


<li>at least one account with <code>*</code> as the password field in <code>/etc/shadow</code></li>


<li>at least one other account with a valid password hash</li>

</ul>



<h2 class="wp-block-heading">It gets creepy where nobody is looking</h2>



<p class="wp-block-paragraph">On paper, the list sounds like a niche. On Alpine Linux, however, it is the default: the <code>openssh-server</code> package works without PAM there, password logins are on, and root has had a <code>*</code> as its hash since Alpine 3.16. On top of that, the official images for AWS and Azure come with a user named alpine that becomes root via doas without a password. One long password, one <code>doas</code>, done.</p>



<p class="wp-block-paragraph">OpenWrt itself ships with Dropbear as its SSH server, which is not affected. But if you switched your router to OpenSSH, say for SFTP, you should take a closer look. It gets really unpleasant with Buildroot and Yocto. Manufacturers use them to build firmware for routers, NAS boxes, cameras, industrial controllers and all kinds of IoT stuff. Very few data sheets tell you what exactly is inside.</p>



<p class="wp-block-paragraph">And these are exactly the boxes that like to sit directly on the internet. They are the devices you set up once and never touch again, because they just work. Updates come, if at all, only when the manufacturer remembers that it once sold the thing. In my opinion, that is the real creepy part of this vulnerability, not the Linux desktop.</p>



<h2 class="wp-block-heading">What you should do now</h2>



<p class="wp-block-paragraph">OpenSSH released version <a href="https://www.openssh.org/releasenotes.html#10.6p2">10.6p2</a> today, which catches the problem on the OpenSSH side. On Alpine Linux, you get the update through the package manager as usual with <code>apk upgrade openssh</code>. Other distributions fix the bug with a backported security patch. Restart the SSH service afterwards so the new version is really the one listening. With off-the-shelf firmware, all you can do is look for an update from the manufacturer.</p>



<p class="wp-block-paragraph">If you cannot update right away, turn off password login in <code>sshd_config</code>:</p>



<pre class="wp-block-code"><code>PasswordAuthentication no</code></pre>



<p class="wp-block-paragraph">Before you do, make sure that key-based access works, of course, or you will lock yourself out. On Alpine, you can also do this as a separate configuration file and then restart the service:</p>



<pre class="wp-block-code"><code>echo &quot;PasswordAuthentication no&quot; &gt; /etc/ssh/sshd_config.d/00-no-passwords.conf
rc-service sshd restart</code></pre>



<p class="wp-block-paragraph">Honestly: an SSH server with password login sitting wide open on the internet was not a good idea even before *sshole. Passwords that are too short get guessed, and as of today, the ones that are too long are suspicious as well. The best password for SSH is still none at all, it is a key. Do you run Alpine boxes or an OpenWrt router with OpenSSH, and do you actually know what SSH server your devices on the net are running?</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/openssh-vulnerability-sshole-musl-alpine-openwrt/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>FlatPark: A Signed Flatpak Remote for Apps Missing on Flathub</title>
		<link>https://linuxundich.de/en/flatpark-flatpak-remote-ai-apps-helium/</link>
					<comments>https://linuxundich.de/en/flatpark-flatpak-remote-ai-apps-helium/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Thu, 05 Nov 2026 09:23:42 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[Flathub]]></category>
		<category><![CDATA[Flatpak]]></category>
		<category><![CDATA[FlatPark]]></category>
		<category><![CDATA[Helium]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/flatpark-flatpak-remote-ai-apps-helium/</guid>

					<description><![CDATA[FlatPark is an additional Flatpak remote with 230 reviewed apps, including AI applications and the Helium browser. Setup and installation, tested on CachyOS.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In plain terms, <a href="https://flatpark.org/">FlatPark</a> is something like a <a href="https://flathub.org/">Flathub</a> for AI apps. You don&#8217;t have to like that, but I can see why someone would: quite a few useful applications have appeared that are missing from Flathub. The project was introduced on <a href="https://www.reddit.com/r/linux/comments/1xob7hy/flatpark_a_signed_flatpak_remote_for_apps_not/">r/linux</a> on 5 November, and the comments there show nicely where opinions split.</p>



<h2 class="wp-block-heading">What FlatPark is</h2>



<p class="wp-block-paragraph">Technically, FlatPark is an additional <a href="https://flatpak.org/">Flatpak</a> remote that you set up alongside Flathub. According to the project page it holds 230 apps, each reviewed individually; 80 have the developers&#8217; approval. Every app is built, launched and tested against a published standard. The repository is GPG-signed, and the sandbox is meant to be tight.</p>



<p class="wp-block-paragraph">One difference from Flathub: FlatPark does not rebuild the programs. It installs the vendor&#8217;s original release, pinned by checksum. If you trust the vendor, you get their binary, just inside the Flatpak sandbox and with updates the usual way. The source code of the remote is on <a href="https://github.com/flatpark/flatpark">GitHub</a>.</p>



<h2 class="wp-block-heading">Setting it up</h2>



<p class="wp-block-paragraph">I tested on <a href="https://cachyos.org/">CachyOS</a> with <a href="https://kde.org/plasma-desktop/">KDE Plasma</a> in a virtual machine. Flatpak is not preinstalled there, but <code>sudo pacman -S flatpak</code> fetches it. After that, the <a href="https://github.com/flatpark/flatpark">README</a> says a single command adds the remote. The <code>--user</code> option installs into your home directory and needs no administrator rights.</p>



<pre class="wp-block-code"><code>flatpak --user remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpark.flatpakrepo</code></pre>



<p class="wp-block-paragraph">You then install apps by their app ID, which you find in the catalog on flatpark.org. Instead of <code>&lt;app-id&gt;</code>, you enter the identifier of the app you want, for Helium that is <code>net.imput.helium</code>. If you prefer a graphical tool, <a href="https://apps.kde.org/discover/">KDE Discover</a> shows FlatPark as a Flatpak source and finds Helium in its search.</p>



<pre class="wp-block-code"><code>flatpak --user install flatpark &lt;app-id&gt;</code></pre>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397713ab8&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397713ab8" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="688" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/01-remote-hinzufuegen-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/01-remote-hinzufuegen-768x479.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/01-remote-hinzufuegen.webp 1102w" width="1102" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/01-remote-hinzufuegen.webp" alt="Console window on KDE Plasma showing the output of flatpak remotes, with the entry flatpark in the list."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">After adding it, flatpark appears in the list of Flatpak sources, set up with &#8211;user for the current user without root rights.</figcaption></figure>



<p class="wp-block-paragraph">The first installation aborts: the app needs the runtime org.freedesktop.Platform 26.08, and FlatPark does not ship it. The runtimes still come from Flathub, as the <a href="https://flatpark.org/docs/users/setup/">setup guide</a> confirms. With Flathub already set up you won&#8217;t see this error; it only appears on fresh systems like my test machine.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397713dd9&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397713dd9" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="688" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/02-runtime-fehlt-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/02-runtime-fehlt-768x479.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/02-runtime-fehlt.webp 1102w" width="1102" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/02-runtime-fehlt.webp" alt="Console window with an error message: the app org.audacityteam.Audacity needs the runtime org.freedesktop.Platform 26.08, which was not found."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">On a fresh system the installation aborts because the runtime org.freedesktop.Platform 26.08 is missing and FlatPark does not ship it.</figcaption></figure>



<p class="wp-block-paragraph">On such a system you additionally add Flathub with the following command. After that the installation goes through: the runtimes come from Flathub, the app itself from FlatPark. The example in the screenshot is Audacity at just under 74 MB, plus around 440 MB of runtimes on the fresh system.</p>



<pre class="wp-block-code"><code>flatpak --user remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo</code></pre>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639771411f&quot;}" data-wp-interactive="core/image" data-wp-key="6af639771411f" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="688" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/03-installation-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/03-installation-768x479.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/03-installation.webp 1102w" width="1102" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/03-installation.webp" alt="Console window with the installation table: six runtimes from Flathub plus Audacity from flatpark, ending with the message that the installation is complete."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The runtimes come from Flathub, the app itself, here Audacity, from FlatPark; the column labelled Gegenstelle shows the respective source.</figcaption></figure>



<h2 class="wp-block-heading">Example: Helium</h2>



<p class="wp-block-paragraph">My test candidate is <a href="https://github.com/imputnet/helium">Helium</a>, a Chromium-based browser that is not on Flathub. According to a user in the Reddit thread, the developer wants to release a Flatpak only once the sandbox problems are solved. The download is just under 126 MB, and Helium starts normally. Updates run through <code>flatpak update</code>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977144c0&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977144c0" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="687" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/04-helium-berechtigungen-640x399.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/04-helium-berechtigungen-768x479.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/04-helium-berechtigungen.webp 1102w" width="1102" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/04-helium-berechtigungen.webp" alt="Console window with the output of flatpak info --show-permissions for Helium: context, session bus rules and system bus rules."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Helium&#8217;s permissions per flatpak info: network, Bluetooth, downloads and password stores like KWallet, a lot for a browser, but expected.</figcaption></figure>



<p class="wp-block-paragraph">For a browser the list is long, while a program like Audacity got by with folder access to documents and music. Flatpak shows the permissions before you confirm the installation, so you know what the app may do. If you dislike a permission, you can change it afterwards with <a href="https://github.com/tchx84/Flatseal">Flatseal</a>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977147eb&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977147eb" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="819" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/05-helium-flatpark-org-640x433.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/05-helium-flatpark-org-768x520.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/05-helium-flatpark-org.webp 1210w" width="1210" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/05-helium-flatpark-org.webp" alt="Helium browser window showing the flatpark.org home page: the headline Built. Reviewed. Signed., four bullet points on the review rules and the editor's pick GeoLibre."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Helium from FlatPark shows flatpark.org with the editor&#8217;s pick GeoLibre, a short description and the remote&#8217;s review rules.</figcaption></figure>



<p class="wp-block-paragraph">Graphically it works with KDE Discover, which I added to Plasma. There FlatPark appears under Settings as a Flatpak source next to Flathub. Searching for Helium finds the browser with version 0.20.3.1, a size of 8.2 MiB and the GPL-3.0 license. For Helium, Discover shows the Launch button because the browser is already installed.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397714af6&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397714af6" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="836" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/06-discover-flatpark-640x433.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/06-discover-flatpark-768x520.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/06-discover-flatpark.webp 1235w" width="1235" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/06-discover-flatpark.webp" alt="KDE Discover settings: under Flatpak, FlatPark (user), Flathub and Flathub (user) are enabled as package sources."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">KDE Discover lists FlatPark next to Flathub as a Flatpak source under Settings, both set up for the user.</figcaption></figure>



<h2 class="wp-block-heading">A vibe-coding bazaar?</h2>



<p class="wp-block-paragraph">The first reaction in the Reddit thread was predictable: &#8220;So flathub but for vibe coded apps. No thanks&#8221;. The argument behind it is fair, since many AI-assembled programs are said to be broken or never tested and to generate nothing but hype. The commenter gives no evidence for that.</p>



<p class="wp-block-paragraph">Another user counters that FlatPark does not only show such apps, it is simply more lenient. The list backs him up, because <a href="https://www.heidisql.com/">HeidiSQL</a>, <a href="https://www.audacityteam.org/">Audacity</a> and <a href="https://code.visualstudio.com/">Visual Studio Code</a> are no weekend experiments. Alongside them sit collections like <a href="https://getartcraft.com/">ArtCraft</a> with 16 and Ely Office with 7 apps, including PhotoCraft and ElyDoc.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397714ea3&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397714ea3" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="836" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/07-discover-photocraft-640x433.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/07-discover-photocraft-768x520.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/07-discover-photocraft.webp 1235w" width="1235" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/07-discover-photocraft.webp" alt="KDE Discover window showing the PhotoCraft app with an install button and a screenshot of the image editor."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">KDE Discover finds PhotoCraft right in the FlatPark repository. The image editor belongs to the ArtCraft collection, which FlatPark bundles with 16 apps.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397715166&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397715166" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="811" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/08-cachyos-photocraft-640x405.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/08-cachyos-photocraft-768x486.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/08-cachyos-photocraft-1280x811.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/08-cachyos-photocraft.webp 1426w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/08-cachyos-photocraft-1280x811.webp" alt="Screenshot of the image editing software PhotoCraft showing a photo of cyclists on a country road at sunset."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">After installation PhotoCraft runs on CachyOS. The interface looks tidy and resembles classic image editing instead of overloading you with AI features.</figcaption></figure>



<p class="wp-block-paragraph">ArtCraft calls itself a provider of open-source artist tools. The Craft Apps are, per its site, 16 native Rust desktop apps for image editing, vector graphics, video, page layout and audio, free to use. <a href="https://flatpark.org/apps/ai.storyteller.craft-anything/">CraftAnything</a> belongs to them, but FlatPark describes it as a software explorer and binary analysis workbench, not a graphics tool.</p>



<p class="wp-block-paragraph">The AI application, ArtCraft Studio, generates images and videos from scenes you assemble yourself. The project page lists it for macOS, Windows and the browser, but names no Linux app. FlatPark bundles the 16 Craft Apps instead. More image tools on the blog: <a href="https://linuxundich.de/en/shotwell-0-33-fast-gnome-photo-manager-finally-moves-to-gtk4/">Shotwell 0.33</a>, which I installed as a Flatpak.</p>



<p class="wp-block-paragraph">A second argument for FlatPark comes from a developer whose open-source IDE fails on Flathub because the build pulls code from the network while building. Bundling the dependencies would mean maintaining his own forks, and he rejects that. That Flathub dislikes network access during builds has good reasons (keyword: supply-chain attacks).</p>



<p class="wp-block-paragraph">For anyone who still wants to offer a Flatpak, a second remote is therefore a real option. In the thread others advise including the dependencies as submodules, and another user says Flathub packages pull dependencies from GitHub as well, with flatpak-builder even having dedicated functions for it. The thread does not settle the question.</p>



<h2 class="wp-block-heading">My take</h2>



<p class="wp-block-paragraph">A second remote is always also a second place you have to trust. In FlatPark&#8217;s favor are the review of every single app and that the permissions are laid out openly before installation. Against it speaks that you get the vendor&#8217;s binary, whose source code may never have been looked at by anyone.</p>



<p class="wp-block-paragraph">So I would use the remote only for programs that are not available otherwise, such as Helium, and keep getting the rest from Flathub, as I did with Aurynk, the graphical front end for <a href="https://linuxundich.de/en/scrcpy-5-hardware-decoding-arch-linux-aurynk/">scrcpy 5.0</a>. Have you already set up FlatPark, and which app were you missing there?</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/flatpark-flatpak-remote-ai-apps-helium/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Petition: Open source work should count as volunteering in Germany – about 15,000 signatures still missing</title>
		<link>https://linuxundich.de/en/petition-open-source-work-volunteering-germany/</link>
					<comments>https://linuxundich.de/en/petition-open-source-work-volunteering-germany/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Wed, 04 Nov 2026 12:49:43 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Opinion]]></category>
		<category><![CDATA[Petition]]></category>
		<category><![CDATA[Volunteering]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/?p=341</guid>

					<description><![CDATA[A petition to the German Bundestag calls for open source work to be recognized as volunteer work, on a par with sports clubs or the rescue services. Roughly half of the 30,000 signatures needed are still missing, and the petition closes on November 23. Sign it and share it, including with people who have nothing to do with Linux.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you write, maintain or translate software for everyone in Germany, the law treats it as a hobby. For tax and funding purposes, work on open source projects doesn&#8217;t count as &#8220;Ehrenamt&#8221;, the formal status of volunteer work, unlike coaching at a sports club, youth work or the rescue services. The <a href="https://openpetition.de/!sywhp">petition &#8220;Recognition of open source work as volunteering in Germany&#8221;</a> wants to change that, and I&#8217;ve just signed it.</p>



<p class="wp-block-paragraph">Boris Hinzer from Erkelenz started it in November 2025, and it&#8217;s addressed to the petitions committee of the Bundestag. Today the counter shows 15,884 signatures, 14,866 of which count toward the quorum in Germany. It takes 30,000. In other words, roughly half is still missing, and time is running out: the petition closes on November 23, 2026, in just under three weeks.</p>



<h2 class="wp-block-heading">What the petition calls for</h2>



<p class="wp-block-paragraph">The demand is quickly explained: open source work should be recognized as volunteering for the common good, on equal footing with club work, youth work or the rescue services. It starts from a contradiction. Even the German government&#8217;s coalition agreement names open source as a building block for digital sovereignty. Yet the people who build, maintain and document this software in their spare time get nothing for it. The cooperative WECHANGE put it in a nutshell in its interview with Boris:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The volunteers who build it every day don&#8217;t even legally count as volunteers.</p>
<cite>WECHANGE, interview with Boris Hinzer (translated)</cite></blockquote>



<p class="wp-block-paragraph">The petition gives six reasons. First, open source demonstrably serves the common good: internet protocols, security libraries, health IT and education technology rest to a large extent on voluntary contributions. Second, most of the development, maintenance and documentation happens unpaid in people&#8217;s free time, much like the work in a non-profit association, just digital. Third, public authorities, schools and companies all depend on it.</p>



<p class="wp-block-paragraph">Vulnerabilities like Heartbleed and Log4Shell showed just how much: millions of users benefit, while often only a handful of volunteers carry the responsibility. Fourth, recognition would create legal clarity. Fifth, volunteers do work that companies would otherwise have to buy at high hourly rates. And sixth, other countries already support free software with tax breaks and dedicated programs, so Germany risks falling behind.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Given enough eyeballs, all bugs are shallow.</p>
<cite>Eric S. Raymond, <em>The Cathedral and the Bazaar</em></cite></blockquote>



<p class="wp-block-paragraph">With this line, Eric S. Raymond explained in the late nineties why open code should be more secure: if enough people look at it, every bug gets spotted. Heartbleed showed the catch, because the flaw sat unnoticed in OpenSSL for about two years. Randall Munroe immortalized this in the xkcd comic <a href="https://xkcd.com/2347/">Dependency</a>: all of modern digital infrastructure balances on one tiny block kept alive for years by one person in Nebraska, without much thanks.</p>



<p class="wp-block-paragraph">The fourth point is the most concrete. With recognition, projects could pay tax-free expense allowances, just like sports clubs do for their coaches and volunteers. Non-profit projects would find it easier to get charitable status under German tax law. Contributors would be better protected against liability, similar to the board members of registered associations. And projects could reimburse costs and issue donation receipts on solid legal ground.</p>



<h2 class="wp-block-heading">Why Boris started the petition</h2>



<p class="wp-block-paragraph">Boris runs a web agency in Mönchengladbach and has been active in the TYPO3 community for about 20 years, since 2023 as volunteer vice president of the <a href="https://typo3.org/project/association">TYPO3 Association</a>. In a <a href="https://wechange.coop/2026/02/18/petition-open-source/">long interview with WECHANGE</a> (in German), he explains that he twice asked a public radio station to mention open source people on Germany&#8217;s Volunteer Day on December 5. He never got a reply.</p>



<p class="wp-block-paragraph">So he started a petition instead. He sums up his core argument in a line I like a lot: open source doesn&#8217;t live off &#8220;read-only&#8221;, it lives off taking part. Free software runs in ticket machines, game consoles and behind every streaming service, mostly without anyone noticing. The big tech companies make a fortune with it, yet contribute comparatively little to its development and funding.</p>



<p class="wp-block-paragraph">If you&#8217;d rather listen than read, <a href="https://www.youtube.com/@LinuxGuides">Linux Guides</a> explains in a video (in German) what the petition is about and why open source needs your help:</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube"><div class="wp-block-embed__wrapper">
<figure class="lui-video-embed"><button type="button" class="lui-video-facade" data-embed-src="https://www.youtube-nocookie.com/embed/oeigSqbvBOQ?feature=oembed&#038;autoplay=1" data-title="Open Source braucht DEINE Hilfe - Petition für Open Source im Ehrenamt" aria-label="Load and play video: Open Source braucht DEINE Hilfe - Petition für Open Source im Ehrenamt"><img decoding="async" src="https://linuxundich.de/en/wp-content/uploads/lui-cache/video_youtube_oeigSqbvBOQ-da657dea.jpg" alt="" loading="lazy" width="1280" height="720"><span class="lui-video-facade-play" aria-hidden="true"></span><span class="lui-video-facade-note">The video is only loaded from YouTube after you click.</span></button></figure>
</div><figcaption class="wp-element-caption">Linux Guides presents the petition for open source volunteering and explains why every signature counts.</figcaption></figure>



<h2 class="wp-block-heading">More than just code</h2>



<p class="wp-block-paragraph">When people think of open source, they picture developers reviewing pull requests late at night. But a whole landscape of initiatives has grown up around it that brings free software to people. <a href="https://di.day/">DI.DAY</a>, launched at 39C3 by the <a href="https://www.ccc.de/en/">Chaos Computer Club</a>, author Marc-Uwe Kling and many others, invites you to swap one big tech service for a free alternative on the first Sunday of every month.</p>



<p class="wp-block-paragraph">Ready-made &#8220;switching recipes&#8221; help with the move, from Firefox instead of Chrome and OpenStreetMap instead of Google Maps all the way to Linux instead of Windows. At <a href="https://www.repaircafe.org/en/">repair cafés</a>, volunteers don&#8217;t just fix toasters and bikes. Since Windows 10 reached its end of support, many also install Linux as part of the <a href="https://endof10.org/">End of 10</a> campaign on computers that would otherwise have ended up at the recycling center. That saves money, e-waste and quite a few nerves.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639773af10&quot;}" data-wp-interactive="core/image" data-wp-key="6af639773af10" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="689" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/opensource-petition-640x344.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/opensource-petition-768x413.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/opensource-petition-1280x689.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/opensource-petition-1536x826.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/opensource-petition.webp 1920w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/opensource-petition-1280x689.webp" alt="Firefox showing the petition page on openPetition: on the left a campaign photo of four people of different ages at laptops, on the right the title, petitioner Boris Hinzer, 15,900 signatures and a half-filled progress bar."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The petition&#8217;s campaign image shows young and old together at a laptop, exactly the audience of the many initiatives around free software.</figcaption></figure>



<p class="wp-block-paragraph">Then there are coding clubs like <a href="https://coderdojo.com/">CoderDojo</a> or Germany&#8217;s <a href="https://jugendhackt.org/">Jugend hackt</a>, where kids and teenagers use free tools to write their first programs, build robots or tinker with games. And there are courses for seniors, where volunteers patiently explain how to start a video call with the grandkids, set up a smartphone or spot a phishing email. In Germany, networks like <a href="https://www.digital-kompass.de/">Digital-Kompass</a> support such offers. Without these people, many would simply be left behind by digitalization.</p>



<p class="wp-block-paragraph">The odd part: helping out at a repair café can often already count as volunteering at a registered non-profit association today. The people who maintain the Linux that ends up on those old computers, or who translate the learning app for the coding club, do their work as a private pastime in the eyes of the law. Yet one depends directly on the other: without the software, there&#8217;d be nothing to install.</p>



<h2 class="wp-block-heading">What I know from my own articles</h2>



<p class="wp-block-paragraph">I run into this topic here on the blog all the time. Just in October, I wrote about <a href="https://linuxundich.de/en/gnome-needs-volunteers-extensions-team/">Javad Rahmatzadeh&#8217;s call for help</a>. He reviews the extensions on extensions.gnome.org, often 4 to 10 hours a day and unpaid, while monthly donations are close to zero. Without his work, there&#8217;d be no reviewed GNOME extensions, and by his own account Javad is close to burning out.</p>



<p class="wp-block-paragraph">It&#8217;s a similar story with <a href="https://linuxundich.de/en/ddnss-takeover-thank-you/">DDNSS.de</a>: Robert Niedziela has run the free DynDNS service since 2013, countless home servers rely on it, and now he&#8217;s looking for a successor. Or take the SELFHTML wiki, where generations of German web developers learned HTML. It had to go offline because of the PHP2Shell vulnerabilities until the team moved it to a new server, jumping 19 MediaWiki versions in four days.</p>



<p class="wp-block-paragraph">When I launched <a href="https://planetfoss.net/">PlanetFOSS</a>, I also noticed how many of its sources come from people who write their articles in their free time. That&#8217;s why blogs can now <a href="https://linuxundich.de/en/planetfoss-support-link-blogs-publishers/">add a link to their donation page</a> there. And to be honest, I know that side myself: before this blog existed, I wrote around 38,000 posts as &#8220;Chrissss&#8221; in the forum of <a href="https://ubuntuusers.de/">ubuntuusers.de</a>, the big German Ubuntu community, and maintained wiki articles.</p>



<h2 class="wp-block-heading">My take</h2>



<p class="wp-block-paragraph">Sure, there&#8217;s a catch, and critics in the petition&#8217;s debate point it out too: a large share of open source contributions comes from paid developers or freelancers. Without a clear line, a volunteer allowance could turn into a tax loophole. I agree, and drawing that line won&#8217;t be easy. But in my view, that&#8217;s a job for the lawmakers, not a reason to reject the recognition altogether.</p>



<p class="wp-block-paragraph">Sports clubs manage the distinction just fine, after all: the pro coach gets a salary, the youth coach on Saturday morning gets the volunteer allowance. Why shouldn&#8217;t that work for a maintainer who patches security holes in a library after work? The petition doesn&#8217;t ask the state to pay for every line of code. It asks for the same rules that have long applied to other kinds of volunteering.</p>



<h2 class="wp-block-heading">Sign and share the petition</h2>



<p class="wp-block-paragraph">So there are about 15,000 signatures from Germany still missing by November 23. That sounds like a lot, but it&#8217;s doable: if everyone who has signed convinces just two more people, the quorum is reached. Please tell people who have nothing to do with Linux, too. They use the software this is all about every single day anyway.</p>



<div class="wp-block-group lui-callout is-tip is-layout-flow wp-block-group-is-layout-flow">
<p class="lui-callout-label wp-block-paragraph">// Sign now</p>



<p class="wp-block-paragraph">Sign the <a href="https://openpetition.de/!sywhp">petition on openPetition</a>, the form takes about a minute. Then share the link on Mastodon, Bluesky or LinkedIn, in your family chat or your club&#8217;s group. The petition page is also available in <a href="https://openpetition.de/opensource">German</a>, <a href="https://openpetition.de/!hnnvq">French</a> and <a href="https://openpetition.de/!mjvmy">Spanish</a>, so you can pass it on to friends in other countries too. Every signature brings the quorum a little closer.</p>
</div>



<p class="wp-block-paragraph">If you don&#8217;t live in Germany, you can still sign and share it, even though only signatures from Germany count toward the quorum. Anyone who wants to promote it at their club, company or university can download a tear-off flyer with a QR code as a PDF from the petition page and put it up. Have you signed yet, and do you know other initiatives that wouldn&#8217;t exist without volunteers?</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/petition-open-source-work-volunteering-germany/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ghostty-config 2.0: Settings for Ghostty right in the terminal</title>
		<link>https://linuxundich.de/en/ghostty-config-2-0-ghostty-settings-terminal/</link>
					<comments>https://linuxundich.de/en/ghostty-config-2-0-ghostty-settings-terminal/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Tue, 03 Nov 2026 12:25:20 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Ghostty]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Tips]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/ghostty-config-2-0-ghostty-settings-terminal/</guid>

					<description><![CDATA[Ghostty knows 211 options but has no settings dialog. ghostty-config 2.0 puts themes, fonts and the window into an interface inside the terminal, writes every change as a line of its own to the config and reloads Ghostty right away.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Ghostty has replaced <a href="https://linuxundich.de/en/rutile-0-2-2-a-modern-alternative-to-tilix/">Tilix</a> as my go-to terminal app, and I only walked you through what&#8217;s new in <a href="https://linuxundich.de/en/ghostty-1-4-linux-terminal/">Ghostty 1.4</a> last week. One point I only touched on there: Ghostty has no menu bar with settings dialogs. If you want a different font or a new color scheme, you edit the config by hand. ghostty-config, which has just reached version 2.0, fixes that.</p>



<h2 class="wp-block-heading">Configuration by text file only</h2>



<p class="wp-block-paragraph">You configure Ghostty through the file <code>~/.config/ghostty/config</code>, where you write lines such as <code>font-size = 12</code>. Ghostty itself tells you which options exist in the first place. The following command lists every setting along with its explanation. For Ghostty 1.4.0, that adds up to 211 options and a good 4,300 lines of text. Happy reading.</p>



<pre class="wp-block-code"><code>$ ghostty +show-config --default --docs | less</code></pre>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397741ec5&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397741ec5" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/01-ghostty-optionen-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/01-ghostty-optionen-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/01-ghostty-optionen.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/01-ghostty-optionen.webp" alt="Ghostty window with less showing the explanation of the language option, behind it Firefox with the Option Reference page on ghostty.org"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Ghostty lists its options with explanations in the terminal, while the long option reference on the project&#8217;s website waits in the background.</figcaption></figure>



<p class="wp-block-paragraph">The website isn&#8217;t much different. The <a href="https://ghostty.org/docs/config/reference">option reference</a> is a very long page, and the developers themselves recommend using your browser&#8217;s search. At least they are aware of the problem and promise &#8220;a more user-friendly way to view and organize these options&#8221; for the future. Until then, other projects step in to fill the gap, and ghostty-config is one of them.</p>



<h2 class="wp-block-heading">What is ghostty-config?</h2>



<p class="wp-block-paragraph"><a href="https://github.com/Vitruves/ghostty-config">ghostty-config</a> comes from Vitruves, the name of the developer account on GitHub and Reddit. The program is written in Go, licensed under MIT and runs on Linux and macOS. It doesn&#8217;t open a window of its own; the interface runs right in the terminal. Themes, fonts, window, input, session and extensions each get their own tab, plus a section for the tool itself.</p>



<p class="wp-block-paragraph">In Ghostty and Kitty, ghostty-config draws its interface as images, thanks to the Kitty graphics protocol. File managers such as <a href="https://linuxundich.de/en/tfm-a-modern-file-manager-for-the-terminal/">Tfm</a> use the same protocol to bring image previews into the terminal. That&#8217;s why the whole thing looks more like a desktop app than a classic terminal program. In other terminals and in Tmux, the program falls back to plain text characters. The interface is English only.</p>



<h2 class="wp-block-heading">Three layouts in version 2.0</h2>



<p class="wp-block-paragraph">Version 2.0.0 <a href="https://www.reddit.com/r/Ghostty/comments/1xkyi83/ghosttyconfig_20_two_new_layouts_ghostty_14/">came out</a> on November 1, a little over a month after the project started on GitHub. According to Vitruves, a lot of it comes from the comments on the previous announcement on Reddit. The biggest change is two additional layouts. On first launch, ghostty-config asks how you want to work; later you switch with <code>F4</code> or via <em>Tool › Interface › Layout</em>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977421e4&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977421e4" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/02-ghostty-config-layout-wahl-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/02-ghostty-config-layout-wahl-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/02-ghostty-config-layout-wahl.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/02-ghostty-config-layout-wahl.webp" alt="ghostty-config in Ghostty with the question How do you want to work? and three cards for the Atelier, Palette and Guided layouts"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">On first launch, ghostty-config asks whether you&#8217;d rather work with Atelier, Palette or Guided.</figcaption></figure>



<p class="wp-block-paragraph">Atelier is the previous interface and still the default. The sections sit on the left, a wall of cards for a total of 1,071 themes on the right. Each card shows a small preview with Git output, color palette and contrast score. You move through the wall with the arrow keys without changing anything. Only pressing <code>Enter</code> writes the theme to the config and makes Ghostty reload.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977423bc&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977423bc" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/03-ghostty-config-themes-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/03-ghostty-config-themes-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/03-ghostty-config-themes.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/03-ghostty-config-themes.webp" alt="ghostty-config in the Atelier layout: theme families on the left, 15 theme cards on the right, the TokyoNight Moon card is marked Applied"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">In Atelier, ghostty-config shows every theme as a card with a preview; TokyoNight Moon is the one applied here.</figcaption></figure>



<p class="wp-block-paragraph">Ghostty 1.4 ships 819 of these themes itself; Vitruves sorted the remaining 252 into families with names such as Albers, Kandinsky, Wabi-sabi or Jung. If you only want to try a theme, press <code>Ctrl</code>+<code>T</code>. Then just the current terminal changes its colors, and the config stays untouched. <code>Ctrl</code>+<code>F</code> adds a theme to your list of favorites.</p>



<p class="wp-block-paragraph">The <em>Fonts</em> tab works in a similar way. There you pick font family, style and size and see a sample for each font, including easily confused characters such as 0 and O or 1, l and I. Line height, ligatures and letter spacing are set with sliders. If you&#8217;re missing a suitable font, ghostty-config offers 70 monospace families that it downloads with a single <code>Enter</code>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977425c1&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977425c1" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/04-ghostty-config-schriften-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/04-ghostty-config-schriften-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/04-ghostty-config-schriften.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/04-ghostty-config-schriften.webp" alt="Fonts tab in ghostty-config: the font list with Adwaita Mono, Liberation Mono and Source Code Pro on the left, a sample of Adwaita Mono on the right"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">ghostty-config shows a sample of every font, here Adwaita Mono, GNOME&#8217;s monospace font.</figcaption></figure>



<p class="wp-block-paragraph">Palette, on the other hand, relies on a single search field for themes, fonts, settings, shortcuts and commands. Type &#8220;opacity&#8221;, for example, and ghostty-config lists all matching settings. You can change the highlighted one right in the list, and next to it you see the line that will end up in the config. If you know what you&#8217;re looking for, this is the fastest way to get there. <code>F3</code> also shows Ghostty&#8217;s own explanation of the option.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977427a6&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977427a6" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/05-ghostty-config-palette-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/05-ghostty-config-palette-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/05-ghostty-config-palette.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/05-ghostty-config-palette.webp" alt="ghostty-config in the Palette layout with the search term opacity, Background opacity is highlighted with 0.85 and the line + background-opacity = 0.85"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Searching for opacity in Palette turns up six settings, with the new opacity shown right next to it as a config line.</figcaption></figure>



<p class="wp-block-paragraph">Guided is meant for everyone who doesn&#8217;t want to scroll through every option. The layout takes you through colors, font, window, cursor, and copy and paste in six steps and asks simple questions along the way, such as whether you want a light or a dark terminal. Each step comes with large previews. If you do want to set more, a link takes you to all the options for that topic.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af639774297c&quot;}" data-wp-interactive="core/image" data-wp-key="6af639774297c" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/06-ghostty-config-guided-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/06-ghostty-config-guided-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/06-ghostty-config-guided.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/06-ghostty-config-guided.webp" alt="ghostty-config in the Guided layout, step 1 of 6 with the question Light or dark? and six previews of a terminal running git status"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Guided asks step by step what matters to you, starting with the choice between light and dark.</figcaption></figure>



<p class="wp-block-paragraph">On top of that, ghostty-config has become snappier. According to the changelog, it now takes 42 instead of 103 milliseconds to the first frame, and the interface draws two to six times faster. The program also knows the new options of Ghostty 1.4, but only offers them if version 1.4 is actually installed. If you&#8217;re still on Ghostty 1.3, you can keep using ghostty-config.</p>



<h2 class="wp-block-heading">What ghostty-config writes to the file</h2>



<p class="wp-block-paragraph">With a tool that writes to my config, I want to know exactly what it does there. ghostty-config changes each setting on a line of its own and leaves comments in place. Before the first change, it creates a backup in <code>~/.config/ghostty-config/backups/</code>. After every write, it checks the file with <code>ghostty +validate-config</code> and shows any errors along with the line number.</p>



<p class="wp-block-paragraph">I tried the whole thing in a Fedora VM with a new theme and a bit of transparency. The first four lines were already in the file; ghostty-config added the last two, each with a blank line in front. That keeps the config readable, and you can always go back to editing it by hand if you prefer.</p>



<pre class="wp-block-code"><code># Ghostty
font-size = 12
window-width = 100
window-height = 30

theme = TokyoNight Moon

background-opacity = 0.85</code></pre>



<p class="wp-block-paragraph">On Linux, ghostty-config asks Ghostty via D-Bus to reload its configuration. In my test this worked without any extra steps, and Ghostty acknowledged every change with a &#8220;Konfiguration wurde neu geladen&#8221; (configuration reloaded) toast on my German system. According to the documentation, this needs <code>gdbus</code> and a Ghostty instance that bundles all windows; otherwise you reload Ghostty yourself. By the way, when you quit, ghostty-config copies its 252 own themes to <code>~/.config/ghostty/themes</code>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397742c34&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397742c34" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="800" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/07-ghostty-tokyonight-640x400.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/07-ghostty-tokyonight-768x480.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/07-ghostty-tokyonight.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/07-ghostty-tokyonight.webp" alt="Ghostty with Fastfetch on Fedora Linux 44 and GNOME 50.6, the window is slightly translucent and shows the purple wallpaper"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">A few tweaks in ghostty-config later, Ghostty runs with TokyoNight Moon and a slightly translucent background.</figcaption></figure>



<p class="wp-block-paragraph">In the <a href="https://www.reddit.com/r/Ghostty/comments/1xkyi83/ghosttyconfig_20_two_new_layouts_ghostty_14/">Reddit thread</a> about the new version, someone asked why you should set the theme in Ghostty rather than in Zsh. The answer from the community: prompts and scripts mostly use color names such as red or green, and the terminal decides the exact shade. Switch the theme in Ghostty and everything follows along, without you having to redefine the colors in your shell.</p>



<h2 class="wp-block-heading">Installation</h2>



<p class="wp-block-paragraph">ghostty-config installs with a one-liner. The script downloads the right binary for your system, verifies its checksum and puts it in <code>~/.local/bin</code>. If you don&#8217;t blindly pipe scripts from the internet into your shell, download the file first and read it. There isn&#8217;t much more in it than the steps described, and according to a comment, the only thing counted is that the script was fetched.</p>



<pre class="wp-block-code"><code>$ curl -fsSL https://ghostty-config.vitruves.workers.dev/install.sh | sh
$ ghostty-config</code></pre>



<p class="wp-block-paragraph">To update, simply run the same command again. On top of that, ghostty-config checks GitHub for a new version at most once an hour; you can turn that off under <code>F4</code>. There are no distribution packages yet. The AUR package ghostty-config-cli, by the way, belongs to a different project with a similar idea. Ghostty itself came from the scottames/ghostty COPR repository in my Fedora VM.</p>



<p class="wp-block-paragraph">All in all, ghostty-config is in my opinion the tool Ghostty has been missing so far. It doesn&#8217;t replace a settings dialog, but you can set a new theme or a different font with the arrow keys and <code>Enter</code>, and the config stays a readable text file. For a project that&#8217;s only a little over a month old, that&#8217;s pretty well rounded. How do you set up your terminal, by hand or with a tool?</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/ghostty-config-2-0-ghostty-settings-terminal/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PlanetFOSS: Weekly review, Bluesky and a search with filters</title>
		<link>https://linuxundich.de/en/planetfoss-weekly-review-bluesky-search/</link>
					<comments>https://linuxundich.de/en/planetfoss-weekly-review-bluesky-search/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Mon, 02 Nov 2026 10:05:37 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[Bluesky]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PlanetFOSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[RSS]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/?p=328</guid>

					<description><![CDATA[Every Monday, PlanetFOSS sums up the past week as a small magazine page: cover story, supernovas, new releases and the week in numbers. On top of that, PlanetFOSS now posts on Bluesky, and the search filters by time and section.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Almost two weeks after launch, <a href="https://linuxundich.de/en/planetfoss-launch-linux-news-bundles-supernovas/">PlanetFOSS</a> has found its audience: last week, the site averaged about 2,200 page views a day. Around 1,300 times a day, someone arrived from outside, and the rest were clicks within PlanetFOSS. Bots and my own visits don&#8217;t count, and none of this needs cookies or tracking.</p>



<p class="wp-block-paragraph">At the same time, the site collects more than 600 posts a week from <a href="https://planetfoss.net/en/sources/">over a hundred sources</a>. If you don&#8217;t drop by every day, it&#8217;s easy to lose track of what actually mattered. That&#8217;s exactly what the new weekly review is for. PlanetFOSS also posts on Bluesky now, next to Mastodon, and the search can finally filter and page through results.</p>



<h2 class="wp-block-heading">The week as a small magazine</h2>



<p class="wp-block-paragraph">Every Monday, PlanetFOSS sums up the past week on a page of its own. At the top, a few sentences give you the numbers of the week, along with key figures for posts, sources, supernovas and videos. <a href="https://planetfoss.net/en/weekly/2026-44/">In week 44</a>, 115 sources published 659 posts, seven percent more than the week before. These sentences come from fixed templates and the numbers; no AI writes anything here.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397768294&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397768294" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-1280x870.webp" alt="Header of the PlanetFOSS weekly review in the German interface: week 44 in large type with the period from October 26 to November 1, 2026, below it a paragraph with the week's numbers and five tiles for posts, sources, supernovas, videos and the split by language."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The weekly review opens with an intro built from the week&#8217;s numbers and key figures for posts, sources, supernovas and videos.</figcaption></figure>



<p class="wp-block-paragraph">Next comes the cover story, the news that most sources covered. In week 44, that was the return of Ubuntu Core Desktop, which twelve sources wrote about. Next to it, you see the headlines of the other reports, for example from It&#8217;s FOSS, GamingOnLinux or Linux-Magazin. After that come the supernovas of the week with an image and a quote, among them <a href="https://linuxundich.de/en/ghostty-1-4-linux-terminal/">Ghostty 1.4</a> and <a href="https://linuxundich.de/en/30-years-kde-plasma-6-8-documentary/">KDE Plasma 6.8</a>.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977684f2&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977684f2" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-supernovas-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-supernovas-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-supernovas-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-supernovas-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-supernovas.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-wochenrueckblick-supernovas-1280x870.webp" alt="Supernovas of the week section in the PlanetFOSS weekly review: six dark cards with images for Firefox 159, r/opensource, Raspberry Pi 4, KDE Plasma 6.8, Ghostty 1.4 and TUXEDO Nano, each with a quote and the number of posts and sources."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Every supernova of the week gets its own card with an image, a quote from one of the reports and the number of sources.</figcaption></figure>



<p class="wp-block-paragraph">Further down, the review lists the other big stories, new releases that several sources wrote about, and the most noticed post in each section. In “The week in numbers”, you see which day was busiest and which sources were the most prolific; Phoronix, for example, came to 75 posts. On top of that, there are the videos of the week, the posts you starred, and an archive.</p>



<p class="wp-block-paragraph">You&#8217;ll find the review at <a href="https://planetfoss.net/en/weekly/">planetfoss.net/en/weekly/</a>, and from Monday to Wednesday a banner on the <a href="https://planetfoss.net/en/">front page</a> points to it as well. If you&#8217;d rather use a feed reader, subscribe to the review&#8217;s own <a href="https://planetfoss.net/en/weekly/feed.xml">RSS feed</a>. And if you follow PlanetFOSS on Mastodon or Bluesky, the review lands in your timeline as a post on Monday mornings anyway. Its link takes you straight to the matching issue.</p>



<h2 class="wp-block-heading">PlanetFOSS is now on Bluesky too</h2>



<p class="wp-block-paragraph">Until now, PlanetFOSS was only on <a href="https://mastodon.social/@planetfoss">Mastodon</a> when it came to social networks. Now the site also posts on Bluesky, under the handle <a href="https://bsky.app/profile/planetfoss.net">@planetfoss.net</a>. The account sends out every supernova about half an hour after it ignites, meaning as soon as many sources cover the same topic at once, and the weekly review on Mondays. As on Mastodon, the posts are in English and come with a link card and an image.</p>



<p class="wp-block-paragraph">So your timeline doesn&#8217;t overflow, there&#8217;s a brake: at most two posts in six hours, and the same topic comes back no sooner than a week later. Bluesky marks the account as automated, and here too the texts come from fixed templates. Mastodon, Bluesky and all RSS feeds now sit together in the PlanetFOSS header under the new <em>Follow PlanetFOSS</em> menu.</p>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6af6397768765&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-5 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977687d3&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977687d3" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 564px) 100vw, 564px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-profil-564x1024.webp 564w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-profil-640x1161.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-profil-768x1394.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-profil-846x1536.webp 846w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-profil.webp 1080w" width="564" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-profil-564x1024.webp" alt="PlanetFOSS profile in the Bluesky app on a smartphone with banner, round logo, bot icon next to the name, the handle @planetfoss.net, an English description and links to the website."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The PlanetFOSS profile in the Bluesky app: the bot icon next to the name shows that a program is posting here.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397768981&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397768981" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 564px) 100vw, 564px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-wochenrueckblick-564x1024.webp 564w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-wochenrueckblick-640x1161.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-wochenrueckblick-768x1394.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-wochenrueckblick-846x1536.webp 846w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-wochenrueckblick.webp 1080w" width="564" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-wochenrueckblick-564x1024.webp" alt="PlanetFOSS post in the Bluesky app about week 44: a list of the supernovas, hashtags and a link card with an image to the weekly review from October 26 to November 1, 2026."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">On Mondays, the weekly review arrives with the supernovas of the week and a link card to the issue on PlanetFOSS.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397768b97&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397768b97" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="1024" sizes="auto, (max-width: 564px) 100vw, 564px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-start-564x1024.webp 564w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-start-640x1161.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-start-768x1394.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-start-846x1536.webp 846w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-start.webp 1080w" width="564" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-bluesky-start-564x1024.webp" alt="Welcome post “Hello Bluesky!” by PlanetFOSS in the Bluesky app with a short explanation of supernovas, hashtags and a link card to planetfoss.net."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The first post introduces PlanetFOSS on Bluesky and links to the English version of the site.</figcaption></figure>

</figure>



<h2 class="wp-block-heading">Search with filters</h2>



<p class="wp-block-paragraph">Until now, the search was rather crude: it showed at most 60 results, with no way to page through them. Now you can narrow the results down to the <em>last 7 days</em>, the <em>last 30 days</em> or the <em>last year</em> and limit them to one section. You can sort them by <em>best match</em> or <em>newest first</em>. PlanetFOSS spreads up to 150 results across pages of 30 posts each.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397768f9b&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397768f9b" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-suche-filter-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-suche-filter-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-suche-filter-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-suche-filter-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-suche-filter.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-suche-filter-1280x870.webp" alt="PlanetFOSS search page in the German interface with the search term Wayland, below it the drop-downs for time set to the last 30 days, section set to all sections and sorting set to newest first, 52 results and four article cards about Budgie, Labwc and Noctalia."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The search now filters by time and section and sorts by relevance or date, here Wayland over the last 30 days.</figcaption></figure>



<p class="wp-block-paragraph">This comes in handy when you only want to know what has happened lately with a topic, without digging through old news. <a href="https://planetfoss.net/en/search/?q=Wayland&amp;zeit=30&amp;sort=neu">A Wayland search over the last 30 days</a>, for example, returns 39 results in the English view, with the newest at the top. With a section as a filter, you can also narrow things down to, say, only desktop or self-hosting news.</p>



<h2 class="wp-block-heading">Hiding sources and sections</h2>



<p class="wp-block-paragraph">Not every source interests everyone, and if you don&#8217;t care about games, you may not want to see Steam news at all. That&#8217;s why every source and section page now has a <em>Hide source</em> or <em>Hide section</em> button, and the same switch is in the <em>Display</em> menu at the top right. The posts then disappear from the front page and all lists, and a short note at the top tells you how many there were.</p>



<p class="wp-block-paragraph">You don&#8217;t need an account for this. PlanetFOSS only remembers your choice in your browser, without any cookie, so you&#8217;ll have to make it again on your phone. Everything you&#8217;ve hidden is listed in the solar system, where a click on <em>show</em> brings it back. There you&#8217;ll also find the address of a personal RSS feed that leaves out the same sources and sections.</p>



<figure data-wp-context="{&quot;galleryId&quot;:&quot;6af639776922c&quot;}" data-wp-interactive="core/gallery" class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-6 is-layout-flex wp-block-gallery-is-layout-flex">

<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397769294&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397769294" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-quelle-ausblenden-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-quelle-ausblenden-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-quelle-ausblenden-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-quelle-ausblenden-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-quelle-ausblenden.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-quelle-ausblenden-1280x870.webp" alt="Linus Tech Tips source page on PlanetFOSS in the German interface with the Hide source button at the top right, below it a video from the source and several article cards."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">On every source page, a button at the top right hides all posts from that source, here using Linus Tech Tips as an example.</figcaption></figure>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397769420&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397769420" class="wp-block-image size-large wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-ausgeblendet-verwalten-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-ausgeblendet-verwalten-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-ausgeblendet-verwalten-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-ausgeblendet-verwalten-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-ausgeblendet-verwalten.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/11/planetfoss-ausgeblendet-verwalten-1280x870.webp" alt="Box listing what is hidden on PlanetFOSS in the solar system, in the German interface, with Linus Tech Tips and the Gaming section, each with a show button, below it the address of the personal feed and a note that everything is stored only in the browser."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">The solar system lists all hidden sources and sections, plus the address of a personal RSS feed without these posts.</figcaption></figure>

</figure>



<p class="wp-block-paragraph">All of this is available on <a href="https://planetfoss.net/en/">planetfoss.net</a> right now, and from now on the weekly review comes out every Monday. With hiding in particular, I&#8217;m curious what you&#8217;d like to get rid of, because your choice stays in your browser and never reaches me. What else are you missing on PlanetFOSS? Let me know in the comments or by email at <a href="mailto:info@planetfoss.net">info@planetfoss.net</a>.</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/planetfoss-weekly-review-bluesky-search/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>New in TUXEDO OS in October 2026</title>
		<link>https://linuxundich.de/en/new-in-tuxedo-os-in-october-2026/</link>
					<comments>https://linuxundich.de/en/new-in-tuxedo-os-in-october-2026/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate></pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[Audio]]></category>
		<category><![CDATA[KDE]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[TUXEDO]]></category>
		<category><![CDATA[TUXEDO OS]]></category>
		<category><![CDATA[X11]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/?p=312</guid>

					<description><![CDATA[In October 2026, five issues of “This Week in TUXEDO OS” and three news posts about TUXEDO OS appeared. Among them: “KDE Plasma 6.8 Beta Released”. KDE apps: KDE Photos, Minuet, Drawy, Audex, KGeoTag.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">In October 2026, five issues of “This Week in TUXEDO OS” and three news posts about TUXEDO OS appeared on the TUXEDO Computers blog. Here you’ll find the news, the KDE apps and tips of the month, and the most important updates, each with a link to the full text.</p>



<div class="wp-block-group lui-callout is-info has-global-padding is-layout-constrained wp-block-group-is-layout-constrained">
<p class="lui-callout-label wp-block-paragraph">// Disclosure</p>



<p class="wp-block-paragraph">I work at TUXEDO Computers and write “This Week in TUXEDO OS” together with my colleagues. Linux und Ich compiles this overview automatically from the month’s issues and news posts, and the selection follows fixed rules. The full texts are available at TUXEDO.</p>


</div>



<p class="lui-wo-kick wp-block-paragraph">News · October 12</p>



<h2 class="wp-block-heading" id="kde-plasma-6-8-beta-released">KDE Plasma 6.8 Beta Released</h2>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Last week, KDE released the beta version of Plasma 6.8. This marks the start of the final testing phase for the next release of the free desktop environment. We&#8217;d like to give you a sneak peek at the new features.</p>
<cite>Teaser at TUXEDO Computers</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/KDE-Plasma-6-8-Beta-Released">Read the news at TUXEDO →</a></p>



<p class="wp-block-paragraph">Related on Linux und Ich: <a href="https://linuxundich.de/en/30-years-kde-plasma-6-8-documentary/">30 Years of KDE: Plasma 6.8 Drops X11, Plus a Birthday Documentary</a> · <a href="https://linuxundich.de/en/kde-the-documentary-premieres-on-october-14-right-on-time-for-the-30th-birthday/">KDE: The Documentary premieres on October 14, right on time for the 30th birthday</a></p>



<p class="lui-wo-kick wp-block-paragraph">News · October 14</p>



<h2 class="wp-block-heading" id="plasma-6-8-drops-x11-in-favor-of-wayland">Plasma 6.8 drops X11 in favor of Wayland</h2>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">The latest version 6.8 of the Plasma desktop, released on October 14, brings improvements in many areas. At the same time, the removal of the X11 session marks the end of an era. We’ll explain what this means for you.</p>
<cite>Teaser at TUXEDO Computers</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/Plasma-6-8-drops-X11">Read the news at TUXEDO →</a></p>



<p class="lui-wo-kick wp-block-paragraph">News · October 30</p>



<h2 class="wp-block-heading" id="tuxedo-os-open-beta-approaching-the-final-stretch">TUXEDO OS Open Beta Approaching the Final Stretch</h2>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">In November, we&#8217;ll be entering the final stretch of the TUXEDO OS Open Beta. If you&#8217;ve found any bugs or other issues, now is the time to report them.</p>
<cite>Teaser at TUXEDO Computers</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/TUXEDO-OS-Open-Beta-Approaching-the-Final-Stretch">Read the news at TUXEDO →</a></p>



<p class="wp-block-paragraph">Related on Linux und Ich: <a href="https://linuxundich.de/en/pulsgeber-0-5-3-tuxedo-control-center-3-1/">Pulsgeber 0.5.3: Ready for TUXEDO Control Center 3.1</a> · <a href="https://linuxundich.de/en/pulsgeber-tuxedo-control-center-profiles-in-the-gnome-quick-settings/">Pulsgeber: TUXEDO Control Center Profiles in the GNOME Quick Settings</a></p>



<p class="lui-wo-kick wp-block-paragraph">This Week in TUXEDO OS</p>



<h2 class="wp-block-heading" id="kde-apps">KDE Apps of the Month</h2>



<h3 class="wp-block-heading">KDE Photos – A New Image Manager for the Plasma Desktop</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If you open an image under Plasma, chances are you have been using Gwenview for many years.</p>
<cite>This Week in TUXEDO OS #40</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-40-2026">Full introduction in issue #40 →</a></p>



<h3 class="wp-block-heading">Minuet – Ear Training with KDE</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Recognizing intervals, picking out chords, clapping back rhythms: people who learn an instrument usually train their ear with textbooks and listening examples. Minuet from the KDE project takes over this task on your computer.</p>
<cite>This Week in TUXEDO OS #41</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-41-2026">Full introduction in issue #41 →</a></p>



<h3 class="wp-block-heading">Drawy – A Canvas for Your Ideas</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Some ideas are easier to draw than to put into words. Whether it is a flowchart, a quick sketch, or a branching train of thought: on a digital whiteboard, you can organize your thoughts and make connections visible.</p>
<cite>This Week in TUXEDO OS #42</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-42-2026">Full introduction in issue #42 →</a></p>



<h3 class="wp-block-heading">Audex – Digitizing Audio CDs on Linux</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Even in the age of streaming, many households still have numerous music CDs sitting on their shelves. Anyone looking to digitize their collection and play their music on a computer, smartphone, or other devices will find Audex a useful tool for the job.</p>
<cite>This Week in TUXEDO OS #43</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">Full introduction in issue #43 →</a></p>



<h3 class="wp-block-heading">KGeoTag – Adding Location Data to Photos After the Fact</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Anyone who takes photos with a digital camera on vacation or while hiking knows the problem: weeks later, you often no longer know exactly where a picture was taken. Smartphones save the location automatically, but many digital cameras lack a GPS receiver.</p>
<cite>This Week in TUXEDO OS #44</cite></blockquote>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">Full introduction in issue #44 →</a></p>



<p class="lui-wo-kick wp-block-paragraph">This Week in TUXEDO OS</p>



<h2 class="wp-block-heading" id="tips">Tips of the Month</h2>



<h3 class="wp-block-heading">Searching and Monitoring in the Terminal with fzf and btop</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">If you work in the terminal often, you know the problem: the command you are looking for is somewhere in the history, the file is buried in a deeply nested folder, and the process that spins up the fan is hidden in a long list.</p>
<cite>This Week in TUXEDO OS #41</cite></blockquote>



<p class="wp-block-paragraph">What the tip covers:</p>



<ul class="wp-block-list">
<li>Installation</li>


<li>fzf: Fuzzy Search Any List</li>


<li>btop: A System Monitor in the Terminal</li>


<li>Limitations</li>

</ul>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-41-2026">Read the tip in issue #41 →</a></p>



<h3 class="wp-block-heading">Reading the APT Package History and Undoing Changes</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">After an update, a program no longer starts, or a package that was there yesterday is missing. At the latest, the question arises: what has actually changed on the system in the last few days?</p>
<cite>This Week in TUXEDO OS #42</cite></blockquote>



<p class="wp-block-paragraph">What the tip covers:</p>



<ul class="wp-block-list">
<li>Reading the History on TUXEDO OS</li>


<li>Undoing Changes with APT 3</li>


<li>Limitations</li>

</ul>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-42-2026">Read the tip in issue #42 →</a></p>



<h3 class="wp-block-heading">Automatic Light and Dark Mode with Night Light</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">In Europe, daylight saving time ends on Sunday, October 25, and it gets dark an hour earlier in the evening. If you are still working on your notebook by then, a bright desktop can quickly feel glaring.</p>
<cite>This Week in TUXEDO OS #43</cite></blockquote>



<p class="wp-block-paragraph">What the tip covers:</p>



<ul class="wp-block-list">
<li>The Day-Night Cycle Sets the Pace</li>


<li>Night Light: Warmer Colors in the Evening</li>


<li>The Theme Changes with the Time of Day</li>

</ul>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">Read the tip in issue #43 →</a></p>



<h3 class="wp-block-heading">Automatically Lower the Refresh Rate on Battery</h3>



<blockquote class="wp-block-quote lui-wo-anriss is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Many notebooks, gaming models in particular, come with displays running at 120, 165, or 240 Hz. Motion looks smoother, but every extra frame costs power because the GPU and the display have to work harder. At your desk with the power adapter plugged in, that does not matter, but on the go it does.</p>
<cite>This Week in TUXEDO OS #44</cite></blockquote>



<p class="wp-block-paragraph">What the tip covers:</p>



<ul class="wp-block-list">
<li>Find Suitable Modes</li>


<li>Create the Script</li>


<li>Add It to Power Management</li>

</ul>



<p class="wp-block-paragraph"><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">Read the tip in issue #44 →</a></p>



<p class="lui-wo-kick wp-block-paragraph">This Week in TUXEDO OS</p>



<h2 class="wp-block-heading" id="updates">Updates and Security</h2>



<p class="wp-block-paragraph">TUXEDO’s own packages and important security updates from this month’s issues, each with the latest version. In addition, there were 97 Ubuntu Security Notices (USN) that flow into TUXEDO OS.</p>



<figure class="wp-block-table lui-wo-tx-pakete"><table><thead><tr><th>Package</th><th>Version</th><th>Type</th><th>Issue</th></tr></thead><tbody><tr><td>chromium</td><td><code>156.0.8078.73</code></td><td>Security</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">#44</a></td></tr><tr><td>firefox</td><td><code>159.0~tux1</code></td><td>Security</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">#44</a></td></tr><tr><td>linux</td><td><code>v7.0.0–113038.38~24.04.4tux1</code></td><td>Security</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-42-2026">#42</a></td></tr><tr><td>thunderbird</td><td><code>153.6.0esr~tux1</code></td><td>Security</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">#44</a></td></tr><tr><td>TUXEDO Control Center</td><td><code>3.1.2</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">#44</a></td></tr><tr><td>tuxedo-base-files</td><td><code>4.0.10~24.04.5~tux1</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">#43</a></td></tr><tr><td>tuxedo-drivers</td><td><code>4.25.0</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">#43</a></td></tr><tr><td>tuxedo-firefox-config</td><td><code>3.0.0</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">#43</a></td></tr><tr><td>tuxedo-thunderbird-config</td><td><code>3.0.1</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">#43</a></td></tr><tr><td>tuxedo-tomte</td><td><code>3.0.6</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026">#44</a></td></tr><tr><td>tuxedo-yt6801</td><td><code>1.0.32</code></td><td>TUXEDO</td><td><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026">#43</a></td></tr></tbody></table></figure>



<p class="lui-wo-kick wp-block-paragraph">TUXEDO · October 2026</p>



<h2 class="wp-block-heading" id="issues">All Issues in October 2026</h2>



<ul class="wp-block-list lui-wo-tx-ausgaben">
<li><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-40-2026"><strong>#40</strong> from October 2</a>: This week brought some genuinely good news from our western neighbors. Both the Netherlands and France are developing workplace environments for public authorities that combine a Linux operating system with the Plasma desktop and an office suite.</li>


<li><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-41-2026"><strong>#41</strong> from October 9</a>: Plasma 6.8 is about to be released: the KDE developers have brought the beta into its final phase, and the release is planned for October 14. What matters most is what is missing: for the first time, Plasma no longer ships an X11 session, and Wayland is the only option at login.</li>


<li><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-42-2026"><strong>#42</strong> from October 16</a>: Happy birthday, KDE! On October 14, 1996, Matthias Ettrich, then a student in Tübingen, announced a new project in a Usenet group: the “Kool Desktop Environment”. The cool K has long since become a trademark, and the desktop has grown into a community that maintains hundreds of programs.</li>


<li><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-43-2026"><strong>#43</strong> from October 23</a>: This week, a security flaw hit like a thunderclap: On Wednesday, October 21, the PHP team released emergency updates for two critical vulnerabilities in versions 8.5.12, 8.4.27, 8.3.36, and 8.2.35.</li>


<li><a href="https://www.tuxedocomputers.com/en/This-Week-in-TUXEDO-OS-44-2026"><strong>#44</strong> from October 30</a>: Last weekend, the moderators of r/opensource, the largest open-source community on Reddit, shut out AI-assisted projects with new rules. r/fossdroid followed shortly afterwards. The backlash is fierce: whether software is free depends on its license, not on the tool.</li>

</ul>



<p class="lui-wo-hinweis-quelle wp-block-paragraph">Quotes and teasers: TUXEDO Computers, “This Week in TUXEDO OS” and blog. The full texts are available at <a href="https://www.tuxedocomputers.com/en">tuxedocomputers.com</a>.</p>


<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/new-in-tuxedo-os-in-october-2026/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>PlanetFOSS: Support your favorite sources directly</title>
		<link>https://linuxundich.de/en/planetfoss-support-link-blogs-publishers/</link>
					<comments>https://linuxundich.de/en/planetfoss-support-link-blogs-publishers/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Fri, 30 Oct 2026 16:02:44 +0000</pubDate>
				<category><![CDATA[GNU/Linux]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[PlanetFOSS]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[RSS]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/planetfoss-support-link-blogs-publishers/</guid>

					<description><![CDATA[Blogs, magazines and publishers can now add a link to their subscription or donation page on PlanetFOSS. It shows up as a box on the source page, as a heart in the solar system and in a tab of its own. GNU/Linux.ch and Linux und Ich are already on board, and other site owners are welcome to get in touch.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph"><a href="https://linuxundich.de/en/planetfoss-launch-linux-news-bundles-supernovas/">PlanetFOSS</a> officially launched ten days ago. The site collects Linux and open source news from what are now 189 sources, bundles reports on the same story and shows what&#8217;s hot right now. One thing mattered to me from the very start: PlanetFOSS should bring readers to these sites, not take them away. That&#8217;s why every card links to the original article, and there are no full texts.</p>



<p class="wp-block-paragraph">But a click alone doesn&#8217;t pay any bills. Behind many sources are people who write their articles in their spare time, or small newsrooms that live on subscriptions, donations and ads. Lots of readers block the ads, though, and if you find an article through an aggregator, you usually never even see the blog&#8217;s donation page. A new link on PlanetFOSS is meant to close that gap.</p>



<h2 class="wp-block-heading">A heart for the source</h2>



<p class="wp-block-paragraph">Starting today, blogs, magazines and publishers can add a link to their subscription or donation page on PlanetFOSS. It appears on their source page as a box of its own, &#8220;Support …&#8221;, right below the header, complete with a <em>Support</em> button. One click takes you straight to the site owner&#8217;s page. PlanetFOSS doesn&#8217;t sit in between and doesn&#8217;t earn a cent from it; it&#8217;s just a plain old link.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397794630&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397794630" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-quelle-unterstuetzen-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-quelle-unterstuetzen-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-quelle-unterstuetzen-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-quelle-unterstuetzen-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-quelle-unterstuetzen.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-quelle-unterstuetzen-1280x870.webp" alt="The GNU/Linux.ch source page on PlanetFOSS in a browser: below the title sits a box with a heart icon, the heading “GNU/Linux.ch unterstützen” and a Support button, followed by three article cards."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">If a source has added a link, PlanetFOSS shows a box of its own with a support button on its page.</figcaption></figure>



<p class="wp-block-paragraph">In the solar system, the directory of all sources, these sites also get a small heart. On top of that, there&#8217;s a separate <em>Support</em> tab that lists only the sources that have added such a link. So if you want to give something back to a blog or magazine you read regularly, you&#8217;ll find the right page there with a single click instead of having to hunt for it.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397794830&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397794830" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-sonnensystem-unterstuetzen-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-sonnensystem-unterstuetzen-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-sonnensystem-unterstuetzen-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-sonnensystem-unterstuetzen-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-sonnensystem-unterstuetzen.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-sonnensystem-unterstuetzen-1280x870.webp" alt="The Support page in the PlanetFOSS solar system: next to tabs such as All, Magazines &amp; Publishers and Blogs, the Support tab is active and lists GNU/Linux.ch and Linux und Ich, each with a heart."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">In the solar system, the Support tab lists every source that would welcome a subscription or a donation.</figcaption></figure>



<p class="wp-block-paragraph">Two sources are on board from day one. <a href="https://gnulinux.ch/">GNU/Linux.ch</a> (in German) points to its support page, and Linux und Ich got its heart as well: here the link leads to &#8220;Buy me a coffee&#8221;. Sure, putting my own blog in first has a certain aftertaste. But somebody had to try out the feature, and in my case I at least knew for sure where the link was supposed to go.</p>



<h2 class="wp-block-heading">What PlanetFOSS promises publishers</h2>



<p class="wp-block-paragraph">PlanetFOSS already has a few fixed rules for publishers and site owners. Every card links directly to your article, with no framing and no copy. It only takes what your site itself provides for previews, and PlanetFOSS automatically honors settings like <code>noindex</code> or <code>max-snippet</code> in your meta robots tags. For publishers, the teaser is also capped at 200 characters.</p>



<p class="wp-block-paragraph">Then there&#8217;s reach: on request, I&#8217;ll tell you how many readers the website sent your way in a month. Only daily totals are counted, with no data about the readers themselves. All of these promises are collected on the <a href="https://planetfoss.net/en/about/#betreiber">About PlanetFOSS</a> page in the section &#8220;For publishers and site owners&#8221;, in case you want to read through them at your leisure or pass them on to your editorial team.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af6397794a9a&quot;}" data-wp-interactive="core/image" data-wp-key="6af6397794a9a" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="870" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-fuer-verlage-640x435.webp 640w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-fuer-verlage-768x522.webp 768w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-fuer-verlage-1280x870.webp 1280w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-fuer-verlage-1536x1044.webp 1536w, https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-fuer-verlage.webp 1648w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/10/planetfoss-fuer-verlage-1280x870.webp" alt="The section “For publishers and site owners” on the About PlanetFOSS page: a list of rules such as direct links, previews capped at 200 characters and reach figures on request, followed by a box about the planned Android app."/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">Everything PlanetFOSS promises publishers and site owners is collected on the About page.</figcaption></figure>



<h2 class="wp-block-heading">Get in touch</h2>



<p class="wp-block-paragraph">You run a blog, a magazine, a video channel or a publishing house that&#8217;s part of PlanetFOSS, and you have a page for subscriptions or donations, say through Steady, Patreon, Liberapay or Ko-fi? Then drop me a short email at <a href="mailto:info@planetfoss.net">info@planetfoss.net</a> or leave a comment here on the blog. All I need is the address of that page; I&#8217;ll take care of the rest.</p>



<p class="wp-block-paragraph">If you&#8217;re not on PlanetFOSS at all yet, you&#8217;re just as welcome to get in touch, and the same goes for anyone who would rather not be included: removal happens right away. And to you as readers: if you read a source regularly, take a look at the <em>Support</em> tab. Which blogs and magazines would you like to see there with a heart?</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/planetfoss-support-link-blogs-publishers/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi Zero 3 W and Pi 4 Model A show up in the kernel – while the Pi keeps getting pricier</title>
		<link>https://linuxundich.de/en/raspberry-pi-zero-3-w-pi-4-model-a-prices/</link>
					<comments>https://linuxundich.de/en/raspberry-pi-zero-3-w-pi-4-model-a-prices/#respond</comments>
		
		<dc:creator><![CDATA[Christoph Langner]]></dc:creator>
		<pubDate>Wed, 28 Oct 2026 11:34:13 +0000</pubDate>
				<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Hardware]]></category>
		<category><![CDATA[News]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<guid isPermaLink="false">https://linuxundich.de/en/raspberry-pi-zero-3-w-pi-4-model-a-prices/</guid>

					<description><![CDATA[Device trees in the kernel reveal a Raspberry Pi Zero 3 W and a Pi 4 Model A. The new budget boards come at the right time: the former 35-dollar computer now costs up to twice as much and is often out of stock.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Two boards that don&#8217;t officially exist yet have turned up in Raspberry Pi&#8217;s kernel repository: a Raspberry Pi Zero 3 W and a Raspberry Pi 4 Model A. A <a href="https://github.com/raspberrypi/linux/pull/7711">pull request</a> adds ready-made device trees for both, the hardware description the kernel needs. It was merged on October 25, and <a href="https://www.phoronix.com/news/Raspberry-Pi-Zero-3-W-Pi-4-A">Phoronix</a> and <a href="https://www.golem.de/news/zero-3w-4-model-a-hinweise-auf-neue-raspberry-pi-4-2610-214581.html">Golem</a> (in German), among others, spotted it. There&#8217;s no word on prices or a release date yet.</p>



<h2 class="wp-block-heading">What we know about the two new boards</h2>



<p class="wp-block-paragraph">The files don&#8217;t give away much, but a few key facts can be read from them. Both boards use the BCM2711 with four Cortex-A72 cores, the same chip found in the Raspberry Pi 4. How much RAM they get isn&#8217;t in there. What is in there: Wi-Fi and Bluetooth, a camera connector and, unlike the Pi 4B, only one HDMI output instead of two.</p>



<p class="wp-block-paragraph">A nice touch: both device trees mention a power button, something only the Pi 5 had so far. For the Zero, the Pi 4 chip is a big step up anyway, since the Zero 2 W is already five years old. According to Golem, the Zero 3 W will probably get its memory as a separate chip, presumably on the back, instead of inside the processor package as before.</p>



<p class="wp-block-paragraph">The Model A is the more interesting one to me, though. The A variants have always been the stripped-down siblings of the B models: smaller, more frugal, with fewer ports, but cheaper. The Pi 4A also drops the USB hub and the network chip, while Wi-Fi and Bluetooth stay. Two pins are also set aside for controlling two antennas, so Golem suspects you&#8217;ll be able to connect external antennas for the first time.</p>



<p class="wp-block-paragraph">Two more pins carry PCIe in their name. Whether the Pi 4A brings a PCIe interface to the outside like the Pi 5 does, say for an NVMe SSD, can&#8217;t be said for sure, though. That a stripped-down Pi 4 is coming right now is hardly a coincidence. Phoronix links it to rising component prices, and those are the big topic around the Pi at the moment.</p>



<h2 class="wp-block-heading">From 35-dollar computer to luxury item</h2>



<p class="wp-block-paragraph">As a reminder: the Raspberry Pi launched in 2012 with a clear promise, a full-fledged Linux computer for 35 dollars. And that promise held for a surprisingly long time. The Pi 1 B, the B+, the <a href="https://linuxundich.de/raspberry-pi/raspberry-pi-2-ab-heute-im-handel-tests-folgen/">Pi 2</a> (in German), the <a href="https://linuxundich.de/raspberry-pi/raspberry-pi-3-kommt-mit-wlan-bluetooth-und-64-bit/">Pi 3</a> (in German) and the 3B+ all cost 35 dollars at launch. Even the Pi 4 with 1 GB of RAM still launched at that price in 2019.</p>



<figure class="wp-block-table"><table><thead><tr><th>Model</th><th>Launch</th><th>Launch price</th><th>List price October 2026</th><th>Street price in Germany</th></tr></thead><tbody><tr><td>Raspberry Pi 3 B+</td><td>2018</td><td>35 dollars</td><td>40 dollars</td><td>41 euros</td></tr><tr><td>Raspberry Pi 4 B, 1 GB</td><td>2019</td><td>35 dollars</td><td>35 dollars</td><td>40 euros</td></tr><tr><td>Raspberry Pi 4 B, 2 GB</td><td>2019</td><td>45 dollars</td><td>67.50 dollars</td><td>80 euros</td></tr><tr><td>Raspberry Pi 4 B, 4 GB</td><td>2019</td><td>55 dollars</td><td>100 dollars</td><td>107 euros</td></tr><tr><td>Raspberry Pi 4 B, 8 GB</td><td>2020</td><td>75 dollars</td><td>165 dollars</td><td>165 euros</td></tr><tr><td>Raspberry Pi 5, 1 GB</td><td>2025</td><td>45 dollars</td><td>45 dollars</td><td>out of stock</td></tr><tr><td>Raspberry Pi 5, 2 GB</td><td>2024</td><td>50 dollars</td><td>77.50 dollars</td><td>120 euros</td></tr><tr><td>Raspberry Pi 5, 4 GB</td><td>2023</td><td>60 dollars</td><td>110 dollars</td><td>122 euros</td></tr><tr><td>Raspberry Pi 5, 8 GB</td><td>2023</td><td>80 dollars</td><td>175 dollars</td><td>189 euros</td></tr><tr><td>Raspberry Pi 5, 16 GB</td><td>2025</td><td>120 dollars</td><td>305 dollars</td><td>331 euros</td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><em>Street price: cheapest offer available for immediate delivery at Geizhals or Berrybase on October 28, 2026, rounded, excluding shipping.</em></p>



<p class="wp-block-paragraph">The first dent came in October 2021: during the chip crisis, Raspberry Pi raised a price <a href="https://www.raspberrypi.com/news/supply-chain-shortages-and-our-first-ever-price-increase/">for the very first time</a>, and the 2 GB Pi 4 went from 35 to 45 dollars. The Pi 5 then launched in 2023 at 60 dollars for 4 GB and 80 dollars for 8 GB, which in my opinion was still fine given the big jump in performance.</p>



<p class="wp-block-paragraph">Things only really took off at the end of 2025. Since December, Raspberry Pi has raised prices four times: in December, February, April and most recently on <a href="https://www.raspberrypi.com/news/price-increases-for-2gb-raspberry-pi-4-and-raspberry-pi-5/">October 1</a>. The culprit is RAM, which AI data centers are currently buying up. According to the <a href="https://www.theregister.com/storage/2026/09/25/raspberry-pi-surfs-memory-crunch-to-record-first-half/5299155">half-year results</a>, the cost of one gigabyte of LPDDR4 in Raspberry Pi&#8217;s own stock rose from 3.60 dollars at the end of 2025 to 13.30 dollars at the end of June 2026.</p>



<p class="wp-block-paragraph">You can read the result straight from the table. At 175 dollars, the 8 GB Pi 5 costs more than twice its launch price, and at 305 dollars the 16 GB version sits in territory that has nothing to do with a tinkering board anymore. Raspberry Pi only keeps the 1 GB models stable – but in 2026, you won&#8217;t get very far with that little RAM.</p>



<h2 class="wp-block-heading">Even the boards themselves are getting scarce</h2>



<p class="wp-block-paragraph">Expensive is one thing, but some models simply can&#8217;t be had anymore. Berrybase lists the 1 GB Pi 5 at 46.90 euros, but it&#8217;s not in stock anywhere. The shop lists the 2 GB Pi 5 at 82.50 euros, also without stock. If you want one right away, you&#8217;ll pay just under 120 euros at other retailers. In early October, <a href="https://nydus.org/news/136611-der-raspberry-pi-wird-wieder-teurer-und-verliert-ein-stuck-seiner-alten-unschuld.html">Nydus</a> (in German) had found prices of at least 130 euros.</p>



<p class="wp-block-paragraph">Things look even worse for the Zero 2 W. The little Pi has been <a href="https://raspberry.tips/en/raspberrypi-infos/raspberry-pi-zero-2-w-alternative-sold-out">sold out</a> for months, Reichelt has dropped it from its range, and Amazon only has third-party kits for around 130 euros. According to Raspberry Pi, roughly one million Zeros are on back order. Here it&#8217;s not memory that&#8217;s lacking, but production capacity at a supplier – and the AI boom is eating that up too.</p>



<p class="wp-block-paragraph">On top of that comes an effect you could have seen coming: if you no longer want to pay for a Pi 4 or Pi 5, you reach for the cheapest model that runs a full Linux. That pushes demand for the Zero 2 W even higher. Raspberry Pi says it has brought a second supplier on board, but the new stock hasn&#8217;t reached European retailers so far.</p>



<h2 class="wp-block-heading">What&#8217;s left of the tinkering computer?</h2>



<p class="wp-block-paragraph">And that&#8217;s exactly what I find a shame. The Pi was always a computer you&#8217;d just pick up for a project. A <a href="https://linuxundich.de/raspberry-pi/was-ist-das-beste-mediacenter-zum-nachruesten-chromecast-raspberry-pixbmc-oder-odroidandroid/">media center</a> (in German) here, a <a href="https://linuxundich.de/raspberry-pi/raspberry-pi-als-jukebox-fuer-google-music-spotify-oder-musik-vom-nas/">jukebox</a> (in German) there, and if an experiment went wrong, well, 35 dollars were gone. At 110 or 175 dollars for a Pi 5, you think twice. The tinkering spirit that made the Pi big falls by the wayside.</p>



<figure data-wp-context="{&quot;imageId&quot;:&quot;6af63977a2f41&quot;}" data-wp-interactive="core/image" data-wp-key="6af63977a2f41" class="wp-block-image wp-lightbox-container"><img loading="lazy" decoding="async" height="720" sizes="auto, (max-width: 781px) 100vw, 680px" srcset="https://linuxundich.de/wp-content/uploads/2026/10/01-raspberry-pi-bastelkiste-640x360.webp 640w, https://linuxundich.de/wp-content/uploads/2026/10/01-raspberry-pi-bastelkiste-768x432.webp 768w, https://linuxundich.de/wp-content/uploads/2026/10/01-raspberry-pi-bastelkiste.webp 1280w" width="1280" data-wp-class--hide="state.isContentHidden" data-wp-class--show="state.isContentVisible" data-wp-init="callbacks.setButtonStyles" data-wp-on--click="actions.showLightbox" data-wp-on--load="callbacks.setButtonStyles" data-wp-on--pointerdown="actions.preloadImage" data-wp-on--pointerenter="actions.preloadImageWithDelay" data-wp-on--pointerleave="actions.cancelPreload" data-wp-on-window--resize="callbacks.setButtonStyles" src="https://linuxundich.de/wp-content/uploads/2026/10/01-raspberry-pi-bastelkiste.webp" alt="Open storage case with red dividers holding four Raspberry Pi boards, one of them upside down"/><button
			class="lightbox-trigger"
			type="button"
			aria-haspopup="dialog"
			data-wp-bind--aria-label="state.thisImage.triggerButtonAriaLabel"
			data-wp-init="callbacks.initTriggerButton"
			data-wp-on--click="actions.showLightbox"
			data-wp-style--right="state.thisImage.buttonRight"
			data-wp-style--top="state.thisImage.buttonTop"
		>
			<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" fill="none" viewBox="0 0 12 12">
				<path fill="#fff" d="M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z" />
			</svg>
		</button><figcaption class="wp-element-caption">From my tinkering box: a Pi 4 and several Pi 3s sit in a storage case, bought back when prices were much lower.</figcaption></figure>



<p class="wp-block-paragraph">Raspberry Pi itself now recommends going for older models such as the Pi 3B or 3B+ and checking carefully how much memory a project really needs. Too bad that, according to Golem, of all boards the 3A+ has been hard to get for months in some places. Eben Upton promises to lower prices again once memory gets cheaper. Micron, however, expects shortages until 2028 or beyond.</p>



<p class="wp-block-paragraph">So a Zero 3 W and a Pi 4A with the Pi 4&#8217;s older but proven chip might be exactly what the tinkering community is missing right now. Provided the price stays reasonably down to earth and the boards actually make it to the shops. What do you think? Have you bought a Pi recently, or have you already switched to something else?</p>
<hr><p>☕ <strong>Support Linux und Ich</strong><br>Thanks for reading <a href="https://linuxundich.de/en/">Linux und Ich</a>. If you enjoy the blog and would like to support my work, you will find more information on the <a href="https://linuxundich.de/en/support/">donation page</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://linuxundich.de/en/raspberry-pi-zero-3-w-pi-4-model-a-prices/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
