<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>solariz.de - Tech &amp; Thoughts</title>
    <link>https://solariz.de/</link>
    <description>Recent content on solariz.de - Tech &amp; Thoughts</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Tue, 14 Apr 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://solariz.de/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>April this and that...</title>
      <link>https://solariz.de/posts/26/04-this-and-that/</link>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/04-this-and-that/</guid>
      <description>Minor Blog Extensions First I added asciinema support to better show some console stuff. ASCIInema allows to record a terminal session in text and replay it as text. So no wasteful GIF or blurry MP4 for just text. You can see the first use of it in this blog in my FZF SSH Parser Article. Then inspired by Naty I also implemented humans.txt [?] and human.json [?] standards to this blog. Im not so big in all the Indieweb standards. But specially in times of AI slob everywhere, it cant hurt to have more humans on the web.&#xA;Finally I tried to update my blog papermod Theme to the newest release, found the last official realeas is old, but there went some changes into the git repo. Unfortunately quickly found out a simple update is breaking a lot of stuff - postponed.&#xA;Laptop Change A bit sad and happy at the same time. As a Tuxedo Computers user since many years I retired my Infinity Book gen9, admittedly a bit premature, as it was only two years old. However, as I mentioned earlier, I had been experiencing some issues with it. After replacing the battery it seemed to improve, just to show problems again weeks later. Battery draining sometimes even it is shutdown, freezes mid usage, fan kicking in 100% even no cpu load. Unfortunately all those things are just happened randomly and not reproducible, very hard for a support case with customer support.&#xA;Since I work in events and handle IT needs, reliability is an absolute must. Therefore, I decided to give Framework a try. I kept the NVMe and RAM of my Tuxedo and just ordered a Framework 13. Experience so far is positive. I opted for the 13&amp;quot; Intel Ultra 5 125H. Not the fastest but my thoughts were more -hope for better battery life if not picking the most powerful CPU- and tbh. most times I don&amp;rsquo;t need that powerfull CPU anyway. I do not game on this machine and most CPU intense things I do is running cmake or rust compiler 😇 Let&amp;rsquo;s see after some weeks, may write an short article about it.&#xA;Some Linux Tools Not &amp;ldquo;big&amp;rdquo; enough to write a full article but worth to mention; Discovered some tools which I found handy to use in my normal Network IT use. Just a short rundown.&#xA;dstp A simple one purpose tool to run certain network tests against a given IP or Domain. In one glance you can see status of ping, DNS, TLS, https state. Example:&#xA;➤ dstp codeberg.org Ping: 28.751296ms DNS: resolving 217.197.84.140 SystemDNS: resolving 2a0a:4580:103f:c0de::1, 217.197.84.140 TLS: certificate is valid for 87 more days HTTPS: got 200 OK Written in go works on Linux and MacOS, available on github.com/ycd/dstp.&#xA;discovery-rs Great TUI mDNS/AVAHI browser written in Rust. Need to check what IP that stupid printer had again? See what devices are advertising services quickly. In the example Screenshot a M5 ESP:&#xA;Available in common rust repo install with cargo install discovery-rs or check github.com/JustPretender/discovery-rs&#xA;Another worth mentioning mDNS Discover alternative with a nice TUI is whosthere I just recently discovered it - pun ? :) - I think the TUI is nicer compared to discovery-rs but take this recommendation carefully because I did not test it &amp;ldquo;in the field&amp;rdquo; so can&amp;rsquo;t say how reliable it is, for now at least.&#xA;Oryx A TUI network sniffer based on eBPF, think tcpdump with a terminal GUI. Features like search and statistics make it a very nice tool to monitor network traffic. Easy to discover anomalies like arp storms. Also written in Rust. Find it at github.com/pythops/oryx&#xA;Damn Fu* Coldness This Year really sucks in terms of Health. The Weather feels like a constant up and down and so does my body. Already April and not a single month were I did not had any coughing or sore throat. Can&amp;rsquo;t wait for the Spring finally arrive, enough of all this wet and cold days.&#xA;</description>
    </item>
    <item>
      <title>FZF&#43;Fish are great in SSH-Completion</title>
      <link>https://solariz.de/posts/26/04-cli-sshcompletion-atuin/</link>
      <pubDate>Fri, 10 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/04-cli-sshcompletion-atuin/</guid>
      <description>What it does&amp;hellip; As said, fzf is my go to for great shell search and tui&amp;rsquo;s. Basically add a fuzzy search to everyting you can imagine. But this is not what I want to write about, today I want to show another usecase of fzf in combination with my fish shell.&#xA;I start using fzf as a SSH config tui. It allows me to type ssh + space and the basically type any hostname or alias from within my .ssh/config to autocomplete and search using up down. See the recording:&#xA;To run this asciicast without javascript, use asciinema play https://solariz.de/sshatuin.cast with Asciinema&#xA;As you see it easy matches the yyy demo entries in my ssh config, 5 of 85 entries (yeah need to tidy up) got found, even I typed far to many yyyyyy the fuzzy search kick in. As soon as I press RETURN key it select it and present me with the correct ssh command ssh yyy1234demo6 which match the host entry in my .ssh/config:&#xA;Host yyy1234demo6 Hostname yyy1234demo6.myserver.demo User root How-to Configure As mentioned, I use fish Shell. This btw. can also be run easily on Linux and MacOS. It allow you very easy to create custom functions which are a drop in call for certain events / functions in your shell. In this case the function triggers whenever i type ssh*.&#xA;To create a function in fish you just drop in a file to .config/fish/functions/ here we go:&#xA;# .config/fish/functions/ssh.fish # Parse SSH config into aligned columns: Alias, HostName, User, Port # Header is emitted as the first row so column -t aligns it with the data. # Port 22 is omitted (default, adds noise). function __ssh_config_hosts awk &amp;#39; BEGIN { printf &amp;#34;ALIAS\tHOSTNAME\tUSER\tPORT\n&amp;#34; } /^Host / { if ($2 ~ /[*?]/) { host = &amp;#34;&amp;#34;; next } if (host) printf &amp;#34;%s\t%s\t%s\t%s\n&amp;#34;, host, (hn ? hn : &amp;#34;&amp;#34;), (user ? user : &amp;#34;&amp;#34;), (port &amp;amp;&amp;amp; port != &amp;#34;22&amp;#34; ? port : &amp;#34;&amp;#34;) host = $2; hn = &amp;#34;&amp;#34;; user = &amp;#34;&amp;#34;; port = &amp;#34;&amp;#34; } { k = tolower($1) if (k == &amp;#34;hostname&amp;#34;) hn = $2 if (k == &amp;#34;user&amp;#34;) user = $2 if (k == &amp;#34;port&amp;#34;) port = $2 } END { if (host) printf &amp;#34;%s\t%s\t%s\t%s\n&amp;#34;, host, (hn ? hn : &amp;#34;&amp;#34;), (user ? user : &amp;#34;&amp;#34;), (port &amp;amp;&amp;amp; port != &amp;#34;22&amp;#34; ? port : &amp;#34;&amp;#34;) } &amp;#39; ~/.ssh/config | column -t -s (printf &amp;#39;\t&amp;#39;) end # Tab completion handler: FZF for ssh/kssh/sshp, normal completion for everything else function __fzf_complete_ssh set -l cmd (commandline -opc) set -l token (commandline -ct) if test (count $cmd) -ge 1 &amp;amp;&amp;amp; contains -- $cmd[1] ssh kssh sshp set -l host (__ssh_config_hosts \ | fzf --height 40% --reverse --query=$token --select-1 --exit-0 \ --header-lines=1 \ | awk &amp;#39;{print $1}&amp;#39;) if test -n &amp;#34;$host&amp;#34; commandline -t -- $host commandline -f repaint end return end commandline -f complete end # Tab triggers FZF for ssh, normal completion for everything else bind \t __fzf_complete_ssh # Ctrl+S as an alternative trigger anywhere on the line bind \cs __fzf_complete_ssh </description>
    </item>
    <item>
      <title>Pockethernet BER and ID Plugs</title>
      <link>https://solariz.de/posts/26/03-pockethernet-id-bert-plugs-arrived/</link>
      <pubDate>Sun, 15 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/03-pockethernet-id-bert-plugs-arrived/</guid>
      <description>This short Article is in addition to my Pockethernet V2 Review I posted last year December.&#xA;At the time of writing the original Article there was a announced BER Loop Adapter and ID Plugs but not available at that time.&#xA;Now some time later this changed and I clicked them in the official Pockethernet store.&#xA;Brief preface; I am neither sponsored by Pockethernet nor have I received anything for free; everything here was purchased by me through normal means and is in regular use by myself.&#xA;BER Test Dongle Unlike the Pockethernet v2 Wiremap terminator which came with my Pockethernet V2 the BER Test need a new dongle which is slighly larger and offer a RJ45 port on both sides. Currently this v2 dual Terminator is available for about 19€ in the store.&#xA;But what is BER at all? BER stands for Bit Error Rate, it measures how many bits are received incorrectly compared with the total number of bits sent over a link. It is used to check the reliability of a connection is by sending a known data pattern, then comparing what arrives to count errors. No or very low BER means a healthy link, while a higher BER points to issues such as noise, bad cabling, faulty termination. In practice, some people may also say BERT, which refers to the Bit Error Rate Test or the Bit Error Rate Tester. This is where the famous LAN-Bert naming for most testers comes from :)&#xA;How is it implemented in Pockethernet ? Actually very straight forward. The Adapter have two sides, pockethernet them self write:&#xA;With the RJ45 connectors, one for Wiremap and one for the Error rate test.&#xA;The loopback end provides a passive loopback which works for cables of up to 50m / 160ft in length.&#xA;In the v2 App you find a section &amp;ldquo;Error Rate&amp;rdquo; which can be selected as test. Inside you have to chose Speed, Packet size, Payload and Number of Packets to send.&#xA;Testing for BER requires you to connect the pockethernet to the Loopback Dongle (You can see the picture at the beginning of the post) after starting the test it might take some time depending how many Packets you selected. A good starting point here is 1M packets which will still be done in under 1 Minute.&#xA;Here you see a screenshot of a succesful test as it should be, Zero Errors found. This was just on my desk with a 3m cable, I would be surprised if it showed anything else. In Real life you want to use BER to test flappy or questionable joined connections on some old whacky patchpanels while walking around nearby a bit. Yeah, I had that case already, a connection which errors everytime somebody walk past the rack.&#xA;ID Dongels ID Dongles or Wiremap Identifiers are the other small siblings you see on the picture at the top. Those are like on most little better network testers IDs to tracing ports. Basically you plug 1-8 in ports X-Y on the patchpanel in the IDF and check on the other side where you find which one. Beside giving you just an ID it will run a full Wiremap and can tell you with TDR how long the cable is and if it is straight or some funky termination approach.&#xA;Not much I need to Explain I think, it is straight forward and most of you should have worked with similar equipment to know whats the deal. Here is a screenshot how the ID (# 8 in my example) is found:&#xA;The Pack includes 2-8, for ID 1 you can use the one you received with the pockethernet unit itself or you can also use the BER Dongles wiremap end. Compared to the BER dongle, the ID pack is a bit expensive if you&amp;rsquo;re being stingy. It is about 129€ which makes it ~18 € per probe. Considering it is not only a stupid resistor which cant to a wiremap it is still not cheap but ok for me often working with it. You can also find this set on their official store.&#xA;Conclusion Why should I ramble on, it&amp;rsquo;s a solid device, it&amp;rsquo;s saved me a lot of time already.&#xA;As wrote in my original Review of the pockethernet v2, I did not liked the v1 but this one is with Bluetooth LE just so timesafing and really a thing you just have with you in the &amp;ldquo;pocket&amp;rdquo; or rucksack in my case.&#xA;Thumbs up, worth the €€€.&#xA;</description>
    </item>
    <item>
      <title>Kara-Tiles - A Kara Keep New Tab Page Addon</title>
      <link>https://solariz.de/posts/26/02-kara-keep-tiles-addon/</link>
      <pubDate>Sun, 22 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/02-kara-keep-tiles-addon/</guid>
      <description>What is Karakeep? Well, I&amp;rsquo;ll write an extra blog article about it soon, so in short: It&amp;rsquo;s a self-hosted open-source bookmark manager with a cloud-hosted option available. I work on multiple devices and browsers, and the integrated browser bookmark management is not ideal for my workflow. Karakeep (formerly named Hoarder) solves this problem and adds lots of useful features, such as an actual page summary, allowing me to use it not only as a bookmark manager, but also as a replacement for my &amp;ldquo;read it later&amp;rdquo; list.&#xA;What the Kara-Tiles Addon does? Well may but a video on later but for now a short Screenshot says more than 1000 words.&#xA;To Explain a bit; It access your Karakeep Bookmarks via API, cache them in your browser local storage and display a nice &amp;ldquo;old style Tiles&amp;rdquo; overview with added features like: Offline Fuzzy Sarch, Tag and domain Filters, hotkeys, favorite Bar and most used.&#xA;Availability Chrome Extension Firefox Extension Options and How to use? After Installation you need to enter your Karakeep instance URL as well as an API Key; This Key you can get in your Karakeep user settings &amp;gt; API.&#xA;What next I work with the extension everyday in all of my browsers, so be sure there will be updates to improve usability further. Nothing huge featurewise in my mind right now, I love the Principle of an Programm or extension fullfilling one purpose good instead of doing everything but mediocre.&#xA;If there is anything bothering feel free to leave me a comment below this Article. I will use this Blog Post as &amp;ldquo;Extension Webpage&amp;rdquo; Link and may update it from time to time.&#xA;Kara-Tiles Changelog I try to keep a small changelog here:&#xA;0.0.6 22 Feb &amp;lsquo;26 - First Firefox Build, grayscale images, better tag search 0.0.5 21 Feb &amp;lsquo;26 - Tiny bug fixes and UI Improvements 0.0.4 20 Feb &amp;lsquo;26 - First iteration published in chrome extension store </description>
    </item>
    <item>
      <title>Good Linux compatible USB-C Travel Hub with PD</title>
      <link>https://solariz.de/posts/26/02_usb-travel-dongle/</link>
      <pubDate>Wed, 18 Feb 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/02_usb-travel-dongle/</guid>
      <description>Not an lenghy Article, just posting my findings for whoever may need it.&#xA;The Hardware: i-tec USB-C 4K Metall Nano Docking Station Named by the bulky name i-tec USB-C 4K Metall Nano Docking Station 1x HDMI 1x GLAN 3x USB 3.0 1x SD/MicroSD 1x Audio Power Delivery 100W I found mine on Amazon. Port-wise, it has what I need. Mostly I use this kind of light dock if I work remotely or at events to attach one screen, network, mouse and have it charging my laptop. So I can quickly grab it when I need to go somewhere.&#xA;dmesg On my Fedora 43 quick dmesg log when plugging in the dock. I had plugged in 2 USB devices, an HDMI screen, network, and a 90W USB-C PD charger.&#xA;With some previous adapters, I had the issue that they were very picky about which port I used on my laptop, but this one didn&amp;rsquo;t care much.&#xA;[13572.247251] usb 3-1: new high-speed USB device number 18 using xhci_hcd [13572.337179] usb 2-1: new SuperSpeed USB device number 9 using xhci_hcd [13572.358474] usb 2-1: New USB device found, idVendor=05e3, idProduct=0626, bcdDevice= 6.63 [13572.358485] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [13572.358488] usb 2-1: Product: USB3.1 Hub [13572.358490] usb 2-1: Manufacturer: GenesysLogic [13572.361782] hub 2-1:1.0: USB hub found [13572.362684] hub 2-1:1.0: 4 ports detected [13572.375448] usb 3-1: New USB device found, idVendor=05e3, idProduct=0610, bcdDevice= 6.63 [13572.375453] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [13572.375454] usb 3-1: Product: USB2.1 Hub [13572.375455] usb 3-1: Manufacturer: GenesysLogic [13572.376617] hub 3-1:1.0: USB hub found [13572.376853] hub 3-1:1.0: 4 ports detected [13572.661967] usb 2-1: USB disconnect, device number 9 [13572.678131] usb 3-1.1: new high-speed USB device number 19 using xhci_hcd [13572.777167] usb 3-1.1: New USB device found, idVendor=1a40, idProduct=0101, bcdDevice= 1.11 [13572.777175] usb 3-1.1: New USB device strings: Mfr=0, Product=1, SerialNumber=0 [13572.777177] usb 3-1.1: Product: USB 2.0 Hub [13572.778587] hub 3-1.1:1.0: USB hub found [13572.778612] hub 3-1.1:1.0: 4 ports detected [13572.877336] usb 3-1.2: new full-speed USB device number 20 using xhci_hcd [13572.979025] usb 3-1.2: New USB device found, idVendor=1e7d, idProduct=319c, bcdDevice= 1.00 [13572.979038] usb 3-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [13572.979041] usb 3-1.2: Product: ROCCAT Isku [13572.979043] usb 3-1.2: Manufacturer: ROCCAT [13573.884908] usb 2-1: new SuperSpeed USB device number 10 using xhci_hcd [13573.905813] usb 2-1: New USB device found, idVendor=05e3, idProduct=0626, bcdDevice= 6.63 [13573.905821] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [13573.905823] usb 2-1: Product: USB3.1 Hub [13573.905825] usb 2-1: Manufacturer: GenesysLogic [13573.908298] hub 2-1:1.0: USB hub found [13573.909336] hub 2-1:1.0: 4 ports detected [13574.192045] usb 2-1.1: new SuperSpeed USB device number 11 using xhci_hcd [13574.211934] usb 2-1.1: New USB device found, idVendor=0b95, idProduct=1790, bcdDevice= 2.00 [13574.211939] usb 2-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [13574.211941] usb 2-1.1: Product: AX88179B [13574.211942] usb 2-1.1: Manufacturer: ASIX [13574.211943] usb 2-1.1: SerialNumber: 0034298FXXXXXX [13574.264676] cdc_ncm 2-1.1:2.0: MAC-Address: 98:fc:84:XX:XX:XX [13574.264687] cdc_ncm 2-1.1:2.0: setting rx_max = 16384 [13574.265125] cdc_ncm 2-1.1:2.0: setting tx_max = 16384 [13574.265667] cdc_ncm 2-1.1:2.0 eth1: register &amp;#39;cdc_ncm&amp;#39; at usb-0000:00:0d.0-1.1, CDC NCM (NO ZLP), 98:fc:84:xx:xx:xx [13574.270671] usb 3-1.3: new full-speed USB device number 22 using xhci_hcd [13574.376775] usb 3-1.3: New USB device found, idVendor=0461, idProduct=4e9d, bcdDevice= 2.12 [13574.376787] usb 3-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [13574.376789] usb 3-1.3: Product: Alienware 610M [13574.376792] usb 3-1.3: Manufacturer: DELL For the Resolution it can do:&#xA;1x HDMI up to 4K/60 Hz or 1x HDMI up to 1080p/120 Hz&#xA;For my 2nd Screen this is fine for me, 4k 100hz would be …</description>
    </item>
    <item>
      <title>Signals encrypted Storage on Linux Desktops!</title>
      <link>https://solariz.de/posts/26/01_signal-kde-encrypted-key-kwalletd/</link>
      <pubDate>Mon, 26 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/01_signal-kde-encrypted-key-kwalletd/</guid>
      <description>signal on Linux offer the way to store your encryption key in your system walled (encrypted) or local as plain-text unencrypted. Actually if you use a full disk encryption a clean text key isn&amp;rsquo;t a huge issue. But nevertheless to give it a bit more secure feeling I wanted to use KWalletD to store the signal key encrypted.&#xA;Signal now even prompt you with a question if you want to do so or not. So easy I thought, quickly enabled it; But to verify I took a look at the logfile and found; It is actually trying to use kwallt6 but can&amp;rsquo;t.&#xA;The problematic Log The Ugly is; if you dont look at the logs and config, you actually never know if it is encrypted or not. There is no Warning in the GUI that it couldnt save encrypted key or access kwallet :(&#xA;@Signal Why not display an warning as banne or before login?&#xA;Debug: Using password store: kwallet6 ... [2:0121/125647.169397:ERROR:dbus/object_proxy.cc:573] Failed to call method: org.kde.KWallet.isEnabled: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown [2:0121/125647.169447:ERROR:components/os_crypt/sync/kwallet_dbus.cc:113] Error contacting kwalletd6 (isEnabled) [2:0121/125647.170338:ERROR:dbus/object_proxy.cc:573] Failed to call method: org.kde.KLauncher.start_service_by_desktop_name: object_path= /KLauncher: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown [2:0121/125647.170350:ERROR:components/os_crypt/sync/kwallet_dbus.cc:82] Error contacting klauncher to start kwalletd6 [2:0121/125647.171088:ERROR:dbus/object_proxy.cc:573] Failed to call method: org.kde.KWallet.close: object_path= /modules/kwalletd6: org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown [2:0121/125647.171103:ERROR:components/os_crypt/sync/kwallet_dbus.cc:408] Error contacting kwalletd6 (close) Check it&amp;hellip; You can check yourself by opening your signal user dir, normal something like:&#xA;/home/username/.var/app/org.signal.Signal/config/Signal&#xA;There you should find a config.json, if inside you find &amp;quot;key&amp;quot;: &amp;quot;12345678....&amp;quot; variable you know it&amp;rsquo;s not using the system wallet.&#xA;A good config should have only &amp;quot;encryptedKey&amp;quot;: &amp;quot;.....&amp;quot; not key.&#xA;I hope in the future Signal automatically remove the plaintext key if a valid encrypted one is found on startup.&#xA;Reason and fix&amp;hellip; The Problem is acutally caused by the default flatpak permissions of Signal. To communicate with KwalletD it need Session bus access but this permission is missing in the default flatpak settings. To enable it go to your Settings &amp;gt; Application Permissions &amp;gt; Flatpak &amp;gt; Signal and enable session bus access:&#xA;Afterwards restart signal in the terminal and it should not show those errors from before. Finally close signal again and remove the plaintext key variable from the config file mentioned above.&#xA;Now you should be good.&#xA;Remember; Kwallet also does not protect you from people having access to your computer. If someone have full access to your device no key / password is save. So always lock your Screen !&#xA;</description>
    </item>
    <item>
      <title>Tuxedo Laptop Battery acting strange - replaced</title>
      <link>https://solariz.de/posts/26/01_tuxedo_laptop_battery_replaced/</link>
      <pubDate>Thu, 22 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/01_tuxedo_laptop_battery_replaced/</guid>
      <description>Currently I use as my productivity working device a Tuxedo Laptop, the Infinity book pro 14&amp;quot;. It is about 1.5yrs old and started acting up in december when it comes to battery. The Battery sometimes was overnight discharging to 0% even the laptop was powered off.&#xA;Also it showed a reduced maximal capacity. In Linux you can check your battery stats quickly with upower -b the old battery looked like this:&#xA;native-path: BAT0 vendor: OEM model: standard power supply: yes updated: Wed 21 Jan 2026 02:01:39 PM CET (7 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: fully-charged warning-level: none energy: 64.68 Wh energy-empty: 0 Wh energy-full: 64.68 Wh energy-full-design: 80.08 Wh voltage-min-design: 15.4 V capacity-level: Full energy-rate: 0 W voltage: 16.795 V charge-cycles: 69 percentage: 100% capacity: 80.7692% technology: lithium-ion The important thing here is energy-full: 64.68 Wh which is way too low; it should be ~80 Wh. So a loss of 20% capacity in only 69 charge cycles. Well, I am honest-I mostly use the laptop docked on constant power. But when I go to events, I need to rely on it. The biggest issue, besides the smaller capacity, was this weird random discharge, so after checking everything, even reinstalling another OS for testing purposes, it still didn&amp;rsquo;t fix that. So my rough guess was the battery.&#xA;Luckily the people at Tuxedo Computers did not hesitate long and also did not require me to send in the laptop (which is a no-go for me because daily need) - they sent me an advanced replacement battery.&#xA;So I exchanged the old one with the new one. This I love about the Tuxedo laptops, they&amp;rsquo;re so easy to access. 6 screws, and the full back pops open. Unfortunately, I needed to remove the M2 Drive to acces one of the two more screws for the battery, but that&amp;rsquo;s it - old one out, new one in.&#xA;After changing to the new battery the upower -b looked much better again:&#xA;native-path: BAT0 vendor: OEM model: standard power supply: yes updated: Thu 22 Jan 2026 08:39:56 AM CET (22 seconds ago) has history: yes has statistics: yes battery present: yes rechargeable: yes state: fully-charged warning-level: none energy: 80.08 Wh energy-empty: 0 Wh energy-full: 80.08 Wh energy-full-design: 80.08 Wh voltage-min-design: 15.4 V capacity-level: Full energy-rate: 0 W voltage: 16.654 V charge-cycles: N/A percentage: 100% capacity: 100% technology: lithium-ion And surprise, after night the battery did NOT discharge itself into nirvana. I left it with 100%, powered it off, and when I powered it on this morning it was still 100% as it should be.&#xA;Yay, happy battery again.&#xA;</description>
    </item>
    <item>
      <title>Pixelfed Integration for hugo based /photos Page</title>
      <link>https://solariz.de/posts/26/01_photos-hugo-blog-from-pixelfed/</link>
      <pubDate>Fri, 09 Jan 2026 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/26/01_photos-hugo-blog-from-pixelfed/</guid>
      <description>Recently we had the Digital Independence Day what better Reason could one have to rethink how I use published photos. I actually wanted to integrate them better into my blog already since long. But Digital Independence Day was a good kick in the ass to finally quit Instagram for real. I&amp;rsquo;m not here to start a big moral talk&amp;hellip; let&amp;rsquo;s focus on the Tech Aspects of what I did.&#xA;As you may noted we now have the new Menu entry /photos which offers a small Gallery. Instead of integrating another workflow which is doomed to fail because of my lazyness, I need something easy usable from my Android phone. So I had my pixelfed account laying there, mostly collecting dust. Why not start using it again and integrate it into the blog. This post is about how I wired this up.&#xA;What I wanted (requirements) I only post pictures to pixelfed, no markdown, no ftp not manual sync or upload process Pull new Pixelfed posts automatically (incremental, not re-downloading everything) Only public posts, only images (no videos, no private stuff) Hugo-friendly structure: each post becomes a page bundle Gallery view with: thumbnails grid lightbox modal responsive images (srcset) some metadata and a link back to Pixelfed During build, generate: square thumbnails watermarked bigger sizes Integrate into my deployment process The Hugo photos page Let us start with the simple stuff, creating /photos.&#xA;I added a dedicated /photos section and a custom list template. A 3-column grid layout with Yearly horizontal dividers would be best and easy to get responsive. The Structure looks like this:&#xA;├── assets/ │ ├── css/ │ │ └── extended/ │ │ └── photos.css Gallery &amp;amp; lightbox styles │ └── watermark.png Used for image watermarking │ ├── layouts/ │ └── photos/ │ └── list.html Gallery template with lightbox | └── content/ └── photos/ ├── _index.md Gallery page frontmatter └── YYYYMMDD-HHMMSS/ photo directories, one per post ├── photo.jpg Actual Photo └── index.md Photo metadata frontmatter ok, as you can see this is actually not that much. The /content/photos/YYMMDD-HHMMSS is later auto-generated by a python script which pulls from pixelfed. All other things are static, add once and forget :)&#xA;_index.md --- title: &amp;#34;Photos&amp;#34; layout: &amp;#34;photos&amp;#34; summary: &amp;#34;Photo gallery&amp;#34; --- Lorem Ipsum photos.css To keep the post a bit more clean I posted my css file in a gist here to not spam the long CSS here.&#xA;list.html This is where the actual &amp;ldquo;magic&amp;rdquo; happens. In my post about how I create my OG Images automatically, I learned a lot about hugos capabilities in image manipulation. So why not use it to do my gallery thumbnails and final images?&#xA;{{- define &amp;#34;main&amp;#34; }} &amp;lt;header class=&amp;#34;page-header&amp;#34;&amp;gt; &amp;lt;h1&amp;gt;{{ .Title }}&amp;lt;/h1&amp;gt; {{- if .Content }} &amp;lt;div class=&amp;#34;post-description&amp;#34;&amp;gt; {{ .Content }} &amp;lt;/div&amp;gt; {{- end }} &amp;lt;/header&amp;gt; &amp;lt;div class=&amp;#34;photo-gallery&amp;#34; itemscope itemtype=&amp;#34;https://schema.org/ImageGallery&amp;#34;&amp;gt; {{- range (.Pages.GroupByDate &amp;#34;2006&amp;#34;) }} &amp;lt;div class=&amp;#34;year-section&amp;#34;&amp;gt; &amp;lt;h2 class=&amp;#34;year-header&amp;#34;&amp;gt;{{ .Key }}&amp;lt;/h2&amp;gt; &amp;lt;div class=&amp;#34;year-photos&amp;#34;&amp;gt; {{- range .Pages.ByDate.Reverse }} {{- $image := .Resources.GetMatch (.Params.image) }} {{- if $image }} {{/* Generate square thumbnail (no watermark) */}} {{- $thumb := $image.Fill &amp;#34;320x320 Center MitchellNetravali webp q72&amp;#34; }} {{/* Get watermark PNG */}} {{- $watermark := resources.Get &amp;#34;watermark.png&amp;#34; }} {{/* Generate large version with watermark overlay */}} {{- $largeTmp := $image.Fit &amp;#34;1400x1400 MitchellNetravali&amp;#34; }} {{- $large := $largeTmp.Filter (images.Overlay $watermark (sub $largeTmp.Width 151) (sub $largeTmp.Height 43)) }} {{- $large = $large.Process &amp;#34;webp q88&amp;#34; }} {{/* Generate small version with watermark overlay */}} {{- $smallTmp := $image.Fit &amp;#34;740x740 MitchellNetravali&amp;#34; }} {{- $small := $smallTmp.Filter (images.Overlay $watermark (sub $smallTmp.Width 151) (sub $smallTmp.Height 43)) }} {{- $small = $small.Process &amp;#34;webp q84&amp;#34; }} {{- …</description>
    </item>
    <item>
      <title>Win git - Could not read from remote repository.</title>
      <link>https://solariz.de/posts/25/windows-git-ssh-agent/</link>
      <pubDate>Wed, 31 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/25/windows-git-ssh-agent/</guid>
      <description>Fixing Git Clone SSH Agent on Windows Last days I run Git on Windows for a quick upload of something, tried cloning the private repo over SSH, and it bombed out with a permission denied error. Even though a plain SSH test to GitHub worked fine.&#xA;As said, normally I work on my Linux Laptop but during Holidays I &amp;ndash;had&amp;ndash; to build some csharp stuff in windows. So old pains came back :)&#xA;fatal: Could not read from remote repository. Here&amp;rsquo;s what I saw:&#xA;git clone git@github.com:solariz/xxxxxxx.git test Cloning into &amp;#39;test&amp;#39;... git@github.com: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights But verifying SSH alone:&#xA;ssh -T git@github.com Hi solariz! You&amp;#39;ve successfully authenticated, but GitHub does not provide shell access. That checks out, so why the clone failure? If I check ssh-add -L it correctly showed me all of my keys in the agent.&#xA;Turns out Git on Windows was using some wrong SSH client by default. Fixed it by pointing Git to the built-in OpenSSH.&#xA;git config --global core.sshCommand C:/Windows/System32/OpenSSH/ssh.exe Retried the clone:&#xA;git clone git@github.com:solariz/xxxxxxx.git test Cloning into &amp;#39;test&amp;#39;... remote: Enumerating objects: 3, done. remote: Counting objects: 100% (3/3), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) Receiving objects: 100% (3/3), done. It works now.&#xA;git windows commit Editor While at it, I usually skip vim in Windows shells since I don&amp;rsquo;t have it installed. Wanted to set Sublime Text as my Git editor instead.&#xA;Tried this:&#xA;git config --global core.editor &amp;#34;C:/Program Files/Sublime Text/subl.exe -w&amp;#34; But spaces in the path messed it up. Escaping didn&amp;rsquo;t help either. Quick fix: Add the Sublime folder to your Windows PATH, then:&#xA;git config --global core.editor &amp;#34;subl.exe -w&amp;#34; Now Git opens Sublime for commits or whatever, no hassle. Small tweaks like these save time when you&amp;rsquo;re jumping between systems.&#xA;</description>
    </item>
    <item>
      <title>Star Citizen 4.5 Vulkan Crash on Start-Up</title>
      <link>https://solariz.de/posts/25/starcitizen-4-5-vulkan-crash-startup/</link>
      <pubDate>Thu, 18 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/25/starcitizen-4-5-vulkan-crash-startup/</guid>
      <description>With today&amp;rsquo;s released Patch 4.5, Star Citizen switched to using the Vulkan renderer by default. This is a big step forward. But unfortunately, for some players, the game simply does not start anymore. You run the launcher, and then the game immediately crashes.&#xA;I ran into this myself, and eventually, after trying everything, I found I got it working.&#xA;Also a recommendation after you got Vulkan running I wrote about best Performance Settings for Star Citizen Vulkan in my citizen-history blog.&#xA;NVIDIA User on AMD CPU I have an RTX 5080 on a Ryzen 9800X3D; when the game starts, it immediately crashes. In the LIVE Directory, you find a Game.log file showing clearly that the error is the initialization of the Vulkan Renderer:&#xA;Failed to create Vulkan logical device&#xA;GPUDeviceVulkan.cpp:825&#xA;vkCreateDevice: Failed to create device chain&#xA;STATUS_CRYENGINE_FATAL_ERROR (0x2BADF00D)&#xA;Game.log &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Device (NVIDIA GeForce RTX 5080) [GPU (Discrete)] ID:11266 &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Driver 591.59.0.0 &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - VulkanAPI 1.4.325 &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Supports 6 Queue Families &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Device (NVIDIA GeForce RTX 5080) valid GPU &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Device (AMD Radeon(TM) Graphics) [GPU (Integrated)] ID:5056 &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Driver 2.0.353 &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - VulkanAPI 1.4.315 &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; VulkanMetric - Supports 5 Queue Families &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK] Chosen Vulkan GPU Device (NVIDIA GeForce RTX 5080) Driver Version (591.59.0.0) Vulkan API (1.4.325) &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK] Current Device: (NVIDIA GeForce RTX 5080) VendorID: (4318) &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK] Current Device: (NVIDIA GeForce RTX 5080) VendorID: (4318) &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] vkCreateDevice layer callstack setup to: &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] &amp;lt;Application&amp;gt; &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] || &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] &amp;lt;Loader&amp;gt; &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] || &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] &amp;lt;Device&amp;gt; &amp;lt;2025-12-18T16:56:32.471Z&amp;gt; [VK_INFO] Using &amp;#34;NVIDIA GeForce RTX 5080&amp;#34; with driver: &amp;#34;C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_4646b47d9477048e\.\nvoglv64.dll&amp;#34; &amp;lt;2025-12-18T16:56:32.506Z&amp;gt; GPU benchmark: 14.52 ms (Adapter index: 0) &amp;lt;2025-12-18T16:56:32.622Z&amp;gt; [VK_ERROR] terminator_CreateDevice: Failed in ICD C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_4646b47d9477048e\.\nvoglv64.dll vkCreateDevice call &amp;lt;2025-12-18T16:56:32.622Z&amp;gt; [VK_ERROR] vkCreateDevice: Failed to create device chain. As you see in the above Log I even tried to revert the NVIDIA Driver to an older Version 591.59 which did not helped.&#xA;The Ugly Crash:&#xA;Now I run all the common things you do: driver uninstall, clean reinstall, game repair, config delete, default settings, Vulkan SDK, &amp;hellip; nothing helped for me.&#xA;What really helped for me To skip the blabla, it was something absolutely not obvious to me. As said, everything I tried didn&amp;rsquo;t work, so you get desperate and you try all the stuff you hear. Ensure that ASLR IS TURNED ON:&#xA;For me it was a combination of Exploit Protection ASLR and Custom Application Profile.&#xA;Open your Windows Settings and go to App &amp;amp; browser control at the bottom, open the Exploit protection settings First, ensure that force randomization for images (Mandatory ASLR) is set to &amp;ldquo;On by default&amp;rdquo; Also, the next Option Randomize memory allocations to &amp;ldquo;On by default&amp;rdquo; This was the case for me already before, but above you find a Tab &amp;ldquo;Program settings&amp;rdquo; which has overrides for some programs. Open the Program Settings Tab and check carefully if Star Citizen is in there somewhere; if so&amp;hellip; remove the entry. Beside that before I did a DDU + NV Clean install of …</description>
    </item>
    <item>
      <title>RAM Prices cryout...</title>
      <link>https://solariz.de/posts/25/2025-ram-price-spikes/</link>
      <pubDate>Mon, 15 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/25/2025-ram-price-spikes/</guid>
      <description>Uhhm sometimes you realize how lucky you been buying your PC Upgrade at the right time.&#xA;Shortly after Gamescom 2025 I upgraded my home desktop to new CPU and Motherboard also decided to make the jump from DDR4 to DDR5&amp;hellip;&#xA;I read about the recent explosion in RAM prices but little did I realize how huge it actually is on some specific RAM Models. An eye opener screenshot, the Store page where I bought my 64 GB DDR5 MT6000 Kit. Same Kit in September vs exactly 3 Month later in December. 264 € vs 1.748 € Uhmmm&amp;hellip;&#xA;But why? RAM prices keep climbing because the big memory makers are chasing higher profits from AI and enterprise contracts. Hyperscalers building AI data centers are locking down huge long-term deals for HBM, DDR5, and LPDDR5X, leaving almost no wafer capacity for the consumer-level DDR4 and DDR5 sticks everyone else needs. At the same time, Samsung, SK Hynix, and Micron are shutting down older production lines and focusing on pricier components, which squeezes the PC and mobile market even more.&#xA;Micron already walked away from retail, and there aren’t any new fabs coming online soon, so the market is more consolidated than ever. That gives the remaining suppliers even more control over pricing. Since mid-2025, consumer RAM costs have basically tripled. DIY builders are waiting out upgrades, and even big PC brands can’t get enough inventory. Unless demand from AI projects cools off or new production capacity shows up, DRAM isn’t a cheap commodity anymore—it’s a pressure point across the entire electronics supply chain.&#xA;PC-Part Picker have a good general average graph which is showing the Range of the Impact:&#xA;Back to Normal? Not what I hoped but many Experts expect the DRAM crunch to drag on for years, with only a small hint of balance showing up around late 2027 or 2028. Through most of 2026, AI projects will keep hogging wafer allocations, so DDR5 and LPDDR5X stay pricey while DDR4 pops in and out of stock. Even when SK hynix lights up M15X or Micron ramps its Japan fab, most of that fresh output goes straight into HBM for datacenter GPUs, not the consumer kits we actually buy.&#xA;Memory makers seem happier protecting margins than cranking out extra volume, which keeps oversupply risk tiny but locks in scarcity pricing. Analysts figure DRAM will sit about 50-100% above pre-2025 price levels until at least 2027, easing only when new global capacity and a cooler AI buildout finally line up. Honestly, cheap RAM might be gone for good. AI turned DRAM into a strategic resource, not the impulse add-on at checkout. If you&amp;rsquo;re planning a build, take a careful look, the time you shop for Brand Name or optics in a Gaming Rig are sadly over :(&#xA;</description>
    </item>
    <item>
      <title>WinSCP with 1password SSH-Agent</title>
      <link>https://solariz.de/posts/25/winscp-1password-ssh-agent/</link>
      <pubDate>Wed, 10 Dec 2025 00:00:00 +0000</pubDate>
      <guid>https://solariz.de/posts/25/winscp-1password-ssh-agent/</guid>
      <description>My Setup and the Problem I use Linux on my main work laptop, where remote access is effortless: I can SSH with Kitty&amp;rsquo;s remote edit kitten or mount remotes via KDE Dolphin.&#xA;But at home, my desktop runs Windows 11 for gaming (thanks to stupid anti-cheat restrictions). I normally just game on the desktop; but sometimes I have to do some work from the Desktop, already at the desk and need to quickly edit stuff remote. Most time I just used scp. But remembering in the past as win user, I used WinSCP for remote file editing. Found out quicky it natively refuses to connect using my SSH key from the already running agent in 1password.&#xA;Solve it quickly Ensure 1password SSH Agent is running (Settins &amp;gt; Developer) Disable the Windows built in OpenSSH Agent Service&#xA;(Services.msc &amp;gt; find OpenSSH Auth&amp;hellip; and set it to Disabled) Get winssh-pageant&#xA;Install it and ensure it is run in Autostart adding the Param --no-pageant-pipe In WinSCP under Authentication of a Session chosse &amp;ldquo;Allow Agent forwarding&amp;rdquo; Thats it, your winscp should work as intended using the SSH Keys in your 1password.&#xA;</description>
    </item>
  </channel>
</rss>
