Files
blomarchy/docs/menu.md
T

6.1 KiB

Menu tree

menu/menu.jsonc is the single source for both menus: the apps menu on Super + Space and the root menu on Super + Alt + Space. There is no default tree merged underneath it and no user extension file layered on top, so a row sits where the file puts it. That is why the before: hint machinery the old menu fork carried is gone.

Trimmed from upstream

Upstream ships 338 rows. This tree has 260. What came out:

Section Dropped Why
install.* 35 of 91 AI tools, editors, terminals, services, web apps, preinstalls. Browsers, gaming, dev languages and the Windows VM were restored on request
remove.* 16 of 60 the same set in reverse, plus security and dictation removal
setup.default.agent.* 14 AI agent defaults
update.channel.* 5 release channels for a package that will not exist
learn.* 4 Omarchy's manual and Discord, plus tmux and herdr keybindings
trigger.transcode 1 transcode dropped
style.unlock 1 plymouth theme switcher; blob-boot-splash covers splash images
update.config.tmux 1 tmux dropped
setup.reset 1 factory reset restores Omarchy defaults, which is wrong here

Docs rows now open in the browser (blob-launch-browser) rather than as web apps, which also keeps them working whichever way the web app question lands.

Commands the menu still needs

Every command the tree references is in bin/. What follows is the record of what Phase 6 had to fill:

  • audio: blob-audio-restart
  • bar: blob-bar
  • bluetooth: blob-bluetooth-restart
  • branding: blob-branding-about, blob-branding-screensaver
  • capture: blob-capture-qr, blob-capture-record, blob-capture-record-webcam, blob-capture-screenshot, blob-capture-text
  • drive: blob-drive-password
  • hibernation: blob-hibernation-available
  • hw: blob-hw-dell-xps-haptic-touchpad, blob-hw-fingerprint, blob-hw-hybrid-gpu, blob-hw-laptop, blob-hw-touchpad, blob-hw-touchscreen, blob-hw-webcam
  • hypr: blob-hypr-window-gaps-toggle, blob-hypr-window-single-square-aspect-toggle, blob-hypr-workspace-layout-toggle
  • install: blob-install-font
  • launch: blob-launch-about, blob-launch-config-editor, blob-launch-screensaver
  • menu: blob-menu-emoji, blob-menu-keybindings, blob-menu-plugin, blob-menu-share, blob-menu-timezone
  • network: blob-network-dns, blob-network-restart, blob-network-status
  • pkg: blob-pkg-aur-install, blob-pkg-install, blob-pkg-remove
  • plugin: blob-plugin-add
  • refresh: blob-refresh-hyprland, blob-refresh-hyprsunset, blob-refresh-plymouth, blob-refresh-shell
  • reminder: blob-reminder
  • restart: blob-restart-hyprsunset, blob-restart-trackpad, blob-restart-xcompose
  • setup: blob-setup-direct-boot, blob-setup-security-fido2, blob-setup-security-fingerprint, blob-setup-security-sshd, blob-setup-security-sudoless-docker
  • sudo: blob-sudo-docker, blob-sudo-passwordless
  • system: blob-system-lock, blob-system-logout, blob-system-reboot, blob-system-shutdown
  • theme: blob-theme-update
  • toggle: blob-toggle-bar, blob-toggle-crash-capture, blob-toggle-enabled, blob-toggle-glass, blob-toggle-hybrid-gpu, blob-toggle-idle, blob-toggle-nightlight, blob-toggle-screensaver, blob-toggle-silencing, blob-toggle-touchpad, blob-toggle-touchscreen
  • update: blob-update, blob-update-firmware, blob-update-time

Every one of these is reachable from a menu row, so a missing command shows up as a row that does nothing rather than a broken menu.

Reversed from the plan

02-keep-drop.md put omarchy-setup-* in the drop list as one-time setup to run by hand. The menu disagrees: Setup > Security has rows for fingerprint, fido2, sshd and sudoless docker, and Setup > Direct Boot has one too. Those scripts are small, self-contained and genuinely useful, so they are vendored and the rows stay.

blob-capture-record-webcam also stays a separate command rather than folding into blob-capture-record --webcam as planned, because the menu row calls it directly and upstream ships it as its own script.

Status

Every row in this tree resolves to a command in bin/. The only unbacked blob-* names left anywhere in the repo are blob-launch-webapp and blob-launch-or-focus-webapp, both referenced from the webapp helper in hypr/default/helpers.lua and reachable only from a binding that uses { webapp = ... }. No such binding ships. They stay as the hook for whichever way the web app question lands.

Restored install and remove subtrees

Browsers, gaming, dev languages and the Windows VM came back after the first pass cut them, which took 82 rows and 38 commands with them.

Subtree Rows Covers
Browsers 14 Chrome, Edge, Brave, Brave Origin, Firefox, Zen, install and remove
Gaming 20 Steam, RetroArch, Minecraft, Lutris, Heroic, GeForce NOW, Xbox Cloud, Xbox controllers, Battle.net
Development 44 Ruby on Rails, JavaScript (Node/Bun/Deno), Go, PHP (+ Laravel, Symfony), Python, Elixir (+ Phoenix), Zig, Rust, Java, .NET, OCaml, Clojure, Scala
Windows VM 2 install and remove

This settled the web app question

Xbox Cloud Gaming and GeForce NOW are web apps, not packages. Restoring gaming therefore pulled in blob-webapp-install, blob-webapp-remove, blob-launch-webapp and blob-launch-or-focus-webapp, and those fall back to chromium.desktop for any browser that is not Chrome, Brave, Edge, Opera, Vivaldi or Helium. Zen is Firefox-based.

So chromium stays, as the web app runtime. The webapp helper in hypr/default/helpers.lua is live again rather than a dangling hook, though no binding ships that uses it. The install.webapp and remove.webapp menu rows are still out; the machinery behind them now works, so adding them back is a two-line change if you want to create web app launchers from the menu.

Still out

AI tools, editors, terminals, services (1Password, Dropbox, Spotify, Signal, Tailscale, NordVPN, ONCE, Bitwarden), preinstalls, dictation, and the security removal rows. Say the word on any of them.