fuzzel could only answer "which app", so launching Brave at a URL meant picking the app, waiting for it, then typing the address somewhere else. The launcher now takes a verb and an object in one line: type `gitlab.enqs.de` and every app that can open it sorts to the top, default browser first, ready for Enter — or arrow/hjkl down to Brave's New Incognito Window, which is offered as a peer of Brave itself rather than hidden behind a submenu. services/Apps.qml is the brain and holds no UI: it flattens desktop entries and their actions into one index, classifies the typed argument (url / mail / path), ranks by fuzzy match plus handler affinity plus frecency, and launches. Launching through `uwsm app` keeps each app in its own scope; entries whose Exec declares no field code (Brave's `--incognito` action, among others) are launched by tokenising Exec per the Desktop Entry spec and appending the argument, never via `sh -c`. Four prefixes reuse the same window, so there is one picker and one set of keys: `>` runs a command, `=` evaluates arithmetic, `:` is clipboard history (cliphist, which had been a second fuzzel invocation), and a dmenu mode is driven over IPC. quickshell/scripts/takemi-dmenu is the bridge for that last one — a `fuzzel --dmenu` drop-in for scripts that want a picker, symlinked into ~/.local/bin. fluxo's bt menu now goes through it. Living in the Quickshell process means the window is on screen on the frame the bind fires, with no process to spawn. Removes fuzzel entirely: its config, its theme submodule, the package, and the last consumers (the bar sigil, fluxo's menu_command). Also drops hypr/scripts/powermenu.sh, which was fuzzel-based and bound to nothing.
25 lines
1.0 KiB
Lua
25 lines
1.0 KiB
Lua
-- The programs the binds reach for. Exported so lua/binds/* name them once.
|
|
|
|
return {
|
|
terminal = "alacritty",
|
|
fileManager = "nautilus",
|
|
-- The launcher lives in the Quickshell process (quickshell/launcher/), so
|
|
-- the bind toggles it over IPC instead of spawning anything. Nothing to
|
|
-- start up means it is on screen on the same frame as the keypress.
|
|
menu = "qs ipc call shell launcher",
|
|
|
|
-- Clipboard history. Opens the launcher already in its ":" mode, which
|
|
-- reads cliphist itself and copies the chosen entry back — so the picker is
|
|
-- the same window, with the same keys, as everything else.
|
|
clipboard = "qs ipc call shell prompt :",
|
|
|
|
-- Proton Drive search. --fzf re-queries the daemon on every keystroke, so
|
|
-- results appear as you type; a dmenu could only filter a list it was
|
|
-- handed once, which made searching a two-step. It spawns its own terminal
|
|
-- (class pdfs-prompt, floated in lua/rules/windows.lua).
|
|
pdfs = "pdfs-prompt --fzf",
|
|
|
|
-- bluetooth menu
|
|
bluetooth = "fluxo bt menu",
|
|
}
|