<?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: Abdullah Musa</title>
    <description>The latest articles on DEV Community by Abdullah Musa (@retro-1o1).</description>
    <link>https://dev.to/retro-1o1</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3728987%2F7ef80779-e5b5-44a2-a26a-f94ee0677e57.jpeg</url>
      <title>DEV Community: Abdullah Musa</title>
      <link>https://dev.to/retro-1o1</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/retro-1o1"/>
    <language>en</language>
    <item>
      <title>Running Chrome OS Flex on VM</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Wed, 01 Apr 2026 17:05:58 +0000</pubDate>
      <link>https://dev.to/retro-1o1/running-chrome-os-flex-on-vm-46m4</link>
      <guid>https://dev.to/retro-1o1/running-chrome-os-flex-on-vm-46m4</guid>
      <description>&lt;p&gt;Chrome OS Flex is an incredibly lightweight operating system, especially designed to breathe new life into older hardware. Plus, its CloudReady feature is nothing short of impressive.&lt;/p&gt;

&lt;p&gt;Now, I don’t have any aging hardware lying around, but I still wanted to give Chrome OS Flex a spin. The catch? Installing it would mean wiping an entire drive, something I wasn’t ready to do. So I thought, why not run it in a virtual machine?&lt;/p&gt;

&lt;p&gt;There’s a twist, though: Google doesn’t officially support Chrome OS Flex in virtual environments. Unlike most operating systems that ship as a neat &lt;strong&gt;.iso&lt;/strong&gt; file, Chrome OS Flex is distributed in a &lt;strong&gt;.bzip2&lt;/strong&gt; format. And even if you manage to extract it, you can’t just fire it up in a typical VM with a few clicks.&lt;/p&gt;

&lt;p&gt;But I’ve been using QEMU/KVM for a while, and I know how powerful it can be. So I decided to put it to the test and see if I could get Chrome OS Flex running inside a VM with QEMU.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgv1pyf7m535biy7y0svq.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgv1pyf7m535biy7y0svq.webp" alt="Fast Fetch inside Chrome OS Flex on a VM" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First Challenge: The Unusual Installation Image
&lt;/h2&gt;

&lt;p&gt;After extracting Chrome OS Flex from its .bzip2 archive, I ended up with a raw &lt;strong&gt;.bin&lt;/strong&gt; file, not the familiar &lt;strong&gt;.iso&lt;/strong&gt; that most virtual machines expect.&lt;/p&gt;

&lt;p&gt;I tried pointing my usual VM software to this &lt;strong&gt;.bin&lt;/strong&gt; file, but it just wouldn’t boot. Most hypervisors are designed to boot from either a &lt;strong&gt;CD/DVD drive (ISO)&lt;/strong&gt; or a &lt;strong&gt;USB device&lt;/strong&gt;. A raw disk image like this doesn’t fit either category, at least not without some creative configuration.&lt;/p&gt;

&lt;p&gt;So here I was: I had the right file, but no straightforward way to make the VM treat it as a bootable medium.&lt;/p&gt;

&lt;p&gt;That’s where QEMU’s &lt;strong&gt;low‑level&lt;/strong&gt; control became a game‑changer. QEMU doesn’t care whether your boot image is an ISO, a USB stick, or a raw disk dump. You can attach any file as a drive and tell QEMU to boot from it.&lt;/p&gt;

&lt;p&gt;With the right command, I could make the VM treat chromeosflex.bin as if it were a physical USB drive, exactly what the installer expects. This was the key to loading Chrome OS Flex’s installation environment without any hacky workarounds.&lt;/p&gt;

&lt;p&gt;In the next section, I’ll walk you through the exact QEMU command that made this possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Second Challenge: Crafting the Perfect QEMU Command
&lt;/h2&gt;

&lt;p&gt;Once I understood that QEMU could treat the raw .bin file as a bootable drive, I needed to piece together the right command. After a lot of trial and error, this is what finally worked:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qemu-system-x86_64 &lt;span class="nt"&gt;-enable-kvm&lt;/span&gt; &lt;span class="nt"&gt;-smp&lt;/span&gt; 2 &lt;span class="nt"&gt;-m&lt;/span&gt; 8G &lt;span class="nt"&gt;-cpu&lt;/span&gt; host &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-drive&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"/mnt/sdc1/OSImages/ChromeOS/ChromeOSFlex Image/chromeos_16002.51.0_reven_recovery_stable-channel_mp-v6.bin"&lt;/span&gt;,format&lt;span class="o"&gt;=&lt;/span&gt;raw &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-drive&lt;/span&gt; &lt;span class="nv"&gt;file&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;chromeos.qcow2,format&lt;span class="o"&gt;=&lt;/span&gt;qcow2 &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-display&lt;/span&gt; &lt;span class="s2"&gt;"gtk,gl=on,show-cursor=on"&lt;/span&gt; &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-device&lt;/span&gt; virtio-vga-gl &lt;span class="se"&gt;\&lt;/span&gt;
    &lt;span class="nt"&gt;-device&lt;/span&gt; usb-tablet &lt;span class="nt"&gt;-usb&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfanw9ahe10a28qf98a3.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnfanw9ahe10a28qf98a3.webp" alt="Chrome OS Flex Launch command for VM" width="800" height="393"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Breaking this down:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-enable-kvm&lt;/strong&gt;: This enables hardware acceleration using the Linux Kernel Virtual Machine. Without it, the VM would be painfully slow. KVM gives near‑native performance, which is essential for a responsive Chrome OS Flex experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-smp 2 -m 8G -cpu host&lt;/strong&gt;: I allocated 2 CPU cores, 8 GB of RAM, and passed through the host CPU type. Chrome OS Flex expects decent resources, and this configuration avoids any artificial bottlenecks.&lt;/p&gt;

&lt;p&gt;The two &lt;strong&gt;-drive&lt;/strong&gt; options&lt;/p&gt;

&lt;p&gt;The first attaches the extracted .bin file as a raw drive – this is the installer medium.&lt;/p&gt;

&lt;p&gt;The second attaches the QCOW2 virtual disk where Chrome OS Flex will actually be installed.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-display "gtk,gl=on,show-cursor=on"&lt;/strong&gt;: This enables OpenGL acceleration for the display and shows the mouse cursor properly. It makes the VM window feel native.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-device virtio-vga-gl&lt;/strong&gt;: This is the secret sauce. It provides a virtual GPU that supports OpenGL, effectively passing through graphics acceleration to the guest. Chrome OS Flex, like many modern OSes, relies on GPU capabilities. Without this, the installer might fail or the OS would be sluggish.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;-device usb-tablet -usb&lt;/strong&gt;: Enables USB support and adds a tablet device, which gives you smooth mouse movement without needing to grab/release the cursor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why These Flags Matter for Chrome OS Flex
&lt;/h2&gt;

