OS Genesis 🌏 🧬 🏗 💻

The easy and predictable way to setup and manage a Linux dev environment

View project on GitHub

Setup steps

Notes on reliably setting up a new laptop or fresh OS install using my preferred order of steps and software.

This guide is for Linux. See also my macOS Reference page.

1. Install new operating system

  1. Set up a machine to handle downloading and writing of an OS image on a device. This could be the same or different machine that you are targeting.
    1. Choose your preferred Linux distro.
    2. Download your ISO image. Make sure you choose the correct architecture.
    3. Choose your approach for writing to a device.
      • The Linux Mint site recommends Etcher. Check your architecture using uname command so you download the right version, or use your system’s package manager.
    4. Write the image to a DVD-R or empty flash drive. At least 4GB is needed probably and you’ll overwrite what was on there.
  2. Set the target machine with the new OS.
    1. Insert the device into the machine which you want write over.
    2. Turn off the machine.
    3. Boot it up.
    4. Follow install steps. In particular:
      • You want to play around with the OS before installing it.
      • Choose whether you want to overwrite the system or keep it in dual-boot (so you can switch between Linux and Windows any time).
      • Select the option to encrypt your hard drive with a password. This adds security so you need to add this password when rebooting the machine.
      • Choose language such as US.

2. Configure system

Once logged in, set these up:

  • Connect to your WiFi.
  • Set up power manager under settings.
    • Turn on notifications and tray icon.
  • Set up network
    • Edit /etc/hosts and set up machines on the home work. This can happen later when needed.
  • Optionally disable the need for password when running sudo commands.
    1. Run sudo visudo.
    2. Set this with your username. e.g.
       %michael ALL=(ALL) NOPASSWD:ALL

3. Install

Set up a browser

  1. Install Firefox, if not installed already. Use your system’s package manager GUI or install firefox through APT or Brew cask.
  2. Install LastPass extension - to go link.
  3. Set up Firefox sync.
    • Login using the password in LastPass.
    • The settings and other extensions will be installed using sync.

Install dev packages

Follow instructions in this OS Genesis project to install dev packages (like Python and Ruby) and shell tools.

  1. Follow the install page.
  2. Install packages as per usage steps.
     $ make install

Be sure to keep that up to date as new packages are installed i.e. Run git pull and rerun the script.

See also on Linux Lite - Software installer GUI (a few packages) or package manager (many packages) or apt.

If you need Docker, see Docker and Docker Compose install guides here.

Install additional packages

These are from the Software installer GUI and some are covered in the make install command already.

  • Etcher
    • balena-etcher-electron/unknown 1.5.95 amd64
    • balenaEtcher is a powerful OS image flasher built with web technologies to ensure flashing an SDCard or USB drive is a pleasant and safe experience. It protects you from accidentally writing to your hard-drives, ensures every byte of data was written correctly and much more.

  • Dropbox
  • Filezilla
  • Music player
  • Nitroshare - transfer between files on network.
  • Password manager
  • Redshift - screen temperature. Start it from the programs list then enable Autostart using the tray icon.
  • Steam
  • Tor browser
  • Webcam Software

Set up start-on-boot commands

To ensure software starts on startup (like yakuake), set these up under Settings.

For Linux Lite, go to Sessions and Startup in the start menu.

4. Configure for development


Follow my cookbook page to setup SSH on your machine from scratch and configure SSH access on your GitHub account:

You’ll need some text editor to set that up. Like nano or vim.

Shell config setup

Set up configs like .bashrc, git config, and aliases.

Two options below.

Public repo

Go here:

Set up your configs based on that.

Private repo

I have another repo which is kept more up to date and has more details. It is kept private though in case I need to have work-related variables in there like names of servers.

Skip this step if you are not MichaelCurrin.

  1. Clone:
     $ mkdir -p repos
     $ git clone git@github.com:MichaelCurrin/shell-dev-setup.git
     $ cd shell-dev-setup
  2. Follow the README.

Put off doing any Git commits until that is setup first, so that the Git config will have email and username.

5. Install IDEs

VS Code


VS Code is not available by default in APT packages.

See Manage VS Code doc for how to install and upgrade VS Code.


  1. Sign in.
  2. Turn on syncing of extensions and other settings.

For breakdown of extensions and what they do, see my gist.



Follow instructions on the Download page.