- Create organized directory structure: - docs/ for all documentation files - config/ for deployment configurations and scripts - Add CLAUDE.md with project architecture and development workflow - Update README.md with new structure and current status - Move all documentation to docs/ directory - Organize Docker and Nginx configurations under config/ 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
159 lines
4.2 KiB
Markdown
159 lines
4.2 KiB
Markdown
# System Setup Guide
|
|
|
|
Complete guide for Arch Linux installation and system configuration.
|
|
|
|
## Initial Installation
|
|
|
|
### Pre-installation
|
|
1. Boot from Arch ISO
|
|
2. Verify boot mode: `ls /sys/firmware/efi/efivars`
|
|
3. Connect to internet: `iwctl` for WiFi
|
|
4. Update system clock: `timedatectl set-ntp true`
|
|
|
|
### Disk Preparation
|
|
1. List disks: `fdisk -l`
|
|
2. Partition the disk: `cfdisk /dev/sdX`
|
|
- EFI partition: 512M, type EFI System
|
|
- Root partition: remaining space, type Linux filesystem
|
|
3. Format partitions:
|
|
```bash
|
|
mkfs.fat -F32 /dev/sdX1 # EFI
|
|
mkfs.ext4 /dev/sdX2 # Root
|
|
```
|
|
4. Mount filesystems:
|
|
```bash
|
|
mount /dev/sdX2 /mnt
|
|
mkdir /mnt/boot
|
|
mount /dev/sdX1 /mnt/boot
|
|
```
|
|
Current partition setup is a quite fragmented leftover from my dual-booting days. Later we should wipe the leftover
|
|
Windows drive for extra storage, but first we should confirm there's no essential files there
|
|
(unlikely since it wasn't booted for months, mostly using other windows PC)
|
|
|
|
### System Installation
|
|
1. Install base packages: `pacstrap /mnt base linux linux-firmware`
|
|
2. Generate fstab: `genfstab -U /mnt >> /mnt/etc/fstab`
|
|
3. Chroot: `arch-chroot /mnt`
|
|
4. Set timezone: `ln -sf /usr/share/zoneinfo/Europe/Budapest /etc/localtime`
|
|
5. Generate hardware clock: `hwclock --systohc`
|
|
6. Configure locale:
|
|
- Edit `/etc/locale.gen`, uncomment `en_US.UTF-8 UTF-8`
|
|
- Run: `locale-gen`
|
|
- Create `/etc/locale.conf`: `LANG=en_US.UTF-8`
|
|
7. Set hostname: `echo "homelab" > /etc/hostname`
|
|
8. Configure hosts file
|
|
9. Set root password: `passwd`
|
|
10. Install bootloader: `pacman -S grub efibootmgr`
|
|
11. Install GRUB: `grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=GRUB`
|
|
12. Generate config: `grub-mkconfig -o /boot/grub/grub.cfg`
|
|
|
|
## Post-Installation Setup
|
|
|
|
### User Management
|
|
```bash
|
|
# Create user
|
|
useradd -m -G wheel -s /bin/bash hoborg
|
|
passwd hoborg
|
|
|
|
# Configure sudo
|
|
pacman -S sudo
|
|
visudo # Uncomment %wheel ALL=(ALL) ALL
|
|
```
|
|
|
|
### Essential Packages
|
|
```bash
|
|
pacman -S git base-devel openssh networkmanager
|
|
systemctl enable NetworkManager
|
|
systemctl enable sshd
|
|
```
|
|
|
|
### AUR Access
|
|
```bash
|
|
# Install yay AUR helper
|
|
git clone https://aur.archlinux.org/yay.git
|
|
cd yay
|
|
makepkg -si
|
|
```
|
|
|
|
## Desktop Environment
|
|
|
|
### XFCE Installation
|
|
```bash
|
|
pacman -S xfce4 xfce4-goodies lightdm lightdm-gtk-greeter
|
|
systemctl enable lightdm
|
|
```
|
|
|
|
### Themes and Appearance
|
|
- **Window Manager Theme**: Matcha-dark-aliz
|
|
- **Icons**: Papirus-Maia
|
|
- **Fonts**:
|
|
- System: Install Nerd Fonts (`ttf-iosevkaterm-nerd ttf-jetbrains-mono-nerd`)
|
|
- TTY: ter-124b (12x24 bold)
|
|
|
|
## Development Environment
|
|
|
|
### Dotfiles Management
|
|
```bash
|
|
# Install yadm
|
|
pacman -S yadm
|
|
|
|
# Clone dotfiles
|
|
yadm clone git@gitlab.com:akrejczinger/dotfiles.git
|
|
```
|
|
|
|
### Shell Configuration
|
|
- **Shell**: zsh with antidote plugin manager
|
|
- **Terminal**: wezterm with Catppuccin theme
|
|
- **Multiplexer**: tmux with catppuccin theme and temperature monitoring
|
|
- **Editor**: neovim with lazy.nvim plugin manager
|
|
|
|
### Key Configurations
|
|
- **Keyboard Layout**: Colemak (US variant in X11)
|
|
- **TTY Layout**: Colemak with caps lock → backspace via systemd service
|
|
- **Font Fallbacks**: Noto fonts for Unicode support
|
|
|
|
## TTY Configuration
|
|
|
|
### Font and Layout
|
|
```bash
|
|
# Configure /etc/vconsole.conf
|
|
KEYMAP=colemak
|
|
FONT=ter-124b
|
|
FONT_MAP=8859-1
|
|
```
|
|
|
|
### Caps Lock Fix
|
|
Caps lock mapped to backspace via systemd service:
|
|
```bash
|
|
# /etc/systemd/system/caps-backspace.service
|
|
sudo setkeycodes 3a 14 # Map caps scancode to backspace keycode
|
|
```
|
|
|
|
### Color Scheme
|
|
TTY colors configured in `.zshrc` for better readability.
|
|
|
|
## System Maintenance
|
|
|
|
### Package Management
|
|
- Regular updates: `yay -Syu`
|
|
- Orphaned packages: `yay -Yc`
|
|
- Cache cleanup: `yay -Sc`
|
|
|
|
### Backup Strategy
|
|
- Dotfiles: yadm + git repository
|
|
- System configs: Document in this guide
|
|
- User data: External backup solution
|
|
|
|
## Hardware-Specific Notes
|
|
|
|
### ThinkPad Optimizations
|
|
- **Temperature Monitoring**: Available via `sensors` command
|
|
- **Battery Management**: TLP for power optimization
|
|
- **Trackpad**: libinput with natural scrolling
|
|
- **Function Keys**: Media keys work out of box
|
|
|
|
### Network Configuration
|
|
- **WiFi**: NetworkManager with GUI applet
|
|
- **Ethernet**: Automatic DHCP
|
|
- **Bluetooth**: bluez with pulseaudio integration
|