Skip to content

Arch Linux Setup

Installation#

Don't laugh! I use the archinstall to speed the process up of installation.

I use the LTS Linux kernel, and elect to use BTRFS with disk encryption.

Packages#

All packages I install for Arch.

Packages
# Packages

## OS
base
base-devel
efibootmgr
linux
linux-firmware
zram-generator

## Firmware
intel-ucode

## FS
btrfs-progs
snapper

## Networkings
bluez
bluez-utils
networkmanager

## Terminal
man-db

## Sound
gst-plugin-pipewire
libpulse
pipewire
pipewire-alsa
pipewire-jack
pipewire-pulse
sof-firmware
wireplumber

## DE
plasma-meta
sddm
konsole
dolphin
ark
xclip

## Utilities
kalk
bitwarden

## Web Browsers
firefox

## Code
git
openssh
neovim
extra/code

## Shell
zsh
zsh-syntax-highlighting
shellcheck

## Python
python
python-pip

KDE Setup#

I prefer using KDE as my Desktop Environment.

KDE Theme#

I use the default light theme.

KDE Nightlight#

I use a subtle night light:

KDE Animation#

I use instant animations:

KDE Natural Scrolling#

I prefer the "natural scrolling" behavior for touchpad:

KDE Clipboard#

Adjust the clipboard settings:

Found on the system tray settings.

I like to set it to have 200 entries that persist accross sessions.

KDE Disable Notification Noises#

Disable notification noises:

KDE Disable Donation Reminders#

I don't like pop ups:

Zsh Setup#

I use zsh as my default shell with a few quality of life features.

.zshrc
~/.zshrc
# --- [name] path/ $ --- #

PS1='[%n] %~/ $ '

# --- Insensitive Case Tab Complete, No Auto Menu --- #

autoload -Uz compinit && compinit
zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}'
setopt menu_complete
unsetopt AUTO_LIST

bindkey '^[[Z' reverse-menu-complete

bindkey '^ ' expand-or-complete-prefix

# --- Control Movement and Delete --- #

bindkey '^[[1;5C' forward-word
bindkey '^[[1;5D' backward-word

bindkey -M emacs '^H' backward-kill-word
bindkey -M emacs '^[[3;5~' kill-word

# --- Dark Magic Select All And Delete [AI + https://github.com/AndydeCleyre/dotfiles-zsh/blob/main/inline_selection.zsh] ---

# Key: Ctrl+A
# shellcheck disable=SC1009
.zle_select-all () {
  (( CURSOR=0 ))
  (( MARK=$#BUFFER ))
  (( REGION_ACTIVE=1 ))
  # shellcheck disable=SC1073
  # shellcheck disable=SC1050
  # shellcheck disable=SC1072
  # shellcheck disable=SC1141
  if (( $+functions[_zsh_highlight] )) _zsh_highlight
}
zle -N .zle_select-all
bindkey '^A' .zle_select-all  # ctrl+a

# Key: Backspace
.zle_backspace-or-undo () {
  if [[ $LASTWIDGET == *complet* ]]; then
    zle .undo
  else
    if (( REGION_ACTIVE )); then
      zle .kill-region
    else
      zle .backward-delete-char
    fi
  fi
  if (( $+functions[_zsh_highlight] )) _zsh_highlight
}
zle -N .zle_backspace-or-undo
bindkey '^?' .zle_backspace-or-undo  # backspace

# --- Shift Select and Delete / Copy Tools --- #

# git clone https://github.com/jirutka/zsh-shift-select ~/.local/share/zsh/plugins/zsh-shift-select
# shellcheck disable=SC1090
source ~/.local/share/zsh/plugins/zsh-shift-select/zsh-shift-select.plugin.zsh

# --- Syntax Highlighting --- #

# Syntax highlighting
# shellcheck disable=SC1094
source /usr/share/zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh # Arch

Reload zsh:

source ~/.zshrc

Make your current user's default shell zsh:

sudo chsh -s $(which zsh) $USER

This setting will apply after logout.

Jetbrains#

I use Jetbrains' IDEs.

First, install Jetbrains dependencies:

sudo pacman -S libxi libxrender libxtst mesa-utils fontconfig gtk3 tar dbus-broker-units

Grab the most recent tarball from Jetbrains:

I install in a local ~/.local/share/Jetbrains/Toolbox folder.

mkdir -p ~/.local/share/Jetbrains/Toolbox && cd $_
mv ~/Downloads/jetbrains-toolbox-* .
tar -xf jetbrains-toolbox-*
rm jetbrains-toolbox-*.tar.gz
mv jetbrains-toolbox-* jetbrains-toolbox

I will then execute the installer:

/jetbrains-toolbox/bin/jetbrains-toolbox

Install desired tools:

More info here

Virtual Machines#

I prefer Virtualbox for familiarity.

Since I use the LTS Kernel I will select virtualbox-host-modules-lts:

If I wasn't, I'd use virtualbox-host-modules-arch

sudo pacman -S virtualbox virtualbox-host-modules-lts virtualbox-guest-iso

Next, enable the kernel modules:

sudo modprobe vboxdrv vboxnetadp vboxnetflt
sudo vboxreload

As a CoW user (BTRFS), I will disable CoW on the VM folder to avoid thrashing.

mkdir "$HOME/VirtualBox VMs"
sudo chattr +C "$HOME/VirtualBox VMs"
lsattr -d "$HOME/VirtualBox VMs"
# ---------------C------ = CoW off

I will give myself vboxuser permissions

sudo usermod -aG vboxusers $USER
groups $USER

We will now reboot to ensure everything persists upon reboot.

Upon opening, enable Expert Mode:

alt text