summaryrefslogtreecommitdiff
path: root/posts/workflow_9years.md
diff options
context:
space:
mode:
authorVineet Kumar <git@vineetk.net>2026-05-05 11:43:52 -0400
committerVineet Kumar <git@vineetk.net>2026-05-05 11:43:52 -0400
commitc58adc06f9b7cfbe818fb7fd3a68f5b66960a620 (patch)
treee536b8de30ec450e2e7ce9c22e44fc5474640aec /posts/workflow_9years.md
parentb35228ff7370f8d9ef2b45bd09cfb974acf1254d (diff)
switched to haunt from hugo
Diffstat (limited to 'posts/workflow_9years.md')
-rw-r--r--posts/workflow_9years.md231
1 files changed, 231 insertions, 0 deletions
diff --git a/posts/workflow_9years.md b/posts/workflow_9years.md
new file mode 100644
index 0000000..9a4c24d
--- /dev/null
+++ b/posts/workflow_9years.md
@@ -0,0 +1,231 @@
1title: *nix workflow after nearly a decade (raw braindump)
2date: 2026-04-13 12:00
3---
4
5I was asked a few times from members of my university's cybersecurity
6club (I was a former e-board member and it's my main club) over the
7past months of how I use a computer since apparently how I use it is
8different from how others do it. They also found it fascinating that I
9used Linux/*BSD for as long as I did, and I'm probably among very few
10others if any at my university that used it for like 9.5 years. It's
11organized in what got me into this in the first place, my OS-hopping,
12my editor-hopping, what my current workflow is, and my (maybe lack of
13meaningful) thought process behind each switch. The TL;DR of that is
14I'm like a purist (primarily with the UNIX philosophy) and minimalist
15(reducing "bloat" as much as possible) and that guided a lot of my
16decisions up till now at the end of college. Any mistakes I made or
17any "cringe" I did like being a 4chan `/g/` kid can be blamed on me
18being 12/13 at the time. The following is the raw braindump before I
19condensed it into point form.
20
21---
22
23I was introduced to Linux via Luke Smith's early video on why use
24terminal programs. Then by watching his other videos, I got introduced
25to stuff like different kinds of distros (he used Parabola at the time
26and Parabola's wiki in 2017 hadn't removed the beginners guide page
27unlike Arch wiki, though in hindsight they're basically the same),
28tiling window managers (i3, dwm), suckless movement and minimalism
29(was the start of me obsessing over purism even to my detriment
30sometimes as in spending too much time that I miss deadlines), using
31LaTeX for documents and presentations, etc. This was during his early
32days back in 2017 and 2018, before he quit being a linguist professor
33in Georgia and moved to a cabin in Florida and now complains about les
34youths. I didn't watch other Linux-related channels until more
35recently with David Wilson's System Crafters for Emacs and Guix (more
36on this at the very end, it's a recent change that fundamentally
37changed how I do stuff, this will come up a lot).
38
39This put me on the path of both distro-hopping and
40WM-hopping. Reminder that I started this journey when I was 12
41(now 21) so I had lots of time on my hands. I started with Parabola
42and then switched to Arch shortly after for wifi drivers, then setup
43Gentoo through reading its handbook to learn about Linux more, and
44then later did a full LFS+BLFS twice, then CRUX, Sabotage, KISS,
45Alpine, and then switched between them depending on what little thing
46annoyed me at the time. Of these, CRUX really made me feel at "home"
47with giving me just enough packages for a minimal base and I liked
48being a package maintainer for a short while. I found CRUX through
49z3bra on the nixers.net forum talking about the differences between it
50and Gentoo. Sabotage (the way it did stuff was unique and interesting
51to me at the time but only used for one hop) and KISS (what I wished
52CRUX was but because it didn't have the drunk tux mascot I didn't use
53it much beyond a couple hops) from people on IRC and XMPP. I learned a
54lot about system administration and writing my own packages through
55distro-hopping. Eventually, the choices converged to Arch (if I wanted
56something easy), CRUX (because it made me feel fuzzy inside), Gentoo
57(USE flags put me further on the path of purism, not as much need to
58maintain so many packages in my overlay unlike CRUX). I later also
59found out about the BSDs in my goal of more minimalism and purism. It
60being direct descendants of the venerable Bell Labs's Research
61UNIX. FreeBSD was what I wished Linux was and I liked its better
62documentation and integrated first-class ZFS support. OpenBSD I loved
63for its documentation, focus on security above all else, tight-knit
64and knowledgeable mature community (unlike with most of Linux),
65package management feeling more similar to CRUX, mascot, and being
66Canadian (patriotism I guess). Among the OSes I used the longest
67without hopping, CRUX, Gentoo, and OpenBSD are the ones I really
68used. I usually switched away from CRUX due to power user burnout from
69maintaining packages for adding and making them more minimal, same
70from Gentoo but to lesser extent due to many other overlays, and from
71OpenBSD for Windows virtualization at the time and gaming (though I
72did find out more about FOSS engines and did more retro emulation
73under OpenBSD). I also had a phase in high school grade 12 with
74plan9/9front. Really loved the simplicity and elegance of it. Its
75windowing manager rio/8.5 and acme editor also showed me that mice
76aren't an inherently bad thing for computer use when designed
77properly. I couldn't go further with dailying it because my i219-v and
78r8168 driver wasn't working properly even after I tried patching it
79with my then meager C skills. Later in college around junior year, I
80was peer pressured into NixOS from my functional programming
81friends. I liked the idea behind it and it made systemd somewhat
82usable, but I disliked the special snowflake DSL (they should have
83used something else as a base like Haskell or anything else they took
84inspiration from) and it liked pulling in all sorts of transient
85dependencies, the exact opposite of what I wanted in Linux since I
86started using it years ago. What really put me off more than transient
87deps was poor and inconsistent documentation (like pretty much nothing
88about flakes: there was a disconnect in documentation of what the
89broader community used and what upstream deemed stable). But, it had
90advantages like helping organize my system+home configs and dotfiles
91all in one place which was very nice. So I briefly tried Guix, but
92once again without knowing its language was hard to use and also
93trying to mould my existing suckless+vi non-emacs worklow into it was
94hard at the time. So I once again switched back and forth between
95Arch, CRUX, Gentoo, and NixOS despite their shortcomings I detailed
96earlier: my power user burnout or getting bored. Continuing later for
97recent switch to Guix+Emacs.
98
99So now about window manager choice. I started with i3 since that's
100what Luke Smith used and I was curious about how a keyboard-only
101workflow would look like. It's also what the most popular WM on
102r/unixporn was. Back in the day when pretty much every post there was
103either a close-to-default i3-gaps setup or bspwm instead of sway and
104hyprland now. I then switched to bspwm because it was more minimal and
105UNIX philosophy like where it split keybind handling into separate
106program sxhkd. I also used herbstluftwm, the manual tiling was
107nice. Then comes dwm, my main WM of choice for a long time since it
108blended minimalism with functionality and also by suckless so was
109elegant. However, I still did end up switching to spectrwm since it
110looked similar visually but I found it easier to config. According to
111my screenshots though, that didn't last for long. I think I only
112stayed on it for a few months before switching back to dwm. I did
113briefly try out sway to see if Wayland was really all that great, but
114ultimately switched back to dwm again, and only really used it when I
115felt too lazy to setup Xorg on a new system and not using my
116pre-existing configs. Again, continuing later for my recent switch to
117Guix+Emacs.
118
119Missing what editor I used is criminal for this kind of topic. Going
120back to before Linux, I used Eclipse for Java and Notepad++ for
121regular stuff, and then I think I used Atom for a brief period of time
122(VS Code wasn't out yet or something in 2016/17). I didn't do much
123programming back then, partly because getting dependencies and
124compiling anything is a pain if my experience with compiling aseprite
125(sprite editor with cmake buildsystem) was anything to go off of. When
126I started using Linux, I also started with Vim. Programs like it were
127what got me to switch in the first place. Turns out learning your
128tools is important (and that comes up a lot). Even back then I didn't
129like using much of the pre-made configs, they were bloated and harder
130to reason about as a new user since defaults were changed. Also had a
131brief stint with Emacs, but not knowing basic Lisp made it hard to
132"know" it and it was bloated (common joke is it's an operating system
133that lacks a good editor) and also not optimized on Windows (same
134config from Linux) where it was just noticeably more sluggish on muh
135gamin' laptop when running Win10 instead of like Arch or Gentoo. After
136learning Vim enough like how to move easily and basic ex commands, I
137of course wanted more minimalism. Had a nice time with vis and nvi,
138used them for a while. In my plan9 phase, I used acme briefly and
139learned a lot about sam through its manual, which also taught me how
140to use ed the standard text editor, which also taught me (basic) regex
141which I can't overstate how much better it made editing files in
142addition to vi motions.
143
144Finally, my current workflow and choices. It's now all based around
145Lisp and Scheme because they make me feel all fuzzy inside when
146learning it, just like I did when learning to use Linux in middle
147school and how to program in C. The propaganda that got me into using
148this now was when I heard about the Lispy Gopher Show when I was
149briefly on the Fediverse through Prahou (the author/artist of
150unix_surrealism from analog_nowhere). While I did briefly use Emacs in
151the past, I did not learn it properly. As in, not knowing Lisp meant I
152needed to look a lot of things up instead of just writing them
153myself. Technically with the vi-like editors, I also didn't write
154scripts in them nor needed to touch their config due to how minimal
155they already were by default and that regex+vi-motions going a long
156way and there being packages to bridge the remaining gap for
157integrations. But with Emacs, the parentheses I guess made it more
158daunting or something. This sort of mirrors what I did when I first
159got into Linux (well Arch) as I read a lot through its wiki. But
160compared to just regular system administration where you run a bunch
161of commands or even making your own distro via LFS, I guess properly
162learning an editor and its programming language was too much for me at
163the time. For new Emacs users, it was also recommended a lot that they
164use a pre-made opinionated config like Doom-Emacs or Spacemacs (neovim
165has a similar situation) and that really put me off since that felt
166like I would be learning instead how those work instead of the editor
167itself. Now that I know some functional programming through OCaml and
168to some extent Nix from a couple summers ago, learning Lisp and Scheme
169was actually much easier. Compared to using a vi-like editor, using
170Emacs seemed nicer for working with these kinds of languages since I
171can selectively execute parts of a program, simliar to something like
172Jupyter notebook without it being so web- and Python-focused and being
173an inefficient use of system resources. The main reason why I did not
174want to use Emacs previously was that it seemed like a monolithic
175kitchen sink of everything. I think it being described as an operating
176system within an operating system isn't too much of an inaccurate
177description. However, compared to Linux and Xorg proper where I tried
178following minimalism and the UNIX philosophy as much as I could
179(i.e. small, minimal, self-contained programs for a specific task),
180there was not much cohesion between them. At most, they'll have
181vi-keybinds and happen to use ncurses but the layout of everything
182looks different and configured with different syntaxes (e.g. mutt the
183mail client looks different from newsboat the RSS reader and different
184from lynx and links2). Meanwhile with Emacs, yes there are multiple
185packages and yes I'm not necessarily using POSIX shell scripts for
186connecting things together, but Lisp is a more powerful language than
187something like shell that depends on other programs (written in other
188languages) to do even simple stuff. With Emacs, I now have everything
189integrated into a single program, everything properly goes through
190text-based buffers, and as a result is even easier to integrate around
191because everything is primarily text. Also previously, some popular
192packages that people use also seemed like it may have contributed to
193Emacs's bloat in my point of view at that time like /needing/
194something like ivy or helm. There's better packages available that do
195the same thing now, like orderless (for fuzzy searching) combined with
196vertico (for the vertical complete menu that ivy gave), and consult
197for better autocomplete for various existing Emacs functions, among
198other stuff. Now it's my main editor since like last summerish, and I
199configured it to be my editor, Scheme programming via Geiser, Lisp via
200just Emacs (since for now I'm mainly using Emacs Lisp and not Common
201Lisp+SLIME) and using the eval-* functions a lot (for both Lisp and
202Scheme), document editing and task planning and habit tracking through
203org-mode (some people use Emacs just for org-mode since it's much more
204than just a markup language), email through notmuch+mbsync+msmtp
205(stayed pretty much the same except I'm using notmuch.el directly
206instead of through like mutt or aerc), RSS through elfeed, browsing
207primarily through eww (though I have to use qutebrowser for js-heavy
208sites like Canvas), document viewing through pdftools and docview
209instead of through mupdf (though for some larger PDFs like textbooks,
210mupdf is just faster but not needed for most of my PDFs), backgrounded
211programs through dtach and its associated emacs management package
212instead of tmux, gptel for interacting with my local LLMs running on
213my desktop through vllm, and finally as my X window manager via EXWM
214instead of dwm or any other WM I used to use in the past. Works well
215when playing games too like Elite Dangerous, Emacs doesn't get in the
216way.
217
218I know this was very ramble-y. I just braindumped since there's so
219much to cover and a lot of stuff to remember over the past 9 years
220that I couldn't think in a more organized way without having all of it
221written down. I probably missed some stuff, so any questions?
222
223---
224
225In the actual presentation, I missed mentioning my peripherals (a
226Ferris Sweep with Kailh Choc Ambient Nocturnal switches for laptop,
227Corne with Zealios Zilent v2 switches for my desktop, and a Ploopy
228Adept as my mouse for both) as well since that's also different from
229how most people use it, as well as my current project "X380", a modded
230stripped-down X280 (I'll make a post when it's more finalized after
231fixing my 3D printer).