how i use computers

table of contents

( this page is out of date )

what follows is an outline of the various hardware and software i currently use for daily computing tasks , in case it's useful for someone else . this is not a prescription of how other people should use technology , nor is it a description of my ideal computing environment .

hardware

if i need to purchase a new device , i prefer to find one that is already used , due to the numerous ethical issues with the production of electronics by large companies .

my primary computer is a Thinkpad T430 running QubesOS . i chose this laptop because , out of the options that can be flashed with coreboot , it was old enough to be somewhat affordable ( around 200 USD on Newegg ) , while still running fast enough for most tasks that don't involve graphics ( and some that do ) .

i don't use any peripherals except for a large monitor , to maintain good posture . i have tried mechanical keyboards , but i dislike like how they feel and sound compared to the built-in Thinkpad keyboard . split keyboards are more ergonomic though , so it would be nice to find a split rubber dome keyboard .

my phone is a Pixel 4a ( this was also around 200 USD on eBay ) running CalyxOS . i am planning to switch to GrapheneOS soon , for the additional security features and ability to use TalkBack , a screen reader . i could not figure out how to enable a screen reader on CalyxOS .

software

i primarily use CalyxOS for taking notes with Orgzly , tracking sleep with Plees Tracker , web browsing away from home , insecure communications , and listening to audio-based educational materials .

i use QubesOS for web browsing , programming , Serious Writing , and other forms of expression .

i chose QubesOS because i find ambient authority horrifying , but i'm not aware of any robust capability-based operating systems that would fill the same need for me .

QubesOS is slow and doesn't have screen reader support yet , but it does have some great features like configuration using Salt ( or maybe even Nix-like configuration in the future if Spectrum goes well ) , Whonix qubes , and offline qubes . here are a few things i've learned that make it more tolerable :

programming

language

currently , the languages i find most useful are Haskell and PureScript ( which is very similar to Haskell , but compiles to JavaScript ) .

a few things i like about them are :

i'm autistic and get overwhelmed by extraneous detail very easily , so i view many of these as accessibility features , because of way they encourage code that is easy to read and reduce the number of things i must keep in working memory at once - while still feeling quite empowering .

i've experimented a lot with Nix for provisioning systems and development environments , but i'm hesitant to recommend using it , particularly if , like me , you're significantly constrained by the power of your computer hardware / disk space / network speed , or are marginalized in some way . i've seen many folks point out that the Nix forum and subreddit have been particularly ineffectual at fighting bigotry and fascist rhetoric , which has been corroborated by my own experience . from what i can understand , the community has also become a place of heavy conflict after a considerable amount of members were okay with the Nix convention being sponsored by an evil "defence" technology company called Anduril .

i've definitely benefited from Nix before , but those benefits have only barely outweighed the many negatives i've experienced along the way . maybe Lix and Aux will manage to solve some of those issues .

code editor

the code editor i use most often is helix .

my first editor was Sublime Text , then VSCodium , then Atom , and i finally found an editor i liked when i tried vim and realized i could mostly avoid using the mouse . using a mouse as an input device is fine , and i wish development software would use it more often . my issue is the precision required in most mouse-driven interfaces . precise clicks are difficult for me, and it would be much more accessible if elements that have a larger hitbox ( like radial menus ) were used more often . once i was proficient with vim , i moved on to Doom Emacs .

Emacs has a lot going for it , like radical introspection and extensibility , but it was just too slow for me . the language servers for Haskell and PureScript would often crash my qube because of how much memory they used in Emacs . i also disliked dealing with the Doom abstraction , but when i tried going without it , maintaining a complex configuration was too time consuming .

so , i switched to helix . it is rarely too slow for me , even in a qube with 4GB of RAM . it hardly requires any configuration to match my Doom Emacs setup . after learning them properly , i've also grown to appreciate the Kakoune-inspired keybindings more than vim's .