Ubuntu is a good desktop operating system. Perhaps someday I’ll use Debian everywhere, but as of now, it’s still providing some value in terms of the install base troubleshooting issues with aging hardware like the 2015 Macbook Pro I’m writing this from.
So here’s my guide to ubuntu.
Once you’ve picked a version of ubuntu, you download the operating system image (ISO) from ubuntu.com.
For this machine, I picked the last LTS, 24.04: https://ubuntu.com/download/desktop
Once it downloaded, I installed Balena Etcher and plugged in an 8GB USB stick.
I selected the .iso and the usb stick, and Balena wrote the image to the USB stick.
I plugged the USB stick in the target computer, and for this 2015 Macbook Pro, I held the option key to get to the boot menu. Then I selected the usb stick and it booted to Try Ubuntu desktop.
From there, I told the install to wipe the hard drive and install ubuntu. I plugged in my phone for internet, as the wifi didn’t work until I told it to use proprietary drivers.
After the install finished, it directed me to remove the USB stuck and reboot, which I did, leaving me with a functioning ubuntu system!
Once I boot into normal ubuntu, I start up the terminal with ctrl+alt+t and start configuring.
First I enable passwordless sudo to save myself some typing:
$ sudo visudo
%sudo ALL=(ALL:ALL) NOPASSWD: ALL
Then I install some essential packages. Perhaps someday I’ll have a script for this part.
$ sudo apt install git fish
Once fish is installed, I make it my default shell like so:
$ sudo chsh -s `which fish` `whoami`
Unfortunately you have to log out for this change to do anything for some reason.
$ gnome-session-quit
Now it’s time to get my dotfiles:
$ git clone https://git.sr.ht:~razzi/.dotfiles ~/.dotfiles
You’re of course welcome to use my dotfiles, however rather than copying everything, I recommend just taking the parts you need. Everything’s in the public domain so you can use the code however you’d like.
But as this guide’s primarily for myself, I’ll continue using my dotfiles wholesale.
$ rm -r ~/.config/fish
$ git clone https://git.sr.ht/~razzi/fish-functions ~/.config/fish
$ symlink ~/.dotfiles/fish_conf.d ~/.config/fish/conf.d
At this point, my fish shell is configured, and I apply the config like so:
$ exec fish
For a new computer I need an ssh key:
$ ssh-keygen
I use pass for password management. Here is my guide to that: /guides/pass
However in order to clone my password repository, I have to log in to a site which itself requires a password.
To solve this chicken-and-egg problem I download Signal, authenticate from my phone, and send myself my sourcehut password. A bit clunky but it works.
sudo snap install signal-desktop
To finish setting up hut
, take a look at my guide.
Once hut
is all set, I can set up pass.
There’s more, but I’ll leave the guide here for now. Most of it is linked from my dotfiles, like keyd and tmux.
Vim lives on its own here: https://git.sr.ht/~razzi/.vim