note: there's some artifacts like not knowing how to do org-mode's en-dashes in markdown when I converted this for my site. this was originally shown in org-mode via org-present.el.
who am I and why am I here
- former e-board officer, been using *nix as my daily driver for nearly a decade
started at 12 as a 4chan
/g/kid -- any cringe can be blamed on that- I haven't gone on 4chan since like 2020, I have no idea what kind
of cesspool even
/g/has become (back in the day, there were nice threads on there everywhere except /pol/ based on how the poltards were described)
- I haven't gone on 4chan since like 2020, I have no idea what kind
of cesspool even
- guiding principles throughout: unix purist, minimalist, anti-bloat
- this is roughly how that went
how it started: luke smith
his early video on why should one use terminal programs was my gateway drug into everything
- since I used youtube in like 2011, this was the sole good thing that ever came out of the algorithm thing that people talk about for me specifically
- from there: different distros (he started with parabola on his librebooted x200), tiling WMs (i3, dwm), suckless and minimalism, LaTeX
parabola's wiki in 2017 still had the beginner's guide arch had removed -- effectively the same distro anyway
- parabola is just a more libre and gnu version of arch
- this was 2017-2018, before he quit being a linguistics professor in georgia, moved to a cabin in florida, and started complaining about les youths
- didn't follow other linux channels until much later -- pretty much just david wilson's system crafters for emacs and guix (more on this at the end)


distro hopping
- started on parabola -> arch shortly after for wifi drivers (was interesting finding out about non-free firmware as soon I start using linux)
- set up gentoo through the handbook to actually learn how linux works underneath
did a full LFS+BLFS. twice.
if I didn't get into Guix, I would've done it again after getting frustrated with regular distros for the nth time.
side-tangent: I already disliked that it made it seem like creating a distro was more complicated than it really can be because of how many dependencies stuff like gcc and glibc need, but now it's even adding systemd on top of that? I don't recommend anymore. too many points of failure where it can go wrong.
distro hopping 2
- then: CRUX, Sabotage, KISS, Alpine -- hopping between them over whatever small thing annoyed me at the time
found CRUX through z3bra on nixers.net discussing differences between it and gentoo
- felt like home: just enough packages for a minimal base, liked being a package maintainer for a while
- power user burnout got to me every single time after a few months of usage though where I then quickly reinstall arch
sabotage was unique and interesting but only lasted one hop
it had a similar idea to nixos and guix where there's a singular store directory but

distro hopping 3
- KISS was what I wished CRUX was, but it didn't have the drunk tux mascot so it only got a couple hops
- sabotage and KISS found through people on IRC and XMPP
- learned a lot about sysadmin and writing packages through all of this
- choices eventually converged to: arch (easy), CRUX (fuzzy inside), gentoo (USE flags deepened the purism path, less package maintenance burden than CRUX)

os hopping -- the BSDs
- found them in the continued pursuit of minimalism and purism
- direct descendants of bell labs research unix
- freebsd: what I wished linux was -- better documentation, first-class integrated ZFS
- openbsd: high quality documentation in form of man pages (rather than freebsd's handbook in addition to man pages), security-above-all-else focus (though didn't impact game emulation much), tight-knit mature community (unlike most of linux), crux's packaging was heavily inspired by openbsd's, the mascot, and it's canadian

os hopping -- tangent with plan9 / 9front
- grade 12 high school phase
the creators of UNIX at the end of Research UNIX v7 and v8 pretty much thought "how can we do this better?" and made a separate OS that is like a reimagining of UNIX
- "everything is a file" taken further into even the networking
- e.g. in BSD and its derivatives for networking via sockets are all based around the C sockets API while plan9 put even that into abstracted files and made 9p (plan9 protocol; even windows used it in wsl1 before they switched to virtualization)
loved the simplicity and elegance of how its programmed
- it uses a different flavour of C
rio/8.5 and acme showed me that mice aren't inherently bad for computer use when designed /properly/
- i.e. not context menu galore
- couldn't daily it: i219-v and r8168 ethernet drivers weren't working correctly even after trying to patch them with my then-meager C skills like changing IRQ interrupt numbers and stuff


distro hopping fin
- OSes I used the longest without hopping: crux, gentoo, and openbsd
- left crux and gentoo mainly due to power user burnout from package maintenance
- initially left openbsd for windows virtualization and gaming (though I ended up doing more FOSS engines and retro emulation under it than expected)
later left openbsd again and freebsd as well because of the amdkfd driver being patched out, meaning I can't use ROCm on my GPUs for GPGPU compute
it only leaves ggml's vulkan kernels which is quite different from doing CUDA/HIP

window managers
started with i3 -- keyboard-only workflow, most popular on r/unixporn at the time
- back when every post was either i3-gaps or bspwm, not sway and hyprland like today
- switched to bspwm: more minimal, more unix philosophy -- keybind handling split into a separate program (sxhkd)
- used herbstluftwm for a bit -- liked the manual tiling
- dwm became my main WM for a long time: minimalism + functionality, suckless, elegant
brief switch to spectrwm -- visually similar to dwm but easier to configure
- based on my screenshots that lasted only a few months before switching back to dwm
briefly tried sway to see if wayland was worth it -- switched back to dwm
only really used sway when too lazy to set up xorg on a new system
some screenshots from other people
- reflects what I see as a *nix desktop is
window managers -- i3 (from xaetlas on r/unixporn in 2021)
- I couldn't find the picture I saw from luke smith's website, maybe mandela effect

