System Install - Noah-Huppert/.dotfiles GitHub Wiki

System Install

This page describes the steps necessary to setup a system from scratch

Table Of Contents

Overview

This page documents the steps necessary to install and setup my Dell XPS 13 (9350) with Arch Linux.

These steps condense and combine many different Arch Linux Wiki guides. Each section references the source material which the steps were derived from.

Setup

This section details the steps which must be taken before installation. Actions in the following section were sourced from the Arch Linux Wiki Installation Guide. Additionally some BIOS setup best practices were found on the Arch Wiki Dell XPS 13 (9350) wiki page.

Create Arch Installation Media

First download and create an Arch installation ISO.

BIOS Setup

A few BIOS options must be tweaked to ensure Arch runs smoothly. These steps are generally useful for any device.

First boot into BIOS setup. On the Dell XPS 13 (9350) quickly tap the F2 key to enter BIOS setup. This can also been done via the F12 key, which will bring up a one time boot menu.

First disable the secure boot feature in your BIOS settings.
Set the SATA controller to AHCI (Or off if unavailable).
Then boot from the USB and perform the following actions.

Connect to internet

Run wifi-menu and input wifi network information. Wait 5 seconds, then run ping google.com to see if we are connected to the internet.

Update system clock

Run timedatectl set-ntp true. Check status with timedatectl status.

Disk Prep

This section contains instructions for preparing an encrypted disk. Complete these actions while still in the Arch ISO USB.

These actions were sourced from several Arch Linux Wiki pages:

Identify partition to install system

List disks and partitions with fdisk -l or lsblk -f. Remember the /dev/sdXY name of the partition, instructions will contain the placeholder value sdXY.

Securely erase the partition

Run cryptsetup open --type plain /dev/sdXY container --key-file /dev/random to create a temporary dm-crypt container in our partition.

Erase the contents of this temporary dm-crypt container with dd if=/dev/zero of=/dev/mapper/container status=progress bs=1M.

Close temporary container with cryptsetup close container.

Create a dm-crypt luks container

Create a new permanent dm-crypt luks container with cryptsetup -y -v luksFormat /dev/sdXY.
Open the new container with cryptsetup open /dev/sdXY cryptroot.

Make an ext4 partition inside the dm-crypt container with mkfs.ext4 /dev/mapper/cryptroot.
Mount the dm-crypt container with mount /dev/mapper/cryptroot /mnt

Mount the boot partition

Create a mount point in our root file system with mkdir /mnt/boot.

Unmount our dm-crypt container with umount /mnt and close the container with cryptsetup close cryptroot.

Then to test if we set it up correctly open and mount the container again with cryptsetup open /dev/sdXY cryptroot and mount /dev/mapper/cryptroot /mnt.
Check that our boot directory is there with ls /mnt.

Mount the boot partition with mount /dev/sdXZ /mnt/boot. Where /dev/sdXZ is your boot partition.

Install Base

This section contains instructions on how to install the basic components of Arch linux.

Actions were sourced from the Arch Linux Wiki Installation Guide.

Select best mirrors

Edit the /etc/pacman.d/mirrorlist file on the Arch ISO USB. This file is a list of all pacman package mirror servers, sorted by speed when the Arch ISO was created.

Reorganize it so the top 10 mirrors in your country are at the top despite what their score is.

Install base packages

With the command pacstrap /mnt base base-devel.

If your boot partition already has a file named vmlinuz-linux at the root, remove this file before running the command. As pacstrap will attempt to replace this file.

Fstab

Generate an fstab file for the newly installed system with genfstab -U /mnt >> /mnt/etc/fstab.

System Prep

This section describes the actions needed to prep a system for independent boot.

Actions for this section were partially sourced from the Arch Linux Wiki Installation Guide.

Chroot into your new system

With the command arch-chroot /mnt.

Run all other commands from this section in this arch-chroot session.

Install Neovim

With pacman -S neovim.

Install the go code completion dependency GoCode with go get -u github.com/nsf/gocode.

Setup completion

Install the neovim Python package with sudo pip3 install neovim.

Setup users

