Add Emacs config with install scripts for laptop and work

Shared: init.el / early-init.el with Vertico stack, Corfu, Eglot,
treesit-auto, Catppuccin Mocha, doom-modeline, Magit, avy, harpoon,
embark, wgrep, expand-region, envrc, org-mode, and drop-in lang loader.

Lang configs split by stow target:
- shared: elisp, org
- laptop: C/C++, Rust, Go, LaTeX (AUCTeX + latexmk + Zathura)
- work:   C#, JS/TS/HTML/CSS/React (apheleia+prettier), Copilot

install-personal.sh: Fedora — gcc/clang, rustup, Go, texlive, zathura
install-work.sh: Ubuntu 24.04 WSL — dotnet-sdk-10.0, Node 22 via nvm, ts-ls

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-29 15:12:32 -04:00
parent b0ed92c0cf
commit 9ac5b2beff
13 changed files with 486 additions and 0 deletions

66
install-personal.sh Executable file
View File

@@ -0,0 +1,66 @@
#!/usr/bin/env bash
# Personal workstation dev dependencies — Fedora
# Languages: C, C++, Rust, Go, Emacs Lisp, LaTeX
set -euo pipefail
# --- Core tools ---
sudo dnf install -y \
emacs \
git \
ripgrep \
fd-find \
stow
# --- C / C++ ---
sudo dnf install -y \
gcc \
gcc-c++ \
clang \
clang-tools-extra \
cmake \
ninja-build
# --- Rust (latest stable via rustup) ---
if ! command -v rustup &>/dev/null; then
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --no-modify-path
fi
# shellcheck source=/dev/null
source "$HOME/.cargo/env"
rustup update stable
rustup component add rust-analyzer rust-src clippy rustfmt
# --- Go (latest stable — go.dev does not use LTS; update GO_VERSION as needed) ---
GO_VERSION="1.24.2"
INSTALLED=$(go version 2>/dev/null | awk '{print $3}' || true)
if [[ "$INSTALLED" != "go${GO_VERSION}" ]]; then
curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-amd64.tar.gz" -o /tmp/go.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf /tmp/go.tar.gz
rm /tmp/go.tar.gz
fi
export PATH="/usr/local/go/bin:$PATH"
# gopls language server
go install golang.org/x/tools/gopls@latest
# --- LaTeX ---
# texlive-scheme-medium covers most common packages including latexmk
# liturg is a liturgical typesetting package (plainchant, etc.)
sudo dnf install -y \
texlive-scheme-medium \
texlive-liturg \
zathura \
zathura-pdf-mupdf \
aspell \
aspell-en
# Inverse search: Zathura → Emacs via Ctrl+click
# Add to ~/.config/zathura/zathurarc if not already present:
# set synctex-editor-command "emacsclient +%{line} %{input}"
ZATHURA_RC="$HOME/.config/zathura/zathurarc"
if ! grep -q "synctex-editor-command" "$ZATHURA_RC" 2>/dev/null; then
mkdir -p "$(dirname "$ZATHURA_RC")"
echo 'set synctex-editor-command "emacsclient +%{line} %{input}"' >> "$ZATHURA_RC"
fi
echo "Personal dev dependencies installed."