Commit graph

4 commits

Author SHA1 Message Date
Brian Pooe
db49fc1a56 feat: harden dotfiles installer and add automated validation 2026-06-11 20:38:19 +02:00
Claude
ac38ceccbc
fix(install): correct Brave Beta keyring URL + make add_apt_repo robust
Brave consolidated their per-channel keyrings; all channels now share the
keyring at https://brave-browser-apt-release.s3.brave.com/brave-browser-archive-keyring.gpg
The repo URL itself stays at apt-beta.s3.brave.com for the Beta channel.

add_apt_repo now downloads the key to a temp file first, validates it's
non-empty, dearmors with a binary-key fallback, then atomically installs
both the keyring and the sources.list entry. A failed fetch no longer
leaves an empty keyring or half-written list file behind.
2026-06-11 15:19:49 +00:00
Claude
d1a289d6ce
feat: pivot installer from Arch+Hyprland to Pop!_OS / Debian apt
User switched from Arch to Pop!_OS 24.04 (Cosmic DE). The previous install/
directory was an Arch+Hyprland desktop scaffold (pacman, yay, Hyprland,
hyprlock, waybar, rofi, swaync, swww, hypridle, swayosd, GTK theming,
wallpapers, etc.) — none of that applies on Pop!_OS where Cosmic provides
the desktop. Wiped the whole tree.

New install/ is a small apt-based tool installer for these dotfiles:

  install.sh           entry: full / --packages-only / --dotfiles-only
  lib/common.sh        helpers (apt_install, apt_update_once, signed repo
                       adder, backup_and_link)
  lib/packages.sh      apt packages + third-party apt repos
  lib/extras.sh        GitHub-release binaries + nvm + tpm
  lib/dotfiles.sh      symlinks + chsh zsh

What it installs:
- apt: zsh + plugins, tmux, fzf, fd-find, bat, eza, zoxide, ripgrep, git,
  curl, build-essential, wl-clipboard
- Signed third-party apt repos: WezTerm (apt.fury.io/wez),
  Brave Beta (brave.com), GitHub CLI (cli.github.com)
- GitHub releases (apt versions too old / absent): Neovim, Lazygit, Starship
- Per-user: nvm, tpm
- Compat shims: /usr/local/bin/fd -> fdfind, /usr/local/bin/bat -> batcat
  so the dotfiles' env vars (FZF_DEFAULT_COMMAND='fd ...') resolve

.zshrc updated for Debian:
- zsh-syntax-highlighting and zsh-autosuggestions now try the
  /usr/share/<name>/<name>.zsh Debian path first, fall back to the Arch
  /usr/share/zsh/plugins/<name>/<name>.zsh path
- fzf bindings/completion fall back: /usr/share/doc/fzf/examples/* first
  (apt), then /usr/share/fzf/* (Arch)
- 'update' alias: pacman -Syu -> sudo apt update && sudo apt upgrade -y

README updated to reflect the Pop!_OS target.
2026-06-10 16:33:47 +00:00
Claude
ec6be909c5
feat: replace Omarchy layer with plain Arch + Hyprland installer
Drops the omarchy/ directory and adds install/ - a direct Arch + Hyprland
installer oriented around these dotfiles, no framework on top:

- install/install.sh: entry point with --packages-only / --dotfiles-only
- install/lib/{common,packages,dotfiles,hyprland,services}.sh: modules
- install/files/hypr/: starter Hyprland config (monitors, env, input,
  keybinds, autostart, top-level) - symlinked to ~/.config/hypr/
- Pacman packages: full Hyprland desktop + dotfile dependencies
- AUR: bootstraps yay, installs brave-beta-bin
- Symlinks all dotfiles, installs tpm + nvm, switches login shell to zsh
- Enables sddm, NetworkManager, bluetooth, pipewire user stack

No btrfs / Limine / Secure Boot constraints (unlike Omarchy). 3440x1440@120
monitor + JetBrainsMono Nerd Font preserved. Hyprland border colors use the
Kanagawa Wave palette to match the rest of the stack.

wezterm.lua restored to standalone Kanagawa wave/dragon switching via
$WEZTERM_THEME, since there's no Omarchy theme source anymore.

All shell scripts shellcheck-clean; wezterm.lua passes luac.
2026-06-09 11:06:43 +00:00
Renamed from omarchy/lib/common.sh (Browse further)