I'm calling it 'Iris' (after the ancient Greek goddess of the rainbow and messenger of the gods) because it has one of those stupid rainbow backlit keyboards.
Hardware specs here.
- Partition the disks
- A
swap
partition of 32G - A
/
partition for the rest, since we don't need EFI and we will be using btrfs subvolumes under LUKS
- A
- Create LUKS container
- Format O/S filesystem: btrfs with full disk encryption on both drives, including an encrypted bootloader
Execution plan (TBD)
Take a btrfs snapshot here.
- Separate
ryan
user role in sudoers group - Create XDG default directories with
pacman -S xdg-user-dirs && xdg-user-dirs-update
- Set the
XDG_*_DIR
env vars to stop creating directory names I hate (like "Downloads")
- Set the
- AUR helper
yay
- Power Management
- Install
acpid
- Install
acpi
- Set systemd ACPI Events
- Disable Wake-on-LAN
- Suspend-then-hibernate on suspend
- Install
- Security recommendations, especially:
- No remote access as root
- Public key authentication only
- Passworded BIOS
- Boot tampering checking: investigate chkboot, hashboot or chkcryptoboot
- Consider disabling the front-facing camera by blacklisting the
uvcvideo
module
- Domain name resolution: Unbound
- Network manager: Wicd
- NVidia graphics drivers
- Deal with Optimus
- Touchpad support with libinput
- Fix this middle-click weirdness
- Fonts:
- adobe-source-code-pro-fonts
- gnu-free-fonts
- ttf-dejavu
- ttf-fira-code
- ttf-fira-mono
- ttf-ubuntu-font-family
- powerline-fonts
Take a btrfs snapshot here.
- XOrg. We use this because we got an nvidia graphics card. Because nvidia sucks, there's no support for it on wayland. Don't buy nvidia.
- xf86-video-intel
- xorg-server
- xorg-setxkbmap
- xorg-xclipboard
- xorg-xinit
- xorg-xinput
- xorg-xprop
- xorg-xrandr
- xorg-xset
- WM: i3-gaps
- Terminal emulator: kitty
- Keyboard layout in Xorg using
xorg-setxkbmap
- Mouse sensitivity, keyboard repeat rate etc using
xorg-xset
- Multi-head display configuration using arandr
- Secure DNS resolution:
- Mirrorlist automation with Reflector
- CPU microcode
- BIOS: coreboot or libreboot? (Is this hardware even supported by either?)
- Kernel patchset?
- Filesystem: autodefrag or no autodefrag?
- Shell: bash or zsh?
- cli file manager: ranger or vifm?
- Screenshots: scrot or flameshot?
- Launcher: dmenu or rofi?
- Backlight control: xbacklight or light?
- Status bar: i3blocks or polybar?
This stuff is out of scope for this execution plan. We might not want all of it either. This ranges from "I'll get to it eventually" to "I'll look into it and decide if I want it at all eventually".
See also: privacytools.io
- grub-btrfs configuration tuning
- snap-sync can use snapshots to back up to an external machine
- ILoveCandy
- Activate NumLock on bootup
- Local consumer VPN connection with non-VPN traffic dropped by
iptables
- zswap
- USBGuard
- Backlight control using
light
- AppArmor for closed-source commercial stuff that I (a) don't completely trust and yet (b) don't want to run in a sandbox/VM
- CPU frequency scaling
- Autostart management with dex
- coreboot or libreboot
- Bootloader decryption headers on separate device
- Hard disk shock protection
- Maybe archstrike
- Local mail delivery using Postfix
- Use systemd timers over cron
- Pimp out GRUB with fancy colors and terminal candy
- run btrfs-scrub on a schedule?
- Periodically clear pacman cache
- Periodically remove orphaned packages
-
pacdiff
or something like it
- systemd boot time (
systemd-analyze
) - Consider a different Kernel patchset
- Research and consider MuQSS and BFQ
- Scheduling policies
- zram ?