window managers -- bspwm (from gamehelp16 on r/unixporn in 2017)

window managers -- herbsluftwm (from nerdypepper/abhinav on r/unixporn in 2017)

window managers -- cwm (from z3bra in 2018)

and now my rices
- I didn't keep screenshots archived from before 2020. some good ones were lost. :(
2020 -- spectrwm


2023 -- cwm

2024 -- dwm

2025 -- sway

2025 -- dwm


2026 -- (not mine, joey's) hyprland since it looks cool

editors: before emacs
- before linux: eclipse for java, notepad++ for everything else, brief atom stint
switched to vim when I started linux
- terminal programs like it were part of what got me to switch in the first place
- learning your tools actually matters -- this comes up a lot
- avoided pre-made configs: they were bloated and changed defaults in ways that were hard to reason about as a new user
brief emacs attempt, but not knowing lisp made it impossible to properly configure
- also noticeably sluggish on windows on the same hardware that ran arch and gentoo fine
after learning vim enough (motions, basic ex commands) -- wanted more minimalism
- used vis and nvi for a while
plan9 phase: used acme briefly, learned sam through its manual
sam taught me ed, ed taught me basic regex
regex + vi motions: cannot overstate how much this improved editing
nixos
- peer pressured into it by functional programming friends in junior year of college
main selling point: entire system configured through a single file, dotfiles managed in one language
- if I hadn't used nixos, I likely would not have gotten as deep into guixsd later
- guix itself was originally based on nix
frustrating at first because I didn't know nixlang
- same situation as when I first tried emacs in 2020
- once I learned more nixlang, nixos felt much nicer to use
- but: still had to deal with systemd, and its administration felt very bureaucratic and corporate
nixos

the broader nixpkgs community was being overrun by new users blindly copy-pasting configs without understanding them -- everyone ended up with the same setup
- felt like it was becoming less for power users
- the DSL is a special snowflake -- they should have used something else as a base like haskell or anything they actually took inspiration from
ROCm support issue had a light-hearted tone that implied it wouldn't be seriously maintained by the team
that thread was marked stale three months ago and has had no activity for the past eight months -- right after I stopped using nixos
first attempt at guix
- briefly tried guix after nixos
- not knowing guile scheme made it hard to use -- same pattern as nixos and emacs before it
- also trying to fold my existing suckless + vi workflow into it was difficult at the time
- switched back to rotating between arch, CRUX, gentoo, and nixos despite their respective shortcomings
editors: almost emacs
- the completion package situation had changed significantly since I last looked at emacs
- it previously felt like you /needed/ something like ivy or helm -- packages that fundamentally changed how the editor felt, not improved it
what changed my mind:
orderless-- fuzzy searching without the bloatvertico-- the vertical completion menu ivy used to giveconsult-- better autocomplete layered over existing emacs functions
- these packages improve what's already there rather than overriding it
- finding them was part of my gateway drug into giving emacs a proper second chance
the lispy gopher show
- heard about it while briefly on the fediverse through prahou (author/artist of unix_surrealism from analog_nowhere)
- it and system crafters were what actually made me learn lisp and scheme properly rather than just look things up
- had learned some functional programming through OCaml and nix the prior couple summers -- learning lisp and scheme was much easier with that background
with vi-like editors I never needed to write scripts in them or touch their config much
- regex + vi motions + a few bridge packages covered most gaps
- with emacs, not knowing lisp meant always looking things up instead of just writing what I needed
- the parentheses were daunting before. now they make me feel fuzzy inside, the same way learning linux did in middle school

why emacs now and not before
the main reason I resisted emacs was it seeming like a monolithic kitchen sink
- "an operating system that lacks a good editor" is not an entirely inaccurate description
but the way I was applying the unix philosophy had a cohesion problem
- mutt looks different from newsboat looks different from lynx -- all configured in different syntaxes
- vi keybinds and ncurses in common is about as far as the cohesion went
with emacs: yes it's one big program, yes I'm not using POSIX shell to glue things together
- lisp is a more powerful language than shell, which depends on other programs written in other languages to do even simple things
- everything goes through text-based buffers -- integration is genuinely easier
pre-made configs like doom emacs or spacemacs were also a turnoff
same problem as pre-made bloated vim configs: you end up learning the pre-made config, not the editor
neovim has a similar situation now
guix + emacs
- guix got me to learn guile scheme properly
- now write most of my programs in guile scheme instead of defaulting to C99 (suckless style) or python
- guix also finally gave me what nixos pointed toward: system + home config + dotfiles all managed in one language, without systemd, without the corporate feel, without the special snowflake DSL problem
current stack
- editor, scheme via geiser, elisp via eval-* functions: emacs, obviously
org-mode: document editing, task planning, habit tracking
- worth calling out separately -- it's much more than a markup language
- some people use emacs entirely for org-mode
- email: notmuch + mbsync + msmtp via notmuch.el directly (same setup as before, just dropped mutt/aerc)
- RSS: elfeed
- browser: eww primarily, qutebrowser for js-heavy sites (canvas, etc.)
document viewing: pdftools + docview instead of mupdf
- mupdf still for large PDFs like textbooks where it's just faster
- background programs: dtach + its emacs management package instead of tmux
- local LLMs: gptel talking to vllm and llama.cpp running on my desktop
window manager: EXWM instead of dwm or anything else
- worked fine for games -- elite dangerous and others ran through it without emacs getting in the way