Root password

Set root password with the command passwd.

Add a personal user

First create with useradd -m -G wheel -s /bin/bash <user>.

Then set the user password with passwd <user>.

Give the user sudoer power with by editing the sudoers file (With the command visudo) to contain the entry:

<user> ALL=(ALL) ALL

Set timezone

With ln -sf /usr/share/zoneinfo/Region/City /etc/localtime.
So for me its ln -sf /usr/share/zoneinfo/America/New_York /etc/localtime right now.

Make sure the system clock is up to date with hwclock --systohc.

Locale setup

Edit the /etc/locale.gen file and uncomment the line that says en_US.UTF-8 UTF-8.
Then run locale-gen.

Then in /etc/locale.conf set LANG=en_US.UTF-8.

Set hostname

Set your hostname in /etc/hostname.

Add your hostname to the /etc/hosts file by adding an entry in the form:

127.0.1.1       hostname.localdomain hostname

Setup connection manager

Install the required packages with pacman -S connman wpa_supplicant bluez. This installs the Connman connection manager, wifi wpa authentication support, and Bluetooth support.

Enable the connman service with systemctl enable connman.service.

Configure initramfs

Edit the /etc/mkinitcpio.conf file HOOKS property to have these parameters needed for disk encryption:

HOOKS="... **keyboard keymap** block **encrypt** ... filesystems ..."

Be sure to remove the keyboard item that is after the block item by default.

Next edit the /etc/mkinitcpio.d/linux.preset file to ensure both the initramfs and vmlinuz-linux files are put in the /boot directory. Generate the new initramfs via mkinitcpio -p linux.

Check if the refind bootloader is installed

Look in the boot directory for a refind directory: /boot/EFI/refind.

Or a refind.conf file: /boot/EFI/refind/refind.conf. Or a refind_linux.conf file: /boot/refind_linux.conf.

If these files are missing the refind bootloader must be installed. Install the refind-efi package and run refind-install, more instructions here

Add a refind boot stanza

Append partition uuid's to your refind.conf file for easier editing: ls -l /dev/disk/by-uuid >> /boot/EFI/refind/refind.conf.

Then edit /boot/EFI/refind/refind.conf and comment out the uuid lines at the bottom from our last command. Take note of your system and boot partition's UUIDs on the list for later usage.

Adda boot stanza with this format:

menuentry "Arch Linux" {
    icon /EFI/refind/icons/os_arch.png
    volume "<Boot partition UUID>"
    loader /vmlinuz-linux
    initrd /initramfs-linux.img
    options "cryptdevice=UUID=<System partition UUID>:cryptroot root=/dev/mapper/cryptroot rw add_efi_memmap"
    submenuentry "Boot using fallback initramfs" {
        initrd /initramfs-linux-fallback.img
    }
    submenuentry "Boot to terminal" {
        add_options "systemd.unit=multi-user.target"
    }
}

The cryptdevice kernel option is necessary to decrypt the disk on startup.

Update firmware

The Linux Vendor Firmware Service (LVFS) is used to get the latest firmware updates. Installation and usage information was sourced from the fwupd repository.

Install the fwupd package with pacman -s fwupd to access this functionality.

Use fwupdmgr to update firmware. First list the devices it detects with fwupdmgr get-devices.
Then download the latest LVFS metadata via fwupdmgr refresh.

Display available updates to the system with fwupdmgr get-updates.
Finally download and apply these updates with fwupdmgr update. Some updates may require a reboot to take effect.

Dell XPS 13 specific setup

This sub section provides the steps necessary to tweak Arch Linux so it runs as smoothly as possible on the XPS 13.

Steps in this section were sourced from the Arch Wiki Dell XPS 13 (9350) wiki page.

Install Intel Microcode

With pacman -S intel-ucode.

Misc helper applications

A few miscellaneous packages should be installed with pacman -S arch-install-scripts tree.

  • arch-install-scripts: Is installed to allow for the use of the arch-chroot command
  • tree: Is installed to allow for the use of the tree command

Reboot

Exit the arch-chroot session with exit.

Unmount with umount -R /mnt.