&lt;p&gt;Chrome OS Flex is picky about hardware. It expects a real machine with proper GPU support and acceleration. By combining KVM, the VirtIO GPU with OpenGL (&lt;strong&gt;virtio-vga-gl&lt;/strong&gt;), and the GTK display with GL enabled, we’re effectively tricking the OS into thinking it’s running on bare metal. The installer proceeds without complaint, and the final system boots with full graphics acceleration.&lt;/p&gt;

&lt;p&gt;In short, these flags aren’t just optional tweaks, they’re the core reason this setup works at all.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqr7o38bj97yy2uoznru1.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqr7o38bj97yy2uoznru1.webp" alt="Chrome OS Flex running on a VM" width="800" height="470"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  And I was In!
&lt;/h2&gt;

&lt;p&gt;Once I ran that command, the Chrome OS Flex installer booted after a minute or two. I clicked Install Chrome OS Flex, let it wipe the virtual disk, and after a brief installation, the VM shut down. Removing the installer drive from the command and booting again from the QCOW2 image gave me a fully functional Chrome OS Flex environment.&lt;/p&gt;

&lt;p&gt;If you’ve been struggling to virtualise Chrome OS Flex with other tools, give QEMU with these flags a try. The combination of KVM, GPU acceleration, and raw disk attachment makes all the difference.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Getting Chrome OS Flex to run in a virtual machine wasn’t straightforward – Google never intended it to be. But with QEMU/KVM and the right configuration, it’s absolutely possible. The combination of KVM acceleration, a properly configured VirtIO GPU, and treating the raw .bin as a bootable drive made all the difference.&lt;/p&gt;

&lt;p&gt;If you’re curious about Chrome OS Flex but don’t want to commit hardware, I highly recommend giving this setup a try. For a complete, step‑by‑step walkthrough, including where to download the recovery image, detailed QEMU flags, and troubleshooting common pitfalls, check out my full guide here:&lt;br&gt;
👉 &lt;a href="https://www.musabase.com/2025/03/chrome-os-flex-no-nonsense-qemu.html" rel="noopener noreferrer"&gt;Chrome OS Flex on QEMU&lt;/a&gt;&lt;br&gt;
It covers everything you need to get up and running. Happy virtualizing!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>chromeosflex</category>
      <category>virtualmachine</category>
      <category>kvm</category>
    </item>
    <item>
      <title>Single GPU Passthrough on Linux: Running a VM Like It’s Bare Metal</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Wed, 25 Mar 2026 10:05:24 +0000</pubDate>
      <link>https://dev.to/retro-1o1/single-gpu-passthrough-on-linux-running-a-vm-like-its-bare-metal-1f4</link>
      <guid>https://dev.to/retro-1o1/single-gpu-passthrough-on-linux-running-a-vm-like-its-bare-metal-1f4</guid>
      <description>&lt;p&gt;I used to believe that GPU passthrough required two graphics cards, one for the host, one for the VM. Turns out, that’s not the only way.&lt;/p&gt;

&lt;p&gt;A few months ago, I stumbled into the world of single GPU passthrough, and it completely changed how I think about virtual machines.&lt;/p&gt;

&lt;p&gt;Let me walk you through what it is, why I tried it, and what it taught me along the way.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdsqplp9m6jaznti6pccj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdsqplp9m6jaznti6pccj.png" alt="Windows 11 VM with Single GPU Passed Successfully" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Bother?
&lt;/h2&gt;

&lt;p&gt;I’ve been using QEMU on Linux for a while, mostly for lightweight VMs. But even with decent specs, Windows in a VM always felt sluggish, until I started experimenting with hardware acceleration.&lt;/p&gt;

&lt;p&gt;One day, after tweaking some settings, I noticed the VM felt unusually smooth. It got me thinking: If the VM can already feel this responsive, could I give it full, exclusive access to my only GPU?&lt;/p&gt;

&lt;p&gt;I went down the rabbit hole. I found resources like the NlTESHADE YouTube channel and the RisingPrism GitLab repo, which gave me the conceptual push I needed.&lt;/p&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;Keep Linux as my daily driver.&lt;/p&gt;

&lt;p&gt;Launch a Windows VM when needed, without rebooting.&lt;/p&gt;

&lt;p&gt;Get as close to bare‑metal performance as possible.&lt;/p&gt;

&lt;p&gt;Dual booting was out. Constantly restarting kills flow, and I wanted the flexibility of both operating systems at my fingertips.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Exactly Is Single GPU Passthrough?
&lt;/h2&gt;

&lt;p&gt;Instead of sharing your GPU between the host and the VM, you detach it from the host and hand it over completely to the VM.&lt;/p&gt;

&lt;p&gt;The VM gets direct hardware access, bypassing software emulation. The result? Near-native performance for gaming, rendering, or any heavy Windows‑only workload.&lt;/p&gt;

&lt;p&gt;When you shut down the VM, the GPU is handed back to your Linux host, and everything resumes as if nothing happened.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Setup &amp;amp; How It Works
&lt;/h2&gt;

&lt;p&gt;I built this on Arch Linux (though the principles apply to any distro). The stack includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;QEMU / KVM: virtualization backbone&lt;/li&gt;
&lt;li&gt;VFIO: kernel‑level GPU assignment&lt;/li&gt;
&lt;li&gt;libvirt: management layer&lt;/li&gt;
&lt;li&gt;OVMF: UEFI firmware for modern Windows VMs&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Behind the Scenes
&lt;/h2&gt;

&lt;p&gt;Here’s the flow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Boot Linux normally.&lt;/li&gt;
&lt;li&gt;Start the VM, a script unloads the GPU drivers from the host.&lt;/li&gt;
&lt;li&gt;The GPU is passed through to the VM.&lt;/li&gt;
&lt;li&gt;Windows boots and uses the GPU directly.&lt;/li&gt;
&lt;li&gt;You work/play with native performance.&lt;/li&gt;
&lt;li&gt;Shut down the VM, the GPU returns to Linux, and the host drivers reload.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;No reboots. No dual boot. Just seamless switching.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswdkk5ct9my2et1mi9nh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswdkk5ct9my2et1mi9nh.png" alt="An example of setting VM to attach Single GPU" width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Command Snippets
&lt;/h2&gt;

