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>
67 lines
1.9 KiB
Bash
Executable File
67 lines
1.9 KiB
Bash
Executable File
#!/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."
|