This is a brief series of steps that I repeat when setting up a new Ubuntu 20.04 machine to work on.
- Set the keyboard to Dvorak
- All updates and upgrades
- Adjust settings
- In Displays, enable night light
- In Appearance, change to dark
- In Power, set blank screen to "Never"
- Setup core desktop programs
- Install the following from the Ubuntu Software app
- VS Code (code)
- Brave
- Set VS Code and Brave to be the only apps pinned
- Setup sync with Brave
- Login to password manager
- Connect VS Code to Github to sync settings
- Install the following from the Ubuntu Software app
- Run the following in terminal
sudo apt install -y curl git vim dconf-editor
- Switch capslock and escape (source)
- Run
dconf-editor
- Go to
org >> gnome >> desktop >> input-sources
- Set
xkb-options
to['caps:swapescape']
- Run
- Install Deno
# https://deno.land/ curl -fsSL https://deno.land/x/install/install.sh | sh # Test with deno run https://deno.land/std/examples/welcome.ts
- Install Docker
# https://get.docker.com/ $ curl -fsSL https://get.docker.com | sh # Setup docker to run without sudo # https://docs.docker.com/engine/install/linux-postinstall/ sudo groupadd docker sudo usermod -aG docker $USER newgrp docker # Test with docker run hello-world
- Setup VIM
- Setup Bashrc
alias gb='git branch -a' alias gcb='git checkout -b' alias gd='git diff HEAD' alias gg='git gui' alias gl='git log --pretty=oneline --graph' alias gs='git status'
- Setup SSH key and connect to Github
- Setup Github's CLI
# https://github.com/cli/cli/blob/trunk/docs/install_linux.md curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null sudo apt update sudo apt install gh gh auth login
- Git config
git config --global user.email "audrow@hey.com" git config --global user.name "Audrow Nash"
- Add the following to your bashrc:
alias gb='git branch -a' alias gcb='git checkout -b' alias gd='git diff HEAD' alias gg='git gui' alias gl='git log --pretty=oneline --graph' alias gs='git status' alias rh='cd $ROS_PATH' alias cdrr='cd /root/.local/share/rr/' alias cb='rh; colcon build --symlink-install' alias cbd='cb --cmake-args -DCMAKE_BUILD_TYPE=Debug' alias cbs='cb --packages-select' alias cbds='cbd --packages-select' alias cbu='cb --packages-up-to' alias cbdu='cbd --packages-up-to' alias code='code --user-data-dir /root/.visual_code/' alias ct='colcon test' alias ctl='ct --mixin linters-only' alias cts='ct --packages-select' alias ctls='ctl --packages-select' alias ctr='colcon test-result --verbose' alias ctra='colcon test-result --verbose --all' alias ctrd='colcon test-result --delete' alias gdb1='gdb --eval-command run --batch' alias vcscheckout='vcs custom --git --args checkout' alias STRESS='stress -c $(nproc) -m $(nproc) -i $(nproc) -d $(nproc)' function repeat { while \$1; do \$2:; done; } function repeatg { while gdb1 \$1; do \$2:; done; } function cbts { cbs $1 && cts $1 && ctr; }
- Adding these to your bashrc if working with VIPER
function kill_gazebo() { #killall gzserver pkill -9 gzserver > /dev/null 2>&1 pkill -9 gzclient > /dev/null 2>&1 pkill -9 python3 } function kill_yamcs() { pkill -f "java.*YamcsServer" > /dev/null 2>&1 } function kill_ros2() { ps -ef | grep 'rgsw_ws' | grep -v grep | awk '{print $2}' | xargs -r kill -9 ps -ef | grep 'vipersim_ws' | grep -v grep | awk '{print $2}' | xargs -r kill -9 ps -ef | grep 'ros2' | grep -v grep | awk '{print $2}' | xargs -r kill -9 } function kill_rfsw() { pkill -9 qemu-system-ppc ps -ef | grep 'core-cpu' | grep -v grep | awk '{print $2}' | xargs -r kill -9 } function kill_viper() { kill_gazebo kill_yamcs kill_ros2 kill_rfsw }