Last edited - 2025-11-06
Here is an attempt to serialise all thing I use. Consider this as a list to find some niche things, or just a futile attempt to create a list of all things I use, in case I lose it all and need to find what I used, or loose all memory and need to re-figure what and why do I use.
Most of times, I am not filling out things retroactively, and just filling what I use at time of writing, but in some cases, I will write about past or secondary things as well. Post is already going to take a very large amount of time documenting everything I do today. If I start including past things in detail as well, It may take an eon.
I do all most all my computing on my laptop. I do not have a desktop computer. Reasons for this is pretty much one thing only - portablity. I use my laptop evrywhere. On my bed, on some desk, in college, at work, in public transport (metro or bus). I even use it while walking. I like that I have a single device that I can use that does all most everything I want it to do.
I use a Lenovo V14 Gen 4.
Reasons for this specific laptop is simple - I wanted something cheap (I am not rich). I looked for laptops online. I did not really like any pre configured laptops. I was almost going to buy a second hand laptop which was pricier, but because second hand, was almost in my price range. I was loking something around/under (then) $500 (USD). This laptop after all discounts (5% for student, 5% or something for customising and some cash back for buying on a credit card (asked someone else for it)) for a little under $410. For that I got
if I include price of parts I swapped from my old laptop, I would still end up close to $450; which is still cheaper than price of old laptop.
I switched from my old laptop after only 2.5ish years of use mostly because it physically was not doing well. Much of it’s plastic body was cracked (it was not that well designed, and 16 inch screen and relatively thin plastic meant that there were many lighter sections taking blunt blows). It also fell once, which caused edges of display to have bleed (smeary dead pixel goo). And for some reason (that I could never truly figure out) it kept dying if it’s body was slighlty bent (which considering it’s built meant anytime I pick/hold it up with a single hand).
From a battery stand point, it is worse than my old laptop, mostly because my older laptop idles better (around 2W), where as this does not go below (4.5 W) often. But newer laptop does not go above 5W much (unless I watch videos at higher speeds or have software decoding) so real world usage I get is around 8-9 hours. Older laptop in load would get 7-8 hours, or if idling, it could get around 15-20 hours (but that is not very useful). But I usually keep it plugged in whenever at home or work, mostly to reduce battery load (most laptops have pass through charging), this is also the reason why I have relatively low battery cycles and good battery health.
New laptop does much better physically. While it is still plastic (at this price, there are no full metal body options), it’s back is metal reinforced, which means I can pick it up with a single hand and it is not significantly bent. Also it’s body is a bit smaller (length and breadth (because smaller display size and num pad less keyboard)) and a bit thicker too, so it does a lot better in bending loads. It’s better physical nature was pretty much the sole reason that I started using my laptop on the go too. befor I would almost exclusively use it on some level surface, and never in a public transport, or even think of using it while walking.
For anyone too worried about me using it while walking, it is definitely worse from road safety aspect, but I use it only on “well rehearsed” paths which are almost all road-less (through college grounds, or only on sidewalks), and all these trips are shorter than 10 or so minutes.
I do not use my mobile much. It is used for a few major uses only (as follows)
These things do not require much, so basically any phone works. I would go more about software later, but for now, since I want an open operating system, I recently “downgraded” my phone to a Redmi Note 7s (codename - Lavender). It technically has stopped recieving official support from Lineage os (last version 18.1), but there is unofficial community support up till recent version. (yay open OSes). In case I want to try linux on it, I can also use Ubuntu touch on it.
I do not use much else. I use a Headphone (a no name chinese brand) which works via bluetooth or via aux cable. I have used them for over a year, and sound is fine. It’s plastic body has cracked around the part that attaches to cups, but that just required some simple work - add a stiff plastic object, and just tape around it. I also have a usb c earphone that I use these days. I do not have any other “smart” gadgets. I also have a external portable hard disk, a Western digital 4 TB hard drive. It was expensive (around $ 120), but since it was not bought exclusively for my use, it is fine I guess. It serves as my primary backup.
I have a “almost non negotiable” requirement for all things - Open Source. I do not care much if it is copyleft or permissive, or even source available (although I do not have much of that). It is mostly from a simple privacy and security requirement. “I dO nOt hAvE aNyThInG tO hIdE” but I still do not want to broadcast to other what I am doing. This includes companies making software.
I am okay with running proprietary games, as I consider games to be pieces of art, but I do not game much, and much of it is emulation, where only game rom is closed source, and the emulator is still open. Some of my favorite games are FOSS (for eg. luanti, super tux kart).
Among software/apps, the only major closed app I run is Whatsapp which is basically a requirement where I live for messaging. (It is synonymous). Other than that, there are occasional things required for work, but I only use it when not avoidable. On laptop, I use a open client for it (a tui).
Even in browsers, most of the websites I visit or “social media” that I use are open. Non open examples include reddit (for some searches, andd for some subreddits), but I use a self hosted (on the same machine) redlib instance (a privacy frontend) for it. For searching, I use SearXNG.
You can consider it to be a bit in line with the famous Unix Philosiphy - Do one thing, and Do it well, but only partly. I definitely use stuff which embraces this idealogy, and use stuff which are antithesis to it.
My idea of simple is more in line of
easier for me to use - these would be things like having Vi like bindings or keyboard navigability in general. For some they may prefer more mouse centric approaches, but I prefer keyboard centric stuff. I can often learn keybindings, and then operate things purely by muscle memory or blindly.
run fast and lean - this is about performance. I want to use performant stuff. I do not like to wait for things. I also like to reduce my system’s power usage. If some piece of codes executes faster, or takes less resources, I often end up loading my system less. This means lower power usage and temperature. This condition often rules out stuff made with web technologies (for eg, using electron for gui, or a cli app using node). I am not against using them. They have their purpose. But there are limitations in using them as desktop software, especially for stuff requires more raw performance, or uses gpus. Yes, there are multiple implementations for using gpu in web stuff, but none are as effecient as directly using opengl/vulkan.
I like all my software in rust - error free software only!
(In case it was not clear, that is meant to be joke) I like newer software more than older software. This reflects a lot in my software choice, where I end up using a lot of software before it gets “popular”.
Reasons for it are kinda simple
This one is simple to explain. It is one part about using native stuff as opposed to browser based stuff. Other part is the fact that I am not always online (or I do not have a need to be always online). Assuming I do not have work related stuff, most of my work is offline.
Much of my browsing happens in a more “old fashioned way” - fetch stuff - watch/read/save it. I would go into more detail about it in rss section.
I definitely do need Internet to “fetch” stuff, but I do not live in a “first world country” or “rich” to have a high bandwitdh, low ping, stable connection. So it is kinda natural for me to use it in bursts, where I kinda saturate my bandwidth for some time, instead of constantly streaming a lesser amount, as that is not very feasible on a less stable connection. This also allows me to do stuff in “wierd” places as explained in computer section.
Assuming you read the previous section, it may be obvious, but the requirement for open-ness pretty much immediately eliminates windows/mac os/chrome os or any other closed source operating system.
There are many open operating systems, and among them, I almost exclusively want to use linux based oses. There are some really cool oses like freebsd or ghostbsd, there is haiku, if you somehow love foss and windows both you have react os, but they all have oe major problem - software and hardware support.
Linux (based oses) is (are) the best oses if you want open stuff and want good hardware and software support and this is not even debatable.
I hear you saying linux based oses and not something else like linux or ubuntu or GNU+/linux - first is me just being a bit pedantic, linux is technically just the kernel, and os requires a lot more than that (you definitely need some cat themed photos too). I usually just say linux when dealing with non tech folk, and linux oses (o perating s yst e m s) otherwise, as it is a bit better imo (it still keeps linux in front and center, but also adds oses to signify there are more than 1, we are family, and infighting does not help anyone). For those who may not know, ubuntu is not the only linux based os. And for GNU appreciating folks, I do appreciate them too. They are one the most important thing to happen in foss world. Foss is kinda possible only because of GNU. But saying gnu also is a bit harsh imo, because now there are many other system parts which are important. Not saying GNU is not important, but there are others who deserve just as much respect - you have init system, you have graphical stuff (de/wm and their utilities), you have a browser, you have a lot of things.
Among linux oses I do not have a strong preference. I am just as much a fan of Arch, as I am of Debian, or Fedora (a little less for them, but just a smidge, fedora is a stupid name (just kidding)), or Gentoo, or Void, or Nix (well not nix for some reasons, but they are mostly skill issue on my end), or almost any other distribution.
You may have noticed one thing if you pay a bit of attention to the list - all of these distros are independent distros. While this is not a must, my general software preferences just bring me to towards them. I like clean/lean stuff. I like to pick and choose what I run. On a good day, I can list each an every process running on my system (not counting kernel threads or “meta processes”). It is not because I like to micro manage my whole system, I kinda just know it because I know what I installed, when it starts (if it starts) and what may use my resources.
As to why I like to use it this way, It is because I like to learn stuff. I like to learn how stuff functions (except networking - that is most definitely some black magic). When you start learning, you can either start with a top down approach - just peel one layer at a time, or bottom up. Former is more natural and easier to start with, but If you use a “premade” os, a lot happens at each layer. If you control what you have while setting up, you have less stuff in layers. This way I can know what has gone wrong/right mostly because there is just less happening. I know what my system is doing, and it is easier to learn this way (because I decided the syllabus and I intentionally cut it down).
before I explain Arch I have to admit something - I kinda have never installed arch the arch wiki manual install way. So I have not earned the right to say I use Arch btw. I will explain it below. Reason is pretty much one thing - I absolutely do not want to do anything networking related. My old laptop had a “less supported wifi card” and that is the only networking I have. Trying to install arch on system, when it is the only system you have is hard. Can I install it, yes. I have installed void (with a similar installation curve (it can be argued that void is harder)), but that is through using a existing live os, and then using terminal in it to install void on underlying disk. Because I need to open docs somewhere. I know I could have done same for arch, but as youu would see, I kinda never had to.
Arch - I started using arch by installing it with Arch linux GUI project (to my knowledge, the project has been discontinued). It was arch linux, with a Calamares installer, and allowed me to use XFCE. I used it for about 2 months, when I felt confident with it being my only os, I wiped windows partition, and from a live cd, started moving my arch install leftwards on the disk. For those who may not know - this is a dangerous operation. you can have drive failures or power outages. I use a lpatop with ssd, so both of these are unlikely. What I had was even stupider. I had live OS on artisinal usb pen drive which was not well balanced. Connection was not very firm. And something happened, and I corrupted the move. I lost my install. I did not have much critical stuff on it (I had family photos, but they are present on my phone as well). I did not really loose any important files, but I lost 2 months. I installed arch the same way again (LXQT this time for the DE), and got back to where I was in about 1 week this time. I then moved to …
Debian - As bookworm (12) was about to release, I moved to debian. I had always heard great things about it, and really lliked it. It was stable. It did not update frequently, but I at that was new and had not a very strong habbit of trying new tools. I stayed that way for about 6 or so months. I wanted to use newer stuff. So I dabbled into backports, then sid. At the same time, I have started to keep my programs at minimum, and for somethings, even moved on from graphical things to tuis. Forst major program was Micro text editor. I made shell script to pair micro and a terminal emulator, to effectively mimic gui text editing behaviour (double click file in file manager). This was also time when I took my DSA course. By now I was kinda comfortable in using cli. I also kept hearing wayland this, wayland that, and I wanted to try out. So I started looking what waylland options are there. This is 2022-23, and only viable options at the time were Gnome, KDE and Sway. I did not want to use KDE or Gnome. But I did not want to use Sway either because I did not want a tiling window manager. I was a power XF4WM user and had keybindings to “tile” windows in corners or half screens, and felt this was enough. But I eventually got interested enough. I heard that sway on debian was not that great at that time, because much of “ecosystem” was too new for debian. So I started looking for X tiling wm, and went with i3. I gradually transitioned from LXQT to i3 in about a week, and fell in love. I did not like tiling that much. I use laptops and on laptop screens, anothing more than 1+1 or 1+2(up and down). But this was the first time I had a proper experience of keybindings and rofi and virtual desktops. All of these were possible on LXQT too, but just not integrated enough I guess. By end on next week, I really wanted to use sway, and so I installed …
Arch - this time installed with endeavour os. I pretty much deselected everything. No WM or DE, no utilities. Just disk partitoning and network manager setup. I did not even have endeavour os repos or branding. Now intrigued by new tools and stuff. Arch is kinda perfect for my tinkering needs. Repos cover a lot, and I used to use aur or chaotic aur a lot too. As mentioned previosly, I like new stuff, and arch is best distro for trying new stuff. I am one those folks who has had almost all good experiences with Arch. There was one time when grub failed during my previous try, but this time, I went with systemd boot. I replace core utils with uutils, sudo with sudo-rs, even before ubuntu made anouncement about doing that. I switched text editor, browsers, moved most on from most graphical apps which did not have good keybinding support. I started reading manuals and wiki pages, reddit threads and more to look for cool shiny things to run. At some point I kinda got to a point where most if not all my things were either cli/tui based, or they are a browser, mpv or image viewer and pdf viewer. And that is about it. I have kinda been same, just now I do not switch a lot. I moved my WM once more, and that has been my last major change (outside of browsers).
As you see from my experiences, fedora or debian or arch did not have anything special. Debian sid was nearly as good as arch in terms of package new ness, just the availability was a bit iffy. And I never truly gave fedora a try, but I know I would have practically same experience with it. Only reason I kept going back to arch was I kinda learnt pacman, and did not feel the need for anything else. I never truly had a distrohopping virus.
This kinda leads me to what are my thought these days - Distro does not matter. I know that everyone says this, but I have kinda gone even further. I think it does not matter for even more reasons. A distro is just a particular configuration of core system stuff and a package manager. What if we start using distro independent packaging? And I guess you would think I am alluding to flatpak (or nix), and I am not. I have tried both, with first I have generally bad experiences, and with latter, I could not get it to work nicely unless I involve root partition or do bind mounts, but I kinda have to keep managing permissions for files.
I do not like flatpaks, partly because there approach to managing libraries is a bit too conservative. I understand the need to allow different versions. So I accept some more disk usage. But I do not understand that for packages which do not want to stick very hardly to a particular runtime version, why not recompile them to newer version? I know for example that bottles team choose very specific versions, but why does not random gtk app depend on a gnome runtime like >= xyz version. Their approach currenty is that unless upstream does an update, the package has dependence on older run time versions. Which is arguably the correct way to do it, as that allows for most robust implementation. But most distros have been able to recompile stuff if their are breaking changes (for example soname changes). If a app does not have strict requirement, this will reduce number of runtime they would have to maintain and the user would have to install. I use 6-7 gui apps, 5 are gtk and 1 Qt. After installing them, I ended up with 3 gnome runtimes, 2 freedestop runtimes, 2 opengl/vulkan runtimes. Including all flatpaks, + wine flatpak (not a gui, but kinda gui, does not have gtk/qt dependence much) I ended up with roughly 8-9 GiBs of storage usage. When Installed with pacman, my combined system takes around 3.5-4 GiB (which includes kernel, wm, editors and other things not installed by flatpak).
I guess flatpak scales better if you use a lot of gui stuff, as you are more likely to just end up using one of the installed runtimes, but I think most people do not use a lot of gui software outside of their DEs utilities. I can guess most DE stuff will just use 1 runtime, but it still feels a lot larger. I am storage poor (no storage is not cheap). There are other issues too - filesystem is very messy. I have seen nix installs, and they are largely clean, essentially package tarballs uncompressed in separate folders which are labeled with hashes. I know flatpak kinda has something similar, but for “unknown to me reasons” mot packages are 4-5 layers deep, with many symlinks and largely non human readable paths/names. I know they are not meant to be human readabe - they have to be machine parsable, but I do not think it would hurt them much if they can simplify it a bit.
I am okay with multiple runtimes, if they would use compression - use squashfs/dwarfs and gently compress stuff. use just zstd −3 or even lower. Not to save space much (though you would space for sure), this would lead to less filesystem strain imo. I know most file systems can handle absurdly high file counts, but having way too many files reduce moving/copying performance. With lesser files, you would have less IO. Snap is good in this aspect, but they are bad in many other ways that I do not even consider them. Appimages are the peak of dependency duplication, but due to compression, size does not immediately blow out of proportion, but problem with appimages is that there are no repositories, and they rely on older fuse implementation.
Recently I have been using language specific package managers more - cargo (and cargo binstall) to get most of rust stuff. And since I like new stuff, I happen to have quiet a few (~20) packages from it. binstall allows to fetch binary releases. Only major problem with it is that cargo has limitations in it’s pacakaging, and effectively only /bin parts of package is installed. You do not get docs or libs or other shared assets. This is the reason why I do not have all my rust things installed by it. I use uv / pip for python stuff. I use some python stuff for programming as well for some of the software I run. It is good, in the sense that I am able to get full fledged installation instead of just bin files, but it is limited to only python stuff. Still, pretty good for what it is. I also tried to use pixi (conda) to get a richer python ecosystem, as well as a lot common distro stuff in other langs (for example gcc or make). But I kept encountering some problems, and my experience was not that great. a few things that otherwise worked fine with pip install, or distro packages fail. Also conda packages are out of date unless they are frequently used. It is obvious why that is, but it leads to problems where you have non resolvable conditions. I moved back to uv setup and installed back some system packages. I have about 70 packages installed explicitly with pacman. Out of these 70, about 25 are what I would call core system stuff which my system needs to have in best shape for system to function. Other 40 can still come from some other package manager. I am still on the lookout for a better distro independent packaging system. I know of other binary package managers which fetch from github, but I dont have a lot of binary only package left installed by root, so these are not that important for me.
Another package manager that I have tried is brew and I found it fine. It has some problems imo. For starters they compile stuff considering a prefix /home/linuxbrew/.linuxbrew/. Most package managers compile with some path, and I understand why it can not be /home/$USER/.linuxbrew. But this is not a big issue, because other than creation of that path and chowning that location to $USER, they do not use sudo at all. It is just a bit annoying. My bigger problem is that they do not have ‘optional dependencies’ (at least by default), so whenever you install something, it brings a lot of stuff. I understand idea is to give user a complete experience where they should not complain something to be non functional because some optional dependency is missing. I did not find any other technical reason to not like them, these things are just opinions where we differ. If your use case is to fetch some new things like gcc or cli utils, they are pretty good.
If you know of some better package managers, please do tell me (mail)
Compress everything!!!
This time, I am not joking, do compress stuff. Lossy and lossless, whichever applies to your files.
I am a “dark theme exclusively” user, and use it practically everywhere. While ability to theme is not a deal breaker for me, but everything that I use is theme-able so maybe I kinda internally do it without even thinking about it.
My general idea of theme is very simple - black backround, white text, if some accents are there, ideally blue
colors that I use
| color | hex code |
|---|---|
| black | 000000 |
| white | ffffff |
| blue | 2fafff |
| cyan | 00d3d0 |
| green | 44bc44 |
| magenta | feacd0 |
| red | ff5f59 |
| yellow | d0bc00 |
My general Idea is very simple - clean, large readable text, high contrast, color when necessary.
Since a large amount of programs that I use are clis and tuis, much of my theming is done just by setting appropriate theming of my terminal emulator.
For tuis that do a lot, I often edit them, and make them a bit “lighter”. This usually involves removing certain elements or changing colors of borders and other elements.
Other gui programs that I use are either which do not have chrome (clicky elements that are not the content itself) (video player, image viewer) or browser.
For browser theming is done in 2-3 parts.