feat: add Tor Browser to workstation applications

This commit is contained in:
OpenAI Coding Assistant
2026-09-06 12:45:42 -05:00
parent 35ca88d517
commit 2311330dbf
3 changed files with 8 additions and 2 deletions
+2 -2
View File
@@ -16,7 +16,7 @@ Flat, explicit NixOS modules with locked inputs. Required setup belongs here—n
| `tools.nix`, `network.nix` | Development toolkit, terminal/shell, rootless Podman, VPN/proxy clients, local Tor service and network diagnostics |
| `colors.nix`, `wallpaper.nix`, `wallpaper.svg` | Shared One Ring palette, hash-pinned wallpaper and original fallback artwork |
| `desktop.nix`, `hyprland.lua`, `anyrun.css`, `swaync.css`, `desktop-help.py`, `desktop-actions.py` | Session/bar, launchers, described help, capture, clipboard, notifications, lock/idle and styling |
| `apps.nix`, `element-nightly.nix` | Firefox ESR, KeePassXC, Thunderbird, Steam, pinned Element Nightly, Slack, file/media viewers and MIME defaults |
| `apps.nix`, `element-nightly.nix` | Firefox ESR, Tor Browser, KeePassXC, Thunderbird, Steam, pinned Element Nightly, Slack, file/media viewers and MIME defaults |
| `neovim.nix`, `neovim-test.lua` | Unmodified upstream editor deployment and opt-in native runtime audit |
| `updates.nix`, `update-system.sh`, `update-test.py` | Shared dev-owned checkouts, daily boot-staged updates and failure/concurrency regression tests |
| `switch-system.sh`, `switch-test.py` | Same installed manual apply/preview command on both hosts, with host identity supplied by Nix |
@@ -114,7 +114,7 @@ curl --fail --show-error --max-time 60 --proxy socks5h://127.0.0.1:9050 \
torsocks curl --fail --show-error --max-time 60 https://check.torproject.org/api/ip
```
`torsocks` and `proxychains4` are opt-in wrappers, not sandboxes: static binaries and applications that bypass their hooks are not reliably covered. Tor carries TCP, not arbitrary UDP/ICMP; do not assume tools such as fping, raw-packet nmap or traceroute run through it. Keep ordinary DNS lookups out of workflows that require Tor-side resolution. Use Tor Browser separately for browser anonymity rather than treating a generic browser's proxy setting as equivalent.
`torsocks` and `proxychains4` are opt-in wrappers, not sandboxes: static binaries and applications that bypass their hooks are not reliably covered. Tor carries TCP, not arbitrary UDP/ICMP; do not assume tools such as fping, raw-packet nmap or traceroute run through it. Keep ordinary DNS lookups out of workflows that require Tor-side resolution. **Tor Browser is installed by `apps.nix`**: launch `tor-browser` or select **Tor Browser** in the application launcher after applying the configuration. It retains its separate profile and upstream privacy defaults; Firefox remains the default browser. Tor Browser is not simply a generic browser pointed at the system SOCKS port, and it is not auto-started.
## Build and apply
+3
View File
@@ -100,6 +100,9 @@ in
home-manager.users.dev = {
home.packages = with pkgs; [
# Keep Tor Browser's separate profile and upstream privacy defaults.
# This is not Firefox pointed at the system Tor SOCKS port.
tor-browser
thunderbird
file-roller
imv
+3
View File
@@ -1,5 +1,6 @@
# Bounded, offline smoke tests. No user caches, credentials, servers or downloads.
{ config, pkgs }:
assert builtins.elem pkgs.tor-browser config.home-manager.users.dev.home.packages;
pkgs.runCommand "workstation-tools-check"
{
nativeBuildInputs = [ pkgs.python3 ];
@@ -23,6 +24,8 @@ pkgs.runCommand "workstation-tools-check"
hurl oha step mkcert cosign syft grype mosh sshfs asciinema vhs switch-system; do
command -v "$tool" >/dev/null
done
# Inspect only: don't start a graphical browser or make Tor connections.
test -x ${pkgs.tor-browser}/bin/tor-browser
test -x ${config.home-manager.users.dev.programs.lazygit.package}/bin/lazygit
test -x ${config.home-manager.users.dev.programs.tmux.package}/bin/tmux
switch-system --help > "$TMPDIR/switch-help"