&lt;p&gt;This is just a glimpse—don’t try to run these without proper configuration.&lt;/p&gt;

&lt;p&gt;Check if virtualization is supported&lt;br&gt;
lscpu | grep Virtualization&lt;/p&gt;

&lt;p&gt;Load VFIO modules&lt;br&gt;
&lt;code&gt;sudo modprobe vfio vfio-pci&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Find your GPU’s PCI ID&lt;br&gt;
&lt;code&gt;lspci -nn | grep -i nvidia   # or amd&lt;br&gt;
&lt;/code&gt;&lt;br&gt;
Bind the GPU to vfio-pci&lt;br&gt;
&lt;code&gt;echo "10de 1f82" &amp;gt; /sys/bus/pci/drivers/vfio-pci/new_id&lt;/code&gt;&lt;br&gt;
`&lt;br&gt;
The real setup involves hooks, kernel parameters, and careful timing—but that’s what the full guide is for.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Hard Parts
&lt;/h2&gt;

&lt;p&gt;This wasn’t a one‑hour project. I hit plenty of roadblocks:&lt;/p&gt;

&lt;p&gt;The VM would start, but the screen stayed black.&lt;/p&gt;

&lt;p&gt;Sometimes the GPU wouldn’t release back to Linux after shutdown.&lt;/p&gt;

&lt;p&gt;Driver conflicts (especially with NVIDIA).&lt;/p&gt;

&lt;p&gt;Windows failing to detect the GPU properly.&lt;/p&gt;

&lt;p&gt;Every issue forced me to understand my hardware and software at a deeper level.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg14cgcvi7vr8kb3ghdoy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg14cgcvi7vr8kb3ghdoy.png" alt="Passing my single GPU to Windows 11 VM on Virt manager" width="800" height="694"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Gained (Besides Performance)
&lt;/h2&gt;

&lt;p&gt;Single GPU passthrough taught me more than I expected:&lt;/p&gt;

&lt;p&gt;How PCI devices are managed by the kernel&lt;/p&gt;

&lt;p&gt;How driver binding and unbinding work&lt;/p&gt;

&lt;p&gt;The inner workings of QEMU hooks and libvirt&lt;/p&gt;

&lt;p&gt;It’s one thing to use Linux; it’s another to control exactly how your hardware behaves.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=-Ne7ksVGAGI&amp;amp;source_ve_path=MjM4NTE&amp;amp;embeds_referring_euri=https%3A%2F%2Fwww.musabase.com%2F" rel="noopener noreferrer"&gt;Benchmark video of Windows 11 with Single GPU Passthrough&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Is This for You?
&lt;/h2&gt;

&lt;p&gt;My hardware is modest—nothing high‑end. Even so, the performance was impressive enough to convince me that this setup can replace dual booting on capable machines.&lt;/p&gt;

&lt;p&gt;If you’re tired of rebooting just to run a Windows‑only app or game, and you want to keep your Linux workflow intact, single GPU passthrough is worth the effort.&lt;/p&gt;

&lt;p&gt;Final Words&lt;br&gt;
This journey changed how I use my system. Instead of choosing between operating systems, I just switch environments, instantly, without sacrificing performance.&lt;/p&gt;

&lt;p&gt;This article is a high‑level overview. If you want the full step‑by‑step guide, including the exact configuration, scripts, and troubleshooting steps I used, head over to my website:&lt;/p&gt;

&lt;p&gt;🔗 &lt;a href="https://www.musabase.com/2025/05/single-gpu-passthrough-on-vm.html" rel="noopener noreferrer"&gt;Single GPU Passthrough Guide&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you tried something similar? Got questions or war stories? Drop them in the comments, I’d love to hear about your experience.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>virtualmachine</category>
      <category>qemu</category>
      <category>kvm</category>
    </item>
    <item>
      <title>I Switched from VirtualBox to QEMU/KVM… and It Feels Almost Native</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Mon, 23 Mar 2026 10:43:24 +0000</pubDate>
      <link>https://dev.to/retro-1o1/i-switched-from-virtualbox-to-qemukvm-and-it-feels-almost-native-32ge</link>
      <guid>https://dev.to/retro-1o1/i-switched-from-virtualbox-to-qemukvm-and-it-feels-almost-native-32ge</guid>
      <description>&lt;p&gt;If you’re a developer, you probably use virtual machines regularly.&lt;/p&gt;

&lt;p&gt;I do too.&lt;/p&gt;

&lt;p&gt;But for the longest time, something always felt off.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem With VirtualBox (At Least For Me)
&lt;/h2&gt;

&lt;p&gt;On Windows, I used Oracle VM VirtualBox.&lt;/p&gt;

&lt;p&gt;It worked.&lt;/p&gt;

&lt;p&gt;But never perfectly.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Performance felt inconsistent&lt;/li&gt;
&lt;li&gt;Some features felt limited&lt;/li&gt;
&lt;li&gt;It never felt “smooth”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No matter how much I tweaked it, there was always something missing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Then I Switched to Linux
&lt;/h2&gt;

&lt;p&gt;When I moved to Linux, I still needed virtual machines.&lt;/p&gt;

&lt;p&gt;That’s when I kept hearing about:&lt;/p&gt;

&lt;h2&gt;
  
  
  QEMU + KVM
&lt;/h2&gt;

&lt;p&gt;At first, it sounded complicated.&lt;/p&gt;

&lt;p&gt;Not as beginner-friendly as VirtualBox.&lt;/p&gt;

&lt;p&gt;But one thing kept coming up everywhere:&lt;/p&gt;

&lt;p&gt;KVM is extremely powerful&lt;/p&gt;

&lt;p&gt;So I decided to try it.&lt;/p&gt;

&lt;h2&gt;
  
  
  First Impression: “Whoa, This Feels Native”
&lt;/h2&gt;

&lt;p&gt;The first time I properly set up a virtual machine using QEMU/KVM, the difference was immediately noticeable.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The performance.&lt;/li&gt;
&lt;li&gt;The responsiveness.&lt;/li&gt;
&lt;li&gt;The smoothness.&lt;/li&gt;
&lt;li&gt;It didn’t feel like a typical VM anymore.&lt;/li&gt;
&lt;li&gt;It felt close to running a system natively.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Applications opened faster, animations were smoother, and overall interaction just felt better compared to what I was used to on Windows with VirtualBox.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18f3hm1cbvb8gu0cglfi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F18f3hm1cbvb8gu0cglfi.png" alt="Configuring QEMU VM to bypass Single GPU" width="800" height="619"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That was the moment I realized this wasn’t just another virtualization tool. This was something much more powerful.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Than Just Basic Virtualization
&lt;/h2&gt;

&lt;p&gt;What surprised me the most wasn’t just the performance.&lt;/p&gt;

&lt;p&gt;It was the flexibility.&lt;/p&gt;

&lt;p&gt;There were things I didn’t even know were possible inside a virtual machine that suddenly became achievable with QEMU/KVM.&lt;/p&gt;

&lt;p&gt;With a bit of effort and understanding, you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Get near-native performance&lt;/li&gt;
&lt;li&gt;Customize hardware at a deeper level&lt;/li&gt;
&lt;li&gt;Experiment with different system configurations&lt;/li&gt;
&lt;li&gt;Push virtualization far beyond basic usage&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;It opens up a completely different way of thinking about virtual machines.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv03dogxx6590tb9dgyj.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzv03dogxx6590tb9dgyj.webp" alt="Chrome OS Flex running inside VM" width="600" height="337"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why QEMU/KVM Feels Different
&lt;/h2&gt;

&lt;p&gt;Unlike traditional VM tools, QEMU combined with KVM uses hardware virtualization directly through the Linux kernel.&lt;/p&gt;

&lt;p&gt;This is one of the main reasons why it performs so well.&lt;/p&gt;

&lt;p&gt;Instead of acting like a heavy abstraction layer, it works much closer to the system itself.&lt;/p&gt;

&lt;p&gt;The result is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Better performance&lt;/li&gt;
&lt;li&gt;Lower overhead&lt;/li&gt;
&lt;li&gt;More control&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Of course, it does require a bit more setup and understanding compared to beginner tools. But once you get past that initial learning curve, the payoff is huge.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience Using It Daily
&lt;/h2&gt;

&lt;p&gt;After spending more time with QEMU/KVM, it slowly became my primary way of running virtual machines.&lt;/p&gt;

&lt;p&gt;Instead of switching back to Windows tools, I found myself doing more and more inside Linux.&lt;/p&gt;

&lt;p&gt;The control it gives you is hard to go back from.&lt;/p&gt;

&lt;p&gt;It fits really well into a developer workflow where you want flexibility, performance, and the ability to experiment freely.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Explored With It
&lt;/h2&gt;

&lt;p&gt;One of the best parts about using Linux with QEMU/KVM is the ability to explore things you normally wouldn’t try.&lt;/p&gt;

&lt;p&gt;For example:&lt;/p&gt;

&lt;p&gt;Running ChromeOS Flex inside a virtual machine&lt;br&gt;
Experimenting with different Linux distributions safely&lt;br&gt;
Trying advanced setups like GPU passthrough (even with a single GPU)&lt;/p&gt;

&lt;p&gt;These are things I never seriously explored before.&lt;/p&gt;

&lt;p&gt;But with QEMU/KVM, they become possible, and honestly, really fun to experiment with.&lt;/p&gt;

&lt;h2&gt;
  
  
  Still Exploring
&lt;/h2&gt;

&lt;p&gt;Even now, I feel like I’ve only scratched the surface.&lt;/p&gt;

&lt;p&gt;This setup opened the door to a lot of new ideas and experiments.&lt;/p&gt;

&lt;p&gt;Linux combined with QEMU/KVM gave me the freedom to test things, break things, and learn without worrying about my main system.&lt;/p&gt;

&lt;p&gt;And that’s something I didn’t fully experience before.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Setup Guide
&lt;/h2&gt;

&lt;p&gt;If you’re interested in setting this up yourself, I’ve documented the complete step-by-step process on my site.&lt;/p&gt;

&lt;p&gt;It covers everything from creating virtual disks to configuring QEMU properly and getting a working VM environment.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.musabase.com/2025/03/how-to-install-near-native-vms-on-linux.html" rel="noopener noreferrer"&gt;Install QEMU/KVM on Linux: Near-native VMs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;If you’re still relying on traditional virtualization tools and haven’t tried QEMU/KVM yet, it’s definitely worth exploring.&lt;/p&gt;

&lt;p&gt;There is a bit of a learning curve.&lt;/p&gt;

&lt;p&gt;But once you get through it, the experience is on a completely different level.&lt;/p&gt;

&lt;p&gt;Especially on Linux.&lt;/p&gt;

</description>
      <category>linux</category>
      <category>virtualmachine</category>
      <category>qemukvm</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Exploring Hyprland on Arch Linux: 5 Dotfile Setups Worth Trying</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Wed, 04 Mar 2026 14:56:15 +0000</pubDate>
      <link>https://dev.to/retro-1o1/exploring-hyprland-on-arch-linux-5-dotfile-setups-worth-trying-30fn</link>
      <guid>https://dev.to/retro-1o1/exploring-hyprland-on-arch-linux-5-dotfile-setups-worth-trying-30fn</guid>
      <description>&lt;h2&gt;
  
  
  Exploring Hyprland on Arch Linux: 5 Dotfile Setups Worth Trying
&lt;/h2&gt;

&lt;p&gt;If you have been using Arch Linux for a while, you eventually reach a point where traditional desktop environments start to feel limiting. KDE, GNOME, and XFCE are excellent in their own way, but they follow a fairly conventional desktop model.&lt;/p&gt;

&lt;p&gt;Hyprland changes that experience completely.&lt;/p&gt;

&lt;p&gt;Instead of a traditional desktop environment, Hyprland is a &lt;strong&gt;dynamic tiling Wayland compositor&lt;/strong&gt; that focuses on fluid animations, modern rendering, and keyboard-driven workflows. It combines the power of tiling window managers with a visually polished environment that doesn’t feel minimal or unfinished.&lt;/p&gt;

&lt;p&gt;Over the past year while experimenting with Arch Linux setups, I explored multiple Hyprland configurations. Rather than building everything manually from scratch, many users prefer starting with curated &lt;strong&gt;dotfile setups&lt;/strong&gt; that already provide themes, scripts, layouts, and useful tools.&lt;/p&gt;

&lt;p&gt;In this article, I’m sharing five Hyprland setups that I’ve worked with. Each one approaches the Hyprland experience differently, whether the focus is productivity, aesthetics, or customization.&lt;/p&gt;

&lt;p&gt;This is not a step-by-step installation guide. Instead, it’s a practical overview based on experimenting with these environments on real systems.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Hyprland Has Become So Popular
&lt;/h2&gt;

&lt;p&gt;One of the reasons Hyprland is gaining so much attention in the Linux community is that it solves a long-standing problem.&lt;/p&gt;

&lt;p&gt;Traditional tiling window managers like i3 or bspwm are extremely powerful, but they often require a lot of manual configuration and can feel visually basic without heavy customization.&lt;/p&gt;

&lt;p&gt;Hyprland brings a more modern approach to tiling. It runs on Wayland and provides smooth animations, rounded corners, blur effects, and dynamic layouts while still keeping the keyboard-driven workflow that tiling users prefer.&lt;/p&gt;

&lt;p&gt;The result is a system that feels both &lt;strong&gt;highly efficient and visually polished&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Of course, building a Hyprland environment from scratch can take time. That’s where curated dotfiles come in.&lt;/p&gt;

&lt;h2&gt;
  
  
  Hyprland Setups I’ve Explored on Arch Linux
&lt;/h2&gt;

&lt;p&gt;Over time, I experimented with several Hyprland configurations that provide different starting points depending on what kind of workflow you want.&lt;/p&gt;

&lt;h2&gt;
  
  
  ML4W (My Linux For Work)
&lt;/h2&gt;

&lt;p&gt;ML4W is one of the most productivity-focused Hyprland frameworks I’ve used.&lt;/p&gt;

&lt;p&gt;Instead of being just a theme or a visual setup, ML4W feels more like a structured environment designed for people who spend most of their time working inside Linux. It provides automation scripts, preconfigured layouts, and tools that make the transition into Hyprland much smoother.&lt;/p&gt;

&lt;p&gt;One thing I appreciated about ML4W is that it removes much of the initial complexity that usually comes with tiling window managers. With the right setup, you can go from a minimal Arch installation to a complete Hyprland environment without spending hours tweaking configuration files.&lt;/p&gt;

&lt;p&gt;For users who want a &lt;strong&gt;work-focused Hyprland setup&lt;/strong&gt;, ML4W is a very solid starting point.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2s1rikgtjdclwv2dhsfk.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2s1rikgtjdclwv2dhsfk.webp" alt="ML4W (My Linux for Work) Hyprland on Arch Linux" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  HyDE Project
&lt;/h2&gt;

&lt;p&gt;The HyDE project is one of the most visually refined Hyprland setups available.&lt;/p&gt;

&lt;p&gt;Compared to many tiling environments that prioritize minimalism, HyDE focuses on creating a &lt;strong&gt;modern and highly aesthetic desktop experience&lt;/strong&gt;. The environment comes with dynamic themes, polished animations, and a cohesive design language across the entire system.&lt;/p&gt;

&lt;p&gt;What makes HyDE interesting is that it manages to combine visual appeal with usability. It doesn’t feel like a flashy demo environment. Instead, it provides a balanced setup that can actually be used daily without constant tweaking.&lt;/p&gt;

&lt;p&gt;For people who want Hyprland to look as impressive as it performs, HyDE is easily one of the best configurations to explore.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvtoc21okms42qulrqxc6.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvtoc21okms42qulrqxc6.webp" alt="HyDE Hyprland dotfiles on Arch Linux" width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Caelestia Dotfiles
&lt;/h2&gt;

&lt;p&gt;Caelestia is more focused on &lt;strong&gt;visual identity and customization&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;While some Hyprland setups aim to stay minimal or productivity-centric, Caelestia leans more into aesthetic customization. The themes, layouts, and UI elements create a very distinctive look that stands out from more conventional Linux desktops.&lt;/p&gt;

&lt;p&gt;It’s the type of setup that many people would describe as “riced,” where the environment is heavily styled and personalized.&lt;/p&gt;

&lt;p&gt;If you enjoy experimenting with desktop aesthetics and want a setup that feels unique, Caelestia is a great example of how flexible Hyprland can be.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9ovh4mk16c0gnowsyla.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw9ovh4mk16c0gnowsyla.webp" alt="Caelestia Hyprland Dotfiles on Arch Linux" width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Jakoolit Hyprland
&lt;/h2&gt;

&lt;p&gt;Jakoolit’s Hyprland configuration takes a slightly different approach.&lt;/p&gt;

&lt;p&gt;Instead of focusing purely on productivity or purely on visuals, it tries to combine both. The environment includes a polished theme, useful scripts, and preconfigured tools that make the setup practical while still maintaining a strong visual style.&lt;/p&gt;

&lt;p&gt;It feels like a middle ground between minimal tiling setups and heavily themed environments.&lt;/p&gt;

&lt;p&gt;Because of that balance, Jakoolit’s configuration can work well for users who want a &lt;strong&gt;ready-to-use Hyprland desktop without spending days customizing everything manually&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnznreoiwkmuz5z08zso.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqnznreoiwkmuz5z08zso.webp" alt="Jakoolit Hyprland Dotfiles on Arch Linux" width="800" height="469"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  End-4 Hyprland
&lt;/h2&gt;

&lt;p&gt;End-4 is probably the most visually striking Hyprland setup I’ve experimented with.&lt;/p&gt;

&lt;p&gt;This configuration pushes Hyprland’s graphical capabilities much further, with elaborate themes, animated elements, and carefully designed UI components. It’s the kind of setup that really showcases how modern Wayland compositors can transform the Linux desktop experience.&lt;/p&gt;

&lt;p&gt;While it may not be the most minimal environment, it demonstrates what Hyprland is capable of when aesthetics become a central part of the design.&lt;/p&gt;

&lt;p&gt;For users who enjoy visually rich Linux environments, End-4 is definitely worth exploring.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzrqn60menzq780bei2c.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxzrqn60menzq780bei2c.webp" alt="End 4 Hyprland Dotfiles on Arch Linux" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Personal Take
&lt;/h2&gt;

&lt;p&gt;After trying different Hyprland configurations, one thing became clear to me: there isn’t a single “best” setup.&lt;/p&gt;

&lt;p&gt;Each configuration serves a different purpose.&lt;/p&gt;

&lt;p&gt;ML4W is excellent if your goal is productivity and a structured workflow. HyDE offers one of the most polished visual experiences. Caelestia is great for aesthetic customization, while Jakoolit provides a balanced environment between visuals and usability. End-4 pushes the visual side of Hyprland even further.&lt;/p&gt;

&lt;p&gt;What makes Hyprland interesting is that all of these environments share the same underlying compositor, yet they can feel completely different depending on how they are configured.&lt;/p&gt;

&lt;p&gt;That flexibility is one of the biggest strengths of the Linux ecosystem.&lt;/p&gt;

&lt;p&gt;Learn How to Install Each Setup&lt;/p&gt;

&lt;p&gt;If you’re interested in trying any of these environments, I’ve documented detailed installation guides for each setup on my site.&lt;/p&gt;

&lt;p&gt;They walk through the full process of preparing an Arch Linux system and deploying the dotfiles correctly.&lt;/p&gt;

&lt;p&gt;You can find the full guides here:&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://www.musabase.com/2025/05/how-to-install-hyprland-ml4w-on-arch-linux.html" rel="noopener noreferrer"&gt;ML4W Hyprland&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://www.musabase.com/2025/06/arch-linux-with-hyprland-hyde-project.html" rel="noopener noreferrer"&gt;HyDE Project&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://www.musabase.com/2025/10/install-caelestia-dotfiles-on-arch-linux.html" rel="noopener noreferrer"&gt;Caelestia Dotfiles&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://www.musabase.com/2025/10/how-to-install-jakoolit-hyprland-dotfiles.html" rel="noopener noreferrer"&gt;Jakoolit Hyprland&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;• &lt;a href="https://www.musabase.com/2025/10/how-to-install-end-4-hyprland-dotfiles-on-arch-linux.html" rel="noopener noreferrer"&gt;End-4 Hyprland&lt;/a&gt;&lt;/p&gt;

</description>
      <category>archlinux</category>
      <category>hyprland</category>
      <category>linux</category>
      <category>wayland</category>
    </item>
    <item>
      <title>Finding a Lightweight Desktop on Gentoo: XFCE Experience and Setup</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Sat, 28 Feb 2026 14:59:20 +0000</pubDate>
      <link>https://dev.to/retro-1o1/finding-a-lightweight-desktop-on-gentoo-xfce-experience-and-setup-2786</link>
      <guid>https://dev.to/retro-1o1/finding-a-lightweight-desktop-on-gentoo-xfce-experience-and-setup-2786</guid>
      <description>&lt;h2&gt;
  
  
  Introduction
&lt;/h2&gt;

&lt;p&gt;Gentoo is a Linux distro that’s all about control and customization, and after installing the base system, the next big step for most users is getting a graphical desktop running. A Gentoo desktop environment doesn’t come out of the box, you pick what you want and build it yourself. For my setup, I chose &lt;strong&gt;XFCE&lt;/strong&gt;, a lightweight and reliable desktop that works well even when the system compiles everything from source.&lt;/p&gt;

&lt;p&gt;This article is not a step-by-step installation guide. Instead, it explains &lt;strong&gt;what you should expect when adding a desktop environment on Gentoo&lt;/strong&gt;, and why XFCE is a solid choice for many users.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq2qcvq54obdnlomky1m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbq2qcvq54obdnlomky1m.png" alt="Neofetch inside XFCE on Gentoo Linux" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparing Gentoo for a Desktop Environment
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Before installing XFCE, you need your Gentoo system ready for a graphical session. This means:&lt;/li&gt;
&lt;li&gt;Choosing a desktop profile (e.g., desktop/systemd or desktop/openrc)&lt;/li&gt;
&lt;li&gt;Synchronizing the Portage tree&lt;/li&gt;
&lt;li&gt;Adding appropriate flags to make your system aware of graphics drivers&lt;/li&gt;
&lt;li&gt;Updating the &lt;strong&gt;&lt;a class="mentioned-user" href="https://dev.to/world"&gt;@world&lt;/a&gt;&lt;/strong&gt; set to make sure everything is up-to-date&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These preparatory steps ensure the system is ready to build the necessary graphical stack without surprises. The key here is Portage, Gentoo’s package system, which calculates dependencies and compiles code based on the flags you set, giving you fine-grained control over your desktop build.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Xorg and XFCE
&lt;/h2&gt;

&lt;p&gt;On Gentoo, the desktop experience relies on the &lt;strong&gt;Xorg display server&lt;/strong&gt; and the packages that make up the XFCE environment itself.&lt;/p&gt;

&lt;p&gt;The general flow is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Xorg components and drivers&lt;/li&gt;
&lt;li&gt;Add USE flags for XFCE and Xorg&lt;/li&gt;
&lt;li&gt;Update your configuration files&lt;/li&gt;
&lt;li&gt;Recompile the world set that now includes XFCE packages&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because everything is compiled, this is not an instant process. Gentoo will handle dependencies and build from source, and compilation time can vary based on hardware.&lt;/p&gt;

&lt;p&gt;XFCE itself strikes a great balance between speed and functionality, giving you the performance of a lightweight desktop with the features most users expect in a modern GUI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Starting The XFCE Session
&lt;/h2&gt;

&lt;p&gt;Once XFCE and its dependencies are installed, you launch your desktop session through a simple command or a configured session manager. With Gentoo, this step depends on your setup, whether you use &lt;code&gt;.xinitrc&lt;/code&gt; with &lt;code&gt;startxfce4&lt;/code&gt; or a display manager. Either way, the result is the same: a fully functional XFCE desktop running smoothly on Gentoo.&lt;/p&gt;

&lt;p&gt;Because Gentoo builds everything specifically for your system, XFCE on Gentoo often feels snappy and efficient, even though the installation process itself is more involved than on binary distributions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7r8mmhafx9r5oo5i19z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fx7r8mmhafx9r5oo5i19z.png" alt="XFCE start session command on Gentoo .xinitrc" width="800" height="457"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why XFCE Works Well on Gentoo
&lt;/h2&gt;

&lt;p&gt;XFCE is popular in source-based systems for a few reasons:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Lightweight and responsive, doesn’t demand heavy resources&lt;/li&gt;
&lt;li&gt;Modular design, you install only what you need&lt;/li&gt;
&lt;li&gt;Traditional desktop workflow, familiar UI for many users&lt;/li&gt;
&lt;li&gt;Great on older or modest hardware, especially when compiled with optimized flags&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even though Gentoo requires more time up front, the end result is a custom XFCE environment tailored exactly to your machine and preferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Setup Guide
&lt;/h2&gt;

&lt;p&gt;For the full step-by-step XFCE installation process on Gentoo, including exact commands and configuration, check the detailed guide here:&lt;br&gt;
&lt;a href="https://www.musabase.com/2025/08/how-to-install-a-desktop-environment-on-gentoo.html" rel="noopener noreferrer"&gt;https://www.musabase.com/2025/08/how-to-install-a-desktop-environment-on-gentoo.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>gentoo</category>
      <category>xfce</category>
      <category>opensource</category>
    </item>
    <item>
      <title>Installing Gentoo Linux: What to Expect Before You Start</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Wed, 25 Feb 2026 12:16:56 +0000</pubDate>
      <link>https://dev.to/retro-1o1/installing-gentoo-linux-what-to-expect-before-you-start-4d39</link>
      <guid>https://dev.to/retro-1o1/installing-gentoo-linux-what-to-expect-before-you-start-4d39</guid>
      <description>&lt;p&gt;If you’ve already experimented with distributions like Arch Linux, you might eventually become curious about Gentoo. I reached that point as well. After getting comfortable building systems manually, I wanted to see what a fully source-based Linux distribution actually feels like.&lt;/p&gt;

&lt;p&gt;Gentoo is often described as one of the most complex Linux distributions to install. That reputation is not entirely wrong, but it’s also not the full story. Gentoo is not difficult for the sake of being difficult. It simply expects you to understand what you are building.&lt;/p&gt;

&lt;p&gt;This article is not a command-by-command walkthrough. Instead, it explains what installing Gentoo really involves and what you should expect before starting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fryno7rzj8a9bu60x4h5a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fryno7rzj8a9bu60x4h5a.png" alt="Fastfetch on installed Gentoo Linux system" width="800" height="458"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What Makes Gentoo Different
&lt;/h2&gt;

&lt;p&gt;The biggest difference between Gentoo and most Linux distributions is that Gentoo compiles packages from source.&lt;/p&gt;

&lt;p&gt;Instead of installing prebuilt binaries, you extract a Stage 3 base system and then begin shaping everything yourself. Gentoo uses Portage as its package management system. Portage introduces concepts like USE flags, which allow you to decide exactly which features are compiled into your software.&lt;/p&gt;

&lt;p&gt;You are not just installing a system. You are building it.&lt;/p&gt;

&lt;p&gt;Kernel configuration is another major step. While some distributions automate kernel setup, Gentoo gives you the option to configure and compile your own kernel. This adds flexibility, but it also requires patience and attention to detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Installation Reality
&lt;/h2&gt;

&lt;p&gt;Gentoo installation requires time. If you are working with fewer CPU cores, compilation will take noticeably longer. When I first installed Gentoo, I did it inside a virtual machine with 2 CPU cores and 10GB of RAM. Compiling and installing around 241 packages from the world set using emerge took nearly 12 hours to complete.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ab5uzrbgvts3yewmqp0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ab5uzrbgvts3yewmqp0.png" alt="Time to compile 241 packages from source for Gentoo Installation" width="800" height="441"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Large packages and dependency chains significantly increase build time, especially when compiling from source with custom USE flags enabled.&lt;/p&gt;

&lt;p&gt;This is not a distribution you install in a hurry.&lt;/p&gt;

&lt;p&gt;It also assumes you are comfortable with the command line, disk partitioning, chroot environments, and manual configuration. You will work directly with Portage, manage configuration files manually, and understand how your system is being built layer by layer. The documentation is excellent, but it expects you to read carefully and understand what you are doing.&lt;/p&gt;

&lt;p&gt;That said, the process teaches you a lot about how Linux works internally.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Should Try Gentoo
&lt;/h2&gt;

&lt;p&gt;Gentoo is not for everyone.&lt;/p&gt;

&lt;p&gt;If you want something that works immediately after installation with minimal configuration, there are better choices. But if you enjoy understanding how your system is assembled, tuning performance, and having complete control over compile options, Gentoo is worth exploring.&lt;/p&gt;

&lt;p&gt;It is especially interesting for users who have already used Arch Linux and want to go one level deeper into system control.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;Installing Gentoo is less about speed and more about understanding. It slows you down in a way that forces you to learn. Whether you decide to stay on Gentoo or return to a binary distribution afterward, the experience changes how you view Linux systems.&lt;/p&gt;

&lt;p&gt;For a complete step-by-step installation guide with commands and detailed explanations, I’ve documented everything here:&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://www.musabase.com/2025/07/how-to-install-gentoo-most-complex-os.html" rel="noopener noreferrer"&gt;https://www.musabase.com/2025/07/how-to-install-gentoo-most-complex-os.html&lt;/a&gt;&lt;/p&gt;

</description>
      <category>linux</category>
      <category>gentoo</category>
      <category>opensource</category>
      <category>devops</category>
    </item>
    <item>
      <title>Choosing a Desktop Environment on Arch Linux: KDE vs GNOME vs XFCE</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Tue, 03 Feb 2026 19:21:16 +0000</pubDate>
      <link>https://dev.to/retro-1o1/choosing-a-desktop-environment-on-arch-linux-kde-vs-gnome-vs-xfce-1g64</link>
      <guid>https://dev.to/retro-1o1/choosing-a-desktop-environment-on-arch-linux-kde-vs-gnome-vs-xfce-1g64</guid>
      <description>&lt;p&gt;If you’re coming to Arch Linux from Windows or from more modern distributions like Fedora or CachyOS, one of the first things you’ll start looking for after installation is a desktop environment that feels familiar and comfortable. This choice matters more than most people initially think. A desktop environment on Arch is not just about how the system looks. It directly affects your workflow, stability, and how comfortable your system feels day to day.&lt;/p&gt;

&lt;p&gt;I’ve been using Arch Linux for about a year now as part of my daily setup, and during that time I’ve tried multiple desktop environments. Some worked better for my workflow, some made more sense on older hardware, and some were useful only in specific situations. This article is not a technical guide or a comparison based on benchmarks. It’s a real-world overview based on daily use.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Desktop Choice Matters on Arch Linux
&lt;/h2&gt;

&lt;p&gt;Arch Linux is minimal by design. When you install it, you start with a very bare system, and everything you add on top of that defines your experience. The desktop environment plays a major role here because it becomes the layer you interact with the most.&lt;/p&gt;

&lt;p&gt;When I moved from Windows to Linux, Arch Linux was actually my first distribution. Because of that, I needed a desktop environment that felt familiar and comfortable, something closer to what I was used to on Windows. On Arch, a wrong desktop choice can easily lead to frustration. You may feel like you’re constantly fixing things, fighting defaults, or working around limitations. On the other hand, choosing the right desktop environment can make Arch feel smooth, predictable, and even boring in a good way. Since Arch doesn’t force any defaults on you, the desktop environment you choose ends up defining how stable and usable your system feels over time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Desktop Environments I’ve Used on Arch Linux
&lt;/h2&gt;

&lt;p&gt;Over the past year, I’ve mainly used three desktop environments on Arch. Each one serves a different purpose, and none of them are objectively “better” than the others.&lt;/p&gt;

&lt;h2&gt;
  
  
  KDE Plasma
&lt;/h2&gt;

&lt;p&gt;KDE Plasma felt the closest to Windows for me, which mattered a lot since I moved from Windows directly to Arch Linux. While Linux Mint’s Cinnamon desktop is often considered even closer to the Windows experience, I had heard a lot about KDE Plasma and wanted to try it myself.&lt;/p&gt;

&lt;p&gt;Plasma feels like a complete daily-driver desktop environment. It is flexible, feature-rich, and highly customizable without forcing you into a specific workflow. Once set up properly, it stays out of the way and lets you focus on work.&lt;/p&gt;

&lt;p&gt;It offers a strong balance between productivity and customization. You can tweak almost everything if you want, but you don’t have to, and that flexibility is what makes KDE Plasma a solid long-term choice on Arch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cl5f08kt7luojsr1e4a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9cl5f08kt7luojsr1e4a.png" alt="KDE Plasma on Arch Linux" width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GNOME
&lt;/h2&gt;

&lt;p&gt;GNOME is clean and opinionated. It has a very focused design philosophy, and it expects you to adapt to its workflow rather than customize everything from the start. Extensions play a big role here, allowing you to shape the experience without overwhelming configuration options.&lt;/p&gt;

&lt;p&gt;If you prefer a distraction-free environment and don’t want to spend time tweaking every detail, GNOME can feel very refreshing. It’s less about control and more about consistency.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3nncddddc8tfg0wy9vl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3nncddddc8tfg0wy9vl.png" alt="GNOME on Arch Linux" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  XFCE
&lt;/h2&gt;

&lt;p&gt;XFCE is lightweight, stable, and predictable. It doesn’t try to be flashy or modern, but that’s exactly its strength. On older hardware, XFCE performs extremely well and remains responsive even with limited resources.&lt;/p&gt;

&lt;p&gt;It’s a great option if you value stability over visual polish, or if you’re running Arch on machines where performance matters more than appearance.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh3mlq1q118bi5wkvgl6u.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh3mlq1q118bi5wkvgl6u.webp" alt="XFCE on Arch Linux" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Personal Take
&lt;/h2&gt;

&lt;p&gt;For my main system, I’ve settled on KDE Plasma as my primary desktop environment. Coming from Windows, it felt familiar enough to be comfortable while still giving me the flexibility Arch Linux is known for. It fits my daily workflow well and doesn’t require constant maintenance, which is why it’s the desktop I feel most productive on.&lt;/p&gt;

&lt;p&gt;I use XFCE when working with older hardware or systems where I want things to stay simple and reliable. It’s lightweight and does exactly what it promises without surprises.&lt;/p&gt;

&lt;p&gt;GNOME is something I turn to when I want a clean and focused environment with minimal tweaking. It’s not my primary choice, but it works well when I want a more structured workflow.&lt;/p&gt;

&lt;p&gt;If you’re interested in detailed, step-by-step setup guides, I’ve documented each of these environments separately on my site:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.musabase.com/2025/12/install-kde-plasma-on-arch-linux.html" rel="noopener noreferrer"&gt;KDE Plasma on Arch Linux&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.musabase.com/2026/01/install-gnome-arch-linux.html" rel="noopener noreferrer"&gt;GNOME on Arch Linux&lt;br&gt;
&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.musabase.com/2026/01/install-xfce-on-arch-linux.html" rel="noopener noreferrer"&gt;XFCE on Arch Linux&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

</description>
      <category>archlinux</category>
      <category>kde</category>
      <category>gnome</category>
      <category>xfce</category>
    </item>
    <item>
      <title>A Clean and Practical Arch Linux Installation Approach (UEFI)</title>
      <dc:creator>Abdullah Musa</dc:creator>
      <pubDate>Fri, 23 Jan 2026 18:04:53 +0000</pubDate>
      <link>https://dev.to/retro-1o1/a-clean-and-practical-arch-linux-installation-approach-uefi-fnm</link>
      <guid>https://dev.to/retro-1o1/a-clean-and-practical-arch-linux-installation-approach-uefi-fnm</guid>
      <description>&lt;p&gt;Installing Arch Linux can feel overwhelming at first, not because it is difficult,&lt;br&gt;
but because it gives you many choices from the very beginning.&lt;/p&gt;

&lt;p&gt;This post documents a clean and practical way I approach Arch Linux installation,&lt;br&gt;
focused on understanding each step instead of blindly copy-pasting commands.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Post Covers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A minimal Arch Linux installation mindset&lt;/li&gt;
&lt;li&gt;UEFI-based setup&lt;/li&gt;
&lt;li&gt;GPT partitioning&lt;/li&gt;
&lt;li&gt;Base system installation&lt;/li&gt;
&lt;li&gt;Bootloader and essential configuration&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is not meant to replace the Arch Wiki. Instead, it is a practical walkthrough&lt;br&gt;
for users who prefer a structured approach while still learning how things work.&lt;/p&gt;

&lt;h2&gt;
  
  
  What This Does NOT Cover
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Desktop environments or window managers&lt;/li&gt;
&lt;li&gt;Gaming or GPU configuration&lt;/li&gt;
&lt;li&gt;Theming or ricing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those topics deserve their own dedicated guides.&lt;/p&gt;

&lt;h2&gt;
  
  
  High-Level Installation Flow
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Boot the Arch ISO&lt;/li&gt;
&lt;li&gt;Verify network connectivity&lt;/li&gt;
&lt;li&gt;Partition disks using GPT&lt;/li&gt;
&lt;li&gt;Install the base system&lt;/li&gt;
&lt;li&gt;Configure users, locale, and networking&lt;/li&gt;
&lt;li&gt;Install and configure a bootloader&lt;/li&gt;
&lt;li&gt;Reboot into a clean Arch system&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Why I Wrote This
&lt;/h2&gt;

&lt;p&gt;Arch Linux encourages learning by doing. Having a clear reference&lt;br&gt;
helps reduce confusion while still respecting Arch’s philosophy.&lt;/p&gt;

&lt;h2&gt;
  
  
  Full Step-by-Step Guide
&lt;/h2&gt;

&lt;p&gt;I documented the complete installation with explanations and notes here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.musabase.com/2025/03/the-complete-arch-linux-installation.html" rel="noopener noreferrer"&gt;Complete Arch Linux Installation Guide (MusaBase)&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A lightweight reference version is also available on GitHub:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/musabase/arch-linux-install-guide" rel="noopener noreferrer"&gt;Lightweight Reference on GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me know in the comments if you’d like a follow-up on desktop setup or gaming tweaks!&lt;/p&gt;

</description>
      <category>linux</category>
      <category>archlinux</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
