144 lines
4.1 KiB
Markdown
144 lines
4.1 KiB
Markdown
# Packages
|
|
|
|
## Base install
|
|
|
|
Install these with `pacstrap` while installing Arch:
|
|
|
|
```sh
|
|
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:
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
network_packages=(
|
|
openssh # SSH client/server tools
|
|
sshfs # Mount remote machines over SSH
|
|
)
|
|
|
|
sudo pacman -S --needed "${network_packages[@]}"
|
|
```
|
|
|
|
## Desktop: Sway / Wayland
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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
|
|
|
|
```sh
|
|
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
|