🍙 dotfiles 🍙
I use arch, btw
> _"...we {do these} things not because they are easy, but because they are hard_,"
> _"because that goal will serve to organize and measure the best of our energies and skills_,"
> _"because that challenge is one that we are willing to accept, one we are unwilling to postpone_..."
👨💻 Software
🖥️ Display
🎯 Core Applications
- Editor: neovim
- Browser: Firefox (with custom firefox css)
- File Explorer: xplr
- Terminal: kitty
- Shell: zsh
🍎 Notable Applications
🎥 Appearance
🎨 Design
- Color Scheme: vagari (work in progress)
- Cursors: catppuccin-macchiato-light
- Icons: Papirus-Dark
💬 Fonts
- Sans Serif: Satoshi
- Serif: Sentient
- Display: Chillax
- Monospace: Iosevka Vagari, hinted
- Other:
🧰 Hardware
share/keyboards/svalboard.vil, browsable with the keys viewer
##### Misc Hardware
- Monitor: SAMSUNG UR59 Series 32-Inch 4K UHD (3840x2160)
- Computer: Framework Desktop, AMD Strix Halo, Ethernet only
- Microphone: Shure SM57
- Camera: Canon EOS M50 Mark II
🛠️ Installation
This system is built specifically for the Framework Desktop (AMD Strix Halo, Ethernet only).
- Offline Arch ISO: installs the base system and dotfiles without a network.
- LUKS2 and YubiKey unlock: encrypts the disk; keeps passphrase and paper recovery options.
- btrfs with Snapper: keeps root snapshots for recovery and manual rollback.
- Limine and unified kernel images (UKIs): supports signed boot images and snapshot boot.
- Own-key Secure Boot and TPM-sealed TOTP: adds signatures and boot-state evidence.
- Two-phase setup: makes the desktop work before asking separately to lock it down.
_See the dctl guide for commands and recovery._
There is no model check, but this system is only tested on that machine. AMD packages, no Wi-Fi packages, NVMe selection, and firmware menus limit portability.
[!CAUTION]
> dctl iso usb erases the whole USB.
dctl install erases the whole target drive.
ISO ─▶ USB ─▶ firmware prep ─▶ install ─▶ reboot
┌─────────────────────────────────────────┘
▼
phase 1 ─▶ lock confirmation ─▶ luks ─▶ secureboot ─▶ reboot
┌─────────────────────────────────────────────────────┘
▼
totp ─▶ reboot and compare
1. Get the ISO
Download the ISO with its .sha256 and .sha256.sig files from Releases.
Or build a new one on an existing Arch machine:
dctl iso build
dctl iso test
dctl iso release # optional
- Build from a clean, committed
master. - USB writing needs signed checksums; release signs them before offering to publish.
_See ISO for requirements and test overrides._
2. Write the USB
Writing verifies the signed checksum and requires typed device-path consent.
Add --iso /path/to/dotfiles-REV.iso for a downloaded ISO.
dctl iso usb /dev/sdX
3. Prepare the Framework
Prepare the firmware now to avoid another visit during security enrollment.
- Back up any data on the internal disk.
- Press F2 and choose Erase all Secure Boot Settings to enter Setup Mode.
- Leave the TPM enabled and press F10 to save.
4. Install
The installer creates the encrypted system and desktop from bundled packages.
- Press F12 and choose the USB in UEFI mode; the ISO starts the installer on tty1.
- Enter the login password for
cullyn, the timezone, and the disk passphrase. - Check the selected disk before confirming Erase
and install?. - At the completed summary, remove the USB and reboot.
5. First login
Unlock with the passphrase, log in, connect Ethernet, and insert a YubiKey.
dctl setup
Phase 1, make it work, then runs:
- Check system services and Ethernet/DNS (
system,network). - Apply packages and home settings (
packages,home). - Install extra applications in the background (
extra). - Restore secrets, SSH access, and repositories (
secrets,ssh,repos). - Set up Firefox and local certificates (
firefox,certs).
dctl · ….
_See Setup for stages and first-login details._
6. YubiKeys, Secure Boot, and boot TOTP
Phase 2, lock it down, secures the system after a separate confirmation.
Run setup as the normal user; --yes never accepts the lock confirmation.
- Enroll both YubiKeys for disk unlock and save the recovery key onto paper.
- Enroll the Secure Boot keys, then reboot with a YubiKey inserted.
- Once Secure Boot is enforced, run setup again to seal and verify the boot TOTP.
- Reboot and compare the boot code with the authenticator before unlocking.
_See Secure Boot for the lock procedure._
_See hardware acceptance for real-machine checks._
Day-to-day use
dctl update --only {scope}
_See Update for upgrades and package reconciliation._