Following on from my previous post about dotfiles and my development workflow (WIP), in this post I will go over my operating system.
Arch
As the name implies I use Linux as my main operating system. I am a big fan of Linux because not only is free and open-source, it provides a great developer experience where I find tools that just work on Linux. It also is a lot more customisable as compared with Windows or MacOS. Finally, I tend to find it more lightweight as well and takes fewer resources to run especially if you are using Docker.
Insert meme about how I use arch btw. More seriously the main reason I use Arch is because of access to the [Aur]((https://aur.archlinux.org/), the Arch user repository.
The AUR provides an easy way for us to install any package using a package manager like yay
or pamac
.
It is similar to brew
that people use on MacOS. If I want to install a package I can usually do something like
yay -S <package>
some of the recent things I have installed can be seen below
So if I didn’t use the AUR I would’ve had to say git clone the project and then run a command. It also then means updating is a pain as I need to do it manually by remembering to do it. Rather than leaving it to a package manager to tell us when to update.
Gnome
I use gnome as my desktop environment (with Wayland), I tried using Qtile and AwesomeWM but found I didn’t enjoy tinkering with things at that low of a level and prefer just having a lot of the basics set up for me. For example, even something as simple as the volume indicator I could never style it to how I wanted it to look. So I eventually came back to Gnome and I have been able to customise it enough to my liking.
Shortcuts
Some shortcuts I use:
super + t
: Opens an alacritty terminalsuper + a
: Opens search light for opening apps similar to spotlight search in MacOS
Extensions
The main way I customise gnome is by using extensions
Pop Shell is used for tiling I tried a tiling window manager in the past and to be honest this extension is good enough for me whilst not being as powerful as say Qtile or AwesomeWM. For my use case, it is absolutely fine.
I can navigate windows just using my keyboard super + h j k l
to move between windows similar to how we would in vim.
It also has some shortcuts to maximise a window so it can ignore the tiling when needed. But again the main thing is
I don’t need to use my mouse I can use my keyboard.
Aylurs Widgets You can think of this as a collection of extensions which provides features such as making the top bar look nicer and the drop-down settings menu.
AppIndicator shows app indicators in the top bar for different applications like Discord or mullvad vpn.
Updates Indicator lets me know via an app
indicator that updates are available then when we click the button it will open a terminal and run yay
to update.
Space Bar: I replace Aylurs workspace with this extension. It is a bit more powerful and I think it looks better.
Search Light: Like spotlight search for MacOS.
Some other extensions I use include:
- Rounded Window Corners: Purely for aethestic purposes
- Pano: A better clipboard manager
- Just Perfection: Allows you to tweak almost everything in gnome
- Blur my Shell: Blur shell when viewing context menu
- Logo Menu: Adds a logo to top bar, similar to MacOS.
CLI Tools
I have added all of the modern unix cli tools. Some CLI tools I use daily include:
- fzf: Fuzzy search tool, especially for reverse search in my terminal with fish shell
- zoxide: Smarter cd tool, integrated well with fzf, nvim and tmux
- exa: A replacement for
ls
with better syntax highlighting - ripgrep: A faster
grep
- navi: Interactive cheat sheet
- restic: Backup tool used to backup my home directory to the cloud (off-site).
Misc
Some other “fun” things I have set up in Linux.
Wallpaper
I found some nice wallpaper
which can change throughout the day depending on the sun. I use this with a script called sunpaper.
This script lets us change the wallpaper depending on the time of day and the very cool it does is it uses the sun.
So it changes depending on where the sun is. For example, 15 minutes before the sunset it will change the wallpaper
and then after the sunset it will change it to another wallpaper you just need to set up a directory will wallpapers
named 1.jpg
, 2.jpg
…
Where my directory looks like (ignore the png files you don’t need those):
You can find my copy of the script here.
That’s it! That’s a quick blog post on my current Linux set-up.