Basics
This section will be a bit less listy than the others. My intention here is to discuss the things that make using a computer better or more pleasant for me. These will require some explanation.
Linux
I enjoy Linux because it allows me to manage pretty much every part of the computer through basic text editing. I can install programs from the commandline. I can change their behavior by editing config files. I have partitioned my home folder so that nuking my OS is not nuking my files. However, the true reason I still use Linux today is for i3wm.
Bash Scripts
i3wm
i3wm is a tiling window manager for Linux. When a program opens, it automatically divides the screen space in half and docks the window into one side. Windows do not overlap. They do not have title bars or boundaries. The ratio and orientation of the split can be quickly modified using keybinds. Windows can be popped out, if desired.
i3 also enables hot-keyed workspaces. This means that Discord and Firefox are open on workspace 3 and my volume control is open on workspace 0. Using windows key + 0, I can jump over to a screen that only has my volume control open. I can use windows key + 3 to jump back to Discord / Firefox. This is not some laggy process, but a relatively instant one. Windows key + f quickly fullscreens the active window, without changing its position in the layout.
After acclimating to the spatial, keyboard-centric workflow of i3 on Linux, Windows feels excrutiatingly slow. Manually moving windows around or resizing them feels like a huge waste of time. Not being able to hop over to a fresh workspace instantly is an exercise in madness. Imagine not just fullscreening what you care about right this second.
dmenu
I first came across dmenu as a part of an i3wm install. It's something like Windows search without needing a mouse, if it were instant. Windows key + d opens up a single line prompt at the top of the screen. You then type in anything you'd type into a commandline.
We'll use "firefox" as an example. When I want to launch Firefox, I simple press windows key + d, and then type "fire" and hit tab for auto-complete. Enter to launch and firefox opens up. The advantage of this is that I don't have to look at my screen or make sense of a bunch of visual shortcuts. I don't even need to touch my mouse. I just think "I need a browser" and it pops up from anywhere. No minimizing, no rearranging, no searching, just "fire->tab".
ani-cli
I am not a big anime-watcher. I don't know the popular sites. I don't have accounts on any of them. This beautiful commandline tool allows me to simply search for an anime and watch it in my preferred media player (vlc).
pianobar
I am not a big music-listener. I've never used spotify and, even if I did, I don't know any song that's come out in the last 15 years. pianobar is a commandline client for Pandora. When I just want music to be playing, it's my goto.
yt-dlp
As time marches on, I am finding a wide variety of reasons to download YouTube videos either permanently or temporarily. yt-dlp makes that easy from the commandline. I use it to grab audio-only versions of videos of songs I like. I use it to not deal with YouTube's throttling bullshit. I use it in several bash scripts. It's a wonderful tool to have.
Chatty + Streamlink
Twitch sucks. Chatty is a java program that allows me to open up twitch chats without ever interacting with the Twitch website ever again. Streamlink is a commandline tool that is integrated into the Chatty GUI to open streams in vlc. This makes it so I can't do things like redeem bit sounds or utilize fancy addons, but I like it that way. It cuts down on so much bullshit, it's unreal.
Proton
I love to hate on corporations, but Valve has legitimately done us a huge service by creating proton. So many games are playable on Linux as a result that it just deserves all the praise. Worth noting : Proton GE is not better because Glorious Eggroll is a genius. It's better because he is able to implement proprietary codecs and other things that are a much larger hassle for a corporation to deal with. The Valve engineers play a huge role in helping that happen. Both are champions.
Godot
I have not used Godot seriously since 3.5. However, from what I've seen and experienced, it is the best place to jump into game dev by a billion miles. I personally suspect it's on a downward trajectory, but it could degrade for 10 years before being as bad as other options.
Vimium
Vimium is an addon for Firefox (and others). Its goal is to enable vim-like keybinds for your web browser. I don't get fancy and only use two features. j and k are much more comfortable for scrolling a page up and down. Shift + H is convenient for going back a page.
By pressing 'a' (rebound from 'f'), letter-based tags are shown on every clickable item on a page. Using YouTube as an example, pressing 'a' might tag the search bar as "SD". To click that object, I just type "SD". Holding shift will open the link in a new tab.
This means that I very rarely have to touch my mouse to browse the web. I don't have to context-switch or break my rhythm. It's just a constant onslaught of going where I want to, without having to make sense of relative screen space. Similar to i3wm, using a browser without Vimium is pure torture for speed and mentality.
SSH
If you have more than one computer, SSH is the goat. It allows you to connect to the commandline. This is very spooky for people who have never interacted with permissions or security. For everyone else, it allows you to move files and manage servers without setting up a bunch of hyperspecific GUI links. The Crabsoft Ultima Online server runs inside of a screen instance, managed through SSH.
git
If there was one thing I could get new programmers to actually listen to, it would be engaging with version control early. Everyone knows it, nobody does it. They all think, "I'll do that when I have a real project". Git is like wearing a seatbelt : It only helps if you do it every time.
I could think back to some grand dramatic story of a time that git saved me (many), but I'll actually talk about how it changes your development. By using a branching strategy and putting words to commits, you force your development to become more focused and modular. You have to say what you actually did. You can't just say "idk changed some stuff". It also teaches your stupid ass semantic versioning.
python3 -m http.server 8080
This command hosts the working directory as a webpage. I've used this to download files from one computer to another in the laziest way possible. It's probably not secure but man does it save a headache once in a while.