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 neovimto the list
- Install essential packages: add
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 donpasswd donvisudoand uncomment the line that adds thewheelgroup
- Log out and back in as me
Install dotfiles
pacman -S git opensshmkdir -p ~/.config/i3 ~/.config/i3status ~/.config/termite ~/projects ~/reposcd ~/projectsgit clone https://github.com/don-smith/dotfiles.gitcd 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 | bashnvm install --ltsnvm use --ltsnvm 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/pluginsgcl https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm- Restart the terminal
tmuxsource-file ~/.tmux.conf- Ctrl-b I to install the tmux plugins
- Install the Powerline status bar
pacman -S python python-pip python-pylint python-setuptoolssudo pip install powerline-statusgcl 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.vimsudo pip install neovimnvimonce open:PlugInstallnvim +PluginInstall +qallnvim +UpdateRemotePlugins +qall
- Install NordVPN
pacman -S openvpn-nordvpnsudo nordvpn rank nzsudo 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-frecencyandstarshipfrom 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
audiogroup withsudo gpasswd -a don audio- To enable in the current terminal (without having to log out and in):
newgrp audio
- To enable in the current terminal (without having to log out and in):
-
Add this line to
/etc/security/limits.conf(needsudo)@audio - rtprio 99
Docker
- Install docker with
pacman -S docker docker-compose - Follow the instructions for setting up Docker on Arch
- Join
dockergroup withsudo gpasswd -a don docker- To enable in the current terminal (without having to log out and in):
newgrp docker
- To enable in the current terminal (without having to log out and in):
- 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
rangeris a good terminal file manager (even though I rarely use one). If you install it, installhighlightas well so you can get syntax highlighted file previews. Don't forget toranger --copy-config=allor at leastranger --copy-config=scopeto 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.