sudo pacman -S texlive-basic texlive-xetex texlive-latexextra texlive-fontsextra
texlive-fontsrecommended texlive-bin texlive-doc sudo pacman -S
texlive-fontsrecommended texlive-latexextra texlive-fontsextra sudo pacman -S
texlive-fontsextra sudo ln -s /usr/share/texmf-dist/fonts/opentype
/usr/share/fonts/texmf-opentype; fc-cache -f
!! Add Everything config and MultiCommander config !! Add
/etc/pam.d/system-local-login
- Nerdfonts
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zip- Download and install with right click.
winget install nushellcargo install nu_plugin_semver nu_plugin_regexFrom Nushell:plugin add ~\.cargo\bin\nu_plugin_regex.exeplugin add ~\.cargo\bin\nu_plugin_semver.exe
- Install Everything as a service:
https://www.voidtools.com/
https://www.ghisler.com/download.htm
- Plugins:
https://www.ghisler.ch/board/viewtopic.php?t=33740
https://github.com/BluePointLilac/ContextMenuManager/releases
- Follow the reproducible Arch installation guide for the ISO workflow.
- After reboot, run
Linux/install/bootstrapas the sole post-reboot setup entry point. - Run
Linux/install/bootstrap --dry-runbefore applying changes. Iftidydotsis unavailable, the command reports an incomplete preview with exit status4, explicitly skips its package and configuration phases, and must be rerun after installing the prerequisite.
tidydots.yaml is desired package state.
pkglist-pacman-<hostname>.txt and pkglist-aur-<hostname>.txt are generated audit snapshots.
- Graphical shared packages/configs require real Linux, a display, and non-WSL execution, except
antoinews-linuxis explicitly allowed headless. - Machine-wide shared services use real Linux/non-WSL conditions.
Hardware and machine policy use exact hostname conditions.
antoinews-linuxis the Intel desktop profile.
Focused previews such as tidydots --dir "$REPO_DIR" install hyprland -n are
intentionally limited to that application and may install only its package.
The canonical complete bootstrap package preview is the unscoped command:
tidydots --dir "$REPO_DIR" install -n.
Review only the relevant profile with a worktree-scoped dry-run. Set REPO_DIR
to the checkout being reviewed; every command below is non-mutating:
REPO_DIR=/path/to/configurations
# Shared desktop baseline
tidydots --dir "$REPO_DIR" install hyprland -n
tidydots --dir "$REPO_DIR" install pipewire-audio -n
tidydots --dir "$REPO_DIR" install linux-services-packages -n
# Intel desktop profile
tidydots --dir "$REPO_DIR" install antoinews-linux-intel -n
# Network stack
tidydots --dir "$REPO_DIR" install antoinews-linux-network -n
tidydots --dir "$REPO_DIR" restore antoinews-linux-network -n
# Limine and Snapper
tidydots --dir "$REPO_DIR" install limine -n
tidydots --dir "$REPO_DIR" install limine-snapper-sync -n
tidydots --dir "$REPO_DIR" restore limine-current-desktop-config -n
tidydots --dir "$REPO_DIR" install snapper -n
tidydots --dir "$REPO_DIR" restore snapper -nHostname-gated previews can report a condition mismatch when intentionally run on another host; that is the expected exclusion behavior.
Run the complete read-only profile and runtime audit with
bash Linux/pacman/tests/all-profiles-test.sh.
Daily timer to backup enabled services and timers to
Linux/systemd/units-enabled.txt:
sudo systemctl daemon-reload
sudo systemctl enable --now units-backup.timersystemctl --user daemon-reload; systemctl --user enable --now watch-rustdesk-submap.servicesudo chmod +x ~/.config/hypr/rustdesk-submap-watch.sh
Systemd socket-activated ssh-agent with 4-hour key lifetime. Keys are
automatically added on first use via AddKeysToAgent yes in ~/.ssh/config.
systemctl --user daemon-reload
systemctl --user enable --now ssh-agent.socketLog out and back in (or
export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/ssh-agent.socket" in the current
session) for the environment variable to take effect.
- NodeJS
sudo npm install -g shelljs typescript
- Nerdfonts
- Go in a temp directory
wget https://github.com/ryanoasis/nerd-fonts/releases/download/v3.2.1/JetBrainsMono.zipunzip JetBrainsMono.ziprm JetBrainsMono.zipsudo mv JetBrainsMono* /usr/share/fonts/fc-cache -f -v
- Bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"echo >> ~/.bashrcecho 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
xdg-mime default com.mitchellh.ghostty.desktop x-scheme-handler/terminal
sudo update-alternatives --install /usr/bin/editor editor /home/linuxbrew/.linuxbrew/bin/nvim 1 && \ sudo update-alternatives --set editor /home/linuxbrew/.linuxbrew/bin/nvim- If error when copying to "+ then:
sudo apt install xclip- Through ssh it is said to install lemonade
- Install Nerd Fonts (JetBrains Mono Nerd Font)
brew install starship
which nu | sudo tee -a /etc/shellschsh -s "$(which nu)"From Nushell, most likely not needed:
brew install yazi ffmpegthumbnailer sevenzip jq poppler fd ripgrep fzf zoxide imagemagick
- Add nushell LSP/Formatter
- Add pwsh Formatter