Local Documentation System

Overview

Arch Linux ships documentation across four locations. Most engineers only use man. This reference maps every location, what’s stored there, how to read it, and what’s directly relevant to the domus stack.

Location Count Purpose Reader

/usr/share/doc/

178 packages

Package-shipped HTML guides, examples, FAQs

w3m, browser

/usr/share/man/

20,905 pages

Primary tool documentation (flags, syntax, config formats)

man, w3m via man -Hcat

/usr/share/info/

95+ entries

GNU tool tutorials β€” longer and more detailed than man pages

info, pinfo

/usr/share/zsh/functions/Completion/Unix/

461 files

Zsh completions β€” reveals every flag a tool supports

less, nvim

Man Pages by Section

Section Pages Content

1

2,229

User commands (daily tools)

2

525

System calls (kernel interface)

3

13,028

Library functions (C, crypto, etc.)

4

41

Device files (/dev/*)

5

540

Config file formats (man 5 sshd_config, man 5 sudoers)

7

571

Overviews and conventions

8

831

System admin commands (mount, systemctl, etc.)

Section 5 is underused. man 5 sudoers, man 5 sshd_config, man 5 journald.conf, man 5 nft β€” these document config file syntax that most people guess at.

/usr/share/doc β€” HTML Guides (w3m-readable)

Shell & Language References

Package Key Files What It Covers Status

bash

bashref.html, FAQ

Complete GNU Bash Reference Manual β€” expansions, builtins, traps, arrays, arithmetic, readline

❌ Not read

lua

manual.html

Lua 5.4 complete reference β€” metatables, coroutines, string patterns, C API

❌ Not read

go

go_spec.html, go_mem.html

Go language specification, memory model

❌ Not read

kitty

html/ (266 files, 23MB)

Full terminal emulator docs β€” kittens, graphics protocol, SSH kitten, hints, config

❌ Not read

Security & Authentication

Package Key Files What It Covers Status

Linux-PAM

Linux-PAM_SAG.html (Sysadmin), Linux-PAM_ADG.html (App Dev), Linux-PAM_MWG.html (Module Writer)

All three PAM guides β€” every pam_* module documented with examples

❌ Not read

gnupg

examples/, FAQ, DETAILS

GPG config examples, systemd user integration, implementation details

❌ Not read

cryptsetup

FAQ.md, LUKS2-locking.txt

LUKS FAQ β€” edge cases, recovery, performance tuning

❌ Not read

sudo

examples/sudoers, README.LDAP.md

Example sudoers config, LDAP-integrated sudo

❌ Not read

krb5

examples/krb5.conf, examples/kdc.conf, examples/kerberos.schema

Kerberos reference configs β€” diff against own infrastructure

❌ Not read

Infrastructure & Networking

Package Key Files What It Covers Status

nftables

examples/ (ct_helpers, load_balancing, secmark, sets_and_maps)

Production nftables patterns β€” connection tracking, load balancing, security marking

❌ Not read

systemd

ENVIRONMENT.md, TRANSIENT-SETTINGS.md, README.logs

systemd environment variable handling, transient units, journal architecture

❌ Not read

NetworkManager

examples/server.conf

NetworkManager dispatcher and config examples

❌ Not read

Tools & Workflow

Package Key Files What It Covers Status

stow

manual-single.html, manual-split/

Full GNU Stow manual β€” symlink farm management (dots-quantum depends on this)

❌ Not read

lazygit

Custom_Command_Keybindings.md, Stacked_Branches.md, Fixup_Commits.md, Config.md

Power-user lazygit features β€” custom commands, stacked branches, fixup workflows

❌ Not read

d2

docs/, README.md

D2 diagramming language documentation

❌ Not read

cmake

html/ (2,280 files, 37MB)

Complete CMake reference manual

❌ Not read


/usr/share/info β€” GNU Info Pages

INFO: Info pages are tutorial-style and significantly longer than man pages. For GNU tools, this is where the real depth lives.

Shell & Text Processing (Highest Value)

Topic What You Get Over man Status

info bash

Same as bashref.html β€” navigable with info keybindings

❌ Not read

info coreutils

Every GNU core utility documented in depth β€” sort, cut, tr, tee, env, printf, test, expr, wc, uniq, comm, paste, join, nl, od, fmt, pr, fold

❌ Not read

info sed

Full sed manual with worked examples, beyond what man sed covers

❌ Not read

info grep

Full grep manual β€” regex syntax differences (BRE vs ERE vs PCRE), performance notes

❌ Not read

info gawk

Complete AWK reference β€” more thorough than man awk. Arrays, functions, I/O, extensions

❌ Not read

info find

Full find + xargs manual β€” exec vs execdir, primaries, operators, security considerations

❌ Not read

info make

GNU Make manual β€” pattern rules, automatic variables, functions, eval, include

❌ Not read

info tar

Archive operations β€” incremental, remote, multivolume

❌ Not read

info readline

Input editing library β€” affects bash, python REPL, gdb, every readline-enabled tool

❌ Not read

info diffutils

diff/cmp/sdiff β€” output formats, context vs unified, directory comparison

❌ Not read

Crypto & Security

Topic Content Status

info gnupg

GPG operations β€” key management, trust model, agent

❌ Not read

info gnutls

TLS library β€” cipher suites, certificate handling

❌ Not read

Build & Development

Topic Content Status

info stow

Same as manual-single.html β€” symlink farm algorithms, ignore lists, conflicts

❌ Not read

info autoconf

Configure script generation (understanding ./configure output)

❌ Not read

info bison

Parser generator β€” useful for understanding grammar/parsing concepts

❌ Not read

info libc

GNU C Library β€” system calls, signals, processes, sockets, file I/O

❌ Not read

info wget

Download utility β€” mirroring, recursive, timestamping

❌ Not read


Man Pages β€” Tool Coverage Audit

Present (man page installed)

Daily CLI Tools

jq, rg (ripgrep), fd, bat, delta, fzf, w3m, tmux, age, stow, gh (GitHub CLI), d2, kitty

System Administration

journalctl, systemctl, ip, ss, nft, pacman, openssl, ssh, curl, docker, nvim

Desktop Environment

hyprctl, waybar, grim, slurp, wl-copy

Programming

rustc, lua

Missing (not installed)

podman, ansible, vault (HashiCorp), virsh, qemu-system-x86_64, go, lazygit

Install missing docs with pacman -S <package> or look for -docs companion packages via pacman -Ss '<package>-docs'.

Git Man Pages (241 pages)

Arch does NOT package git-doc (the HTML user manual, howtos, and API docs). The man page references to /usr/share/doc/git-doc/ are upstream paths that don’t exist on Arch. However, git ships 241 man pages that cover the same content.

Section 7 β€” Conceptual Documentation (The User Manual)

These 17 pages replace the HTML user manual. Read them with man <page>.

Page What It Covers Status

gitdatamodel(7)

Git’s core data model β€” blobs, trees, commits, refs. This is the "Git concepts" chapter from the missing HTML manual.

❌ Not read

gitrevisions(7)

HEAD~3, @{upstream}, A..B vs A…​B, reflog syntax. Most people never learn this properly.

❌ Not read

gitworkflows(7)

Recommended branching/merge strategies β€” topic branches, integration, graduation

❌ Not read

gitcli(7)

Command-line conventions β€” flag parsing, -- separator, option ordering rules

❌ Not read

gitfaq(7)

Official FAQ β€” common pitfalls, how to undo things, credentials, configuration

❌ Not read

giteveryday(7)

Minimum command set by role: individual developer, participant, integrator, admin

❌ Not read

gitcore-tutorial(7)

Plumbing commands β€” how git actually works under the hood (hash-object, cat-file, update-index)

❌ Not read

gittutorial(7)

Introductory tutorial β€” clone, commit, branch, merge, log

❌ Not read

gittutorial-2(7)

Part two β€” object model, index, low-level commands

❌ Not read

gitcredentials(7)

Username/password storage β€” helpers, credential caching, per-host config

❌ Not read

gitdiffcore(7)

Diff pipeline internals β€” rename detection, pickaxe, order files

❌ Not read

gitglossary(7)

Every git term defined β€” fast-forward, detached HEAD, refspec, pathspec, etc.

❌ Not read

gitnamespaces(7)

Namespace isolation for hosting multiple repos in one

❌ Not read

gitpacking(7)

Pack files, deltification, gc β€” how git stores objects efficiently

❌ Not read

gitsubmodules(7)

Mounting repos inside repos β€” config, update, sync, deinit

❌ Not read

gitremote-helpers(7)

Custom transport protocols β€” writing helpers for non-standard remotes

❌ Not read

gitcvs-migration(7)

CVS to Git migration patterns (historical reference)

❌ Not read

Discovery Commands

# List all 241 git man pages
man -k '^git' | awk '{print $1}' | sort -u
# Section 7 only (conceptual docs)
man -k '^git' | grep '(7)' | sort
# Section 1 only (command reference)
man -k '^git' | grep '(1)' | sort
# Section 5 only (config file formats)
man -k '^git' | grep '(5)' | sort
Arch does not package git-doc. The HTML files at /usr/share/doc/git-doc/ referenced in man git are Debian/Fedora paths. All conceptual content is available via the section 7 man pages above.

Zsh Completions as Documentation

461 completion files in /usr/share/zsh/functions/Completion/Unix/.

Key tools with completions (reveals every flag):

_awk, _curl, _find, _git, _gpg, _ip, _jq, _make, _mount, _rsync, _sed, _ssh, _sudo, _tmux

# Read a completion file to discover flags
less /usr/share/zsh/functions/Completion/Unix/_git

# Count how many flags git exposes
wc -l /usr/share/zsh/functions/Completion/Unix/_git

Exploration Commands

Discovery

# Find all HTML docs (best for w3m reading)
find /usr/share/doc -name '*.html' -type f | awk -F/ '{print $5}' | sort -u
# Find packages with example configs
find /usr/share/doc -type d -name examples | awk -F/ '{print $5}'
# List available info pages
ls /usr/share/info/*.info* | sed 's/\.info.*$//' | awk -F/ '{print $NF}' | sort -u

Package Interrogation

# What files did a package install?
pacman -Ql systemd | grep -E 'doc|example|share'
# Who owns this file?
pacman -Qo /usr/share/doc/kitty/html/conf.html
# Search ALL packages (even uninstalled) for a file
pacman -Fi journalctl

Getting More Docs

# Find -docs companion packages
pacman -Ss -- '-docs'
# Reading man pages in w3m
man -Hcat jq

Learning Log

Track insights gained from reading local documentation. Date each entry.