{"version":"https://jsonfeed.org/version/1.1","title":"Code Scrambler Productions Blog","home_page_url":"https://codescrambler.eu/blog","feed_url":"https://codescrambler.eu/blog/feed.json","description":"Programming tutorials, project stories, and development tips from Code Scrambler Productions.","language":"en","items":[{"id":"https://codescrambler.eu/blog/the-definitive-guide-to-autodesk-fusion-on-cachyos","url":"https://codescrambler.eu/blog/the-definitive-guide-to-autodesk-fusion-on-cachyos","title":"The Definitive Guide to Autodesk Fusion on CachyOS (KDE Plasma 6 + Wayland)","summary":"A complete, start-to-finish blueprint for installing Autodesk Fusion on CachyOS, bypassing system Wine, and fixing KDE Wayland window quirks.","content_html":"<p>Getting professional CAD software running on a Linux machine is a rite of passage. If you are reading this, you probably already know that installing Autodesk Fusion on rolling-release Linux distributions usually ends in disaster.</p>\n<p>This is the final, definitive blueprint. It takes everything we’ve battled through—from the black screens to the Wayland window quirks—and packages it into a clean, start-to-finish guide. All personal directory names have been stripped and replaced with standard Linux <code>~/</code> (Home) paths so this works universally for anyone following along.</p>\n<p><img src=\"https://firebasestorage.googleapis.com/v0/b/code-scrambler.firebasestorage.app/o/blog-media%2F1774377039868-screenshot_20260324_193022.webp?alt=media&token=24ca80dc-0198-4917-a9eb-750101d2fb3b\" alt=\"Autodesk Fusion fully operational under KDE Plasma 6\" class=\"rounded-xl max-w-full my-4\" loading=\"lazy\" />\n</p>\n<blockquote>\n<p><strong>Credit &amp; Inspiration:</strong> This guide builds upon the foundational work of the cryinkfly project and the community troubleshooting found in <a href=\"https://www.reddit.com/r/cachyos/comments/1qu7a5f/fusion_360_on_cachy/\" rel=\"noopener noreferrer\" target=\"_blank\">this Reddit discussion on r/cachyos</a>.</p>\n</blockquote>\n<h2>The Core Problem: Why Standard Installations Fail</h2>\n<p>Running standard system Wine packages (like <code>wine-staging</code>) frequently breaks Fusion’s embedded Qt6 web browser. This results in either a black screen at the login prompt or instant <code>int3</code> memory crashes. Furthermore, running heavy X11 Windows applications through XWayland on KDE Plasma 6 introduces severe &quot;mouse stealing&quot; and window focus bugs that make modeling impossible.</p>\n<p><strong>The Solution:</strong> We are going to bypass system Wine entirely. Instead, we will use the community-maintained <code>cryinkfly</code> installer script paired with a contained, gaming-optimized Proton-GE build.</p>\n<hr>\n<h2>Phase 1: Preparation &amp; Proton</h2>\n<p>First, we need to install the Secure Boot utility the setup script expects to see, alongside a GUI tool to manage our custom Proton builds.</p>\n<h3>1. Install System Dependencies</h3>\n<p>Open your terminal and run the following <code>pacman</code> command to pull the required utilities:</p>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\"><span class=\"hljs-built_in\">sudo</span> pacman -Syu mokutil protonup-qt</code></pre>\n</div>\n<h3>2. Download GE-Proton</h3>\n<p>Fusion relies heavily on specific media foundation codecs and Qt6 patches that are only found in GloriousEggroll&#39;s custom Proton builds.</p>\n<ul>\n<li><input disabled=\"\" type=\"checkbox\"> Launch <strong>ProtonUp-Qt</strong> from your application menu.</li>\n<li><input disabled=\"\" type=\"checkbox\"> Click the <strong>Add version</strong> button.</li>\n<li><input disabled=\"\" type=\"checkbox\"> Select <strong>GE-Proton</strong> from the dropdown and choose version <code>GE-Proton10-32</code> (or the latest stable <code>10.x</code> release).</li>\n<li><input disabled=\"\" type=\"checkbox\"> Click <strong>Install</strong> and close the application when the progress bar finishes.</li>\n</ul>\n<hr>\n<h2>Phase 2: The Clean Installation</h2>\n<p>To prevent the installer from losing its directory mapping and throwing terminal &quot;Permission Denied&quot; errors at the root of your drive, <em>always</em> run it from a dedicated setup folder in your home directory.</p>\n<h3>1. Create the Setup Workspace</h3>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\"><span class=\"hljs-built_in\">mkdir</span> -p ~/fusion-setup\n<span class=\"hljs-built_in\">cd</span> ~/fusion-setup</code></pre>\n</div>\n<h3>2. Run the Cryinkfly Installer</h3>\n<p>This single string of commands downloads the latest setup script directly from Codeberg, makes it executable, and forces it to use the GE-Proton build we just downloaded.</p>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\">curl -L https://codeberg.org/cryinkfly/Autodesk-Fusion-360-on-Linux/raw/branch/main/files/setup/autodesk_fusion_installer_x86-64.sh -o <span class=\"hljs-string\">&quot;autodesk_fusion_installer_x86-64.sh&quot;</span> &amp;&amp; \\\n<span class=\"hljs-built_in\">chmod</span> +x autodesk_fusion_installer_x86-64.sh &amp;&amp; \\\n./autodesk_fusion_installer_x86-64.sh --proton=GE-Proton10-32 --default</code></pre>\n</div>\n<p>Let the script run. Depending on your hardware, this will take some time. It will download the Fusion client and set up a completely clean Proton prefix at <code>~/.autodesk_fusion</code>.</p>\n<hr>\n<h2>Phase 3: The Login Redirect Fix</h2>\n<p>Fusion uses a custom URL protocol (<code>adskidmgr://</code>) to pass the authentication token from your web browser back to the local application. KDE Wayland will almost always block this hand-off natively.</p>\n<h3>1. Register the Link Handler</h3>\n<p>Run these commands to explicitly tell KDE how to route the Autodesk login link:</p>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\">update-desktop-database ~/.local/share/applications\nxdg-settings <span class=\"hljs-built_in\">set</span> default-url-scheme-handler adskidmgr adskidmgr-opener.desktop</code></pre>\n</div>\n<p>Now, log in via your web browser and click &quot;Go to product&quot;. If prompted by your browser, allow it to open <code>xdg-open</code> or <code>adskidmgr-opener</code>.</p>\n<h3>2. The Manual Fallback (If the browser refuses)</h3>\n<p>If absolutely nothing happens when you click &quot;Go to product&quot;, the token is being blocked. Here is how to manually inject it:</p>\n<ol>\n<li>Press <code>F12</code> in your browser to open Developer Tools and navigate to the <strong>Network</strong> tab.</li>\n<li>Click the &quot;Go to product&quot; button on the webpage again.</li>\n<li>Look for a blocked network request starting with <code>adskidmgr://</code>. Right-click it and copy the full URL.</li>\n<li>Open your terminal and manually inject the token using the script provided in your prefix:</li>\n</ol>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\">bash ~/.autodesk_fusion/bin/adskidmgr-opener.sh <span class=\"hljs-string\">&quot;PASTE_YOUR_COPIED_URL_HERE&quot;</span></code></pre>\n</div>\n<hr>\n<h2>Phase 4: Fixing Wayland Window &amp; Mouse Bugs</h2>\n<p>Because Fusion is an X11 application being translated through XWayland, pop-up dialogs (like <em>Save</em> or <em>Upload</em>) can become entirely invisible or unclickable. Worse, the 3D rendering engine may &quot;steal&quot; your mouse cursor, trapping it inside the window.</p>\n<h3>1. Add Wayland Environment Variables</h3>\n<p>We need to tweak how XWayland handles input and rendering priority for this specific application.</p>\n<div class=\"table-wrapper\"><table>\n<thead>\n<tr>\n<th align=\"left\">Variable</th>\n<th align=\"left\">Purpose</th>\n</tr>\n</thead>\n<tbody><tr>\n<td align=\"left\"><code>WINE_X11_NO_DIRECT_INPUT=1</code></td>\n<td align=\"left\">Prevents XWayland from improperly locking the mouse pointer to the 3D viewport.</td>\n</tr>\n<tr>\n<td align=\"left\"><code>WINE_RT_PRIO=1</code></td>\n<td align=\"left\">Grants real-time priority to the Wine thread for smoother engine rendering.</td>\n</tr>\n<tr>\n<td align=\"left\"><code>GDK_BACKEND=x11</code></td>\n<td align=\"left\">Forces GTK dialogs to render through X11 compatibility, preventing invisible menus.</td>\n</tr>\n</tbody></table></div>\n<p>Edit the launcher script using your preferred text editor (like Kate):</p>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\">kate ~/.autodesk_fusion/bin/autodesk_fusion_launcher.sh</code></pre>\n</div>\n<p>Add the variables near the top of the file, directly under the other <code>export</code> commands:</p>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\"><span class=\"hljs-built_in\">export</span> WINE_X11_NO_DIRECT_INPUT=1\n<span class=\"hljs-built_in\">export</span> WINE_RT_PRIO=1\n<span class=\"hljs-built_in\">export</span> GDK_BACKEND=x11</code></pre>\n</div>\n<p>Save and close the file.</p>\n<h3>2. Apply KDE Window Rules</h3>\n<p>We must force KDE to treat Fusion&#39;s pop-ups as normal windows so they can receive mouse clicks.</p>\n<ol>\n<li>Open <strong>KDE System Settings</strong> -&gt; <strong>Window Management</strong> -&gt; <strong>Window Rules</strong>.</li>\n<li>Click <strong>+ Add New...</strong></li>\n<li><strong>Description:</strong> <code>Fusion 360 Fix</code></li>\n<li><strong>Window class:</strong> Exact Match <code>fusion360.exe</code></li>\n<li><strong>Window types:</strong> Select <code>Normal Window</code>, <code>Dialog Window</code>, and <code>Utility Window</code>.</li>\n<li>Click <strong>+ Add Property</strong> and configure the following overrides:<ul>\n<li>Accept focus: <strong>Force</strong> -&gt; <strong>Yes</strong></li>\n<li>Focus stealing prevention: <strong>Force</strong> -&gt; <strong>None</strong></li>\n</ul>\n</li>\n<li>Click <strong>Apply</strong>.</li>\n</ol>\n<hr>\n<h2>Phase 5: Known Limitations &amp; Workarounds</h2>\n<p>Even with an optimal environment, XWayland on KDE Plasma 6 has a few quirks you need to commit to muscle memory.</p>\n<ul>\n<li><strong>The &quot;Untabbable&quot; Save Button:</strong> Occasionally, the &quot;Save&quot; or &quot;Upload&quot; dialogs will open, but your mouse clicks will pass right through them, and the <code>Tab</code> key will not cycle to the correct buttons.<ul>\n<li><strong>Workaround:</strong> Use the Windows keyboard shortcut <code>Alt + S</code> to trigger the Save action without needing the mouse.</li>\n</ul>\n</li>\n<li><strong>The &quot;Mouse Stealing&quot; Bug:</strong> Fusion tries to globally grab the mouse for 3D navigation. This can result in Fusion intercepting your clicks even when you are trying to use a browser on a second monitor. <em>(Note: Manually dragging the Fusion window with <code>Meta+Click</code> does not resolve this specific grab state).</em><ul>\n<li><strong>Workaround:</strong> Add a secondary KDE Window Rule specifically for Fusion 360 to &quot;Keep Below Other Windows.&quot; This ensures you can interact with other applications on your screen. If you have a multi-monitor setup, you may need to drag Fusion&#39;s sub-windows to your second monitor to maintain a clean workflow.</li>\n</ul>\n</li>\n</ul>\n","date_published":"2026-03-24T18:27:45.475Z","date_modified":"2026-09-16T07:23:28.075Z","authors":[{"name":"Zsombor Rózsa"}],"tags":["cachyos","linux","autodesk","fusion360","wayland","kde","wine","proton"],"language":"en","image":"https://firebasestorage.googleapis.com/v0/b/code-scrambler.firebasestorage.app/o/blog-media%2F1774377039868-screenshot_20260324_193022.webp?alt=media&token=24ca80dc-0198-4917-a9eb-750101d2fb3b"},{"id":"https://codescrambler.eu/blog/windows-to-bazzite-to-cahcyos","url":"https://codescrambler.eu/blog/windows-to-bazzite-to-cahcyos","title":"My Journey from Windows 11 to Bazzite, and Finally CachyOS","summary":"Engineering, gaming, and development without Microsoft. A look at why I left Windows 11 and how I found the perfect OS balance with CachyOS.","content_html":"<h1>The Pragmatic Migration: From Windows 11 Sludge to CachyOS Speed</h1>\n<p>Let’s get one thing straight: abandoning an operating system you rely on for engineering coursework and daily tasks is never a casual decision. It requires a catalyst. For me, that catalyst was a deteriorating Windows 11 experience characterized by unfixable screen flickering, a highly unstable Tailscale connection, and a Sunshine host that simply refused to maintain a consistent stream. The entire OS felt sluggish, bogged down by telemetry and legacy cruft.</p>\n<p>I needed a system that could handle native software development, rendering, and gaming without fighting me for system resources.</p>\n<p><img src=\"https://firebasestorage.googleapis.com/v0/b/code-scrambler.firebasestorage.app/o/blog-media%2F1773348837757-screenshot_20260312_215313.webp?alt=media&token=4c75f410-b016-4ce6-b6cc-4c09c8f50f5b\" alt=\"My current environment\" class=\"rounded-xl max-w-full my-4\" loading=\"lazy\" />\n</p>\n<h2>The Hardware Foundation</h2>\n<p>Before diving into the OS hopping, here is the architecture this stack is running on. Optimizing the OS means nothing if you don&#39;t understand the metal underneath it.</p>\n<div class=\"table-wrapper\"><table>\n<thead>\n<tr>\n<th>Component</th>\n<th>Specification</th>\n</tr>\n</thead>\n<tbody><tr>\n<td><strong>CPU</strong></td>\n<td>AMD Ryzen 5 5600X (6-Core, 12-Thread)</td>\n</tr>\n<tr>\n<td><strong>GPU</strong></td>\n<td>AMD Radeon RX 6700 XT</td>\n</tr>\n<tr>\n<td><strong>Memory</strong></td>\n<td>32 GiB (31.2 GiB usable)</td>\n</tr>\n<tr>\n<td><strong>Environment</strong></td>\n<td>KDE Plasma 6.6.2 / Frameworks 6.23.0 / Qt 6.10.2</td>\n</tr>\n<tr>\n<td><strong>Display Protocol</strong></td>\n<td>Wayland</td>\n</tr>\n<tr>\n<td><strong>Kernel</strong></td>\n<td>6.19.6-2-cachyos (64-bit)</td>\n</tr>\n</tbody></table></div>\n<h2>The Compromise: The rEFInd Triple-Boot</h2>\n<p>I would love to say I wiped the drive completely, but pragmatism had to win. Engineering university requirements mean I am still held hostage by Autodesk Inventor, a notoriously Windows-dependent piece of software. Furthermore, taking a sledgehammer to a drive housing years of undocumented files is a recipe for disaster.</p>\n<p>Currently, the system is managed by <code>rEFInd</code>, handling a triple-boot configuration. It isn&#39;t the final form, but it provides a safety net. Ironically, I don&#39;t even boot into Windows for Rainbow Six Siege anymore; GeForce Now handles that perfectly, proving just how obsolete the local Windows partition is becoming.</p>\n<h2>Phase 1: Bazzite and the Immutable Ceiling</h2>\n<p>The search for a native Linux daily driver initially led to <a href=\"/blog/bazzite\" class=\"wikilink\">Bazzite</a>. Positioned as the premier hassle-free gaming OS built on an immutable (atomic) Fedora base, it seemed like the perfect plug-and-play solution.</p>\n<p>For standard use and gaming, it absolutely lived up to the hype. The containerized approach to package management was an interesting shift:</p>\n<ul>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> Adopt Flatpaks for all GUI applications.</li>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> Utilize Distrobox for CLI tools and development environments.</li>\n<li><input checked=\"\" disabled=\"\" type=\"checkbox\"> Rely on LLM assistance for bridging the Fedora/container knowledge gap.</li>\n</ul>\n<p>However, the immutable architecture quickly became a bottleneck for advanced productivity. Engineering pipelines require software that isn&#39;t always packaged neatly for atomic systems. I successfully hacked Fusion360 onto Bazzite, but it came at a severe cost. A localized bug emerged when running Unity or Fusion360: opening any new window would lock the entire compositor. The desktop would freeze entirely—sometimes for 2 to 4 seconds, occasionally hanging for minutes.</p>\n<blockquote>\n<p>&quot;Bazzite is an engineering marvel for the living room, but if you need to hack together native CAD and game engines, an immutable filesystem will eventually fight back.&quot;</p>\n</blockquote>\n<h2>Phase 2: CachyOS and the x86-64-v3 Advantage</h2>\n<p>The pivot to CachyOS was entirely impulsive. I saw <a href=\"https://www.reddit.com/r/linuxmemes/comments/1rgbf7r/the_distro_war_continue_it_must_alpine_linux_vs/\" rel=\"noopener noreferrer\" target=\"_blank\">this specific distro war thread</a> on Reddit, comparing Linux distros. Realizing I had exactly two hours of free time, I decided to benchmark the migration.</p>\n<p>I copied over the essential dotfiles and assets from the Bazzite partition, flashed the CachyOS ISO, and initialized the installation. The difference in responsiveness was immediate and violently apparent.</p>\n<p>CachyOS compiles its packages using the <code>x86-64-v3</code> microarchitecture instructions (and <code>v4</code> where applicable). Because the Ryzen 5 5600X supports these advanced instruction sets (like AVX2), the entire user space executes with significantly lower overhead than standard generic-compiled distributions.</p>\n<h3>The Arch Reality Check</h3>\n<p>Moving from an atomic Fedora base to a bleeding-edge Arch derivative means trading safety for absolute control. It requires a more hands-on administrative approach:</p>\n<ol>\n<li><strong>Package Management:</strong> Transitioning muscle memory from <code>rpm-ostree</code> to <code>pacman</code> and <code>paru</code> (for the AUR) takes a few days, but the compilation speed via <code>paru</code> is heavily optimized out of the box.</li>\n<li><strong>Kernel Panics &amp; Quirks:</strong> Bleeding edge breaks occasionally. Right out of the gate, the Plymouth startup splash screen was causing hard system crashes during the boot sequence. Disabling the graphical boot completely resolved the kernel panic, dropping me back into a reliable, verbose TTY boot sequence.</li>\n<li><strong>The Compositor:</strong> Unity and Fusion360 now run flawlessly under Wayland. The window mapping freezes that plagued Bazzite are entirely gone.</li>\n</ol>\n<h3>Current Optimization Tasks</h3>\n<p>While the system&#39;s speed is a completely different breed compared to Bazzite, there is still minor tuning required. Currently, I am debugging some slight visual artifacting and glitches with the Sunshine host under the CachyOS kernel.</p>\n<div class=\"code-block-wrapper\" data-lang=\"bash\">\n<pre class=\"hljs language-bash\"><code class=\"hljs language-bash\">journalctl --user -u sunshine -f\n</code></pre>\n</div>\n<p>The migration proves a crucial point for power users: containerization and immutable file systems are the future of consumer electronics, but for development and engineering, unhindered access to the root filesystem on a highly optimized kernel still reigns supreme.</p>\n","date_published":"2026-03-12T20:51:20.926Z","date_modified":"2026-09-16T07:23:46.228Z","authors":[{"name":"Zsombor Rózsa"}],"tags":["CachyOS","Bazzite","Linux","Windows 11","Wayland","KDE Plasma","Engineering","Gaming","Distrobox"],"language":"en","image":"https://firebasestorage.googleapis.com/v0/b/code-scrambler.firebasestorage.app/o/blog-media%2F1773348837757-screenshot_20260312_215313.webp?alt=media&token=4c75f410-b016-4ce6-b6cc-4c09c8f50f5b"}]}