From f87595d6e4f0b3b27fc65cadbc4ef959c2abd4d8 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 2 Jul 2026 17:50:49 -0400 Subject: feat(packages): retire zoom, meetings open in the browser The dotfiles zoom-web handler rewrites zoommtg:// links to the web client, so the AUR zoom package leaves the install. The retired-package VM assertion now covers blueman and zoom. --- archsetup | 2 +- scripts/testing/tests/test_packages.py | 11 +++++++---- todo.org | 5 +++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/archsetup b/archsetup index 353c84f..d6006ea 100755 --- a/archsetup +++ b/archsetup @@ -2715,7 +2715,7 @@ supplemental_software() { else aur_install slack-desktop # team messaging fi - aur_install zoom # video conferencing + # zoom retired 2026-07-02: zoom-web (dotfiles) opens meetings in the browser pacman_install iperf3 # network bandwidth testing pacman_install bind # DNS utilities (dig, host, nslookup) pacman_install net-tools # network tools (netstat for security auditing) diff --git a/scripts/testing/tests/test_packages.py b/scripts/testing/tests/test_packages.py index 74737e2..5e90cb9 100644 --- a/scripts/testing/tests/test_packages.py +++ b/scripts/testing/tests/test_packages.py @@ -69,11 +69,14 @@ def test_bluetooth_stack_installed(host, pkg): assert host.package(pkg).is_installed +RETIRED_PACKAGES = ["blueman", "zoom"] # bt panel replaced blueman; zoom-web replaced zoom + + @pytest.mark.attribution("archsetup") -def test_blueman_not_installed(host): - # blueman was retired 2026-07-02 in favor of the dotfiles bt panel; - # its reappearance means the desktop_environment step regressed. - assert not host.package("blueman").is_installed +@pytest.mark.parametrize("pkg", RETIRED_PACKAGES) +def test_retired_package_not_installed(host, pkg): + # A reappearance means an install step regressed. + assert not host.package(pkg).is_installed @pytest.mark.attribution("archsetup") diff --git a/todo.org b/todo.org index 70e058b..2202092 100644 --- a/todo.org +++ b/todo.org @@ -32,8 +32,9 @@ Initial spec written 2026-07-02: [[file:docs/design/2026-07-02-net-panel-other-i ** TODO [#B] File-manager swallow pattern :feature:hyprland: When the file manager launches another app, it should hide to a special workspace (the "swallow" pattern) and return when that process ends, rather than vanishing. Today it disappears with no signal of whether it's coming back, so the user can't tell success from failure — they should quit explicitly instead. Origin: roam inbox capture. -** TODO [#C] Open meeting links in the browser instead of the Zoom app :feature: -Route Zoom (and similar) meeting links to the browser web client rather than launching the native Zoom app — e.g. firefox/chrome extensions, or a =zoommtg://= URL handler / desktop-file override that rewrites to the web-client URL. Decide the mechanism (extension vs handler) before building. Origin: roam inbox capture. +** DONE [#C] Open meeting links in the browser instead of the Zoom app :feature: +CLOSED: [2026-07-02 Thu] +Shipped 2026-07-02, mechanism per Craig ("the Linux zoom app is really terrible — one less dependency"): a =zoommtg://= URL handler, and the native app retired outright. =zoom-web= (dotfiles 187414a, 10 tests) registers as the xdg default for x-scheme-handler/zoommtg via =zoom-web.desktop=; Zoom's launch-page bounce rewrites deterministically to =https:///wc/join/?pwd=…= in the default browser (subdomain hosts preserved, tracking params dropped, start action mapped, malformed URIs notify + exit 2). The registration landed in the stowed mimeapps.list, so it ships with dotfiles. Zoom uninstalled from velox (=pacman -Rns=), its windowrules removed from hyprland.conf, =aur_install zoom= dropped from archsetup, and the VM retired-package assertion now covers blueman + zoom. Known limit, accepted: a host who disabled join-from-browser blocks the web client — that meeting needs the native app installed ad hoc. Ratio trip: =pacman -Rns zoom= + the pull brings the handler; run =xdg-mime default zoom-web.desktop x-scheme-handler/zoommtg= if the stowed mimeapps.list doesn't take effect. ** TODO [#B] Scrolling/Carousel layout: frame fit + wrap-around :hyprland: :PROPERTIES: -- cgit v1.2.3