Skip to content
Don Smith edited this page May 18, 2017 · 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

  • Start with a bootable thumb drive that includes the latest version
  • Follow along with the Arch Linux Installation Guide
  • Boot and install off the thumb drive
    • Connect to a wifi network with wifi-menu
    • Copy over previously used files and folders
      • After running genfstab, merge in previous /etc/fstab
      • /etc/locale.conf, /etc/hostname
      • /boot/EFI and /boot/loaders
    • I use systemd-boot as a bootloader

Setup default shell and user

  • Install Zsh and set it as the default shell
    • pacman -S zsh zsh-completions sudo
    • chsh -s /bin/zsh
  • 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/nvim ~/projects
  • cd ~/projects
  • git clone [email protected]:don-smith/dotfiles.git
  • cd dotfiles
  • ./link

Prepare terminal

  • Install Oh-my-Zsh
  • pacin gnome-terminal polkit-gnome xclip
  • Install Tmux
    • pacin 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
    • pip install powerline-status
    • gcl https://github.com/powerline/fonts.git ~/repos/powerline-fonts
    • ~/repos/powerline-fonts/install.sh
  • Install NeoVim
    • pacin 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 +PluginInstall +qall
    • nvim +UpdateRemotePlugins +qall
  • Install yaourt using these instructions
  • Run gnome-terminal --show-menubar
    • Dark theme
    • Source Code Pro for Powerline
    • Create 2 profiles: tmux and no-tmux
      • tmux new-session -A -s zsh to attach to existing session

Install GUI

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

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.

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