Arch Linux - jakestanley/dotfiles GitHub Wiki

Linux

My distro of choice for a while has been Arch Linux. The AUR makes it really easy to get hold of non-core software. N.B Manjaro Architect simplifies a lot of this setup, whilst still providing a decent Arch Linux experience.

pacstrap

pacstrap /mnt base base-devel zsh vim git htop tree rsync ncdu wget curl

Locale

Set UK locale for X11 with (assuming you've already generated en_GB.UTF-8 locales)

localectl set-x11-keymap gb

networking

systemctl enable dhcpcd

Fonts

  • gtk2fontsel
  • ttf-ubuntu-font-family
  • noto-fonts
  • gucharmap (for powerline, etc)

sick terminal fonts

To get the awesome TTY theme that is used in the Manjaro Architect live iso, do this.

pacman -S maia-console

also set up /etc/vconsole.conf like so

KEYMAP=uk
FONT=Lat2-Terminus16

greeter

If you're on Manjaro, there's the lightdm-webkit2-greeter-manjaro package.

pacman -S lightdm lightdm-webkit2-greeter
systemctl enable lightdm.service

Edit /etc/lightdm/lightdm.conf to add the greeter under the [Seat:*] section, e.g

[Seat:*]
#some-other-variables
greeter-session=lightdm-webkit2-greeter

Arch Linux packages

These packages are available in the official Arch Linux repositories

Use pacman --query --explicit to list packages that have been manually installed and (probably) have no dependents.

Guest in VirtualBox

Assuming you're using the Arch kernel, you'll need to install these packages first and enable relevant modules for VirtualBox guest support.

  • virtualbox-guest-modules-arch
  • virtualbox-guest-utils

Graphical user interface

In my experience video drivers cause me the most issues so I'm putting the basic packages needed to get a GUI running here first. Pick a desktop environment for testing. I recommend openbox.

  • xorg-xinit
  • xorg-server

General purpose

  • zsh

  • vim

  • htop

  • xclip

  • tree

  • jdk8-openjdk

  • maven

  • rsync

  • docker (install this before setting up users so you can add them to the docker group)

  • openssh

  • git

  • subversion

  • terminator

  • xdotool

  • pcmanfm

  • screenfetch

  • dunst

  • rofi

  • unzip

  • xorg-xsetroot

  • tk (dependency for gitk for some reason)

  • chromium

  • gitg

  • xorg-xcalc

  • xorg-xkill

  • meld

  • wget

  • jq

  • tmux

  • trash-cli

  • go

  • gdb

  • liteide

  • ncdu

  • lxappearance

  • dconf-editor

  • clementine

  • nethack

  • cmatrix

  • nitrogen

  • compton

  • fdupes

  • base-devel (for development, not installed by default in Manjaro Linux)

  • figlet

  • gwenview

  • dbeaver

Music

  • mopidy
  • ncmpcpp

multilib

this repository can be added by uncommenting the [multilib] section in /etc/pacman.conf

  • steam

Creating users

Run these commands as the root user.

useradd -m -s /bin/zsh jake
passwd jake
gpasswd -a jake docker

AUR packages

  • shellcheck
  • sqlcl
  • ultra-flat-icons-blue
  • gtk-theme-arc-git
  • i3blocks-git
  • gitflow-avh
  • escrotum-git
  • myrepos
  • postman-bin
  • spotify
  • slack-desktop
  • spring-boot-cli
  • shunit2
  • swagger-codegen
  • ddate
  • dropbox
  • dropbox-cli
  • clipmenu (clipboard management)
  • diceware
  • tkpacman
  • lemonbar-git

Obtaining AUR packages

You need to install these packages the good old fashioned AUR way in order to use Yaourt (front end for the AUR). You cannot run makepkg as the root user so you'll need to do this after creating your user account. As you won't be doing this as the root user, you'll need to make sure you've given yourself elevate permissions by using visudo as root.

cd
mkdir tmp
cd tmp
git clone https://aur.archlinux.org/package-query.git
git clone https://aur.archlinux.org/yaourt.git
cd package-query
makepkg -si
cd ../yaourt
makepkg -si

Font configuration

Adding the FONT environment variable to /etc/vconsole.conf changes the console font. I am partial to these fonts:

  • ter-112n.psf.gz
  • ter-114b.psf.gz (for small or high DPI screens)

Microsoft fonts

One problem I have is that the included font packages aren't comprehensive enough and loads of websites end up defaulting to monospaced fonts. Since most of my Linux installations are run inside a VirtualBox VM or shared a hard drive with a Windows installation, mounting the fonts folder and linking that is a workaround I'm happy with. See this article on the Arch wiki for more information

Example etc/fstab entry

Fonts 	/windows/fonts 		vboxsf 	gid=1000,uid=1000 	0 0

Third party packages

These packages are provided via third party repositories and can be installed and updated with pacman once the repository has been added to the pacman configuration.

Manual installation

Some software requires manual intervention. Fortunately this is a short list.

  • fzf (github)
  • fly
  • IntelliJ IDEA Ultimate Edition (website)
  • Oracle JDBC driver
  • DB2 JDBC driver

oh-my-zsh

Dropbox

Dropbox has a user systemd service that can be enabled and started with sudo systemctl status dropbox@jake. Check the status for a link that you can use to link your Dropbox account.

Running sudo systemctl status dropbox@jake should show the following if you have not linked your account:

Jun 15 13:23:55 js-arch-vm dropbox[14660]: dropbox: load fq extension '/opt/dropbox/cpuid.compiled._cpuid.so'
Jun 15 13:23:55 js-arch-vm dropbox[14660]: dropbox: load fq extension '/opt/dropbox/linuxffi.resolv.compiled._linux>
Jun 15 13:23:55 js-arch-vm dropbox[14585]: Please visit https://www.dropbox.com/cli_link_nonce?nonce=abc123

Once Dropbox has been successfully linked, you should see this in the above output:

Jun 15 13:46:51 js-arch-vm dropbox[413]: This computer is now linked to Dropbox. Welcome Jacob

Desktop environments

These packages are specific to certain use cases so I didn't want to include them with the general purpose packages.

i3 desktop environment

  • i3status
  • i3-gaps-next-git (AUR)
  • i3blocks-git (AUR)

Mate desktop environment

These packages are specific to the Mate desktop environment

// TODO

Openbox desktop environment

These packages are specific to the Openbox desktop environment

  • openbox
  • obconf
  • obkey (AUR)

Troubleshooting

Issues with keys

Your keyring may be out of date. Reinstalling the keyring with pacman -S archlinux-keyring should fix this issue.