Reboot with reboot.

User Setup

This section contains the steps necessary to setup a user account with wifi, a good console, editor, and wm.

Connect to wifi with connman

Enable wifi with connmanctl enable wifi.
Confirm enabled with connmanctl status.

Scan for wifi with connmanctl scan wifi. List networks with connmanctl services. Make note of the name of the service for your desired wifi network.

Run the next commands in the connman interactive shell, launch via connmanctl.

Turn on auth agent with agent on.
Connect to the network with connect <Service name>.
Exit connman interactive shell with exit.

Test wifi connectivity after 5 seconds with ping google.com.

Setup Git

Install Git and OpenSSH (For key pairs) with pacman -S git openssh.

Generate a key pair with ssh-keygen -t ed25519. We will do more with this key pair later.

Setup GnuPG (GPG)

Install the GnuPG package with pacman -S gnupg.

Generate a new key with gpg --full-gen-key --expert. Use the following options:

  • Make a (9) ECC and ECC key
  • Select (1) Curve 25519
  • Set key to expire in 1 year with 1y
  • Provide name
  • Provide primary email address
  • Put a comment
    • Typically I include identifiers such as Primary and Secure separated by commas
  • Enter passphrase

Save calendar event with notification 2 weeks before, a week before, a day before, and 1 hour before about gpg key expiration.

If you would like to add more email addresses edit key in gpg interactive mode via gpg --edit-key <first email>.
Enter the following commands into gpg interactive mode:

  • adduid
    • Enter all the same information, except for with a new email address
  • quit and save changes
  • We will configure git with this gpg key later

Finally generate a revocation key with gpg --output revoke.asc --gen-revoke <Key id>. Where <Key id> is any full or partial identifier for your gpg key, gpg is very flexible about what you put for this value (Ex., [email protected] and noa both work, or some part of my key id E3F).
Take this revocation key and save it in a secure backup location.

Install aura

Aura is an aur repository helper.

Make a bin directory at $HOME/Documents/bin/.

Go into this new directory and download aura with git clone https://aur.archlinux.org/aura-bin.git.

Cd into aura-bin directory, run makepkg -si.
The aura command will now be available, install aur packages with aura -A <Package name>.

Install Zsh

Install the zsh package with pacman -S zsh.
Make default shell with chsh -s $(which zsh).

Install TMux

Install TMux with the tmux package with pacman -S tmux.
Install a shell completion package with aura -A tmux-bash-completion

Install Dotfiles

Install zshconf with git clone https://github.com/Noah-Huppert/zshconf.git $HOME/Documents/bin/zshconf.

Install Homeshick with git clone git://github.com/andsens/homeshick.git $HOME/.homesick/repos/homeshick.

Download dotfiles with homeshick via homeshick clone https://github.com/Noah-Huppert/.dotfiles.git.

Install Vim plugin manager Plug with curl -fLo ~/.local/share/nvim/site/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim.

Edit the dotrc file to your content with dotrc-edit and reload with zsh-reload.

Scripts

Install the scripts repository with git clone [email protected]:Noah-Huppert/scripts.git ~/Documents/bin/scripts.

Follow the scripts instructions to setup the bklight script. This will allow you to invoke the bklight script without entering your password.

Install the private scripts repository with git clone [email protected]:Noah-Huppert/private-scripts.git.

This is a separate set of utility scripts which contain private information such as email addresses.
Following the private scripts setup instructions.

Install Xorg

With pacman -S xorg-server xorg-xinit xorg-xev.
Xev is a nice little program which shows keycodes as they are entered. Use these codes in sxhkd configuration.

Config

Download and copy this 30-touchpad.conf file into your /etc/X11/xorg.conf.d.

Install Xrandr

Xrandr is a utility to help manage multiple desktops. Install the xrandr package with pacman -S xorg-xrandr.

Run xrandr with no arguments to list the displays available. One can determine the name of an external display port by running xrandr before and after you plug in a cable.

To extend displays run xrandr --output <secondary display name> --{above,below,right-of,left-of} <primary display name>.

