Arch setup - don-smith/dotfiles GitHub Wiki

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

  • Start with a bootable thumb drive that includes the latest version
    • dd if=archlinux-date-x86_64.iso of=/dev/sdb bs=1M status=progress; sync
  • Go through the normal installation instructions while keeping these things in mind
    • Install essential packages: add grub efibootmgr intel-ucode iwd networkmanager neovim to the list

Setup default shell and user

  • Install Zsh and set it as the default shell
    • pacman -S vi 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

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

  • pacman -S termite xclip tmux hub neovim tree zsh-syntax-highlighting base-devel
  • Install NVM
    • curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/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
    • npm install -g spaceship-prompt
  • 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
    • pacman -S 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
  • Setup 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 :PlugInstall
    • nvim +PluginInstall +qall
    • nvim +UpdateRemotePlugins +qall
  • Install NordVPN
    • pacman -S openvpn-nordvpn
    • sudo nordvpn rank nz
    • sudo nordvpn start [first item in the list]

Install GUI

  • Install X11
    • pacman -S xorg-server xorg-xinit xorg-xrandr xf86-video-intel xf86-input-synaptics i3 dmenu feh polkit lxqt-policykit
    • At some point, install dmenu-frecency and starship from the AUR

Setup Logitech MX Master

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

Sound

  • pacman -S 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 pacman -S 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.

Increase max number of file watchers

```
echo fs.inotify.max_user_watches=524288 | sudo tee /etc/sysctl.d/40-max-user-watches.conf && sudo sysctl --system
```

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.