<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[stukev's Blog]]></title><description><![CDATA[Coding, Biohacking and other things I'm into.]]></description><link>https://stukev.com/</link><image><url>https://stukev.com/favicon.png</url><title>stukev&apos;s Blog</title><link>https://stukev.com/</link></image><generator>Ghost 4.0</generator><lastBuildDate>Fri, 27 Mar 2026 17:27:04 GMT</lastBuildDate><atom:link href="https://stukev.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Giving VirtualBox a dark mode]]></title><description><![CDATA[We all love our dark mode, don't we, folks? System-wide themes usually take care of that for us. But what about software written in a different GUI system? QT apps will often not respect your system-wide settings. But we will make them do so anyway.]]></description><link>https://stukev.com/giving-virtualbox-a-dark-mode/</link><guid isPermaLink="false">61abc5db32135602ba98f2b0</guid><category><![CDATA[virtualbox]]></category><category><![CDATA[dark mode]]></category><category><![CDATA[qt]]></category><dc:creator><![CDATA[stukev]]></dc:creator><pubDate>Sat, 04 Dec 2021 20:04:24 GMT</pubDate><media:content url="https://stukev.com/content/images/2021/12/virtualbox_darkmode.jpg" medium="image"/><content:encoded><![CDATA[<!--kg-card-begin: markdown--><img src="https://stukev.com/content/images/2021/12/virtualbox_darkmode.jpg" alt="Giving VirtualBox a dark mode"><p>The solution is actually fairly easy. Qt5 has a tool called <code>qt5ct</code> that allows us to change some of its settings.</p>
<p>We&apos;ll install it with <code>sudo apt-get install qt5ct -y</code>. For the next step, we need to set a permanent environment variable. This will ensure that all Qt apps will use the custom qt5ct settings. Open up your <code>~/.profile</code> file and add <code>export QT_QPA_PLATFORMTHEME=qt5ct</code>. Next up, start qt5ct with <code>qt5ct</code> in the terminal.</p>
<p>In the first tab, simply switch &quot;Palette&quot; to Custom. You can now change the color scheme to your liking. I can recommend &quot;darker&quot;. Once you&apos;re done, apply the settings. Start the Qt app of your choice, and enjoy not having your retinas burned out of your eyes.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[The one setting keeping your XPS from outputting 4k 60hz]]></title><description><![CDATA[<p>Just a very short but infuriating hint today. Many people seem to be having issues getting full 60hz 4k output from their XPS Laptops to external devices. I&apos;ve had the same issue, and my 4k external monitor only ever managed to get 30hz from my Dell XPS 17</p>]]></description><link>https://stukev.com/one-setting-keeping-your-xps-from-4k-60hz/</link><guid isPermaLink="false">60fbf6d80216586eb280fbe4</guid><category><![CDATA[dell]]></category><category><![CDATA[xps 17]]></category><category><![CDATA[4k]]></category><category><![CDATA[60hz]]></category><category><![CDATA[hdmi]]></category><dc:creator><![CDATA[stukev]]></dc:creator><pubDate>Sat, 24 Jul 2021 11:31:22 GMT</pubDate><content:encoded><![CDATA[<p>Just a very short but infuriating hint today. Many people seem to be having issues getting full 60hz 4k output from their XPS Laptops to external devices. I&apos;ve had the same issue, and my 4k external monitor only ever managed to get 30hz from my Dell XPS 17 over HDMI.</p><p>The reason for this is one simple BIOS setting.</p><p>You can find it under:</p><p>BIOS &#x2192; Display &#x2192; Direct Graphics Controller Direct Output Mode</p><p>Enabling this setting will allow your external devices to talk directly to your graphics card, rather than being passed through Intel&apos;s integrated graphics. This will give HDMI, Thunderbolt and (mini) Display Port the full capability of your system.</p>]]></content:encoded></item><item><title><![CDATA[AX201's Bluetooth goes to sleep forever]]></title><description><![CDATA[Intel's AX201 Wifi and Bluetooth combination cards seem to have a bug in their firmware that can make your Bluetooth go to sleep forever. It's not the first time this happened to me, which is why I'm signal boosting the problem and its solution.]]></description><link>https://stukev.com/ax201s-bluetooth-goes-to-sleep-forever/</link><guid isPermaLink="false">60ed787f0216586eb280fb78</guid><category><![CDATA[xps 17]]></category><category><![CDATA[AX201]]></category><category><![CDATA[bluetooth]]></category><dc:creator><![CDATA[stukev]]></dc:creator><pubDate>Tue, 13 Jul 2021 11:45:28 GMT</pubDate><media:content url="https://stukev.com/content/images/2021/07/bluetooth_wakeup.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://stukev.com/content/images/2021/07/bluetooth_wakeup.jpg" alt="AX201&apos;s Bluetooth goes to sleep forever"><p>I have this card in my Dell XPS 17 and with modern Kernels it is running fairly well with little to no problems. The bug usually triggers if you&apos;re actively transmitting data to a connected Bluetooth device while the OS itself is going to sleep. After waking your system back up, the Bluetooth adapter will be gone. What&apos;s even stranger is that not even a reboot will fix this problem. Nor will any kind of Driver modifications or kernel module reloading.</p><p>I found the actual solution over at the <a href="https://bbs.archlinux.org/viewtopic.php?id=257478">Arch Linux Forums</a> where the AX200 card seems to have the same problem. The Card is stuck in some kind of sleep/lock state for the Bluetooth adapter and as long as the system is still plugged in, this state seems to even survive a reboot. The fix is fairly simple:</p><ol><li>Shut down your machine.</li><li>Unplug the power cable.</li><li>Wait a few minutes.</li><li>Reboot</li></ol><p>Afterwards, your Bluetooth adapter will be back as if nothing ever happened. To prevent this problem from appearing, make sure you don&apos;t fall asleep while watching a movie with your Bluetooth headphones - like I did in this case. It&apos;s a fairly rare bug given the scenario, but no doubt one that might cause some frustration.</p>]]></content:encoded></item><item><title><![CDATA[Stupidly simple Linux reminders]]></title><description><![CDATA[Programmers tend to be a forget folk. I know I certainly get lost in thought when I'm in the zone. This makes reminders and alarms a necessity. Some people simply plug these into their phones, I prefer them on my computer.]]></description><link>https://stukev.com/stupidly-simple-linux-reminders/</link><guid isPermaLink="false">603113d71f710e644b563126</guid><category><![CDATA[cron]]></category><category><![CDATA[linux]]></category><category><![CDATA[notify-send]]></category><dc:creator><![CDATA[stukev]]></dc:creator><pubDate>Sat, 20 Feb 2021 18:44:14 GMT</pubDate><media:content url="https://stukev.com/content/images/2021/02/wojak_notify.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://stukev.com/content/images/2021/02/wojak_notify.jpg" alt="Stupidly simple Linux reminders"><p>So, what&apos;s the simplest and most flexible way to do that in Linux? Cron.</p><p>Let&apos;s first find out where notify-send lies on your system. This will help us avoid bugs. By the way, I&apos;ve tested notify-send on gnome and KDE, it may or may not work on other desktop environments. To get the full path to notify-send, run this command and save the path somewhere:</p><!--kg-card-begin: markdown--><pre><code class="language-bash">whereis notify-send
</code></pre>
<!--kg-card-end: markdown--><p>If you don&apos;t know the cron syntax by heart I recommend you head on over to <a href="https://crontab.guru">https://crontab.guru</a>. After you&apos;ve defined how often you want to run your notification you open up your crontab with:</p><!--kg-card-begin: markdown--><pre><code class="language-bash">crontab -e
</code></pre>
<!--kg-card-end: markdown--><p>Now simply enter your previously generated line. Next we have to define a variable so that notify-send knows where to send the notification to. Followed by the full path to notify-send and lastly the title and message that you want to display. Let&apos;s say you want a daily reminder to have tea at 20:30, this could be your crontab entry:</p><!--kg-card-begin: markdown--><pre><code class="language-cron">30 20 * * * XDG_RUNTIME_DIR=/run/user/$(id -u) /usr/bin/notify-send Reminder &quot;It&apos;s tea time.&quot;
</code></pre>
<!--kg-card-end: markdown--><p>If that&apos;s too bland for you, you can spice it up by passing arguments to notify-send. The -u flag can be used to define the urgency of your notification, -t can be used to set the notification timeout and -i can be used to pass a path to an image that will be used as an icon. Just have a look at:</p><!--kg-card-begin: markdown--><pre><code class="language-bash">man notify-send
</code></pre>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Fixing the sound on Dell's XPS 17 9700 on Linux]]></title><description><![CDATA[Dell's new XPS 17 line includes a new hardware array of microphones. That's cool, but it's not supported on most Linux distributions yet.]]></description><link>https://stukev.com/fixing-the-sound-on-dells-xps-17-9700/</link><guid isPermaLink="false">5ff45ce81f710e644b563045</guid><category><![CDATA[dell]]></category><category><![CDATA[xps 17]]></category><category><![CDATA[sound]]></category><category><![CDATA[linux]]></category><category><![CDATA[ubuntu]]></category><dc:creator><![CDATA[stukev]]></dc:creator><pubDate>Tue, 05 Jan 2021 13:10:08 GMT</pubDate><media:content url="https://stukev.com/content/images/2021/02/wojak_laptop.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://stukev.com/content/images/2021/02/wojak_laptop.jpg" alt="Fixing the sound on Dell&apos;s XPS 17 9700 on Linux"><p>And even worse, on current Ubuntu default installations it causes sound output to break completely.</p><p>The way to fix this is to update your kernel to a version that supports this new hardware and then install the necessary firmware and drivers. Since any system update can break this fix again I decided to wrap it up into a small script that does most of the work for you.</p><p>Now we can all have our... sound and update our systems too.</p><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/stukev/XPS-17-9700-Ubuntu-Soundfix"><div class="kg-bookmark-content"><div class="kg-bookmark-title">stukev/XPS-17-9700-Ubuntu-Soundfix</div><div class="kg-bookmark-description">A simple script to install the necessary firmware to fix sound output (dummy sound). - stukev/XPS-17-9700-Ubuntu-Soundfix</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/favicons/favicon.svg" alt="Fixing the sound on Dell&apos;s XPS 17 9700 on Linux"><span class="kg-bookmark-author">GitHub</span><span class="kg-bookmark-publisher">stukev</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://avatars1.githubusercontent.com/u/15886207?s=400&amp;v=4" alt="Fixing the sound on Dell&apos;s XPS 17 9700 on Linux"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[WordPress VS Ghost]]></title><description><![CDATA[If you're thinking about self-hosting a blog you should really consider your needs when you're picking out your software. I'm going to go into why I've given up on WordPress and switched to Ghost.]]></description><link>https://stukev.com/wordpress-vs-ghost/</link><guid isPermaLink="false">5fea55e21f710e644b562f06</guid><category><![CDATA[blogging]]></category><category><![CDATA[wordpress]]></category><category><![CDATA[ghost]]></category><category><![CDATA[nginx]]></category><category><![CDATA[letsencrypt]]></category><dc:creator><![CDATA[stukev]]></dc:creator><pubDate>Mon, 28 Dec 2020 23:21:30 GMT</pubDate><media:content url="https://stukev.com/content/images/2020/12/wordpress_vs_ghost-4.jpg" medium="image"/><content:encoded><![CDATA[<img src="https://stukev.com/content/images/2020/12/wordpress_vs_ghost-4.jpg" alt="WordPress VS Ghost"><p><strong>WordPress</strong> has been the go-to for me for many years, but it&apos;s always been a bit of a hassle to keep up with its ever expanding list of security holes. And let&apos;s not forget that it needs a myriad of plugins to keep it somewhat secure, speedy and good-looking. </p><p><strong>Ghost</strong> on the other hand is a relatively sleek and extremely straight forward service that does most of the work for you. Granted, since it&apos;s a NodeJS application it can&apos;t be thrown on any cheap web hosting like WordPress. But VPS aren&apos;t all that expensive these days either.</p><p>I&apos;ve made a table with my Pro/Con arguments to make your decision easier:</p><!--kg-card-begin: markdown--><table>
<thead>
<tr>
<th>WordPress</th>
<th style="text-align:left">Ghost</th>
</tr>
</thead>
<tbody>
<tr>
<td>&#x2705; Tons of plugins and themes</td>
<td style="text-align:left">&#x274C; Not as many plugins and themes</td>
</tr>
<tr>
<td>&#x2705; Can be hosted on normal web hosting</td>
<td style="text-align:left">&#x274C; Needs a VPS</td>
</tr>
<tr>
<td>&#x2705; Easy to customize</td>
<td style="text-align:left">&#x2705; Easy to customize</td>
</tr>
<tr>
<td>&#x274C; Needs a myriad of plugins for basic functionality</td>
<td style="text-align:left">&#x2705; Comes with a rich base install that covers most requirements</td>
</tr>
<tr>
<td>&#x274C; Requires a lot of upkeep for base install and plugins</td>
<td style="text-align:left">&#x2705; Very little upkeep required</td>
</tr>
<tr>
<td>&#x274C; Basic performance is lacking without plugins</td>
<td style="text-align:left">&#x2705; Blazing fast even without additional caching</td>
</tr>
<tr>
<td>&#x274C; Installation takes quite a bit of time</td>
<td style="text-align:left">&#x2705; Ghost even sets up nginx and letsencrypt for you (see below)</td>
</tr>
</tbody>
</table>
<!--kg-card-end: markdown--><p>The last point of ghost is what definitely sold me on it. Might be a bit petty, but I really appreciate a software taking care of a full install rather than leaving me to set up nginx, letsencrypt, systemd etc. on my own.</p><p>Just have a look at this beautiful install process:</p><!--kg-card-begin: markdown--><pre><code>/var/www/stukev$ ghost install
? Enter your blog URL: /
? Enter your MySQL hostname: localhost
? Enter your MySQL username: ghost
? Enter your MySQL password: [hidden]
? Enter your Ghost database name: stukev_prod
&#x2714; Configuring Ghost
&#x2714; Setting up instance
&#x2714; Setting up &quot;ghost&quot; system user
? Do you wish to set up Nginx? Yes
&#x2714; Setting up Nginx
? Do you wish to set up SSL? Yes
? Enter your email (For SSL Certificate) removed@removed.com
&#x2714; Setting up SSL
? Do you wish to set up Systemd? Yes
&#x2714; Setting up Systemd
? Do you want to start Ghost? Yes
&#x2714; Starting Ghost
</code></pre>
<!--kg-card-end: markdown--><p>If you&apos;d like to set up your own ghost install just head on <a href="https://ghost.org/docs/install/">over here,</a> and you&apos;ll be up in no time. The only point I can still give WordPress it&apos;s that it&apos;s a super easy way for amateurs to set up websites. But as for blogging, we&apos;ve got a new king, and it&apos;s Ghost.</p>]]></content:encoded></item></channel></rss>