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:
66
install-personal.sh
Executable file
66
install-personal.sh
Executable 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."
|
||||
Reference in New Issue
Block a user