Streamlining the setup of a new user workspace on Ubuntu/Fedora

Edvin Dunaway

Senior Linux administrator and engineer at Landspitali – The National University Hospital of Iceland
Father, biker, veteran, rocker, cyberpunker, computerfunker, trucker and all around tinkerer.
Been working in the IT business since around '98 and survived multiple deployments down in the Mediterranean.

I’ve been wanting to streamline the process of how I set up a new workspace with all the base packages, programs, addons and dotfiles I use and need when I set up a new computer, so I decided to write a script that does exactly that for me.
Sure, I could use Ansible or Puppet and even just Git, to store, save and apply all my settings and programs, but you know.. I like shell scripts!
Also, this gives me the advantage to install everything without having to set up Ansible, Puppet or Git beforehand..


So, lets go over what the scripts do and what they install (the README.md in the repo goes into more detail, so make sure to read it)

Looking at the initial-package-install.sh and post-initial.sh scripts

The initial-package-install.sh script checks what Linux distribution I’m using (I only use Fedora and Ubuntu, so those are the only options, but it’s easy to add other distros if needed..), and based on that information, installs the corresponding packagebase that I’ve selected, along with Google Chrome and TeamViewer, so that I have the tools I need without having to install them all by hand.
The post-initial.sh script then installs all the snap applications that I want, some Python3 pip modules, my dotfiles (via stowit.sh which utilizes the stow command in a function), Oh-My-Zsh for zsh and lastly all the extensions that I use for VSCode and Gnome-Shell.

What to take into consideration before running these scripts

  1. Read the README.md to further familiarize yourself with what the scripts do and how stowit.sh works
  2. Make sure to look over the packagebase and change out/add any packages that you want/need
  3. The same goes for the snaps and Python3 pip packages and VSCode/Gnome-Shell extensions
  4. Edit and/or replace the dotfiles that you need/use in the ./dots/ directory
  5. Remember, this is not an replacement for an complete configuration, the scripts are just to get you up and running faster, you still need to configure individual settings and applications

The scripts will keep on evolving and I will add new features as I need them to further streamline my workspace setup.
Go ahead and check out the initial-package-install script repository on my Github!

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.