Logo

dev-resources.site

for different kinds of informations.

The Perfect System Configuration

Published at
3/10/2024
Categories
linux
nix
systemconfiguration
windows
Author
yukendhiran
Author
11 person written this
yukendhiran
open
The Perfect System Configuration

Hey there, I'm Yukendhiran, and I'm excited to walk you through my journey from a typical Windows user to the unveiling of what I believe is the perfect system configuration.

TLDR: The Perfect System Configuration
Achieved the ideal setup with 200 GB for Windows 10 (AME Wizard and Revi Playbook), 300 GB for Clear Linux with Nix packages, and a shared 450 GB extFAT data partition for seamless compatibility between Windows and Linux.

Four years ago, I tried dipping my toes into Linux, only to face installation challenges. Fast forward a year, driven by a newfound interest in game development and armed with a low-spec laptop, I managed to successfully install Linux. Despite facing setbacks in game development, Linux emerged as my silver lining.

The subsequent journey led me into the world of distro hopping – Debian, Fedora, Arch variants, openSUSE, Vanilla OS, NixOS, Clear Linux – each contributing to my Linux education. Finally, after a series of trials and errors, I've arrived at what I consider the perfect system configuration.

In this article, I'll walk you through my perfect system configuration.

User, brace yourself for a dual-boot adventure where both Windows and Linux coexist, each serving a distinct purpose in my digital world. Before we dive in, a quick disclaimer: Windows is reserved for certain, let's call them "(piracy!?)" "Kidding, just for placement! matters ", while Linux handles everything else.

To my Windows counterparts, please spare me the "Windows can do everything" rhetoric. When it comes to performance and workflow, let's be real, Windows can be a bit of a nightmare. And for those suggesting WSL, I've tried it, but Windows remains, well, Windows.

Now, to my Linux comrades, I appreciate the brilliance of Wine, Proton, or bottling up Windows applications with their amazing system call translations. However, in my case, efficiency is a bit elusive.

Armed with a 1 TB HDD, i5 7200U processor, and 16 GB of RAM, my machine is ready for the perfect system setup.

For any operating system, optimize your setup by creating a new exFAT partition and migrating files to it (Reason: can be accessed from both Windows and Linux by default). Always prioritize safeguarding critical files with cloud backups (Google Photos for personal pics, Drive for documents, Git for code, and Telegram for additional cloud backup).

Boost flexibility by installing Ventoy on your system. Format your pendrive and use Ventoy to craft a bootable drive. Download Windows 10 ISO and Clear Linux ISO( Fastest Linux Ever Created ), then transfer both ISOs to the pendrive. This streamlined process ensures a seamless transition and convenient access for future installations.

https://www.clearlinux.org/
https://www.ventoy.net/en/index.html

In my case, I created a new 400 GB exFAT partition and moved my 20 GB files to it.

Let's access the boot menu and choose our pendrive. Firstly, opt for Windows 10 on the Ventoy screen to initiate the installation process.

In the Windows installer, delete all partitions except the exFAT partition. Utilize the unallocated space to create a new partition, and select that partition to complete the Windows 10 installation. In my case, allocate 200 GB for Windows, leaving the remaining 300 GB unallocated, while preserving the 450 GB exFAT partition untouched.

Before transitioning to Linux, let's complete the Windows customization. Update Windows to its latest version and install all necessary drivers. Consider using popular tools for debloating Windows, such as Chris Titus's Win Utility. In my case, I prefer AME Wizard and Revision Playbook. Install AME Wizard, run it, select the downloaded Revision Playbook, and follow the process.

https://ameliorated.io/

Absolutely! Let's return to the boot menu and, this time, choose Clear Linux. In the installer, select a safe install, utilizing continuous unallocated space for installation. Complete the Clear Linux installation. If you boot directly into the system, it will default to Windows. To finalize the dual-boot process, boot into the Clear Linux installer again, and follow the dual-boot instructions provided in the official Clear Linux documentation.

https://www.clearlinux.org/clear-linux-documentation/tutorials/multi-boot/dual-boot-win.html