To mirror displays run xrandr --output <secondary display name --same-as <primary display name>

Install i3

Install the i3 package with pacman -S i3.

Install Compton

Install Compton with pacman -S compoton.

Install dmenu

Instal Dmenu, a program launcher with pacman -S dmenu.

Install locker

Install i3lock with pacman -S i3lock.

Install Dunst

Install dunst with pacman -S dunst.
Dunst is a notification manager, it displays notifications send with notify-send.

Install X tools

Install xdo and xdotool, utilities used to modify xwindows with sudo -S xdo xdotool.

Set background

Use a program called feh to set your desktop background. Install it with pacman -S feh.

Set the background with feh --{bg-scale,bg-fill} /usr/share/pixmaps/filename.ext.

Currently I am using this rock background.

Install Java

Install java with pacman -S jre9-openjdk-headless jre9-openjdk jdk9-openjdk openjdk9-doc openjdk9-src.
Install the ant build to with pacman -S apache-ant.

Install kotlin with pacman -S kotlin.

Install fonts

Install Robot, Noto, Source Code Pro, and Fira Mono with pacman -S ttf-roboto noto-fonts ttf-fira-mono adobe-source-code-pro-fonts.

Install Alacritty

Install the Alacritty terminal emulator with aura -A alacritty-git.

Install Pulse Audio

Install the pulseaudio package with pacman -S pulseaudio.
Install a control panel with pacman -S pavucontrol

Web browsers

Install Google Chrome with aura -A google-chrome.
Install Firefox with pacman -S firefox.

Make Firefox the default web browser with xdg-settings set default-web-browser firefox.desktop.

Flash

Don't install flash. If you must access a website that requires flash use another computer / os.

Yubikey drivers

To enable the Yubikey to be used in Google Chrome install the libu2f-host package with pacman -S libu2f-host.

Publish new keys

This sub section describes how to publish your new SSH and GPG keys to the appropriate places.

On the computer

On the computer you can add your key to the ssh-agent so you don't have to type your password as much with ssh-add ~/.ssh/id_ed25519.

GitHub

GitHub needs your new SSH key to allow you to pull from their server with the ssh Git protocol. It also allows you to input your GPG key to show that commits came from you.

Simply navigate to the GitHub Key Setting page and add the public forms of both keys.
The public SSH key will be located at ~/.ssh/id_ed25519.pub.

Your public GPG key can be exported by typing gpg --armor --export <Key Id>. Where <Key Id> is the partial value of either the key signature or any of the key emails.

Mosh

Install the mosh ssh client. This client deals with bad ssh connections. Allowing you to type while the connection goes out intermittently.

Install with pacman -S mosh.

Keybase

First install some dependencies with pacman -S fuse gtk2. Then install the keybase client with aura -A keybase-bin.
Remember to run run_keybase any time you install or upgrade keybase.

Then run keybase login and keybase pgp select to login and import your public keys.

Revoking an old key

If you would like to revoke can old key then publish your revocation key to any key servers you published the original key to. For GitHub simply remove the key.
https://news.ycombinator.com/ For keybase.io click the "Edit > Revoke key" menu option and run the command it tells you to.

Setup development environment

This sub section contains information about how to setup the environment for development.

Golang

Install the go package with pacman -S go.

Then make the GOPATH directory with mkdir -p $HOME/Documents/workspace/go.

After this run dotrc-edit and change the following options:

  • DOTRC_GO to true
  • DOTRC_GOPATH to $HOME/Documents/workspace/go

Then save the file and run zsh-reload.

Go packages

Several useful packages should be installed.

Install the Go dependency management tool with go get -u github.com/golang/dep/cmd/dep.
Install goimports with go get golang.org/x/tools/cmd/goimports.
Install go rename with go get golang.org/x/tools/refactor/rename.
Install the go debugger Delve with go get github.com/derekparker/delve/cmd/dlv.

Htop

Install htop with pacman -S htop.

Scrot

Install Scrot to take screenshots with pacman -S scrot

Node

Install node and yarn with pacman -S yarn nodejs.

Heroku CLI

