feat: complete and visually audit the Hyprland workstation
Refresh system/tool pins, install official Element Nightly, expand development tools, and finish desktop workflows with a shared charcoal/gold design. Retain host-specific updates and NixOS recovery generations.
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
# Bounded, offline smoke tests. No user caches, credentials, servers or downloads.
|
||||
{ config, pkgs }:
|
||||
pkgs.runCommand "workstation-tools-check"
|
||||
{
|
||||
nativeBuildInputs = [ pkgs.python3 ];
|
||||
}
|
||||
''
|
||||
export HOME="$TMPDIR/home"
|
||||
mkdir -p "$HOME"
|
||||
export PATH=${config.system.path}/bin:$PATH
|
||||
for tool in pi git git-lfs gh glab cmake ninja gdb \
|
||||
cargo rustc rustfmt cargo-clippy cargo-nextest go gopls dlv uv ruff pyright \
|
||||
node pnpm tsc biome bun deno shellcheck shfmt just hyperfine watchexec \
|
||||
nom nvd nix-tree nix-diff statix deadnix nixd \
|
||||
jq yq jless mlr csvlens sqlite3 duckdb pgcli \
|
||||
xh grpcurl websocat aws skopeo buildah podman podman-compose dive \
|
||||
kubectl helm k9s kubectx stern kustomize tofu ansible \
|
||||
age sops gpg gitleaks trivy restic rclone dust duf ncdu procs lnav \
|
||||
ffmpeg magick mediainfo exiftool pdftotext pandoc yt-dlp chafa desktop-help \
|
||||
valgrind heaptrack rr eu-readelf bpftrace java javac mvn gradle kotlin \
|
||||
dotnet ruby bundle php composer zig zls elixir erl protoc buf \
|
||||
dprint stylua taplo marksman markdownlint-cli2 sqlfluff hadolint ast-grep rga \
|
||||
hurl oha step mkcert cosign syft grype mosh sshfs asciinema vhs; do
|
||||
command -v "$tool" >/dev/null
|
||||
done
|
||||
test -x ${config.home-manager.users.dev.programs.lazygit.package}/bin/lazygit
|
||||
test -x ${config.home-manager.users.dev.programs.tmux.package}/bin/tmux
|
||||
pi --version
|
||||
uv --version
|
||||
ruff --version
|
||||
cargo --version
|
||||
rustc --version
|
||||
go version
|
||||
node --version
|
||||
java -version
|
||||
dotnet --version
|
||||
zig version
|
||||
ruby --version
|
||||
php --version | head -1
|
||||
printf 'select 42;\n' | sqlite3 | grep -qx 42
|
||||
python - <<'PY'
|
||||
import importlib.util
|
||||
spec = importlib.util.spec_from_file_location("desktop_help", "${./desktop-help.py}")
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(module)
|
||||
rows = module.rows([
|
||||
{"modmask": 65, "key": "H", "description": "Help"},
|
||||
{"modmask": 0, "key": "Print", "description": "Capture"},
|
||||
{"modmask": 64, "key": "Q", "description": "Close; $(touch /not-executed)"},
|
||||
{"modmask": 0, "key": "", "keycode": 20, "description": "Code", "submap": "resize"},
|
||||
{"key": "undocumented"},
|
||||
])
|
||||
assert "Help Super + Shift + H" in rows
|
||||
assert "Code [resize] code:20" in rows
|
||||
assert len(rows) == 4
|
||||
PY
|
||||
touch "$out"
|
||||
''
|
||||
Reference in New Issue
Block a user