DEV Community

Peter Kim Frank
Peter Kim Frank

Posted on

What is the first thing you do when setting up a new computer?

When you get a new computer, what are the first things you do? Whether it's:

  • Installing programs
  • Adding shortcuts
  • Disabling certain options
  • Setting up new preferences
  • Etc.

I'm eager to hear what you'd consider the must-do "first steps" for a new machine.

Top comments (66)

itachiuchiha profile image
Itachi Uchiha

I install the following in each new installation or computer.

.NET Core
SQLite Browser

Discord App
Liferea (RSS Reader)
Vokoscreen NG (For Screen Recorder)
Flameshot (For Screenshots)

ntvinhit profile image
Nguyễn Trọng Vĩnh

I have to uninstall Spotify, use Spotify web instead, it takes nearly 30GB space even I disabled offline

itachiuchiha profile image
Itachi Uchiha

There is no web thing works well in my Ubuntu. I don't know why. But every 10 minutes, I can't open websites on Ubuntu. For example, I tried to visit, it wasn't open the first time. I refreshed the page it was open.

So, browser things aren't for me. :P

coffeecraftcode profile image
Christina Gorton

I go through all the steps to make sure the typical dev environment/tools I use are installed and work.

  • Git
  • Node
  • various CLI's I use
  • Visual Studio Code, etc.

And then, maybe a weird thing, but I choose which browser I want to use and set up and save all of the typical accounts I use like my email, Notion, Github, CodePen, CodeSandox, etc.

I also create collections and add my most commonly used websites to Toby. Like this:
Screeenshot of my Toby set up

perpetual_education profile image
perpetual . education • Edited

Install Alfred.

Get rid of the doc and remove the low-hanging UI (while leaving the settings as stock as possible otherwise)

Set the right-click and two-finger tap to control+click

Download Google drive (back-up and sync)

Set Drive to only sync current projects (all files but git in drive)

Get Brew in place + Curl

download GitTower (git)... Sublime (editor)... Skitch (for markup up screenshots)... Affinity designer (to avoid adobe at first)...

In theory - we can toss our gear in a lake... stop by an apple store - and get back to work in under an hour (that's the goal).

We just bought a new computer - and are documenting the entire process from the perspective of students in our course. We don't install anything - until it's necessary for the class / so, the student sees us also start with a blank slate. We'll share the list in 3 months!

You can also totally write a bash script - that will install everything - in one go!

peter profile image
Peter Kim Frank

Alfred was one of my first installs today.

ben profile image
val_baca profile image
Valentin Baca • Edited

For macOS, I love strap:

When I had a new mac on the way, I realized that configuring an automated setup with strap would take as long as a manual setup, so it was a no-brainer.

Here's my strap setup scripts:

  2. This is probably what you're looking for

For Windows, I use ninite:

For Linux, it depends, but here's my EC2 setup script: I'm getting a new mini computer for linux, I'm thinking of putting Alpine, Arch, or Ubuntu on it, so I'll probably have a script for that soon.

Then, mapping Caps Lock to be Escape :)

wulymammoth profile image

I was hoping someone would mention this in a sea of manual set-ups. I rolled by own and wasn’t familiar with strap. Thanks for sharing. There also MAS for installing non-HB and non-casks applications from the App Store.

jrohatiner profile image

Number one: take screenshot of the applications folder on my old machine

  1. read the system info
  2. change the general theme to my custom contrast theme
  3. all the other stuff as quickly as possible
jaguart profile image


  1. configure the new box's roles in my repo


  1. install vanilla minimal OS
  2. local nftables blocking access except from install IP6.
    1. arp discovery and securing for IP4
  3. run provisioning script via ssh which:
    1. generates customised nftables rules and installs them
    2. installs security tools
    3. installs libraries
    4. installs apps
  4. run a quick pen-test from an untrusted IP
  5. run a quick pen-test from a trusted IP
  6. take an asset inventory snap-shop into repo
  7. initialise rkhunter chkroot tripwire aide logcheck and other IDS tools.


  1. beer
  2. watch syslogs for an hour
  3. tune nftables and other security logs
darksmile92 profile image
Robin Kretzschmar

Thanks for sharing, logcheck was new to me :)

pariskoloveas profile image
pkoloveas • Edited
  1. Install vim
  2. Import zshrc & vimrc
  3. Check python version (upgrade if needed)
  4. Import requirements.txt for pip installs
  5. Install rust
  6. Install latex (Tex Live)
  7. Install Docker
  8. Enable AUR
  9. Install vscode
  10. Import vscode extensions & settings
  11. Install chrome
  12. Possibly configure themes, window managers, etc (depending on what I need the machine for)
darksmile92 profile image
Robin Kretzschmar

I spot a fellow arch user and upvote 💪🏾

pariskoloveas profile image
pkoloveas • Edited

This specific workflow is for Manjaro, which is currently my main dev distro (that's why there are no steps to install python, zsh or git). I usually go with Arch when I need something minimal to build with a bottom-up approach (no DEs, etc). But even with Manjaro, I'm still in the Arch family 😛.

markwragg profile image
Mark Wragg

I recently set up Windows on a new laptop and tried to install as much as I could via Chocolatey, so I guess install Chocolatey is now the first thing I do :).

This is my choco install list currently:

choco feature enable -n allowGlobalConfirmation 

choco install googlechrome

choco install vscode
choco install git
choco install powershell-core
choco install az.powershell
choco install service-fabric-sdk
choco install sql-server-management-studio

choco install adobereader
choco install notepadplusplus
choco install winrar
choco install keepassxc

choco install skype
choco install microsoft-teams
choco install slack

testgtfsgsfsdfd profile image
ab • Edited

I keep a configuration file of applications I use on every computer and use a package manager to install them automatically every time. For windows this package manager is called Chocolatey, its really useful to make a setup from the ground up for any development environment based on the tools you need:

necmettin profile image
Necmettin Begiter • Edited

I wrote an install-on-setup script that installs homebrew, ohmyzsh, ~40 apps, fonts, and my own keyboard layout (that I created for coding in PHP). Also symlinks all my settings back to their latest, puts my SSH keys backs, and sets my Apache vhosts.

Also, two hidden gems for Mac users: Apptivate (lets to assign any key combo to any app, folder, or file) and Shuttle (lets you create a menu for scripts you run often).

robbyrussell profile image
Robby Russell 🐘🚂

are you using a Brewfile?

necmettin profile image
Necmettin Begiter

No, simple brew install and brew cask install commands.

pengeszikra profile image
Peter Vivo


coding: chrome, brew, iterm, nodejs, yarn, git, vscode, pyenv, rustup, firefox
design: sketch, blender, krita
comfort: dual lanuages: us, hu, setup tap bar: language switch, turn off caps lock.

gonsie profile image
Elsa Gonsiorowski

I download my dotfiles and install them... that repo includes a “setting up a new computer” checklist. It’s surprising how often it gets used (and invaluable every time it does) 😅
Check out my dotfiles repo

boringdev profile image
• Edited
  • Install programs

  • Setup by development environment using dot files I created

    • those include neovim, vscode, alacritty (terminal I use on both Linux and Mac), tmux, zsh
    • on Linux machine, I also spent few hours to setup my i3wm
robole profile image
Rob OLeary • Edited

I have a folder of portable app that has most of the apps/programs/utilities I need, I copy this and I can be productive without needing to install too much myself. I will build a chocolatey (or similar) config to handle the rest next time I need to setup a new box