Install the Heroku CLI with npm install -g heroku-cli.

Docker

Install docker with pacman -S docker docker-compose.
Then start and enable the docker.service with systemctl start docker.service and systemctl enable docker.service.
Add yourself to the docker group with gpasswd -a <User> docker.

Ensure everything is working with docker info.
A reboot may be required.

Install Rkt

Install rkt with pacman -S rkt acbuild.

GRPC

Steps were partially sourced from the GRPC Go getting started guide.

Install GRPC by completing the following steps:

  1. Install Protobuffers tool with pacman -S protobuf
  2. Install the Protobuffers Go library with go get -u github.com/golang/protobuf/protoc-gen-go
  3. Install the GRPC Go library with go get -u google.golang.org/grpc

Redis CLI

Install Redis and the Redis CLI with pacman -S redis.

Google Cloud

Install the GCloud CLI with aura -A google-cloud-sdk.
Then install kubectl with gcloud components install kubectl.

Then install Helm with aura -A kubernetes-helm.
Finally install Draft with aura -A draft.

Istio Client

Install the Istio client.

First download the latest release:

curl -L https://git.io/getLatestIstio | sh -

Next move the Istio directory to /opt/istio

mv istio-* /opt/istio

The /opt/istio/bin directory is already added to the path in the Zsh profile.

Linkerd

Install Linkerd by running:

curl -sL https://run.linkerd.io/install | sh

The Linkerd bin directory (~/.linkerd2) is already added to the path in the Zsh profile.

Zoom Conference

Install zoom conference with aura -A zoom

Signal

Install signal with aura -A signal.

Image conversion

Install the imagemagick package with pacman -S imagemagick.

