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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

lua

manual.html

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

go

go_spec.html, go_mem.html

Go language specification, memory model

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

kitty

html/ (266 files, 23MB)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gnupg

examples/, FAQ, DETAILS

GPG config examples, systemd user integration, implementation details

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

cryptsetup

FAQ.md, LUKS2-locking.txt

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

sudo

examples/sudoers, README.LDAP.md

Example sudoers config, LDAP-integrated sudo

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

krb5

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

Kerberos reference configs β€” diff against own infrastructure

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

systemd

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

systemd environment variable handling, transient units, journal architecture

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

NetworkManager

examples/server.conf

NetworkManager dispatcher and config examples

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

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)

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

lazygit

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

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

d2

docs/, README.md

D2 diagramming language documentation

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

cmake

html/ (2,280 files, 37MB)

Complete CMake reference manual

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10


/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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info sed

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info grep

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info gawk

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info find

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info make

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info tar

Archive operations β€” incremental, remote, multivolume

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info readline

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info diffutils

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

Crypto & Security

Topic Content Status

info gnupg

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info gnutls

TLS library β€” cipher suites, certificate handling

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

Build & Development

Topic Content Status

info stow

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info autoconf

Configure script generation (understanding ./configure output)

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info bison

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info libc

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

info wget

Download utility β€” mirroring, recursive, timestamping

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10


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.

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitrevisions(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitworkflows(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitcli(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitfaq(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

giteveryday(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitcore-tutorial(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gittutorial(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gittutorial-2(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitcredentials(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitdiffcore(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitglossary(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitnamespaces(7)

Namespace isolation for hosting multiple repos in one

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitpacking(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitsubmodules(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitremote-helpers(7)

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

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

gitcvs-migration(7)

CVS to Git migration patterns (historical reference)

β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘ 0/10

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.