We chose Clear Linux for its exceptional speed, crafted by Intel, the original creator of the x86 architecture. Although it doesn't boast an extensive native package repository, we'll leverage the Nix package manager for a comprehensive selection.

Now, boot into Clear Linux. Installing Nix on Clear Linux may present some challenges, but follow these instructions for a smoother process. In contrast, on other distros, the installation should be relatively straightforward.

Execute the following commands one after another:

sudo mkdir /etc/tmpfiles.d

sh <(curl -L https://nixos.org/nix/install) --daemon

sudo mkdir -p /etc/profile.d

sudo cp /etc/bashrc /etc/profile.d/nix

For a detailed understanding, refer to this GitHub issue: Nix Issue #7990.
https://github.com/NixOS/nix/issues/7990

https://nixos.org/

Now, head over to the NixOS package page and search for the desired packages. Copy the installation commands provided under 'nix-env' for non-NixOS environments.

To streamline the process, consider creating a script to install multiple packages at once, like the example below:
nix-env -iA \
nixpkgs.ventoy-full \
nixpkgs.anydesk \
nixpkgs.stacer \
nixpkgs.microsoft-edge \
nixpkgs.chromium \
nixpkgs.motrix \
nixpkgs.floorp \
nixpkgs.conda

If you encounter errors related to unfree licenses, resolve this by creating a 'config.nix' file in '~/.config/nixpkgs' (create the directory if it's not present) and add the following line to 'config.nix':

{ allowUnfree = true; }

This configuration permits the use of packages with unfree licenses. You can effortlessly create a fully portable development environment with Nix, and this same configuration can be used across WSL, Linux, and macOS.

Linux offers a plethora of options for desktop environments and window managers. Personally, I use the KDE desktop environment. While KDE may not generate much initial excitement, it becomes a powerhouse once you delve into learning how to use and customize it. Understanding the nuances of KDE can transform it into your ideal workflow.

Absolutely, let's check the exFAT partition we created. Access it from both Windows and Linux to ensure seamless compatibility.

Now that the foundational setup is complete, it's time to add your personal touch. Choose any two or three operating systems and follow a similar flow. Debloat and customize each operating system to cater to your specific needs, enhancing your overall computing experience. The flexibility provided by this setup allows you to tailor each environment to your liking, providing a versatile and efficient computing platform.

nix Article's
30 articles in total
Favicon
Easy development environments with Nix and Nix flakes!
Favicon
A Conversation with Docker CTO Justin Cormack and Flux CEO Ron Efrani: The Future of Developer Environments
Favicon
Nice one
Favicon
NixOS - A Unique Linux Distribution
Favicon
Getting started with Nix and Nix Flakes
Favicon
My new Nix series!
Favicon
gRPC, Haskell, Nix, love, hate
Favicon
Easy way to setup Flutter Development Environment on NixOS without Flakes or dev-shell
Favicon
Dotfiles, the nix way
Favicon
Why Use Nix package manager, Even on macOS?
Favicon
Easy GitHub CLI Extensions with Nix
Favicon
Abusing Haskell: Executable Blog Posts
Favicon
Nix first steps
Favicon
Cross-Posting to Dev.to with API
Favicon
An Introduction to Nix for Ruby Developers
Favicon
Using niv to Manage Haskell Dependencies
Favicon
Don't Rebuild Yourself - an Intro to Nix Package Caches
Favicon
Packing Custom Fonts for NixOS
Favicon
Embrace the Power of Nix for Your Python + Rust Workflow
Favicon
How to Deploy Flutter on Upsun
Favicon
Declarative and reproducible environments with colima, nix and k8s
Favicon
Combining Nix with Terraform for better DevOps
Favicon
The Perfect System Configuration
Favicon
Azure Function app that runs Haskell Nix package
Favicon
A Journey to Find an Ultimate Development Environment
Favicon
The one thing I do not like about the Nix package manager (and a fix for it)
Favicon
Creating Repeatable Builds
Favicon
Develop R Packages under Nix Shell
Favicon
How I use Nix in my Elm projects
Favicon
Nix Quick Tips - Flake for OCaml

Featured ones: