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.
- sublime-text (repository)
Manual installation
Some software requires manual intervention. Fortunately this is a short list.
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.