aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/meta/base.txt
blob: d22dc9cbe35a5671eb56eff963469aa5be395308 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# --- core ---
# Leaf CLI / editor / multiplexer / git stack / json+yaml / system viewers /
# net / debug+trace / docs / secrets — all provisioned via Home-Manager
# from nix/common.nix and live under ~/.nix-profile/bin (first in PATH).
# What stays on pacman in this section is the pieces tightly coupled to
# the distro (man-db/man-pages files), the system runtime (sudo-rs,
# base/base-devel), and things needed pre-bootstrap or by other system
# packages transitively.
acpid
arch-audit
base
base-devel
btrfs-progs
chezmoi
cpupower
dashbinsh
dosfstools
fwupd
iwd
kernel-modules-hook
linux
linux-firmware
linux-hardened
linux-hardened-headers
lostfiles
lshw
man-db
man-pages
nfs-utils
nftables
ocl-icd
overdue
pacman-cleanup-hook
pacman-contrib
paru
pbzip2
pigz
pkgstats
qrencode
rebuild-detector
reflector
sbctl
smartmontools
sudo-rs
systemd-resolvconf
tlp
torsocks
wireguard-tools
zram-generator

# --- bluetooth ---
bluez
bluez-utils
ell

# --- thunderbolt ---
bolt

# --- nix (multi-user daemon mode for hermetic per-project dev shells via
# `nix develop` + direnv `use flake`. Not a replacement for paru/pacman,
# not home-manager, not NixOS — just a sandboxed second package manager
# that gives every project a reproducible toolchain pinned in its own
# flake.lock. Pairs with: systemd-units/system.txt (enables
# nix-daemon.socket), etc/nix/nix.conf, dot_config/direnv/direnvrc,
# dot_config/nix/templates/. nix-direnv itself is loaded at runtime via
# direnv's source_url with a content hash, so no extra package needed.) ---
nix

# --- dev (system-coupled runtimes only — base-devel ships gcc/ld/as/make
# for general-purpose builds; the orchestrators (cmake/ninja/ccache/
# sccache), debuggers and toolchain-specific compilers/linkers live in
# nix instead. clang/lld/mold/rustup/go are intentionally absent — when
# a project needs them, the project's flake.nix + direnv `.envrc`
# provide them.) ---
perf             # links against running kernel ABI; must match kernel pkg
podman-compose
podman-docker

# --- sound ---
alsa-utils
pipewire
pipewire-alsa
pipewire-jack
pipewire-pulse
playerctl
pulsemixer
# noisetorch  # optional

# --- fonts ---
noto-fonts-emoji
otf-font-awesome
otf-latinmodern-math
ttf-dejavu
ttf-fira-code
ttf-noto-nerd
woff2-font-awesome

# --- wayland session ---
# Compositor
sway
# Auto-tile daemon: splits new containers along the focused window's
# longest side via sway IPC. Configured in ~/.config/swayr/config.toml
# ([layout].auto_tile = true). Daemon runs as swayrd.service under
# sway-session.target.
swayr
xdg-desktop-portal-wlr
xdg-desktop-portal-gtk
qt5-wayland
qt6-wayland

# Bar & launcher
waybar
fuzzel
# wofi: secondary picker used only by mako-history.sh — needs --hide-search
# and per-key custom bindings, neither of which fuzzel supports.
wofi

# Terminal
ghostty

# Notifications
mako
libnotify
poweralertd

# Lock screen
swaylock
swayidle
# Bridge browsers' org.freedesktop.ScreenSaver inhibits to systemd-inhibit
# so swayidle honors them (e.g. video calls, fullscreen video). Without
# this swayidle would still time out and lock during a Meet call.
inhibridge

# org.freedesktop.secrets D-Bus implementation backed by pass. Required
# by Signal Desktop (flatpak) and other libsecret consumers. Ships both
# a D-Bus activation file and a systemd user unit; we enable the unit
# explicitly so it's visible in `systemctl --user status`. Stores
# secrets under ~/.password-store/secret-service/.
pass-secret-service-bin

# Ships ZSA's upstream udev rules (50-oryx.rules, 50-wally.rules) to
# /usr/lib/udev/rules.d/ so VID 3297 hidraw nodes get TAG+=uaccess.
# Required for VIA / usevia.app (WebHID) and Wally flashing of the
# ErgoDox EZ / Moonlander / Voyager.
zsa-udev

# Clipboard
wl-clipboard
cliphist

# Screenshots & recording
grim
slurp
wf-recorder

# Wayland typing (used by dictate, etc)
wtype

# Emoji picker (AUR; tiny shell script, multi-backend — we drive it through wofi)
bemoji

# Image viewer
imv

# QR
zbar
xorg-xwayland # needed for zbarcam's X11 preview

# Document viewer is the org.pwmt.zathura flatpak (see meta/flatpak.txt) so
# PDFs handed off from the browser/mail sandbox stay sandboxed.

# Misc
brightnessctl
# Userspace sandbox helper (firejail-less). Used by ~/.local/bin wrappers
# for mpv/yt-dlp/streamlink to hide secrets from network parsers; also
# pulled transitively by flatpak.
bubblewrap
# Volume/brightness OSD overlay (driven by ~/.config/sway/{vol,brightness}-osd.sh
# writing percentages to $XDG_RUNTIME_DIR/wob.sock).
wob
libfido2
perl-file-mimeinfo
qt5ct
qt6ct
xdg-user-dirs
wl-mirror

# --- browser (LibreWolf flatpak; arkenfox-user.js is the host-side
# hardening overlay deployed by run_onchange_after_deploy-firefox.sh.tmpl) ---
arkenfox-user.js

# --- mail (host-side bits the org.mozilla.thunderbird flatpak depends on) ---
protonmail-bridge-core
# git send-email Perl prereqs (SMTP via local Bridge on 127.0.0.1:1025)
perl-authen-sasl
perl-mime-tools
perl-net-smtp-ssl
# Native messaging host binary for External Editor Revived; bridged into
# the TB flatpak by run_onchange_after_deploy-tb-eer.sh.tmpl.
external-editor-revived

# --- media (native mpv kept for streamlink piping and the /tmp/mpvsocket
# IPC integration; the io.mpv.Mpv flatpak (meta/flatpak.txt) is set as
# the mimeapps default for video/* so files handed off by the
# browser/mail sandbox stay sandboxed) ---
mpv
streamlink
yt-dlp

# --- desktop extras ---
syncthing
udisks2

# Flatpak runtime (apps tracked in meta/flatpak.txt)
flatpak

# Smartcard stack (cartão de cidadão reader + PKCS#11 bridge into flatpak
# browsers). pcscd.socket is enabled by systemd-units/system.txt. pcsclite
# itself is also needed by Home-Manager's gnupg/scdaemon (see nix/host.nix's
# scdaemon.conf — points scdaemon at /usr/lib/libpcsclite.so.1).
pcsclite
ccid

# OCR (used by ~/.local/bin/ocr)
tesseract
tesseract-data-eng
tesseract-data-por

# Speech-to-text (used by ~/.local/bin/dictate)
# `base` multilingual: ~142 MB, ~7-10x realtime on a 4c CPU. Override
# WHISPER_MODEL in the script's environment to use a different ggml model.
whisper.cpp-vulkan
whisper.cpp-model-base