<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: kenneth</title>
    <description>The latest articles on DEV Community by kenneth (@kennethloh).</description>
    <link>https://dev.to/kennethloh</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F410708%2F6365c093-b344-4fb2-9cc0-6aef77114095.png</url>
      <title>DEV Community: kenneth</title>
      <link>https://dev.to/kennethloh</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/kennethloh"/>
    <language>en</language>
    <item>
      <title>Setting up Linux Desktop</title>
      <dc:creator>kenneth</dc:creator>
      <pubDate>Wed, 15 Jul 2026 05:54:48 +0000</pubDate>
      <link>https://dev.to/kennethloh/setting-up-linux-desktop-16km</link>
      <guid>https://dev.to/kennethloh/setting-up-linux-desktop-16km</guid>
      <description>&lt;p&gt;Arch Linux&lt;/p&gt;

&lt;p&gt;Finally got UEFI direct boot with LUKS-encrypted (without LVM) working, issue &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;change from old udev/Busybox hooks (encrypt) to systemd ones (sd-encrypt)&lt;/li&gt;
&lt;li&gt;kernel params in efibootmgr boot entry changed e.g. cryptdevice now rd.luks.name, values/formats expected are also different.&lt;/li&gt;
&lt;li&gt;check more carefully against online examples next time&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Decided on Wayland for display server as it's supposed to be more modern and secure (who knows?)&lt;/p&gt;

&lt;p&gt;Like the idea of Smithay-based compositors instead of wlroots as rust should be more memory-safe, decided to try Pinnacle comp with foot as the terminal emulator. Couldn't get foot to start.&lt;/p&gt;

&lt;p&gt;Switched to niri as there was more discussion online, still couldn't get foot to start. Messed around with enabling the foot-server.socket, making sure it knows dependent on graphical-session.target as well.&lt;/p&gt;

&lt;p&gt;Finally figured out the problem was missing font packages, decided on Hack.&lt;/p&gt;

&lt;p&gt;Now foot works in Niri.&lt;/p&gt;

&lt;p&gt;Thinking if I should switch back to pinnacle as i prefer dynamic tiling as the main paradigm (similar to old spectrwm), but pinnacle discord says it's no longer under active development, maintenance mode only.&lt;/p&gt;

</description>
      <category>debugging</category>
      <category>devjournal</category>
      <category>linux</category>
      <category>security</category>
    </item>
    <item>
      <title>Starting a Python project</title>
      <dc:creator>kenneth</dc:creator>
      <pubDate>Thu, 16 Jul 2020 01:07:13 +0000</pubDate>
      <link>https://dev.to/kennethloh/starting-a-python-project-3eb5</link>
      <guid>https://dev.to/kennethloh/starting-a-python-project-3eb5</guid>
      <description>&lt;ol&gt;
&lt;li&gt;
&lt;code&gt;$ mkdir ~/my_project&lt;/code&gt; Create project directory under user home.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;$ cd ~/my_project&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$ git init&lt;/code&gt; Create git repo. &lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$ python -m venv venv&lt;/code&gt; Create virtual environment within the project directory. Preferred over a centralised virtual environments directory e.g. &lt;code&gt;my_venvs/my_project&lt;/code&gt; as it is easier to find and manage. Not a hidden directory e.g. &lt;code&gt;.venv&lt;/code&gt; for visibility.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$ source venv/bin/activate&lt;/code&gt;
5a. &lt;code&gt;$ source venv/Scripts/activate&lt;/code&gt; for Python 3.9+&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;$ pip install pip --upgrade&lt;/code&gt; Because for some reason the virtual environment's pip is an older version?! Hints of Python dependency hell emerging.&lt;/li&gt;
&lt;/ol&gt;

</description>
    </item>
  </channel>
</rss>
