Personal TODO list on how I set up my dev machine
(every time I fuck it up and need to format and reinstall everything)
I am a Linux fanboy, I have been using Linux (and especially Debian-based distros) since 2007 more or less. In 2007, I started using Ubuntu Gutsy Gibbon and when I wanted to upgrade to Ubuntu Intrepid Ibex I did it from the package manager, and disaster occurred.
My machine wouldn't boot up.
Since then everytime there is a need of upgrading the system I have always installed it anew (keeping the /home partition from the old system) using the USB/cd live cd.
Fast-forward to a few days ago. I've been using Ubuntu 20.04 since 2020, and my package manager went "Yo biatch Ubuntu 22.04 is out, get on it" and even though I had that bad experience in 2008, I thought it was maybe time now to give it a try and upgrade distro while on a distro.
BAD CHOICE.
It all seemed like it was working but the day after, the PC was stuck on a boot loop, so I knew I had to reinstall stuff.
Luckily I am not that much of a paranoid freak, so I do not encrypt my hard disk, I managed to salvage the only 100kb of config files I needed by mounting the had on a live USB stick and put moving those files to a pen drive.
Yet I had to install stuff back to get them all as I wanted them to be, so I decided to write a small post on how I get my machine set up.
TODO
After a fresh install of Ubuntu I install the DE, I have been using Budgie and I love it.
Install Terminator as a terminal emulator, and I set up the keybinds to be the same as iTerm on mac so it is easier to remember when I use my work MacBook.
Install zsh, switch bash to zsh as my shell and install oh-my-zsh
I plop my .zshrc with few shortcut and theme I like in ~.
I am a javascript kind of guy, so I install nvm first.
I install hygen that I use to generate source code, and my templates.
I generate a new set of ssh keys, and add them to Github and on my raspberry pi (so I can ssh into it).
I generate the config for my raspberry pi to connect using identity_key.
I install: Discord, Chrome, Telegram and VSCode.
I install: build-essential and rust.
I install httpie.
I install docker (this is quite a boring process, to make it sudoers and so I can run without sudo).
I install Spotify.
I set up my keybinds on Budgie: I use Super+Shift+Q to close windows, Super+Enter to Open a terminal, and a few other ones that I've been stuck with me since my early fluxbox days.
I troubleshoot why Alt+Ctrl+Arrows keybind doesn't work following a question I have also asked in the past.
Create a ~/code folder, to keep all my crap in there.
Install the latest tools I have been using/learning: atm Godot and dotnet6.
I lose interest and never want to touch this PC ever again.
And that is it. I hope this list would be helpful to someone, it will definitely be helpful to me if in a few years I forgot again NOT to upgrade the distro.