night0721.xyz/content/posts/minimalism/index.md

15 lines
3.9 KiB
Markdown
Raw Normal View History

2024-03-13 00:10:03 +01:00
---
title: "Minimalism"
2024-03-13 00:13:07 +01:00
date: 2024-03-12T21:50:00+00:00
2024-03-13 00:10:03 +01:00
---
Do you still remember the reason that made you switch from Windows to Linux? Privacy? Storage? OSS?
Since I came to Linux, I felt like my storage used by the whole operating system is small, from around 10GB in Ubuntu to 7.5GB in Arch, comparing to 30-40 GB in Windows. This has ring me a bell, what if I can make my system smallest to the point that it is minimally usable? I have watched a lot of Luke Smith, learning the term "bloat", since then, I start to realise I don't actually need a lot of softwares to be installed. Starting from my window manager, hyprland. It is a good project, with good animations and lots of stuff to configure, but do I actually need that amount of features? Then I came across dwl, a port from dwm to Wayland which is suckless. I compare their sizes, hyprland is using 51.7MB according to Arch repos. And dwl is only taking 247KB, which is only 0.4% of hyprland itself. Of course the dwl only have part of hyprland features, but that is enough for my daily basis. So I removed hyprland, along with its dependencies, I have saved more than 100MB of disk space.
Then you will want to say, there is a lot of disk space nowadays, you can get 1TB HDD or 256GB SSD for such a cheap price, why you are still chasing for minimalist system? There are several reasons, mostly it makes me feel better mentally, and it reduces internet bandwidth and install speed as I am reinstalling my system quite often, with less packages or softwares, I would take less time to install. Another reason is reducing my reliance on mouse, with most minimalist softwares, they often are command line and don't have a GUI, that means I would use less time on mouse, but that also saves me more time because with those CLI programs, I could do a lot of automation and scripting that can do the same thing as clicking your mouse 10 times, but in a way shorter amount of time. The more I use these kind of programs, the more I am into the minimalist way of using my system, I started my endless hunt for the smallest program that can achieve the same thing as another program, even it is not on either AUR or main repo of Arch. If I cannot find a program that is small enough to be acceptable at my standard or it doesn't have feature that I wanted, I would code it myself, this included my own shell, my own note manager, my own encryption tools, and my file manager which all can be found in my Codeberg/Github. I consider this as a process for me to learn C, and fully customize the program I want to use and daily drive which it works out pretty well even though it is not perfect if you compare it to proper code that serves millions of people.
Things come at a cost, I find out I spent a lot of time to look for minimalist softwares than actually coding. Recently, I have reached the lowest root partition size of my Arch system, 3.4GB, even if I remove potential packages, it will still be around 3.3GB to 3.4GB which is the lowest I can get with Arch by my guess. The way to get even lower is either use a distro that doesn't use GNU coreutils and systemd which both of them is bloated even though both of them are very useful for my daily use. Also with NVIDIA drivers, even though I am already using their open source kernel modules, it still requires "nvidia-utils" which contains their proprietary blobs of drivers. To achieve the minimalist mindset, switching to nouveau maybe is the most viable option. And to actually get rid of systemd and coreutils, I would need to use Alpine or KISS which both of them fully allow me to customize every single bit of the system.
This cycle will never ends, maybe sometime later, I would try to find a more minimalist text editor(nvim->vis), bootloader(grub->?), initramfs image creator(mkinicpio), stripped kernel, make system, compiler(gcc), c library(glibc->musl), sound server(pipewire->?), browser(firefox->?), song downloader(yt-dlp->?)