To convert from jpg to png run mogrify -format png /path/*.jpg.

Printers

Install the cups package for printers: pacman -S cups.
Then start and enable the org.cups.cupsd.service service with systemctl {enable,start} org.cups.cupsd.service.

Finally add your user to the sys group so it can access CUPS settings with usermod -a -G sys <user>.

You can then administer printers via the web ui.

LaTex

Install LaTex with pacman -S texlive-most.

Screenfetch

Install the Screenfetch package with pacman -S screenfetch.

Spell Checker

Install the GNU Aspell checker with pacman -S aspell-en.
This will download the aspell english dictionary and the aspell utility.

Travis CI

To install the Travis CI CLI you must first install ruby with pacman -S ruby.
Next install the Travis CI CLI with gem install travis.

Lastpass CLI

Install the lastpass CLI with aura -A lastpass-cli.

Backblaze B2 CLI

Install Python 2 Pip with pacman -S python2-pip.
Install the Backblaze B2 CLI with pip2 install b2.

Spotify

Install the Spotify app with aura -A spotify.

JQ

Install JQ, the json processor JQ with pacman -S jq.

Terraform

Install terraform with pacman -S terraform.

Slack

Install the Slack desktop app with aura -A slack-desktop.

FoxitReader

Install Foxit Reader, a PDF viewer, with aura -A foxitreader.
Make FoxItReader the default pdf viewer with: xdg-mime default foxitreader.desktop application/pdf.

TLDR

Install the tldr help tool with: aura -A tldr-git.

Go Debug

Install the go debugger with go get github.com/mailgun/godebug.

Android

To develop Android apps a couple steps must be completed. All of which where taken from the Android Arch Wiki Page.

  • Enable pacman multilib repository: Edit the /etc/pacman.conf and uncomment the [multilib] line, and the line following
  • Install the Android packafges with aura -A android-platform android-sdk android-sdk-platform-tools android-sdk-build-tools android-support android-support-repository android-ndk android-emulator
  • Create an sdk user linux group with groupadd sdkusers
  • Add your current user to this group with gpasswd -a <user> sdkusers
  • Give the sdkusers group access to the Android sdk with:
    chown -R :sdkusers /opt/android-sdk/
    chmod -R g+w /opt/android-sdk/
    
  • Re login to get the new user group permissions with newgrp sdkusers
  • Add udev rules for Android devices with pacman -S android-udev
  • Install Android Studio with aura -A android-studio.

Intellij Idea

Install Intellij idea with aura -A intellij-idea-ultimate-edition.

Install DataGrips, a database browser with aura -A datagrips.

CLion

Install CLion with aura -A clion.

NTFS

Install NTFS file system support so you can access USBs: pacman -S ntfs-3g.

Wget

Install wget with pacman -S wget.

Record My Desktop

Install the Record My Desktop screen recorder with: pacman -S recordmydesktop.

Memcoder

Install the mencoder application, used for video encoding, via pacman -S mencoder.

Sqitch

Install Sqitch, an SQL database migration tool, with aura -A perl-app-sqitch.

PGCLI

Install the Postgres CLI pgcli with aura -A pgcli.

Thunar

Install the thunar file manager with pacman -S thunar.

Virtual Env

Install python virtual env with: pacman -S python-virtualenv.

To use VirtualEnv create a directory for the virtual environment. Then create the virtual environment with virtualenv <dir>.

Jupyter notebook

Create a virtual environment for Jupyter with virtualenv and complete the following:

Install Juypter notebook with: pip install jupyter jupyterlab.
Next start it with jupyter lab.

Spell Check

Install a spell check extension for Jupyter lab:

sudo jupyter labextension install @ijmbarr/jupyterlab_spellchecker

Bash Kernel

Install the Jupyter Bash kernel with:

pip install bash_kernel
python -m bash_kernel.install

R Kernel

Install the r package with pacman -S r tk gcc-fortran.
The tk and gcc-fortran packages are needed by R to install packages.

Next install the Jupyter Kernel by running the following in the R console:

$ R
install.packages(c('repr', 'IRdisplay', 'evaluate', 'crayon', 'pbdZMQ', 'devtools', 'uuid', 'digest', 'igraph'), repos = "http://cran.us.r-project.org")
devtools::install_github('IRkernel/IRkernel')
IRkernel::installspec()

Octave Kernel

Install Octave by running pacman -S octave.

Install the Octave kernel by running:

pip install octave_kernel
ipython console --kernel octave

This installs the R Kernel dependencies. Along with the igraph library. To create nice graphs in R.

Etherium

Install the client & server with pacman -S geth.
Install the compiler with pacman -S solidity.

Steam

Install Steam with pacman -S steam.

Discord

Install Discord with aura -A discord.

lxappearance

Install lxappearance for gtk theme management with pacman -S lxappearance.

NCDU

Install NCDU a disk usage visualizer with pacman -S ncdu.

Drone

Install The Drone CLI with aura -A drone-cli.

KSP

Install the ttf-ms-fonts package with aura -A ttf-ms-fonts.

CKan

Install the the KSP mod manager CKan with aura -A ckan.

ltunify

Install ltunify, a untility to connect to wireless mice, with aura -A ltunify-git.

Instructions sourced from the wireless mice Arch linux wiki page.

To connect to a wireless mouse run ltunify pair.

Resillio Sync

Install Resillio Sync with aura -A rslsync.

The following steps were sourced from the Resillio Sync Wiki Page.

Create the storage directory by running mkdir ~/Documents/sync.
Make sure to edit the configuration in ~/.config/rslsync/rslsync.conf.

You might want to change the following parameters:

  • device_name
  • storage_path
  • webui/login
  • webui/password

Then enable and start the rslsync.service systemctl unit with systemctl enable rslsync.service and systemctl start rslsync.service.

Duplcity

Install Duplicity to backup your files with pacman -S duplicity.

You can then backup your files with duplicity <source> <target>.
Where the source files are the files you wish to backup. And the target is were you want to back them up to.

To use duplicity with Backblaze B2 type duplicity <source> b2://<account id>:<application key>@<bucket name>/<path>.

DNS Utils

Install the DNS Utils package to gain access to tools such as Dig with: pacman -S dnsutils.

DigitalOcean Ctl

Install the DigitalOcean command line interface with aura -A doctl-bin.

Doxygen

Doxygen for documentation generation with pacman -S doxygen.

HTTPie

Install HTTPie, a sane http cli client with pacman -S httpie.
Allows one to make HTTP requests like so http METHOD URL datakey=datavalue datakey2=datavalue2.

Robo Mongo

Install RoboMongo, a MongoDB UI, with aura -S robomongo.

Weechat

Weechat is a terminal chat application.

Install it with pacman -S weechat.

Bitlbee

Bitlbee is local IRC server that provides numerous extra useful features. It can be used with Weechat.

Install it with pacman -S libotr bitlbee.
Then enable and start the bitlbee service:

systemctl enable bitlbee
systemctl start bitlbee
systemctl status bitlbee

Bitlbee Facebook

Install the Bitlbee Facebook extension, which allows you to use Facebook Messenger over IRC.

Install with aura -A bitlbee-facebook.

Mongodb

Install mongodb with pacman -S mongodb mongodb-tools.

Redis

Install redis with pacman -S redis.

Fix wireless interface name

From this Arch linux page.

Add a file named /etc/udev/rules.d/70-persistent-net.rules with the contents:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="Your Mac Address", ATTR{dev_id}=="0x0", ATTR{type}=="1", NAME="wlan0"

Make sure the ATTR(address) value is the MAC address of your wireless interface. You can find this in the ip link show output.

DOS File Tools

Steps sourced from this blog post
Install dosfstools to get access to the mkfs.vfat utility, which will be used to format Raspberry PI SD cards.

With the command pacman -S dosfstools.

GDB

Install the GNU debugger tools with pacman -S gdb.

WhoIs

Install the whois utility to retrieve information about a domain: pacman -S whois.

AWS

Install the AWS cli via: pip install awscli.

Next run aws configure and enter your account information.

Flutter

Install the Flutter mobile development framework with aura -A flutter.

Then create a Flutter user group so normal users can access the Flutter directory:

sudo groupadd flutterusers
sudo gpasswd -a <user> flutterusers
sudo chown -R :flutterusers /opt/flutter
sudo chmod -R g+w /opt/flutter

Then to login to this group in your terminal: newgrp flutterusers.

Wire Guard

Install the Wire Guard VPN by running: pacman -S wireguard-tools linux-header wireguard-arch.

INotify Tools

Install Inotify Tools to run commands when files change with pacman -S inotify-tools.

Dart Lang

Install the Dart programming language by running aura -A dart-sdk-dev.

Then install Dart web development tools by running:

pub global activate webdev
pub global activate stagehand

The 2 commands above were sources from the Dart Webdev getting started guide.

Apache Tools

Install the Apache tools package: aura -A apache-tools.

This will give you access to ab, Apache's load tool.

Netcat

Install Netcat: pacman -S gnu-netcat

Vagrant

Install Vagrant: pacman -S vagrant

Rust

Install Rust: pacman -S rustup.

Then run:

rustup update
rustup install stable
rustup default stable

Subversion

Install subversion: pacman -S subversion.

NMap

Install network map: pacman -S nmap.

LNav

Install lnav with: aura -A lnav.

Expect

Install expect with: pacman -S expect.

JP

Install jp by running:

go get github.com/jmespath/jp
go install github.com/jmespath/jp

DJVU

Steps sourced from DJVU Arch Linux Wiki Page.

Install djvu file tools: pacman -S djvulibre

Use the ddjvu tool to convert djvu files to PDFs:

ddjvu --format=pdf inputfile.djvu ouputfile.pdf

Blender

Install blender: pacman -S blender.

Theming

This section describes how to setup the Arch Linux environment to look pleasing.

Font tool xdf

To easily view font glyphs install the xdf tool with pacman -S xorg-xfd.

Hack Font

Install the Hack Font with pacman -S ttf-hack.

Polybar

Install wireless_tools, so polybar can get wifi information, with pacman -S wireless_tools.
Install polybar with aura -A polybar-git.
Install the Font Awesome font with aura -A ttf-font-awesome.
Install the Material Icons Font with aura -A ttf-material-icons.
Install the Siji font with aura -A siji-git.
Install the Nerd Font pack with aura -A nerd-fonts-complete.

⚠️ **GitHub.com Fallback** ⚠️