Skip to content

Instantly share code, notes, and snippets.

@shibasisp
Forked from don-smith/arch-setup.md
Created August 8, 2018 20:17
Show Gist options
  • Save shibasisp/3c9d66209c37bfb4c4b37d34da257ba8 to your computer and use it in GitHub Desktop.
Save shibasisp/3c9d66209c37bfb4c4b37d34da257ba8 to your computer and use it in GitHub Desktop.
How I setup my Arch Linux installs

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 git@github.com:locksmithdon/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.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment