Skip to content
Don Smith edited this page Jan 13, 2018 · 16 revisions

My Arch Linux Setup Guide

This guide assumes the drive has already been partitioned and the EFI bootloader is already in place. I'll include these detailed steps the next time I need to do it. As I'm writing up these steps, I'm performing them on a machine that's already had it done, and I can't spend the time to start from scratch this time.

Arch Installation

Setup default shell and user

  • Install Zsh and set it as the default shell
    • pacman -S zsh zsh-completions sudo
  • Add my user account
    • useradd -m -G wheel -s /bin/zsh don
    • passwd don
    • visudo and uncomment the line that adds the wheel group
  • Log out and back in as me
  • chsh -s /bin/zsh

Install dotfiles

  • pacman -S git openssh
  • mkdir -p ~/.config/i3 ~/.config/i3status ~/.config/termite ~/projects ~/repos
  • cd ~/projects
  • git clone https://github.com/don-smith/dotfiles.git
  • cd dotfiles
  • ./link

Prepare terminal

  • pacin termite polkit-gnome xclip tmux hub neovim nodejs-lts-carbon yarn fzf tree zsh-syntax-highlighting
  • Install NVM
    • curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
    • nvm install --lts
    • nvm use --lts
    • nvm alias default [latest LTS version]
    • If you get the "nvm is not compatible with the npm config prefix" error, run `npm --prefix="$NVM_DIR/versions/node/vX.X.X" set prefix "$NVM_DIR/versions/node/vX.X.X"
  • Install Oh-my-Zsh
    • sh -c "$(curl -fsSL https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
  • Install OMZ Spaceship theme
    • curl -o - https://raw.githubusercontent.com/denysdovhan/spaceship-zsh-theme/master/install.zsh | zsh
  • Install Tmux
    • mkdir -p ~/.tmux/plugins
    • gcl https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm
    • Restart the terminal
    • tmux
    • source-file ~/.tmux.conf
    • Ctrl-b I to install the tmux plugins
  • Install the Powerline status bar
    • pacin python python-pip python-pylint python-setuptools
    • sudo pip install powerline-status
    • gcl https://github.com/powerline/fonts.git ~/repos/powerline-fonts
    • ~/repos/powerline-fonts/install.sh
  • Install NeoVim
    • curl -fLo ~/.config/nvim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim
    • sudo pip install neovim
    • nvim once open :PluginInstall
    • nvim +PluginInstall +qall
    • nvim +UpdateRemotePlugins +qall
  • Install NordVPN
    • pacin openvpn-nordvpn
    • sudo nordvpn rank nz
    • suo nordvpn start [first item in the list]
  • Install yaourt using these instructions

Install CrashPlan

  • pacin crashplan-pro

  • Enable and start CrashPlan service

    sudo systemctl enable crashplan-pro
    sudo systemctl start crashplan-pro
    
  • Installation path is /opt/crashplan/bin (should be in $PATH)

  • Executable is CrashPlanDesktop

Install GUI

  • Install X11
    • pacin xorg-server xorg-xinit xorg-xrandr xf86-video-intel xf86-input-synaptics pacin i3 dmenu dmenu-frecency feh

Setup Logitech MX Master

  • Install pairing tool: pacin solaar
  • Pair with device : solaar-cli pair
  • Turn on mouse

Sound

  • pacin pulseaudio pulseaudio-alsa pulseaudio-jack

  • Join audio group with sudo gpasswd -a don audio

    • To enable in the current terminal (without having to log out and in): newgrp audio
  • Add this line to /etc/security/limits.conf (need sudo)

    @audio           -       rtprio          99
    

Docker

  • Install docker with pacin docker docker-compose
  • Follow the instructions for setting up Docker on Arch
  • Join docker group with sudo gpasswd -a don docker
    • To enable in the current terminal (without having to log out and in): newgrp docker
  • Change storage driver
    • sudo mkdir /etc/systemd/system/docker.service.d

    • Add this to /etc/systemd/system/docker.service.d/override.conf

      [Service]
      ExecStart=
      ExecStart=/usr/bin/dockerd -H fd:// -s overlay2
      
    • Start the service with sudo systemctl start docker

    • Verify all is good with docker info (make sure overlay is the storage driver)

    • To spin up a Ruby on Rails environment, there is a good tutorial.

Don't forget

  • The dotfiles were cloned using https. After creating a new SSH key for GitHub, change the remote URL: git remote set-url origin [email protected]:don-smith/dotfiles.git

Other

  • ranger is a good terminal file manager (even though I rarely use one). If you install it, install highlight as well so you can get syntax highlighted file previews. Don't forget to ranger --copy-config=all or at least ranger --copy-config=scope to enable it.

Confession

I didn't end up documenting all of the steps. It was very late and I hadn't planned on repaving my machine.

I've documented all of the hairy bits. It really was pretty easy.

Clone this wiki locally