Files
dotfiles/new.md
2026-06-22 16:34:08 +02:00

4.1 KiB

Packages

Base install

Install these with pacstrap while installing Arch:

base_packages=(
  base       # Minimal Arch system
  linux      # Linux kernel
  sudo       # Run commands as root from the user account
  iwd        # Wi-Fi management during and after install
  git        # Version control and cloning dotfiles
)

pacstrap /mnt "${base_packages[@]}"

Core tools

Install after booting into the new system:

core_packages=(
  tmux       # Terminal multiplexer
  kakoune    # Text editor
  man-db     # Manual page database
  man-pages  # Linux and POSIX manual pages
  clang      # C/C++ compiler toolchain
  make       # Build automation tool
  tcc        # Tiny C compiler
  ripgrep    # Fast grep replacement, command: rg
  curl       # Download URLs from the command line
  plocate    # Fast file name search database
  fzf        # Fuzzy finder for terminal scripts and navigation
  gdb        # Debugger
)

sudo pacman -S --needed "${core_packages[@]}"

Networking and remote files

network_packages=(
  openssh  # SSH client/server tools
  sshfs    # Mount remote machines over SSH
)

sudo pacman -S --needed "${network_packages[@]}"

Desktop: Sway / Wayland

desktop_packages=(
  sway                    # Wayland window manager
  swayidle                # Idle actions like lock, suspend, hibernate
  swaybg                  # Wallpaper setter for Sway
  swaylock                # Screen locker for Sway/Wayland
  foot                    # Wayland terminal emulator
  wmenu                   # Lightweight Wayland launcher/menu
  xorg-xwayland           # Run X11 applications inside Wayland
  wl-clipboard            # wl-copy and wl-paste clipboard tools
  xdg-desktop-portal-wlr  # Portal backend for screen sharing and app integration
  xdg-user-dirs           # Standard folders like Downloads, Documents, Pictures
  grim                    # Wayland screenshot tool
)

sudo pacman -S --needed "${desktop_packages[@]}"

Audio and media

media_packages=(
  pipewire        # Modern Linux audio/media server
  pipewire-pulse  # PulseAudio compatibility for PipeWire
  pipewire-alsa   # ALSA compatibility for PipeWire
  pipewire-jack   # JACK compatibility for PipeWire
  wireplumber     # PipeWire session and policy manager
  pavucontrol     # Graphical volume mixer
  ffmpeg          # Video/audio codecs and conversion tools
  imv             # Image viewer
  mpv             # Video/audio player
)

sudo pacman -S --needed "${media_packages[@]}"

Fonts

font_packages=(
  ttf-fira-code     # Monospace programming font with ligatures
  noto-fonts        # Broad Unicode font coverage
  noto-fonts-cjk    # Chinese, Japanese, and Korean font coverage
  noto-fonts-emoji  # Emoji font support
  noto-fonts-extra  # Extra Noto font families
  ttf-liberation    # Microsoft-compatible replacement fonts
  ttf-dejavu        # General purpose readable fonts
  ttf-roboto        # Roboto font family
)

sudo pacman -S --needed "${font_packages[@]}"

Browser and extra tools

app_packages=(
  firefox   # Web browser
  opencode  # AI coding agent; may require AUR or a custom repository
)

sudo pacman -S --needed "${app_packages[@]}"

Setting up the boot loader with systemd-boot

  1. Setting up bootloader with systemd (EFI, mounted at /boot) 1.1. sudo bootctl install 1.2. copy over the loader.conf to /boot/loader/loader.conf and modify (set timeout to 0 because faster) 1.3. find partition ID using blkid 1.4. create arch boot entry with that UUID /boot/loader/entries/arch.conf

Setup user

  1. useradd -s /bin/bash -m -G wheel kk 1.1. m - means create directory 1.2. -G wheel - means add to sudo group so that sudo works when using the user
  2. passwd kk

Enabling internet

  1. enable and start systemd-networkd 1.1. for ethernet: copy over the ethernet configuration file from default configs 1.2. for wifi: need to install iwd first in pacstrap, I think copy over the config and setup the connection using iwd

Nvidia drivers

  1. pacman -Syu nvidia-open 1.1. For my PC graphics card

sudo usermod -aG video,render ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519