diff options
Diffstat (limited to 'config-dependencies.org')
| -rw-r--r-- | config-dependencies.org | 426 |
1 files changed, 0 insertions, 426 deletions
diff --git a/config-dependencies.org b/config-dependencies.org deleted file mode 100644 index faee3e0d..00000000 --- a/config-dependencies.org +++ /dev/null @@ -1,426 +0,0 @@ -#+TITLE: External Dependencies for Emacs Configuration -#+AUTHOR: Analysis by Claude Code -#+DATE: 2025-11-04 - -* Overview - -This document catalogs ALL external dependencies (non-Emacs, non-Emacs-packages) required -for this Emacs configuration to function fully on Arch Linux. - -Dependencies are organized by functionality area with installation commands for pacman/yay. - -* Quick Reference - -** Minimal Install (Basic Functionality) -#+BEGIN_SRC bash -sudo pacman -S git ripgrep fd -#+END_SRC - -** Recommended Install (Common Workflows) -#+BEGIN_SRC bash -# Core tools -sudo pacman -S git ripgrep fd xdg-utils curl - -# Media (if using) -sudo pacman -S ffmpeg yt-dlp task-spooler mpv libpulse - -# Development -sudo pacman -S clang shellcheck shfmt python-pip -pip install --user python-lsp-server[all] flake8 -npm install -g bash-language-server - -# Documents -sudo pacman -S pandoc texlive-core -#+END_SRC - -** Full Install (All Features) -#+BEGIN_SRC bash -# System tools -sudo pacman -S git ripgrep fd xdg-utils curl dunst - -# Media & transcription -sudo pacman -S ffmpeg yt-dlp task-spooler mpv libpulse -yay -S python-openai-whisper # Or use scripts/install-whisper.sh - -# Email -sudo pacman -S mu isync msmtp - -# Grammar & spelling -sudo pacman -S languagetool aspell aspell-en - -# PDF & documents -sudo pacman -S poppler zathura zathura-pdf-mupdf pandoc - -# LaTeX (if needed) -sudo pacman -S texlive-most - -# Programming tools -sudo pacman -S clang shellcheck shfmt graphviz -pip install --user python-lsp-server[all] flake8 mypy -npm install -g bash-language-server typescript-language-server - -# File managers (choose one) -sudo pacman -S thunar # or nautilus, dolphin, pcmanfm - -# Browsers (choose one) -sudo pacman -S firefox # or chromium -#+END_SRC - -* Core System Tools - -** Git - Version Control -- *Package:* =git= -- *Used by:* magit, forge, vc-config.el, all development workflows -- *Functionality:* Essential for version control, package management -- *Required:* YES -- *Install:* =sudo pacman -S git= - -* Audio/Video Recording & Transcription - -** FFmpeg - Media Processing -- *Package:* =ffmpeg= -- *Used by:* modules/video-audio-recording.el, scripts/install-whisper.sh -- *Functionality:* Desktop video/audio recording, media conversion -- *Required:* YES (if using recording features) -- *Install:* =sudo pacman -S ffmpeg= -- *Note:* Explicitly checked in =cj/recording-check-ffmpeg= - -** PulseAudio/PipeWire Utils - Audio Device Management -- *Package:* =libpulse= (provides =pactl= command) -- *Used by:* modules/video-audio-recording.el -- *Functionality:* Audio device detection and selection for recording -- *Required:* YES (if using recording features) -- *Install:* =sudo pacman -S libpulse= -- *Commands used:* =pactl list sources short= - -** Whisper (OpenAI) - Speech-to-Text -- *Package:* =python-openai-whisper= (AUR) -- *Used by:* scripts/local-whisper, modules/transcription-config.el -- *Functionality:* Local audio transcription (offline) -- *Required:* OPTIONAL (alternative: OpenAI API with curl) -- *Install:* =yay -S python-openai-whisper= OR =~/.emacs.d/scripts/install-whisper.sh= -- *Uninstall:* =~/.emacs.d/scripts/uninstall-whisper.sh= -- *Size:* ~500MB with models - -* Grammar & Spell Checking - -** LanguageTool - Grammar Checker -- *Package:* =languagetool= -- *Used by:* scripts/languagetool-flycheck, modules/flycheck-config.el -- *Functionality:* Comprehensive grammar and style checking -- *Required:* OPTIONAL (only if using grammar checking with =C-; ?=) -- *Install:* =sudo pacman -S languagetool= -- *Size:* ~222MB -- *Dependencies:* Python 3 (for wrapper script at scripts/languagetool-flycheck) -- *Keybinding:* =C-; ?= in org/text/markdown buffers - -** Aspell/Hunspell/Ispell - Spell Checking -- *Packages:* =aspell= (recommended) OR =hunspell= OR =ispell= -- *Used by:* modules/flyspell-and-abbrev.el -- *Functionality:* Real-time spell checking -- *Required:* OPTIONAL (choose one of the three) -- *Install:* =sudo pacman -S aspell aspell-en= (recommended) -- *Note:* Config checks for any of the three spell checkers - -* Email System - -** Mu - Email Indexer -- *Package:* =mu= -- *Used by:* modules/mail-config.el, scripts/setup-email.sh -- *Functionality:* Email indexing and search (provides mu4e) -- *Required:* YES (if using email) -- *Install:* =sudo pacman -S mu= -- *Provides:* =mu= command and mu4e elisp files - -** Isync (mbsync) - Email Sync -- *Package:* =isync= -- *Used by:* modules/mail-config.el, scripts/setup-email.sh -- *Functionality:* IMAP email synchronization -- *Required:* YES (if using email) -- *Install:* =sudo pacman -S isync= -- *Provides:* =mbsync= command - -** msmtp - SMTP Email Sending -- *Package:* =msmtp= -- *Used by:* modules/mail-config.el, scripts/setup-email.sh -- *Functionality:* Sending emails via SMTP -- *Required:* YES (if using email) -- *Install:* =sudo pacman -S msmtp= - -* Media Playback & Downloading - -** yt-dlp - Media Downloader -- *Package:* =yt-dlp= -- *Used by:* modules/media-utils.el, modules/quick-video-capture.el, modules/elfeed-config.el -- *Functionality:* Download videos from YouTube and 1000+ sites -- *Required:* YES (if using video download or media playback from web) -- *Install:* =sudo pacman -S yt-dlp= - -** Task Spooler (tsp) - Queue Management -- *Package:* =task-spooler= -- *Used by:* modules/media-utils.el (=cj/yt-dl-it= function) -- *Functionality:* Queue and background management for downloads -- *Required:* YES (if using video download) -- *Install:* =sudo pacman -S task-spooler= - -** Media Players (Choose One or More) -- *MPV* - =mpv= (recommended - works without stream URL extraction) -- *VLC* - =vlc= -- *MPlayer* - =mplayer= -- *Used by:* modules/media-utils.el (customizable via =cj/media-players=) -- *Functionality:* Playing media URLs -- *Required:* OPTIONAL (choose preferred player) -- *Install:* =sudo pacman -S mpv= (recommended) - -* PDF & Document Viewing - -** PDF Tools Server -- *Package:* Auto-built by pdf-tools package on first Emacs launch -- *Requires:* =poppler= library (usually already installed) -- *Used by:* modules/pdf-config.el -- *Functionality:* Fast PDF rendering in Emacs -- *Required:* OPTIONAL (Emacs can use DocView as fallback) -- *Install:* =sudo pacman -S poppler= -- *Note:* pdf-tools will compile its server component automatically - -** Zathura - External PDF Viewer -- *Package:* =zathura= and =zathura-pdf-mupdf= -- *Used by:* modules/pdf-config.el, modules/latex-config.el -- *Functionality:* External PDF viewing (alternative to pdf-tools) -- *Required:* OPTIONAL (keybinding: 'z' in pdf-view-mode) -- *Install:* =sudo pacman -S zathura zathura-pdf-mupdf= - -* LaTeX & Document Generation - -** LaTeX Distribution -- *Package:* =texlive-core= (basic) or =texlive-most= (comprehensive) -- *Used by:* modules/latex-config.el, modules/org-export-config.el -- *Functionality:* LaTeX document compilation -- *Required:* OPTIONAL (only if using LaTeX) -- *Install:* =sudo pacman -S texlive-core= OR =sudo pacman -S texlive-most= -- *Commands:* =latexmk=, =pdflatex=, =xelatex= - -** Pandoc - Universal Document Converter -- *Package:* =pandoc= -- *Used by:* modules/org-export-config.el, modules/mail-config.el -- *Functionality:* Convert between document formats (DOCX, EPUB, HTML, etc.) -- *Required:* OPTIONAL (enhances org-export capabilities) -- *Install:* =sudo pacman -S pandoc= - -* Programming Language Support - -** Language Servers (LSP) - -*** Go -- *gopls* - =go install golang.org/x/tools/gopls@latest= -- *goimports* - =go install golang.org/x/tools/cmd/goimports@latest= -- *staticcheck* - =go install honnef.co/go/tools/cmd/staticcheck@latest= -- *delve* (debugger) - =go install github.com/go-delve/delve/cmd/dlv@latest= -- *Used by:* modules/prog-go.el -- *Required:* OPTIONAL (only if using Go development) - -*** Python -- *python-lsp-server* - =pip install --user python-lsp-server[all]= -- *flake8* - =pip install --user flake8= -- *mypy* - =pip install --user mypy= (optional type checker) -- *Used by:* modules/prog-python.el -- *Required:* OPTIONAL (only if using Python development) -- *Note:* Install with =--user= flag (no sudo needed) - -*** C/C++ -- *clangd* - Provided by =clang= package -- *clang-format* - Provided by =clang= package -- *Package:* =clang= -- *Used by:* modules/prog-c.el -- *Install:* =sudo pacman -S clang= -- *Required:* OPTIONAL (only if using C/C++ development) - -*** Bash -- *bash-language-server* - =npm install -g bash-language-server= -- *shellcheck* - =shellcheck= package (linter) -- *shfmt* - =shfmt= package (formatter) -- *Used by:* modules/prog-shell.el -- *Install:* - #+BEGIN_SRC bash - sudo pacman -S shellcheck shfmt nodejs npm - npm install -g bash-language-server - #+END_SRC -- *Required:* OPTIONAL (only if using shell script development) - -*** JavaScript/TypeScript -- *typescript-language-server* - =npm install -g typescript-language-server= -- *eslint* - =npm install -g eslint= (optional linter) -- *prettier* - =npm install -g prettier= (optional formatter) -- *Used by:* modules/prog-lsp.el (detected via LSP mode hooks) -- *Required:* OPTIONAL (only if using JS/TS development) - -** Build Tools -- *make* - Usually pre-installed -- *cmake* - For C/C++ projects: =sudo pacman -S cmake= -- *gcc/g++* - C/C++ compiler: =sudo pacman -S gcc= -- *gdb* - Debugger: =sudo pacman -S gdb= -- *Required:* OPTIONAL (per-language basis) - -** Graphviz - Diagram Generation -- *Package:* =graphviz= -- *Used by:* modules/latex-config.el, modules/org-babel-config.el -- *Functionality:* Generate diagrams from dot files -- *Required:* OPTIONAL (only if using graphviz-dot-mode or org-babel dot blocks) -- *Install:* =sudo pacman -S graphviz= - -* Search & File Management - -** Ripgrep - Fast Search -- *Package:* =ripgrep= -- *Used by:* Implicit in many modern Emacs packages (consult, projectile, etc.) -- *Functionality:* Extremely fast code search -- *Required:* HIGHLY RECOMMENDED -- *Install:* =sudo pacman -S ripgrep= -- *Note:* Faster than grep, used by many completion frameworks - -** fd - Fast Find -- *Package:* =fd= -- *Used by:* Implicit in modern completion frameworks -- *Functionality:* Fast file finding (alternative to GNU find) -- *Required:* RECOMMENDED -- *Install:* =sudo pacman -S fd= - -** Deadgrep - Search Interface -- *Package:* Emacs package (uses ripgrep) -- *Used by:* modules/dirvish-config.el (keybinding: 'G') -- *Functionality:* Interactive ripgrep interface -- *Requires:* ripgrep (see above) - -* Desktop Integration - -** Desktop Notifications -- *Package:* =dunst= or =notification-daemon= -- *Used by:* modules/transcription-config.el, potentially others -- *Functionality:* Desktop notifications via =notify-send= -- *Required:* OPTIONAL (notifications will fail silently without it) -- *Install:* =sudo pacman -S dunst= (recommended) -- *Note:* Requires a notification daemon to be running - -** xdg-utils - File Opening -- *Package:* =xdg-utils= -- *Provides:* =xdg-open= command -- *Used by:* modules/external-open.el, modules/dirvish-config.el -- *Functionality:* Open files with default applications -- *Required:* RECOMMENDED (fallback exists) -- *Install:* =sudo pacman -S xdg-utils= - -** File Managers (Choose One - Optional) -- *Thunar* - =thunar= -- *Nautilus* - =nautilus= -- *Dolphin* - =dolphin= -- *PCManFM* - =pcmanfm= -- *Used by:* modules/dwim-shell-config.el -- *Functionality:* Open current directory in GUI file manager -- *Required:* OPTIONAL (choose one) -- *Install:* =sudo pacman -S thunar= (or your preferred file manager) - -* Web Browsers - -** Web Browsers (Choose One or More) -- *Chromium* - =chromium= -- *Google Chrome* - =google-chrome= (AUR) -- *Firefox* - =firefox= -- *Brave* - =brave-bin= (AUR) -- *Qutebrowser* - =qutebrowser= -- *Used by:* modules/browser-config.el -- *Functionality:* Opening web links -- *Required:* OPTIONAL (EWW built-in as fallback) -- *Install:* =sudo pacman -S firefox= (or your preferred browser) - -* Network Utilities - -** Curl - HTTP Client -- *Package:* =curl= -- *Used by:* scripts/oai-transcribe (OpenAI API calls), various other scripts -- *Functionality:* HTTP requests -- *Required:* Usually pre-installed, but verify -- *Install:* =sudo pacman -S curl= - -* Emacs Build Dependencies (For Building from Source) - -If using scripts/build-emacs.sh to build Emacs from source: - -#+BEGIN_SRC bash -sudo pacman -S jansson tree-sitter imagemagick mailutils \ - harfbuzz cairo gnutls libxml2 texinfo gtk3 \ - libgccjit git base-devel -#+END_SRC - -** Required for Native Compilation -- *libgccjit* - Enables native compilation of elisp files -- *Package:* =libgccjit= -- *Note:* Dramatically improves Emacs performance - -* Summary by Feature Area - -| Feature | Required Packages | Optional Packages | -|------------------------+--------------------------------+--------------------------------------| -| *Basic Emacs* | git | ripgrep, fd | -| *Recording* | ffmpeg, libpulse | - | -| *Transcription* | curl (for API) | python-openai-whisper | -| *Grammar* | - | languagetool, aspell | -| *Email* | mu, isync, msmtp | - | -| *Media* | yt-dlp, task-spooler | mpv, vlc | -| *PDF* | poppler | zathura | -| *LaTeX* | - | texlive-core/most | -| *Documents* | - | pandoc | -| *Notifications* | - | dunst | -| *File Opening* | - | xdg-utils | -| *C/C++* | - | clang, gdb | -| *Python* | - | python-lsp-server, flake8 | -| *Go* | - | gopls, goimports, delve | -| *Shell* | - | bash-language-server, shellcheck | -| *Search* | - | ripgrep (highly recommended) | -| *Desktop Integration* | - | xdg-utils, dunst | - -* Installation Notes - -** Package Manager Tips -1. *Python packages* install via =pip install --user= (no sudo needed) -2. *Go tools* install via =go install= (no system package manager) -3. *Node.js tools* install via =npm install -g= (requires =nodejs= package) -4. *AUR packages* require an AUR helper like =yay= or =paru= - -** Special Considerations -- *Tree-sitter grammars* are downloaded automatically by treesit-auto (not in .localrepo) -- *Native compilation* requires libgccjit if building Emacs from source -- *Local package repository* (.localrepo) contains Emacs packages, not system dependencies - -** Testing Installations -After installing dependencies, test key functionality: -#+BEGIN_SRC bash -# Test recording -emacs --eval "(require 'video-audio-recording)" --eval "(cj/recording-check-ffmpeg)" - -# Test grammar checker -~/.emacs.d/scripts/languagetool-flycheck ~/.emacs.d/tests/fixtures/grammar-errors-basic.txt - -# Test transcription wrapper (if using local whisper) -~/.emacs.d/scripts/local-whisper /path/to/audio.m4a - -# Run Emacs test suite -cd ~/.emacs.d && make test -#+END_SRC - -* Next Steps - -** TODO Compare with archsetup script -- [ ] Analyze archsetup script to see which dependencies are already installed -- [ ] Identify gaps where Emacs dependencies are missing -- [ ] Ensure archsetup script installs all required dependencies -- [ ] Document any Emacs-specific configuration needed beyond package installation - -** TODO Create dependency verification script -- [ ] Script to check which dependencies are installed -- [ ] Report missing optional dependencies by feature area -- [ ] Provide installation commands for missing dependencies - -** TODO Add to documentation -- [ ] Link from main README -- [ ] Add to setup instructions -- [ ] Include in archsetup script comments |
