Drop bin/omarchy-menu; sweep JSONC actions to bare commands

The shell now owns the menu — both data and dispatch. The 821-line bash
bin was carrying the open path (cold spawn + jq pipeline + tempfile dance
+ IPC + poll) and a grab-bag of helpers that only existed inside it. Both
go away in this commit.

New bins for the few composite helpers that were genuinely worth keeping:

  - omarchy-install-app NAME PKG
  - omarchy-install-and-launch NAME PKG DESKTOP_ID
  - omarchy-install-font LABEL PKG FAMILY
  - omarchy-launch-config-editor PATH
  - omarchy-reminder-set-interactive
  - omarchy-capture-screenrecording-with-webcam

Sweep through default/omarchy/omarchy-menu.jsonc rewrites:

  - present_terminal X   -> omarchy-launch-floating-terminal-with-presentation X
  - install_terminal X   -> omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal X'
  - install / install_and_launch / install_font / open_in_editor -> new bins above
  - terminal X           -> xdg-terminal-exec --app-id=org.omarchy.terminal X
  - default_browser_is X -> [[ "$(omarchy-default-browser)" == "X" ]]
  - default_terminal_is X / default_editor_is X / haptic_touchpad_is X same shape
  - $(hypr_config_file X) -> ~/.config/hypr/X.lua
  - show_custom_reminder_input -> omarchy-reminder-set-interactive
  - screenrecord_with_webcam   -> omarchy-capture-screenrecording-with-webcam
  - stop_active_screenrecording -> omarchy-capture-screenrecording --stop-recording

Hyprland bindings switch from `omarchy-menu X` to
`omarchy-shell-ipc menu summon X` (the keybind hot path now skips bash
entirely). The Bar.qml omarchy widget and the battery right-click do the
same. ALT+PRINT becomes a one-liner: stop the recording if one is going,
otherwise summon the screenrecord submenu.

Measured: keybind-to-visible is ~30ms (was ~235ms). The shell's plugin
keepLoaded:true stops being theoretical \u2014 the menu data lives in memory
across opens, and the only work between keypress and paint is the IPC
roundtrip and the layer-shell window mount.
This commit is contained in:
Ryan Hughes
2026-05-14 17:43:12 -04:00
parent a960d2b1bf
commit 4a665af581
10 changed files with 320 additions and 1013 deletions
+36
View File
@@ -0,0 +1,36 @@
#!/bin/bash
# omarchy:summary=Pick a webcam and start a screen recording with it
# omarchy:examples=omarchy capture screenrecording-with-webcam
set -o pipefail
webcam_list() {
v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do
if [[ $line != $'\t'* && -n $line ]]; then
local name="$line"
local device
IFS= read -r device || break
device=$(tr -d '\t' <<<"$device" | head -1)
[[ -n $device ]] && echo "$device $name"
fi
done
}
devices=$(webcam_list)
if [[ -z $devices ]]; then
omarchy-notification-send "No webcam devices found" -u critical -t 3000
exit 1
fi
count=$(grep -c . <<<"$devices")
if (( count == 1 )); then
device="${devices%%[[:space:]]*}"
else
selection=$(omarchy-menu-select "Select Webcam" "$devices") || exit 1
device="${selection%%[[:space:]]*}"
fi
exec omarchy-capture-screenrecording \
--with-desktop-audio --with-microphone-audio \
--with-webcam --webcam-device="$device"
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# omarchy:summary=Install a packaged app and gtk-launch it once it finishes
# omarchy:args=<display-name> <packages> <desktop-id>
# omarchy:examples=omarchy install and-launch Cursor cursor-bin cursor
name="${1-}"
packages="${2-}"
desktop_id="${3-}"
if [[ -z $name || -z $packages || -z $desktop_id ]]; then
echo "Usage: omarchy-install-and-launch <display-name> <packages> <desktop-id>" >&2
exit 1
fi
exec omarchy-launch-floating-terminal-with-presentation \
"echo 'Installing ${name}...'; omarchy-pkg-add ${packages} && setsid gtk-launch ${desktop_id}"
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# omarchy:summary=Install a packaged app, surfacing the install in a floating terminal
# omarchy:args=<display-name> <packages>
# omarchy:examples=omarchy install app 'LM Studio' lmstudio-bin
name="${1-}"
packages="${2-}"
if [[ -z $name || -z $packages ]]; then
echo "Usage: omarchy-install-app <display-name> <packages>" >&2
exit 1
fi
exec omarchy-launch-floating-terminal-with-presentation "echo 'Installing ${name}...'; omarchy-pkg-add ${packages}"
+17
View File
@@ -0,0 +1,17 @@
#!/bin/bash
# omarchy:summary=Install a Nerd Font package and switch the system to it
# omarchy:args=<display-name> <package> <family>
# omarchy:examples=omarchy install font 'Cascadia Mono' ttf-cascadia-mono-nerd 'CaskaydiaMono Nerd Font'
name="${1-}"
package="${2-}"
family="${3-}"
if [[ -z $name || -z $package || -z $family ]]; then
echo "Usage: omarchy-install-font <display-name> <package> <family>" >&2
exit 1
fi
exec omarchy-launch-floating-terminal-with-presentation \
"echo 'Installing ${name}...'; omarchy-pkg-add ${package} && sleep 2 && omarchy-font-set '${family}'"
+15
View File
@@ -0,0 +1,15 @@
#!/bin/bash
# omarchy:summary=Open a config file in the user's editor and surface a toast
# omarchy:args=<path>
# omarchy:examples=omarchy launch config-editor ~/.config/hypr/hyprlock.conf
path="${1-}"
if [[ -z $path ]]; then
echo "Usage: omarchy-launch-config-editor <path>" >&2
exit 1
fi
omarchy-notification-send -u low "Editing config file" "$path"
exec omarchy-launch-editor "$path"
-821
View File
@@ -1,821 +0,0 @@
#!/bin/bash
# omarchy:summary=Launch the Quickshell Omarchy menu or jump straight to a submenu/action
# omarchy:args=[menu-or-action|--json|--provider <provider> [menu-id]]
# omarchy:examples=omarchy menu | omarchy menu setup | omarchy menu style.theme | omarchy menu --json | omarchy menu --provider fonts style.font
set -o pipefail
OMARCHY_PATH=${OMARCHY_PATH:-$HOME/.local/share/omarchy}
DEFAULT_MENU="$OMARCHY_PATH/default/omarchy/omarchy-menu.jsonc"
USER_MENU="$HOME/.config/omarchy/extensions/omarchy-menu.jsonc"
# Menu hooks users may edit
# Menu rows live in default/omarchy/omarchy-menu.jsonc.
# Keep Bash here only for multi-step actions or truly runtime-generated lists.
# Action helpers available to omarchy-menu.jsonc
terminal() {
xdg-terminal-exec --app-id=org.omarchy.terminal "$@"
}
present_terminal() {
omarchy-launch-floating-terminal-with-presentation "$*"
}
open_in_editor() {
omarchy-notification-send -u low "Editing config file" "$1"
omarchy-launch-editor "$1"
}
hypr_config_file() {
local name="$1"
printf '%s/.config/hypr/%s.lua' "$HOME" "$name"
}
install() {
present_terminal "echo 'Installing $1...'; omarchy-pkg-add $2"
}
install_and_launch() {
present_terminal "echo 'Installing $1...'; omarchy-pkg-add $2 && setsid gtk-launch $3"
}
install_font() {
present_terminal "echo 'Installing $1...'; omarchy-pkg-add $2 && sleep 2 && omarchy-font-set '$3'"
}
install_terminal() {
present_terminal "omarchy-install-terminal $1"
}
show_custom_reminder_input() {
local minutes
minutes=$(omarchy-menu-input "Remind in minutes")
if [[ $minutes =~ ^[0-9]+$ ]] && (( minutes > 0 )); then
show_reminder_message_input "$minutes"
elif [[ -n $minutes ]]; then
omarchy-notification-send -g 󰔛 "Invalid reminder" "Enter the number of minutes" -u critical
show_custom_reminder_input
fi
}
show_reminder_message_input() {
local minutes="$1"
local message
message=$(omarchy-menu-input "Reminder message")
if [[ -n $message ]]; then
omarchy-reminder "$minutes" "$message"
else
omarchy-reminder "$minutes"
fi
}
get_webcam_list() {
v4l2-ctl --list-devices 2>/dev/null | while IFS= read -r line; do
if [[ $line != $'\t'* && -n $line ]]; then
local name="$line"
local device
IFS= read -r device || break
device=$(tr -d '\t' <<<"$device" | head -1)
[[ -n $device ]] && echo "$device $name"
fi
done
}
show_webcam_select_menu() {
local devices
local count
devices=$(get_webcam_list)
if [[ -z $devices ]]; then
count=0
else
count=$(grep -c . <<<"$devices")
fi
if [[ -z $devices ]] || (( count == 0 )); then
omarchy-notification-send "No webcam devices found" -u critical -t 3000
return 1
fi
if (( count == 1 )); then
printf '%s\n' "${devices%%[[:space:]]*}"
else
local selection
selection=$(omarchy-menu-select "Select Webcam" "$devices") || return 1
printf '%s\n' "${selection%%[[:space:]]*}"
fi
}
stop_active_screenrecording() {
omarchy-capture-screenrecording --stop-recording
}
screenrecord_with_webcam() {
local device
device=$(show_webcam_select_menu) || return 1
omarchy-capture-screenrecording --with-desktop-audio --with-microphone-audio --with-webcam --webcam-device="$device"
}
# Runtime-generated providers users may edit
# Use provider:"fonts" only when a submenu calls provider_fonts (or a command)
# to return JSON. Normal submenus are inferred from dotted JSONC ids.
provider_fonts() {
local menu_id="$1"
local current_font
local index=0
local font
local label
current_font=$(omarchy-font-current 2>/dev/null)
while IFS= read -r font; do
[[ -n $font ]] || continue
(( index++ ))
label="$font$(current_marker "$font" "$current_font")"
json_item "$menu_id.$index-$(slugify "$font")" "" "$label" "omarchy-font-set $(shell_quote "$font")" "$font typeface"
done < <(omarchy-font-list 2>/dev/null)
}
provider_power_profiles() {
local menu_id="$1"
local current_profile
local profile
current_profile=$(powerprofilesctl get 2>/dev/null)
while IFS= read -r profile; do
[[ -n $profile ]] || continue
json_item "$menu_id.$(slugify "$profile")" "󱐋" "$profile$(current_marker "$profile" "$current_profile")" "powerprofilesctl set $(shell_quote "$profile")" "$profile power profile"
done < <(omarchy-powerprofiles-list 2>/dev/null)
}
# Framework helpers below this line
# Most menu changes should not require editing below here.
# Generic helpers
shell_quote() {
printf "'%s'" "${1//\'/\'\\\'\'}"
}
slugify() {
local value="${1,,}"
value="${value//[^a-z0-9]/-}"
while [[ $value == *--* ]]; do
value="${value//--/-}"
done
while [[ $value == -* ]]; do
value="${value#-}"
done
while [[ $value == *- ]]; do
value="${value%-}"
done
printf '%s' "${value:-item}"
}
current_marker() {
if [[ $1 == $2 ]]; then
printf ' ✓'
fi
}
declare -A CMD_PRESENT_CACHE=()
declare -A STATUS_CACHE=()
cached_status() {
local key="$1"
shift
if [[ -z ${STATUS_CACHE[$key]+x} ]]; then
"$@" >/dev/null 2>&1
STATUS_CACHE[$key]=$?
fi
return "${STATUS_CACHE[$key]}"
}
omarchy-cmd-present() {
local cmd
for cmd in "$@"; do
if [[ -z ${CMD_PRESENT_CACHE[$cmd]+x} ]]; then
if command -v "$cmd" >/dev/null 2>&1; then
CMD_PRESENT_CACHE[$cmd]=0
else
CMD_PRESENT_CACHE[$cmd]=1
fi
fi
(( CMD_PRESENT_CACHE[$cmd] == 0 )) || return 1
done
return 0
}
omarchy-toggle-enabled() {
cached_status "toggle:$*" command omarchy-toggle-enabled "$@"
}
omarchy-hibernation-available() {
cached_status hibernation command omarchy-hibernation-available
}
omarchy-hw-hybrid-gpu() {
cached_status hw-hybrid-gpu command omarchy-hw-hybrid-gpu
}
omarchy-hw-touchpad() {
cached_status hw-touchpad command omarchy-hw-touchpad
}
omarchy-hw-touchscreen() {
cached_status hw-touchscreen command omarchy-hw-touchscreen
}
omarchy-hw-dell-xps-haptic-touchpad() {
cached_status hw-dell-xps-haptic-touchpad command omarchy-hw-dell-xps-haptic-touchpad
}
default_browser_is() {
if [[ -z ${DEFAULT_BROWSER_CACHE+x} ]]; then
DEFAULT_BROWSER_CACHE=$(command omarchy-default-browser 2>/dev/null || true)
fi
[[ $DEFAULT_BROWSER_CACHE == "$1" ]]
}
default_terminal_is() {
if [[ -z ${DEFAULT_TERMINAL_CACHE+x} ]]; then
DEFAULT_TERMINAL_CACHE=$(command omarchy-default-terminal 2>/dev/null || true)
fi
[[ $DEFAULT_TERMINAL_CACHE == "$1" ]]
}
default_editor_is() {
if [[ -z ${DEFAULT_EDITOR_CACHE+x} ]]; then
DEFAULT_EDITOR_CACHE=$(command omarchy-default-editor 2>/dev/null || true)
fi
[[ $DEFAULT_EDITOR_CACHE == "$1" ]]
}
haptic_touchpad_is() {
if [[ -z ${HAPTIC_TOUCHPAD_CACHE+x} ]]; then
HAPTIC_TOUCHPAD_CACHE=$(command dell-xps-touchpad-haptics get 2>/dev/null || true)
fi
[[ $HAPTIC_TOUCHPAD_CACHE == "$1" ]]
}
json_string() {
local value="${1-}"
value="${value//\\/\\\\}"
value="${value//\"/\\\"}"
value="${value//$'\t'/\\t}"
value="${value//$'\r'/\\r}"
value="${value//$'\n'/\\n}"
printf '"%s"' "$value"
}
json_item() {
local id="$1"
local icon="$2"
local label="$3"
local action="${4:-}"
local keywords="${5:-}"
local description="${6:-}"
local target="${7:-}"
local provider="${8:-}"
printf '{"id": '
json_string "$id"
printf ', "icon": '
json_string "$icon"
printf ', "label": '
json_string "$label"
if [[ -n $action ]]; then
printf ', "action": '
json_string "$action"
fi
if [[ -n $keywords ]]; then
printf ', "keywords": '
json_string "$keywords"
fi
if [[ -n $description ]]; then
printf ', "description": '
json_string "$description"
fi
if [[ -n $target ]]; then
printf ', "target": '
json_string "$target"
fi
if [[ -n $provider ]]; then
printf ', "provider": '
json_string "$provider"
fi
printf '}\n'
}
# Menu definition loading
menu_sources() {
local path
for path in "$DEFAULT_MENU" "$USER_MENU"; do
[[ -f $path ]] || continue
jq -Rrs '
# Our menu files are JSONC: full-line // comments plus trailing commas.
# Keep parsing in jq so the menu build path stays fast and dependency-free.
gsub("(?m)^\\s*//[^\\n]*(\\n|$)"; "") |
gsub(",(?<tail>\\s*[}\\]])"; "\(.tail)") |
fromjson |
if type == "object" then
(if has("items") and (.items | type) == "object" then .items else . end)
else
{}
end |
to_entries[] |
select(.value | type == "object") |
.value + { id: .key }
' "$path"
done
}
normalize_menu_json() {
jq -sc '
def aliases_array:
if ((.aliases // []) | type) == "array" then (.aliases // [])
elif ((.aliases // "") != "") then [(.aliases // "")]
else [] end;
def normalize_item:
def inferred_parent:
if has("parent") then .parent
elif (.id | contains(".")) then (.id | split(".")[:-1] | join("."))
else "root" end;
def inferred_kind:
if ((.action // "") != "") then "action"
elif ((.target // "") != "") then "link"
else "menu" end;
def id_keywords:
.id | gsub("[._-]+"; " ");
def alias_keywords:
aliases_array | map(gsub("[._-]+"; " ")) | join(" ");
def keyword_string:
([id_keywords, alias_keywords, (.keywords // "")] | join(" ") | split(" ") | map(select(. != ""))) as $terms |
reduce $terms[] as $term ([]; if index($term) then . else . + [$term] end) |
join(" ");
{
id,
parent: (if .id == "root" then "" else inferred_parent end),
kind: inferred_kind,
icon: (.icon // ""),
label: (.label // .id),
target: (.target // ""),
keywords: keyword_string,
description: (.description // ""),
action: (.action // ""),
provider: (.provider // ""),
aliases: aliases_array,
when: (.when // ""),
checked: (.checked // "")
};
reduce (.[] | select(.id)) as $item ({ order: [], by_id: {} };
if .by_id[$item.id] == null then .order += [$item.id] else . end |
.by_id[$item.id] = ((.by_id[$item.id] // {}) + $item)
) |
{ items: [ .order[] as $id | (.by_id[$id] + { id: $id }) | normalize_item ] }
'
}
menu_all_json() {
if [[ -z ${MENU_ALL_JSON_CACHE+x} ]]; then
MENU_ALL_JSON_CACHE=$(menu_sources | normalize_menu_json) || return
fi
printf '%s\n' "$MENU_ALL_JSON_CACHE"
}
menu_static_json() {
if [[ -z ${MENU_STATIC_JSON_CACHE+x} ]]; then
MENU_STATIC_JSON_CACHE=$(menu_all_json | jq '
(.items | map({ key: .id, value: . }) | from_entries) as $by_id |
def ancestor_ids($id):
($id | split(".")) as $parts |
[range(1; $parts | length) | $parts[0:.] | join(".")];
def has_provider_ancestor($id):
any(ancestor_ids($id)[]; (($by_id[.] // {}).provider // "") != "");
{ items: [.items[] | select(has_provider_ancestor(.id) | not)] }
') || return
fi
printf '%s\n' "$MENU_STATIC_JSON_CACHE"
}
emit_config_items() {
local fields
local id
local icon
local label
local action
local keywords
local description
local target
local provider
local when
local checked
while IFS= read -r fields; do
eval "set -- $fields"
id="$1"
icon="$2"
label="$3"
action="$4"
keywords="$5"
description="$6"
target="$7"
provider="$8"
when="$9"
checked="${10}"
[[ -n $id ]] || continue
if [[ -n $when ]] && ! eval "$when" >/dev/null 2>&1; then
continue
fi
if [[ -n $checked ]] && eval "$checked" >/dev/null 2>&1; then
label="$label ✓"
fi
json_item "$id" "$icon" "$label" "$action" "$keywords" "$description" "$target" "$provider"
done < <(jq -r '.items[] | [
(.id // ""),
(.icon // ""),
(.label // .id // ""),
(.action // ""),
(.keywords // ""),
(.description // ""),
(.target // ""),
(.provider // ""),
(.when // ""),
(.checked // "")
] | @sh')
}
menu_evaluated_json() {
if [[ -z ${MENU_EVALUATED_JSON_CACHE+x} ]]; then
MENU_EVALUATED_JSON_CACHE=$(menu_all_json | emit_config_items | normalize_menu_json) || return
fi
printf '%s\n' "$MENU_EVALUATED_JSON_CACHE"
}
menu_json() {
if [[ -z ${MENU_JSON_CACHE+x} ]]; then
MENU_JSON_CACHE=$(menu_static_json | emit_config_items | normalize_menu_json) || return
fi
printf '%s\n' "$MENU_JSON_CACHE"
}
# Provider dispatch
provider_mount_id() {
local provider="$1"
menu_all_json | jq -r --arg provider "$provider" '.items[] | select(.provider == $provider) | .id' | head -n 1
}
provider_json() {
local provider="$1"
local menu_id="${2:-}"
local provider_function
[[ -n $provider ]] || return 1
menu_id=${menu_id:-$(provider_mount_id "$provider")}
[[ -n $menu_id ]] || return 1
if [[ $provider =~ ^[a-z0-9-]+$ ]]; then
provider_function="provider_${provider//-/_}"
case "$provider_function" in
provider_mount_id | provider_json) ;;
*)
if declare -F "$provider_function" >/dev/null; then
"$provider_function" "$menu_id" | normalize_menu_json
return
fi
;;
esac
if omarchy-cmd-present "$provider"; then
"$provider" "$menu_id" | normalize_menu_json
return
fi
fi
echo "omarchy-menu: unknown provider '$provider'" >&2
return 1
}
# Routes and actions
route_target() {
local route="${1,,}"
local target
local all_json
route="${route//_/-}"
if [[ -z $route || $route == "go" || $route == "menu" ]]; then
printf 'root'
return
fi
all_json=$(menu_all_json) || return
target=$(jq -r --arg route "$route" '
def aliases:
if (.aliases | type) == "array" then .aliases
elif (.aliases | type) == "string" then [.aliases]
else [] end;
first(.items[] | select(any(aliases[]?; (ascii_downcase | gsub("_"; "-")) == $route)) | .id) // empty
' <<<"$all_json") || return
printf '%s' "${target:-$route}"
}
route_field() {
local target="$1"
local field="$2"
local all_json
local fields
local when
local value
all_json=$(menu_all_json) || return
fields=$(jq -r --arg id "$target" --arg field "$field" '
first(.items[] | select(.id == $id) | [(.when // ""), (.[$field] // "")] | @sh) // empty
' <<<"$all_json") || return
[[ -n $fields ]] || return
eval "set -- $fields"
when="$1"
value="$2"
if [[ -n $when ]] && ! eval "$when" >/dev/null 2>&1; then
return
fi
printf '%s' "$value"
}
route_kind() {
local target="$1"
if [[ $target == "root" ]]; then
printf 'menu'
return
fi
route_field "$target" kind
}
route_link_target() {
route_field "$1" target
}
route_action() {
route_field "$1" action
}
run_action() {
local id="$1"
local action="${2:-}"
if [[ -z $action ]]; then
action=$(route_action "$id") || return 0
fi
[[ -n $action ]] || return 0
eval "$action"
}
# Quickshell launcher
ensure_menu_style_file() {
local toggles_dir="$HOME/.local/state/omarchy/toggles"
local style_file="$toggles_dir/quickshell-menu.json"
local radius=0
[[ -f $style_file ]] && return
mkdir -p "$toggles_dir"
if [[ -f $toggles_dir/walker.css ]] && grep -q 'border-radius: 6px;' "$toggles_dir/walker.css"; then
radius=6
fi
printf '{ "radius": %s }\n' "$radius" >"$style_file"
}
usage() {
cat <<USAGE
Usage: omarchy-menu [menu-or-action]
omarchy-menu --json
omarchy-menu --provider <provider> [menu-id]
Launch the Quickshell Omarchy menu. Pass a menu name (install, style, system,
capture, toggle, etc.) to open there, or an action id to run it directly.
Options:
--json Print the static menu JSON used by Quickshell
--provider <provider> [id] Print JSON rows from a runtime provider
-h, --help Show this help
USAGE
}
menu_layer_visible() {
hyprctl layers -j 2>/dev/null | jq -e '.. | objects | select(.namespace? == "omarchy-menu")' >/dev/null
}
menu_lock_path() {
printf '%s/omarchy-menu.lock' "${XDG_RUNTIME_DIR:-/run/user/$UID}"
}
menu_payload_json() {
local menu_file="$1"
local initial_menu="$2"
local selection_file="$3"
local done_file="$4"
local colors_payload_base64="$5"
local font_family="$6"
jq -nc \
--arg menu_file "$menu_file" \
--arg initial_menu "$initial_menu" \
--arg selection_file "$selection_file" \
--arg done_file "$done_file" \
--arg colors_payload_base64 "$colors_payload_base64" \
--arg font_family "$font_family" \
'{
menuJsonFile: $menu_file,
initialMenu: $initial_menu,
selectionFile: $selection_file,
doneFile: $done_file,
colorsRawBase64: $colors_payload_base64,
fontFamily: $font_family
}'
}
close_visible_quickshell_menu() {
menu_layer_visible || return 1
omarchy-shell-ipc shell hide omarchy.menu >/dev/null 2>&1 || return 1
}
open_quickshell_menu() {
local initial_menu="$1"
local menu_payload
local colors_file="$HOME/.config/omarchy/current/theme/colors.toml"
local colors_payload_base64=""
local font_family
local menu_file=""
local selection_file
local done_file
local selected_id
local selected_action
local menu_started=false
local lock_path
local lock_fd
local summon_result
local payload
lock_path=$(menu_lock_path)
exec {lock_fd}>"$lock_path" || return 1
if ! flock -n "$lock_fd"; then
close_visible_quickshell_menu && return 0
flock "$lock_fd" || return 1
fi
if close_visible_quickshell_menu; then
return 0
fi
ensure_menu_style_file
selection_file=$(mktemp)
done_file=$(mktemp)
rm -f "$done_file"
trap "rm -f $(shell_quote "$selection_file") $(shell_quote "$done_file")" EXIT
menu_payload=$(menu_json) || return
if [[ $initial_menu != "root" ]] && ! jq -e --arg id "$initial_menu" '.items[] | select(.id == $id)' <<<"$menu_payload" >/dev/null; then
menu_payload=$(menu_evaluated_json) || return
fi
if [[ -f $colors_file ]]; then
colors_payload_base64=$(base64 -w0 "$colors_file")
fi
font_family=$(omarchy-font-current 2>/dev/null || true)
font_family=${font_family:-monospace}
menu_file=$(mktemp)
printf '%s' "$menu_payload" >"$menu_file"
trap "rm -f $(shell_quote "$menu_file") $(shell_quote "$selection_file") $(shell_quote "$done_file")" EXIT
payload=$(menu_payload_json "$menu_file" "$initial_menu" "$selection_file" "$done_file" "$colors_payload_base64" "$font_family") || return
summon_result=$(omarchy-shell-ipc shell summon omarchy.menu "$payload" 2>/dev/null || true)
if [[ $summon_result != "ok" ]]; then
echo "omarchy-menu: Omarchy shell did not accept the menu request" >&2
return 1
fi
for (( i = 0; i < 500; i++ )); do
if [[ -e $done_file ]] || menu_layer_visible; then
menu_started=true
break
fi
sleep 0.01
done
if [[ $menu_started != true ]]; then
omarchy-shell-ipc shell hide omarchy.menu >/dev/null 2>&1 || true
echo "omarchy-menu: Quickshell menu did not open" >&2
return 1
fi
while [[ ! -e $done_file ]]; do
menu_layer_visible || break
sleep 0.01
done
if [[ -s $selection_file ]]; then
IFS=$'\t' read -r selected_id selected_action <"$selection_file"
exec {lock_fd}>&-
run_action "$selected_id" "$selected_action"
fi
}
# CLI dispatch
case "${1:-}" in
--help | -h)
usage
exit 0
;;
--json)
menu_json || exit $?
exit 0
;;
--provider)
provider_json "${2:-}" "${3:-}"
exit $?
;;
screenrecord | screenrecording | screen-record)
close_visible_quickshell_menu || true
stop_active_screenrecording && exit 0
;;
esac
if [[ -z ${1:-} ]]; then
open_quickshell_menu root
exit $?
fi
target=$(route_target "${1:-}") || exit $?
kind=$(route_kind "$target") || exit $?
case "$kind" in
action)
close_visible_quickshell_menu || true
run_action "$target"
;;
menu)
open_quickshell_menu "$target"
;;
link)
open_quickshell_menu "$(route_link_target "$target")"
;;
*)
open_quickshell_menu root
;;
esac
+28
View File
@@ -0,0 +1,28 @@
#!/bin/bash
# omarchy:summary=Prompt for a reminder duration + message and schedule it
# omarchy:examples=omarchy reminder set-interactive
set -e
prompt_minutes() {
while :; do
minutes=$(omarchy-menu-input "Remind in minutes") || exit 0
if [[ $minutes =~ ^[0-9]+$ ]] && (( minutes > 0 )); then
printf '%s' "$minutes"
return 0
fi
[[ -z $minutes ]] && exit 0
omarchy-notification-send "Invalid reminder" "Enter the number of minutes" -u critical
done
}
minutes=$(prompt_minutes)
[[ -n $minutes ]] || exit 0
message=$(omarchy-menu-input "Reminder message") || exit 0
if [[ -n $message ]]; then
omarchy-reminder "$minutes" "$message"
else
omarchy-reminder "$minutes"
fi
+12 -12
View File
@@ -1,12 +1,12 @@
hl.bind("SUPER + SPACE", hl.dsp.exec_cmd("omarchy-launch-walker"), { description = "Launch apps" })
hl.bind("SUPER + CTRL + E", hl.dsp.exec_cmd("omarchy-launch-walker -m symbols"), { description = "Emoji picker" })
hl.bind("SUPER + CTRL + C", hl.dsp.exec_cmd("omarchy-menu capture"), { description = "Capture menu" })
hl.bind("SUPER + CTRL + O", hl.dsp.exec_cmd("omarchy-menu toggle"), { description = "Toggle menu" })
hl.bind("SUPER + CTRL + H", hl.dsp.exec_cmd("omarchy-menu hardware"), { description = "Hardware menu" })
hl.bind("SUPER + ALT + SPACE", hl.dsp.exec_cmd("omarchy-menu"), { description = "Omarchy menu" })
hl.bind("SUPER + SHIFT + code:201", hl.dsp.exec_cmd("omarchy-menu"), { description = "Omarchy menu" })
hl.bind("SUPER + ESCAPE", hl.dsp.exec_cmd("omarchy-menu system"), { description = "System menu" })
hl.bind("XF86PowerOff", hl.dsp.exec_cmd("omarchy-menu system"), { locked = true, description = "Power menu" })
hl.bind("SUPER + CTRL + C", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon capture"), { description = "Capture menu" })
hl.bind("SUPER + CTRL + O", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon toggle"), { description = "Toggle menu" })
hl.bind("SUPER + CTRL + H", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon hardware"), { description = "Hardware menu" })
hl.bind("SUPER + ALT + SPACE", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon root"), { description = "Omarchy menu" })
hl.bind("SUPER + SHIFT + code:201", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon root"), { description = "Omarchy menu" })
hl.bind("SUPER + ESCAPE", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon system"), { description = "System menu" })
hl.bind("XF86PowerOff", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon system"), { locked = true, description = "Power menu" })
hl.bind("SUPER + K", hl.dsp.exec_cmd("omarchy-menu-keybindings"), { description = "Show key bindings" })
hl.bind("SUPER + ALT + K", hl.dsp.exec_cmd("omarchy-menu-tmux-keybindings"), { description = "Show Tmux key bindings" })
hl.bind("XF86Calculator", hl.dsp.exec_cmd("gnome-calculator"), { description = "Calculator" })
@@ -16,8 +16,8 @@ hl.bind("SUPER + SHIFT + CTRL + UP", hl.dsp.exec_cmd("omarchy-style-bar-position
hl.bind("SUPER + SHIFT + CTRL + DOWN", hl.dsp.exec_cmd("omarchy-style-bar-position bottom"), { description = "Move bar to bottom" })
hl.bind("SUPER + SHIFT + CTRL + LEFT", hl.dsp.exec_cmd("omarchy-style-bar-position left"), { description = "Move bar to left" })
hl.bind("SUPER + SHIFT + CTRL + RIGHT", hl.dsp.exec_cmd("omarchy-style-bar-position right"), { description = "Move bar to right" })
hl.bind("SUPER + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-menu background"), { description = "Background switcher" })
hl.bind("SUPER + SHIFT + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-menu theme"), { description = "Theme menu" })
hl.bind("SUPER + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon background"), { description = "Background switcher" })
hl.bind("SUPER + SHIFT + CTRL + SPACE", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon theme"), { description = "Theme menu" })
hl.bind("SUPER + BACKSPACE", hl.dsp.exec_cmd("omarchy-hyprland-window-transparency-toggle"), { description = "Toggle window transparency" })
hl.bind("SUPER + SHIFT + BACKSPACE", hl.dsp.exec_cmd("omarchy-hyprland-window-gaps-toggle"), { description = "Toggle window gaps" })
hl.bind("SUPER + CTRL + BACKSPACE", hl.dsp.exec_cmd("omarchy-hyprland-window-single-square-aspect-toggle"), { description = "Toggle single-window square aspect" })
@@ -36,15 +36,15 @@ hl.bind("switch:on:Lid Switch", hl.dsp.exec_cmd("omarchy-hw-external-monitors &&
hl.bind("switch:off:Lid Switch", hl.dsp.exec_cmd("omarchy-hyprland-monitor-internal on"), { locked = true })
hl.bind("PRINT", hl.dsp.exec_cmd("omarchy-capture-screenshot"), { description = "Screenshot" })
hl.bind("ALT + PRINT", hl.dsp.exec_cmd("omarchy-menu screenrecord"), { description = "Screenrecording" })
hl.bind("ALT + PRINT", hl.dsp.exec_cmd("omarchy-capture-screenrecording --stop-recording || omarchy-shell-ipc menu summon trigger.capture.screenrecord"), { description = "Screenrecording" })
hl.bind("SUPER + PRINT", hl.dsp.exec_cmd("pkill hyprpicker || hyprpicker -a"), { description = "Color picker" })
hl.bind("SUPER + CTRL + PRINT", hl.dsp.exec_cmd("omarchy-capture-text-extraction"), { description = "Extract text (OCR) from screenshot" })
hl.bind("SUPER + CTRL + S", hl.dsp.exec_cmd("omarchy-menu share"), { description = "Share" })
hl.bind("SUPER + CTRL + S", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon share"), { description = "Share" })
hl.bind("SUPER + CTRL + PERIOD", hl.dsp.exec_cmd("omarchy-transcode"), { description = "Transcode" })
hl.bind("SUPER + CTRL + R", hl.dsp.exec_cmd("omarchy-menu reminder-set"), { description = "Set reminder" })
hl.bind("SUPER + CTRL + R", hl.dsp.exec_cmd("omarchy-shell-ipc menu summon reminder-set"), { description = "Set reminder" })
hl.bind("SUPER + CTRL + ALT + R", hl.dsp.exec_cmd("omarchy-reminder show"), { description = "Show reminders" })
hl.bind("SUPER + SHIFT + CTRL + R", hl.dsp.exec_cmd("omarchy-reminder clear"), { description = "Clear reminders" })
+178 -178
View File
@@ -46,33 +46,33 @@
"trigger.reminder": {"icon":"󰔛","label":"Reminder","aliases":["reminder"],"keywords":"timer notification remind"},
"trigger.capture": {"icon":"","label":"Capture","aliases":["capture","screenshot","screenrecord","screen-record","screenrecording"],"keywords":"color text extraction"},
"trigger.capture.screenshot": {"icon":"","label":"Screenshot","keywords":"picture","action":"omarchy-capture-screenshot"},
"trigger.capture.screenrecord.stop": {"icon":"","label":"Stop Screenrecording","keywords":"recording video","when":"pgrep -f '^gpu-screen-recorder' >/dev/null","action":"stop_active_screenrecording"},
"trigger.capture.screenrecord.stop": {"icon":"","label":"Stop Screenrecording","keywords":"recording video","when":"pgrep -f '^gpu-screen-recorder' >/dev/null","action":"omarchy-capture-screenrecording --stop-recording"},
"trigger.capture.screenrecord": {"icon":"","label":"Screenrecord","keywords":"record screen video"},
"trigger.capture.text": {"icon":"󰴑","label":"Text Extraction","keywords":"ocr","action":"omarchy-capture-text-extraction"},
"trigger.capture.color": {"icon":"󰃉","label":"Color","keywords":"picker hyprpicker","action":"pkill hyprpicker || hyprpicker -a"},
"trigger.capture.screenrecord.no-audio": {"icon":"","label":"With no audio","action":"omarchy-capture-screenrecording"},
"trigger.capture.screenrecord.desktop-audio": {"icon":"","label":"With desktop audio","action":"omarchy-capture-screenrecording --with-desktop-audio"},
"trigger.capture.screenrecord.microphone": {"icon":"","label":"With desktop + microphone audio","keywords":"mic","action":"omarchy-capture-screenrecording --with-desktop-audio --with-microphone-audio"},
"trigger.capture.screenrecord.webcam": {"icon":"","label":"With desktop + microphone audio + webcam","keywords":"camera","action":"screenrecord_with_webcam"},
"trigger.capture.screenrecord.webcam": {"icon":"","label":"With desktop + microphone audio + webcam","keywords":"camera","action":"omarchy-capture-screenrecording-with-webcam"},
"trigger.transcode": {"icon":"󰧸","label":"Transcode","keywords":"convert image video","action":"omarchy-transcode"},
"trigger.share": {"icon":"","label":"Share","aliases":["share"],"keywords":"clipboard file folder localsend"},
"trigger.toggle": {"icon":"󰔎","label":"Toggle","aliases":["toggle","toggles"],"keywords":"screensaver nightlight idle notifications bar quickshell"},
"trigger.hardware": {"icon":"","label":"Hardware","aliases":["hardware","hw"],"keywords":"monitor touchpad touchscreen gpu"},
"trigger.hardware.laptop-display": {"icon":"󰛧","label":"Laptop Display","keywords":"monitor","action":"omarchy-hyprland-monitor-internal toggle"},
"trigger.hardware.mirror-display": {"icon":"󰍹","label":"Mirror Display","keywords":"monitor","action":"omarchy-hyprland-monitor-internal-mirror toggle"},
"trigger.hardware.hybrid-gpu": {"icon":"","label":"Hybrid GPU","keywords":"graphics","when":"omarchy-hw-hybrid-gpu >/dev/null","action":"present_terminal omarchy-toggle-hybrid-gpu"},
"trigger.hardware.hybrid-gpu": {"icon":"","label":"Hybrid GPU","keywords":"graphics","when":"omarchy-hw-hybrid-gpu >/dev/null","action":"omarchy-launch-floating-terminal-with-presentation omarchy-toggle-hybrid-gpu"},
"trigger.hardware.touchpad": {"icon":"󰟸","label":"Touchpad","keywords":"trackpad","when":"omarchy-hw-touchpad >/dev/null","action":"omarchy-toggle-touchpad"},
"trigger.hardware.touchpad-haptics": {"icon":"󰌌","label":"Touchpad Haptics","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics"},
"trigger.hardware.touchpad-haptics.low": {"icon":"󰌌","label":"low","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics","checked":"haptic_touchpad_is low","action":"dell-xps-touchpad-haptics set low"},
"trigger.hardware.touchpad-haptics.mid": {"icon":"󰌌","label":"mid","keywords":"medium","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics","checked":"haptic_touchpad_is mid","action":"dell-xps-touchpad-haptics set mid"},
"trigger.hardware.touchpad-haptics.high": {"icon":"󰌌","label":"high","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics","checked":"haptic_touchpad_is high","action":"dell-xps-touchpad-haptics set high"},
"trigger.hardware.touchpad-haptics.low": {"icon":"󰌌","label":"low","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics","checked":"[[ \"$(dell-xps-touchpad-haptics get)\" == \"low\" ]]","action":"dell-xps-touchpad-haptics set low"},
"trigger.hardware.touchpad-haptics.mid": {"icon":"󰌌","label":"mid","keywords":"medium","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics","checked":"[[ \"$(dell-xps-touchpad-haptics get)\" == \"mid\" ]]","action":"dell-xps-touchpad-haptics set mid"},
"trigger.hardware.touchpad-haptics.high": {"icon":"󰌌","label":"high","when":"omarchy-hw-dell-xps-haptic-touchpad >/dev/null && omarchy-cmd-present dell-xps-touchpad-haptics","checked":"[[ \"$(dell-xps-touchpad-haptics get)\" == \"high\" ]]","action":"dell-xps-touchpad-haptics set high"},
"trigger.hardware.touchscreen": {"icon":"󰆽","label":"Touchscreen","keywords":"tablet","when":"omarchy-hw-touchscreen >/dev/null","action":"omarchy-toggle-touchscreen"},
"trigger.reminder.set": {"icon":"󰔛","label":"Set one","aliases":["reminder-set","remind"],"keywords":"timer","action":"show_custom_reminder_input"},
"trigger.reminder.set": {"icon":"󰔛","label":"Set one","aliases":["reminder-set","remind"],"keywords":"timer","action":"omarchy-reminder-set-interactive"},
"trigger.reminder.show": {"icon":"󰔛","label":"Show all","keywords":"list","action":"omarchy-reminder show"},
"trigger.reminder.clear": {"icon":"󰔛","label":"Clear all","keywords":"delete","action":"omarchy-reminder clear"},
"trigger.share.clipboard": {"icon":"","label":"Clipboard","action":"omarchy-menu-share clipboard"},
"trigger.share.file": {"icon":"","label":"File","action":"terminal bash -c 'omarchy-menu-share file'"},
"trigger.share.folder": {"icon":"","label":"Folder","keywords":"directory","action":"terminal bash -c 'omarchy-menu-share folder'"},
"trigger.share.file": {"icon":"","label":"File","action":"xdg-terminal-exec --app-id=org.omarchy.terminal bash -c 'omarchy-menu-share file'"},
"trigger.share.folder": {"icon":"","label":"Folder","keywords":"directory","action":"xdg-terminal-exec --app-id=org.omarchy.terminal bash -c 'omarchy-menu-share folder'"},
"trigger.share.receive": {"icon":"󰥦","label":"Receive","keywords":"localsend","action":"uwsm-app -- localsend"},
"trigger.toggle.screensaver": {"icon":"󱄄","label":"Screensaver","action":"omarchy-toggle-screensaver"},
"trigger.toggle.nightlight": {"icon":"󰔎","label":"Nightlight","keywords":"night light hyprsunset","action":"omarchy-toggle-nightlight"},
@@ -83,8 +83,8 @@
"trigger.toggle.window-gaps": {"icon":"","label":"Window Gaps","action":"omarchy-hyprland-window-gaps-toggle"},
"trigger.toggle.one-window-ratio": {"icon":"","label":"1-Window Ratio","keywords":"square","action":"omarchy-hyprland-window-single-square-aspect-toggle"},
"trigger.toggle.monitor-scaling": {"icon":"󰍹","label":"Monitor Scaling","keywords":"display","action":"omarchy-hyprland-monitor-scaling-cycle"},
"trigger.toggle.direct-boot": {"icon":"","label":"Direct Boot","action":"present_terminal omarchy-config-direct-boot"},
"trigger.toggle.passwordless-sudo": {"icon":"󰟵","label":"Passwordless Sudo","action":"present_terminal omarchy-sudo-passwordless"},
"trigger.toggle.direct-boot": {"icon":"","label":"Direct Boot","action":"omarchy-launch-floating-terminal-with-presentation omarchy-config-direct-boot"},
"trigger.toggle.passwordless-sudo": {"icon":"󰟵","label":"Passwordless Sudo","action":"omarchy-launch-floating-terminal-with-presentation omarchy-sudo-passwordless"},
// Style
"style.theme": {"icon":"󰸌","label":"Theme","aliases":["theme","themes"],"keywords":"colors","action":"theme=$(omarchy-theme-switcher); [[ -n $theme ]] && omarchy-theme-set \"$theme\""},
@@ -93,7 +93,7 @@
"style.background": {"icon":"","label":"Background","aliases":["background","wallpaper"],"action":"background=$(omarchy-theme-bg-switcher); [[ -n $background ]] && omarchy-theme-bg-set \"$background\""},
"style.bar": {"icon":"󰍜","label":"Bar","keywords":"quickshell top bottom left right settings"},
"style.corners": {"icon":"󰘇","label":"Corners","keywords":"sharp round rounded"},
"style.hyprland": {"icon":"","label":"Hyprland","keywords":"look feel","action":"open_in_editor \"$(hypr_config_file looknfeel)\""},
"style.hyprland": {"icon":"","label":"Hyprland","keywords":"look feel","action":"omarchy-launch-config-editor \"$HOME/.config/hypr/looknfeel.lua\""},
"style.screensaver": {"icon":"󱄄","label":"Screensaver","keywords":"branding"},
"style.about": {"icon":"","label":"About","keywords":"branding"},
"style.install": {"icon":"󰉉","label":"Install","keywords":"theme background font"},
@@ -109,15 +109,15 @@
"style.screensaver.text": {"icon":"","label":"Edit Text","keywords":"branding","action":"omarchy-branding-screensaver text"},
"style.screensaver.image": {"icon":"","label":"Set From Image","keywords":"branding","action":"omarchy-branding-screensaver image"},
"style.screensaver.default": {"icon":"","label":"Restore Default","keywords":"branding","action":"omarchy-branding-screensaver reset"},
"style.install.theme": {"icon":"󰸌","label":"Theme","action":"present_terminal omarchy-theme-install"},
"style.install.theme": {"icon":"󰸌","label":"Theme","action":"omarchy-launch-floating-terminal-with-presentation omarchy-theme-install"},
"style.install.background": {"icon":"","label":"Background","keywords":"wallpaper","action":"omarchy-theme-bg-install"},
"style.install.font": {"icon":"","label":"Font"},
"style.install.font.cascadia": {"icon":"","label":"Cascadia Mono","action":"install_font 'Cascadia Mono' ttf-cascadia-mono-nerd 'CaskaydiaMono Nerd Font'"},
"style.install.font.meslo": {"icon":"","label":"Meslo LG Mono","action":"install_font 'Meslo LG Mono' ttf-meslo-nerd 'MesloLGL Nerd Font'"},
"style.install.font.fira": {"icon":"","label":"Fira Code","action":"install_font 'Fira Code' ttf-firacode-nerd 'FiraCode Nerd Font'"},
"style.install.font.victor": {"icon":"","label":"Victor Code","action":"install_font 'Victor Code' ttf-victor-mono-nerd 'VictorMono Nerd Font'"},
"style.install.font.bitstream": {"icon":"","label":"Bitstream Vera Mono","action":"install_font 'Bitstream Vera Code' ttf-bitstream-vera-mono-nerd 'BitstromWera Nerd Font'"},
"style.install.font.iosevka": {"icon":"","label":"Iosevka","action":"install_font Iosevka ttf-iosevka-nerd 'Iosevka Nerd Font Mono'"},
"style.install.font.cascadia": {"icon":"","label":"Cascadia Mono","action":"omarchy-install-font 'Cascadia Mono' ttf-cascadia-mono-nerd 'CaskaydiaMono Nerd Font'"},
"style.install.font.meslo": {"icon":"","label":"Meslo LG Mono","action":"omarchy-install-font 'Meslo LG Mono' ttf-meslo-nerd 'MesloLGL Nerd Font'"},
"style.install.font.fira": {"icon":"","label":"Fira Code","action":"omarchy-install-font 'Fira Code' ttf-firacode-nerd 'FiraCode Nerd Font'"},
"style.install.font.victor": {"icon":"","label":"Victor Code","action":"omarchy-install-font 'Victor Code' ttf-victor-mono-nerd 'VictorMono Nerd Font'"},
"style.install.font.bitstream": {"icon":"","label":"Bitstream Vera Mono","action":"omarchy-install-font 'Bitstream Vera Code' ttf-bitstream-vera-mono-nerd 'BitstromWera Nerd Font'"},
"style.install.font.iosevka": {"icon":"","label":"Iosevka","action":"omarchy-install-font Iosevka ttf-iosevka-nerd 'Iosevka Nerd Font Mono'"},
// Setup
"setup.audio": {"icon":"","label":"Audio","keywords":"sound","action":"omarchy-launch-audio"},
@@ -127,53 +127,53 @@
"setup.sleep": {"icon":"","label":"System Sleep","keywords":"suspend hibernate"},
"setup.sleep.suspend-enable": {"icon":"󰒲","label":"Enable Suspend","when":"omarchy-toggle-enabled suspend-off","action":"omarchy-toggle-suspend"},
"setup.sleep.suspend-disable": {"icon":"󰒲","label":"Disable Suspend","when":"! omarchy-toggle-enabled suspend-off","action":"omarchy-toggle-suspend"},
"setup.sleep.hibernate-enable": {"icon":"󰤁","label":"Enable Hibernate","when":"! omarchy-hibernation-available","action":"present_terminal omarchy-hibernation-setup"},
"setup.sleep.hibernate-disable": {"icon":"󰤁","label":"Disable Hibernate","when":"omarchy-hibernation-available","action":"present_terminal omarchy-hibernation-remove"},
"setup.monitors": {"icon":"󰍹","label":"Monitors","keywords":"monitor display hyprland","action":"open_in_editor \"$(hypr_config_file monitors)\""},
"setup.keybindings": {"icon":"","label":"Keybindings","keywords":"keyboard shortcuts","when":"[[ -f $(hypr_config_file bindings) ]]","action":"open_in_editor \"$(hypr_config_file bindings)\""},
"setup.input": {"icon":"","label":"Input","keywords":"keyboard touchpad mouse","when":"[[ -f $(hypr_config_file input) ]]","action":"open_in_editor \"$(hypr_config_file input)\""},
"setup.sleep.hibernate-enable": {"icon":"󰤁","label":"Enable Hibernate","when":"! omarchy-hibernation-available","action":"omarchy-launch-floating-terminal-with-presentation omarchy-hibernation-setup"},
"setup.sleep.hibernate-disable": {"icon":"󰤁","label":"Disable Hibernate","when":"omarchy-hibernation-available","action":"omarchy-launch-floating-terminal-with-presentation omarchy-hibernation-remove"},
"setup.monitors": {"icon":"󰍹","label":"Monitors","keywords":"monitor display hyprland","action":"omarchy-launch-config-editor \"$HOME/.config/hypr/monitors.lua\""},
"setup.keybindings": {"icon":"","label":"Keybindings","keywords":"keyboard shortcuts","when":"[[ -f ~/.config/hypr/bindings.lua ]]","action":"omarchy-launch-config-editor \"$HOME/.config/hypr/bindings.lua\""},
"setup.input": {"icon":"","label":"Input","keywords":"keyboard touchpad mouse","when":"[[ -f ~/.config/hypr/input.lua ]]","action":"omarchy-launch-config-editor \"$HOME/.config/hypr/input.lua\""},
"setup.default": {"icon":"","label":"Defaults","aliases":["default","defaults"],"keywords":"browser terminal editor"},
"setup.default.browser": {"icon":"","label":"Browser"},
"setup.default.browser.chromium": {"icon":"","label":"Chromium","when":"omarchy-cmd-present chromium","checked":"default_browser_is chromium","action":"omarchy-default-browser chromium"},
"setup.default.browser.chrome": {"icon":"󰊯","label":"Chrome","keywords":"google","when":"omarchy-cmd-present google-chrome-stable","checked":"default_browser_is chrome","action":"omarchy-default-browser chrome"},
"setup.default.browser.brave": {"icon":"󰖟","label":"Brave","when":"omarchy-cmd-present brave","checked":"default_browser_is brave","action":"omarchy-default-browser brave"},
"setup.default.browser.brave-origin": {"icon":"󰖟","label":"Brave Origin","when":"omarchy-cmd-present brave-origin-beta","checked":"default_browser_is brave-origin","action":"omarchy-default-browser brave-origin"},
"setup.default.browser.edge": {"icon":"󰇩","label":"Edge","when":"omarchy-cmd-present microsoft-edge-stable","checked":"default_browser_is edge","action":"omarchy-default-browser edge"},
"setup.default.browser.firefox": {"icon":"󰈹","label":"Firefox","when":"omarchy-cmd-present firefox","checked":"default_browser_is firefox","action":"omarchy-default-browser firefox"},
"setup.default.browser.zen": {"icon":"󰖟","label":"Zen","when":"omarchy-cmd-present zen-browser","checked":"default_browser_is zen","action":"omarchy-default-browser zen"},
"setup.default.browser.chromium": {"icon":"","label":"Chromium","when":"omarchy-cmd-present chromium","checked":"[[ \"$(omarchy-default-browser)\" == \"chromium\" ]]","action":"omarchy-default-browser chromium"},
"setup.default.browser.chrome": {"icon":"󰊯","label":"Chrome","keywords":"google","when":"omarchy-cmd-present google-chrome-stable","checked":"[[ \"$(omarchy-default-browser)\" == \"chrome\" ]]","action":"omarchy-default-browser chrome"},
"setup.default.browser.brave": {"icon":"󰖟","label":"Brave","when":"omarchy-cmd-present brave","checked":"[[ \"$(omarchy-default-browser)\" == \"brave\" ]]","action":"omarchy-default-browser brave"},
"setup.default.browser.brave-origin": {"icon":"󰖟","label":"Brave Origin","when":"omarchy-cmd-present brave-origin-beta","checked":"[[ \"$(omarchy-default-browser)\" == \"brave-origin\" ]]","action":"omarchy-default-browser brave-origin"},
"setup.default.browser.edge": {"icon":"󰇩","label":"Edge","when":"omarchy-cmd-present microsoft-edge-stable","checked":"[[ \"$(omarchy-default-browser)\" == \"edge\" ]]","action":"omarchy-default-browser edge"},
"setup.default.browser.firefox": {"icon":"󰈹","label":"Firefox","when":"omarchy-cmd-present firefox","checked":"[[ \"$(omarchy-default-browser)\" == \"firefox\" ]]","action":"omarchy-default-browser firefox"},
"setup.default.browser.zen": {"icon":"󰖟","label":"Zen","when":"omarchy-cmd-present zen-browser","checked":"[[ \"$(omarchy-default-browser)\" == \"zen\" ]]","action":"omarchy-default-browser zen"},
"setup.default.terminal": {"icon":"","label":"Terminal"},
"setup.default.terminal.alacritty": {"icon":"","label":"Alacritty","when":"omarchy-cmd-present alacritty","checked":"default_terminal_is alacritty","action":"omarchy-default-terminal alacritty"},
"setup.default.terminal.foot": {"icon":"","label":"Foot","when":"omarchy-cmd-present foot","checked":"default_terminal_is foot","action":"omarchy-default-terminal foot"},
"setup.default.terminal.ghostty": {"icon":"","label":"Ghostty","when":"omarchy-cmd-present ghostty","checked":"default_terminal_is ghostty","action":"omarchy-default-terminal ghostty"},
"setup.default.terminal.kitty": {"icon":"","label":"Kitty","when":"omarchy-cmd-present kitty","checked":"default_terminal_is kitty","action":"omarchy-default-terminal kitty"},
"setup.default.terminal.alacritty": {"icon":"","label":"Alacritty","when":"omarchy-cmd-present alacritty","checked":"[[ \"$(omarchy-default-terminal)\" == \"alacritty\" ]]","action":"omarchy-default-terminal alacritty"},
"setup.default.terminal.foot": {"icon":"","label":"Foot","when":"omarchy-cmd-present foot","checked":"[[ \"$(omarchy-default-terminal)\" == \"foot\" ]]","action":"omarchy-default-terminal foot"},
"setup.default.terminal.ghostty": {"icon":"","label":"Ghostty","when":"omarchy-cmd-present ghostty","checked":"[[ \"$(omarchy-default-terminal)\" == \"ghostty\" ]]","action":"omarchy-default-terminal ghostty"},
"setup.default.terminal.kitty": {"icon":"","label":"Kitty","when":"omarchy-cmd-present kitty","checked":"[[ \"$(omarchy-default-terminal)\" == \"kitty\" ]]","action":"omarchy-default-terminal kitty"},
"setup.default.editor": {"icon":"","label":"Editor"},
"setup.default.editor.neovim": {"icon":"","label":"Neovim","keywords":"nvim","when":"omarchy-cmd-present nvim","checked":"default_editor_is nvim","action":"omarchy-default-editor nvim"},
"setup.default.editor.vscode": {"icon":"","label":"VSCode","keywords":"code","when":"omarchy-cmd-present code","checked":"default_editor_is code","action":"omarchy-default-editor code"},
"setup.default.editor.cursor": {"icon":"","label":"Cursor","when":"omarchy-cmd-present cursor","checked":"default_editor_is cursor","action":"omarchy-default-editor cursor"},
"setup.default.editor.zed": {"icon":"","label":"Zed","when":"omarchy-cmd-present zeditor","checked":"default_editor_is zeditor","action":"omarchy-default-editor zed"},
"setup.default.editor.sublime": {"icon":"","label":"Sublime Text","when":"omarchy-cmd-present sublime_text","checked":"default_editor_is sublime_text","action":"omarchy-default-editor sublime_text"},
"setup.default.editor.helix": {"icon":"","label":"Helix","when":"omarchy-cmd-present helix","checked":"default_editor_is helix","action":"omarchy-default-editor helix"},
"setup.default.editor.vim": {"icon":"","label":"Vim","when":"omarchy-cmd-present vim","checked":"default_editor_is vim","action":"omarchy-default-editor vim"},
"setup.default.editor.emacs": {"icon":"","label":"Emacs","when":"omarchy-cmd-present emacs","checked":"default_editor_is emacs","action":"omarchy-default-editor emacs"},
"setup.dns": {"icon":"󰱔","label":"DNS","keywords":"network","action":"present_terminal omarchy-setup-dns"},
"setup.default.editor.neovim": {"icon":"","label":"Neovim","keywords":"nvim","when":"omarchy-cmd-present nvim","checked":"[[ \"$(omarchy-default-editor)\" == \"nvim\" ]]","action":"omarchy-default-editor nvim"},
"setup.default.editor.vscode": {"icon":"","label":"VSCode","keywords":"code","when":"omarchy-cmd-present code","checked":"[[ \"$(omarchy-default-editor)\" == \"code\" ]]","action":"omarchy-default-editor code"},
"setup.default.editor.cursor": {"icon":"","label":"Cursor","when":"omarchy-cmd-present cursor","checked":"[[ \"$(omarchy-default-editor)\" == \"cursor\" ]]","action":"omarchy-default-editor cursor"},
"setup.default.editor.zed": {"icon":"","label":"Zed","when":"omarchy-cmd-present zeditor","checked":"[[ \"$(omarchy-default-editor)\" == \"zeditor\" ]]","action":"omarchy-default-editor zed"},
"setup.default.editor.sublime": {"icon":"","label":"Sublime Text","when":"omarchy-cmd-present sublime_text","checked":"[[ \"$(omarchy-default-editor)\" == \"sublime_text\" ]]","action":"omarchy-default-editor sublime_text"},
"setup.default.editor.helix": {"icon":"","label":"Helix","when":"omarchy-cmd-present helix","checked":"[[ \"$(omarchy-default-editor)\" == \"helix\" ]]","action":"omarchy-default-editor helix"},
"setup.default.editor.vim": {"icon":"","label":"Vim","when":"omarchy-cmd-present vim","checked":"[[ \"$(omarchy-default-editor)\" == \"vim\" ]]","action":"omarchy-default-editor vim"},
"setup.default.editor.emacs": {"icon":"","label":"Emacs","when":"omarchy-cmd-present emacs","checked":"[[ \"$(omarchy-default-editor)\" == \"emacs\" ]]","action":"omarchy-default-editor emacs"},
"setup.dns": {"icon":"󰱔","label":"DNS","keywords":"network","action":"omarchy-launch-floating-terminal-with-presentation omarchy-setup-dns"},
"setup.security": {"icon":"","label":"Security","keywords":"fingerprint fido2"},
"setup.config": {"icon":"","label":"Config","keywords":"files hyprland bar quickshell walker"},
"setup.security.fingerprint": {"icon":"󰈷","label":"Fingerprint","action":"present_terminal omarchy-setup-security-fingerprint"},
"setup.security.fido2": {"icon":"","label":"Fido2","keywords":"key","action":"present_terminal omarchy-setup-security-fido2"},
"setup.config.hyprland": {"icon":"","label":"Hyprland","action":"open_in_editor \"$(hypr_config_file hyprland)\""},
"setup.config.hypridle": {"icon":"","label":"Hypridle","keywords":"idle","action":"open_in_editor ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle"},
"setup.config.hyprlock": {"icon":"","label":"Hyprlock","keywords":"lock","action":"open_in_editor ~/.config/hypr/hyprlock.conf"},
"setup.config.hyprsunset": {"icon":"","label":"Hyprsunset","keywords":"night light","action":"open_in_editor ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset"},
"setup.config.swayosd": {"icon":"","label":"Swayosd","action":"open_in_editor ~/.config/swayosd/config.toml && omarchy-restart-swayosd"},
"setup.config.walker": {"icon":"󰌧","label":"Walker","keywords":"launcher","action":"open_in_editor ~/.config/walker/config.toml && omarchy-restart-walker"},
"setup.security.fingerprint": {"icon":"󰈷","label":"Fingerprint","action":"omarchy-launch-floating-terminal-with-presentation omarchy-setup-security-fingerprint"},
"setup.security.fido2": {"icon":"","label":"Fido2","keywords":"key","action":"omarchy-launch-floating-terminal-with-presentation omarchy-setup-security-fido2"},
"setup.config.hyprland": {"icon":"","label":"Hyprland","action":"omarchy-launch-config-editor \"$HOME/.config/hypr/hyprland.lua\""},
"setup.config.hypridle": {"icon":"","label":"Hypridle","keywords":"idle","action":"omarchy-launch-config-editor ~/.config/hypr/hypridle.conf && omarchy-restart-hypridle"},
"setup.config.hyprlock": {"icon":"","label":"Hyprlock","keywords":"lock","action":"omarchy-launch-config-editor ~/.config/hypr/hyprlock.conf"},
"setup.config.hyprsunset": {"icon":"","label":"Hyprsunset","keywords":"night light","action":"omarchy-launch-config-editor ~/.config/hypr/hyprsunset.conf && omarchy-restart-hyprsunset"},
"setup.config.swayosd": {"icon":"","label":"Swayosd","action":"omarchy-launch-config-editor ~/.config/swayosd/config.toml && omarchy-restart-swayosd"},
"setup.config.walker": {"icon":"󰌧","label":"Walker","keywords":"launcher","action":"omarchy-launch-config-editor ~/.config/walker/config.toml && omarchy-restart-walker"},
"setup.config.bar": {"icon":"󰍜","label":"Bar","keywords":"quickshell shell config","action":"omarchy-launch-settings bar"},
"setup.config.xcompose": {"icon":"󰞅","label":"XCompose","keywords":"compose key","action":"open_in_editor ~/.XCompose && omarchy-restart-xcompose"},
"setup.config.xcompose": {"icon":"󰞅","label":"XCompose","keywords":"compose key","action":"omarchy-launch-config-editor ~/.XCompose && omarchy-restart-xcompose"},
// Install
"install.package": {"icon":"󰣇","label":"Package","keywords":"pacman aur","action":"terminal omarchy-pkg-install"},
"install.aur": {"icon":"󰣇","label":"AUR","keywords":"package","action":"terminal omarchy-pkg-aur-install"},
"install.webapp": {"icon":"","label":"Web App","keywords":"pwa","action":"present_terminal omarchy-webapp-install"},
"install.tui": {"icon":"","label":"TUI","keywords":"terminal app","action":"present_terminal omarchy-tui-install"},
"install.package": {"icon":"󰣇","label":"Package","keywords":"pacman aur","action":"xdg-terminal-exec --app-id=org.omarchy.terminal omarchy-pkg-install"},
"install.aur": {"icon":"󰣇","label":"AUR","keywords":"package","action":"xdg-terminal-exec --app-id=org.omarchy.terminal omarchy-pkg-aur-install"},
"install.webapp": {"icon":"","label":"Web App","keywords":"pwa","action":"omarchy-launch-floating-terminal-with-presentation omarchy-webapp-install"},
"install.tui": {"icon":"","label":"TUI","keywords":"terminal app","action":"omarchy-launch-floating-terminal-with-presentation omarchy-tui-install"},
"install.service": {"icon":"","label":"Service","keywords":"dropbox tailscale vpn"},
"install.style": {"icon":"","label":"Style","keywords":"theme background font","target":"style.install"},
"install.development": {"icon":"󰵮","label":"Development","keywords":"languages programming"},
@@ -182,151 +182,151 @@
"install.browser": {"icon":"","label":"Browser","keywords":"web"},
"install.ai": {"icon":"󱚤","label":"AI","keywords":"dictation ollama lm studio crush"},
"install.gaming": {"icon":"","label":"Gaming","keywords":"steam retroarch minecraft lutris heroic"},
"install.windows": {"icon":"󰍲","label":"Windows","keywords":"vm","action":"present_terminal 'omarchy-windows-vm install'"},
"install.browser.chrome": {"icon":"","label":"Chrome","action":"present_terminal 'omarchy-install-browser chrome'"},
"install.browser.edge": {"icon":"","label":"Edge","action":"present_terminal 'omarchy-install-browser edge'"},
"install.browser.brave": {"icon":"","label":"Brave","action":"present_terminal 'omarchy-install-browser brave'"},
"install.browser.brave-origin": {"icon":"","label":"Brave Origin","action":"present_terminal 'omarchy-install-browser brave-origin'"},
"install.browser.firefox": {"icon":"","label":"Firefox","action":"present_terminal 'omarchy-install-browser firefox'"},
"install.browser.zen": {"icon":"󰖟","label":"Zen","action":"present_terminal 'omarchy-install-browser zen'"},
"install.service.dropbox": {"icon":"","label":"Dropbox","action":"present_terminal omarchy-install-dropbox"},
"install.service.tailscale": {"icon":"","label":"Tailscale","keywords":"vpn","action":"present_terminal omarchy-install-tailscale"},
"install.service.nordvpn": {"icon":"󱇱","label":"NordVPN [AUR]","keywords":"vpn","action":"present_terminal omarchy-install-nordvpn"},
"install.service.once": {"icon":"󰏖","label":"ONCE","action":"present_terminal omarchy-install-once"},
"install.service.bitwarden": {"icon":"󰟵","label":"Bitwarden","keywords":"password","action":"install_and_launch Bitwarden 'bitwarden bitwarden-cli' bitwarden"},
"install.service.chromium-account": {"icon":"","label":"Chromium Account","keywords":"google","action":"present_terminal omarchy-install-chromium-google-account"},
"install.editor.vscode": {"icon":"","label":"VSCode","keywords":"code","action":"present_terminal omarchy-install-vscode"},
"install.editor.cursor": {"icon":"","label":"Cursor","action":"install_and_launch Cursor cursor-bin cursor"},
"install.editor.zed": {"icon":"","label":"Zed","action":"present_terminal omarchy-install-zed"},
"install.editor.sublime": {"icon":"","label":"Sublime Text","action":"install_and_launch 'Sublime Text' sublime-text-4 sublime_text"},
"install.editor.helix": {"icon":"","label":"Helix","action":"present_terminal omarchy-install-helix"},
"install.editor.vim": {"icon":"","label":"Vim","action":"install Vim vim"},
"install.editor.emacs": {"icon":"","label":"Emacs","action":"install Emacs emacs-wayland && systemctl --user enable --now emacs.service"},
"install.terminal.alacritty": {"icon":"","label":"Alacritty","action":"install_terminal alacritty"},
"install.terminal.foot": {"icon":"","label":"Foot","action":"install_terminal foot"},
"install.terminal.ghostty": {"icon":"","label":"Ghostty","action":"install_terminal ghostty"},
"install.terminal.kitty": {"icon":"","label":"Kitty","action":"install_terminal kitty"},
"install.ai.dictation": {"icon":"","label":"Dictation","keywords":"voice","action":"present_terminal omarchy-voxtype-install"},
"install.ai.lm-studio": {"icon":"󱚤","label":"LM Studio","action":"install 'LM Studio' lmstudio-bin"},
"install.windows": {"icon":"󰍲","label":"Windows","keywords":"vm","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-windows-vm install'"},
"install.browser.chrome": {"icon":"","label":"Chrome","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser chrome'"},
"install.browser.edge": {"icon":"","label":"Edge","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser edge'"},
"install.browser.brave": {"icon":"","label":"Brave","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser brave'"},
"install.browser.brave-origin": {"icon":"","label":"Brave Origin","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser brave-origin'"},
"install.browser.firefox": {"icon":"","label":"Firefox","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser firefox'"},
"install.browser.zen": {"icon":"󰖟","label":"Zen","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-browser zen'"},
"install.service.dropbox": {"icon":"","label":"Dropbox","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-dropbox"},
"install.service.tailscale": {"icon":"","label":"Tailscale","keywords":"vpn","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-tailscale"},
"install.service.nordvpn": {"icon":"󱇱","label":"NordVPN [AUR]","keywords":"vpn","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-nordvpn"},
"install.service.once": {"icon":"󰏖","label":"ONCE","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-once"},
"install.service.bitwarden": {"icon":"󰟵","label":"Bitwarden","keywords":"password","action":"omarchy-install-and-launch Bitwarden 'bitwarden bitwarden-cli' bitwarden"},
"install.service.chromium-account": {"icon":"","label":"Chromium Account","keywords":"google","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-chromium-google-account"},
"install.editor.vscode": {"icon":"","label":"VSCode","keywords":"code","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-vscode"},
"install.editor.cursor": {"icon":"","label":"Cursor","action":"omarchy-install-and-launch Cursor cursor-bin cursor"},
"install.editor.zed": {"icon":"","label":"Zed","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-zed"},
"install.editor.sublime": {"icon":"","label":"Sublime Text","action":"omarchy-install-and-launch 'Sublime Text' sublime-text-4 sublime_text"},
"install.editor.helix": {"icon":"","label":"Helix","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-helix"},
"install.editor.vim": {"icon":"","label":"Vim","action":"omarchy-install-app Vim vim"},
"install.editor.emacs": {"icon":"","label":"Emacs","action":"omarchy-install-app Emacs emacs-wayland && systemctl --user enable --now emacs.service"},
"install.terminal.alacritty": {"icon":"","label":"Alacritty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal alacritty'"},
"install.terminal.foot": {"icon":"","label":"Foot","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal foot'"},
"install.terminal.ghostty": {"icon":"","label":"Ghostty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal ghostty'"},
"install.terminal.kitty": {"icon":"","label":"Kitty","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-terminal kitty'"},
"install.ai.dictation": {"icon":"","label":"Dictation","keywords":"voice","action":"omarchy-launch-floating-terminal-with-presentation omarchy-voxtype-install"},
"install.ai.lm-studio": {"icon":"󱚤","label":"LM Studio","action":"omarchy-install-app 'LM Studio' lmstudio-bin"},
"install.ai.ollama": {"icon":"󱚤","label":"Ollama","action":"if omarchy-cmd-present nvidia-smi; then ollama_pkg=ollama-cuda; elif omarchy-cmd-present rocminfo; then ollama_pkg=ollama-rocm; else ollama_pkg=ollama; fi; install Ollama \"$ollama_pkg\""},
"install.ai.crush": {"icon":"󱚤","label":"Crush","action":"install Crush crush-bin"},
"install.gaming.steam": {"icon":"","label":"Steam","action":"present_terminal omarchy-install-gaming-steam"},
"install.gaming.retroarch": {"icon":"󰯉","label":"RetroArch","action":"present_terminal omarchy-install-gaming-retroarch"},
"install.gaming.minecraft": {"icon":"󰍳","label":"Minecraft","action":"install_and_launch Minecraft minecraft-launcher minecraft-launcher"},
"install.gaming.geforce-now": {"icon":"󰢹","label":"NVIDIA GeForce NOW","action":"present_terminal omarchy-install-gaming-geforce-now"},
"install.gaming.xbox-cloud": {"icon":"","label":"Xbox Cloud Gaming","action":"present_terminal omarchy-install-gaming-xbox-cloud"},
"install.gaming.xbox-controller": {"icon":"󰂯","label":"Xbox Controller","action":"present_terminal omarchy-install-gaming-xbox-controllers"},
"install.gaming.moonlight": {"icon":"󰍹","label":"Moonlight (GameStream)","action":"present_terminal omarchy-install-gaming-moonlight"},
"install.gaming.lutris": {"icon":"","label":"Lutris (Battle.net)","action":"present_terminal omarchy-install-gaming-lutris"},
"install.gaming.heroic": {"icon":"󱓟","label":"Heroic (Epic Games)","action":"present_terminal omarchy-install-gaming-heroic"},
"install.ai.crush": {"icon":"󱚤","label":"Crush","action":"omarchy-install-app Crush crush-bin"},
"install.gaming.steam": {"icon":"","label":"Steam","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-steam"},
"install.gaming.retroarch": {"icon":"󰯉","label":"RetroArch","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-retroarch"},
"install.gaming.minecraft": {"icon":"󰍳","label":"Minecraft","action":"omarchy-install-and-launch Minecraft minecraft-launcher minecraft-launcher"},
"install.gaming.geforce-now": {"icon":"󰢹","label":"NVIDIA GeForce NOW","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-geforce-now"},
"install.gaming.xbox-cloud": {"icon":"","label":"Xbox Cloud Gaming","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-xbox-cloud"},
"install.gaming.xbox-controller": {"icon":"󰂯","label":"Xbox Controller","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-xbox-controllers"},
"install.gaming.moonlight": {"icon":"󰍹","label":"Moonlight (GameStream)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-moonlight"},
"install.gaming.lutris": {"icon":"","label":"Lutris (Battle.net)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-lutris"},
"install.gaming.heroic": {"icon":"󱓟","label":"Heroic (Epic Games)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-gaming-heroic"},
"install.gaming.retro-launcher": {"icon":"󰯉","label":"RetroArch Game Launcher","action":"omarchy-games-retro-install"},
"install.development.rails": {"icon":"󰫏","label":"Ruby on Rails","action":"present_terminal 'omarchy-install-dev-env ruby'"},
"install.development.docker-dbs": {"icon":"","label":"Docker DB","keywords":"databases","action":"present_terminal omarchy-install-docker-dbs"},
"install.development.rails": {"icon":"󰫏","label":"Ruby on Rails","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env ruby'"},
"install.development.docker-dbs": {"icon":"","label":"Docker DB","keywords":"databases","action":"omarchy-launch-floating-terminal-with-presentation omarchy-install-docker-dbs"},
"install.development.javascript": {"icon":"","label":"JavaScript","keywords":"node bun deno"},
"install.development.go": {"icon":"","label":"Go","keywords":"golang","action":"present_terminal 'omarchy-install-dev-env go'"},
"install.development.go": {"icon":"","label":"Go","keywords":"golang","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env go'"},
"install.development.php": {"icon":"","label":"PHP","keywords":"laravel symfony"},
"install.development.python": {"icon":"","label":"Python","action":"present_terminal 'omarchy-install-dev-env python'"},
"install.development.python": {"icon":"","label":"Python","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env python'"},
"install.development.elixir": {"icon":"","label":"Elixir","keywords":"phoenix"},
"install.development.zig": {"icon":"","label":"Zig","action":"present_terminal 'omarchy-install-dev-env zig'"},
"install.development.rust": {"icon":"","label":"Rust","action":"present_terminal 'omarchy-install-dev-env rust'"},
"install.development.java": {"icon":"","label":"Java","action":"present_terminal 'omarchy-install-dev-env java'"},
"install.development.dotnet": {"icon":"","label":".NET","action":"present_terminal 'omarchy-install-dev-env dotnet'"},
"install.development.ocaml": {"icon":"","label":"OCaml","action":"present_terminal 'omarchy-install-dev-env ocaml'"},
"install.development.clojure": {"icon":"","label":"Clojure","action":"present_terminal 'omarchy-install-dev-env clojure'"},
"install.development.scala": {"icon":"","label":"Scala","action":"present_terminal 'omarchy-install-dev-env scala'"},
"install.development.javascript.node": {"icon":"","label":"Node.js","action":"present_terminal 'omarchy-install-dev-env node'"},
"install.development.javascript.bun": {"icon":"","label":"Bun","action":"present_terminal 'omarchy-install-dev-env bun'"},
"install.development.javascript.deno": {"icon":"","label":"Deno","action":"present_terminal 'omarchy-install-dev-env deno'"},
"install.development.php.php": {"icon":"","label":"PHP","action":"present_terminal 'omarchy-install-dev-env php'"},
"install.development.php.laravel": {"icon":"","label":"Laravel","action":"present_terminal 'omarchy-install-dev-env laravel'"},
"install.development.php.symfony": {"icon":"","label":"Symfony","action":"present_terminal 'omarchy-install-dev-env symfony'"},
"install.development.elixir.elixir": {"icon":"","label":"Elixir","action":"present_terminal 'omarchy-install-dev-env elixir'"},
"install.development.elixir.phoenix": {"icon":"","label":"Phoenix","action":"present_terminal 'omarchy-install-dev-env phoenix'"},
"install.development.zig": {"icon":"","label":"Zig","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env zig'"},
"install.development.rust": {"icon":"","label":"Rust","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env rust'"},
"install.development.java": {"icon":"","label":"Java","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env java'"},
"install.development.dotnet": {"icon":"","label":".NET","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env dotnet'"},
"install.development.ocaml": {"icon":"","label":"OCaml","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env ocaml'"},
"install.development.clojure": {"icon":"","label":"Clojure","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env clojure'"},
"install.development.scala": {"icon":"","label":"Scala","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env scala'"},
"install.development.javascript.node": {"icon":"","label":"Node.js","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env node'"},
"install.development.javascript.bun": {"icon":"","label":"Bun","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env bun'"},
"install.development.javascript.deno": {"icon":"","label":"Deno","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env deno'"},
"install.development.php.php": {"icon":"","label":"PHP","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env php'"},
"install.development.php.laravel": {"icon":"","label":"Laravel","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env laravel'"},
"install.development.php.symfony": {"icon":"","label":"Symfony","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env symfony'"},
"install.development.elixir.elixir": {"icon":"","label":"Elixir","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env elixir'"},
"install.development.elixir.phoenix": {"icon":"","label":"Phoenix","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-install-dev-env phoenix'"},
// Remove
"remove.package": {"icon":"󰣇","label":"Package","keywords":"uninstall","action":"terminal omarchy-pkg-remove"},
"remove.webapp": {"icon":"","label":"Web App","keywords":"uninstall","action":"present_terminal omarchy-webapp-remove"},
"remove.tui": {"icon":"","label":"TUI","keywords":"uninstall terminal app","action":"present_terminal omarchy-tui-remove"},
"remove.package": {"icon":"󰣇","label":"Package","keywords":"uninstall","action":"xdg-terminal-exec --app-id=org.omarchy.terminal omarchy-pkg-remove"},
"remove.webapp": {"icon":"","label":"Web App","keywords":"uninstall","action":"omarchy-launch-floating-terminal-with-presentation omarchy-webapp-remove"},
"remove.tui": {"icon":"","label":"TUI","keywords":"uninstall terminal app","action":"omarchy-launch-floating-terminal-with-presentation omarchy-tui-remove"},
"remove.development": {"icon":"󰵮","label":"Development","keywords":"uninstall languages"},
"remove.theme": {"icon":"󰸌","label":"Theme","keywords":"uninstall","action":"present_terminal omarchy-theme-remove"},
"remove.theme": {"icon":"󰸌","label":"Theme","keywords":"uninstall","action":"omarchy-launch-floating-terminal-with-presentation omarchy-theme-remove"},
"remove.browser": {"icon":"","label":"Browser","keywords":"uninstall"},
"remove.dictation": {"icon":"","label":"Dictation","keywords":"uninstall voice","action":"present_terminal omarchy-voxtype-remove"},
"remove.dictation": {"icon":"","label":"Dictation","keywords":"uninstall voice","action":"omarchy-launch-floating-terminal-with-presentation omarchy-voxtype-remove"},
"remove.gaming": {"icon":"","label":"Gaming","keywords":"uninstall steam retroarch minecraft"},
"remove.windows": {"icon":"󰍲","label":"Windows","keywords":"uninstall vm","action":"present_terminal 'omarchy-windows-vm remove'"},
"remove.preinstalls": {"icon":"󰏓","label":"Preinstalls","action":"present_terminal omarchy-remove-preinstalls"},
"remove.windows": {"icon":"󰍲","label":"Windows","keywords":"uninstall vm","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-windows-vm remove'"},
"remove.preinstalls": {"icon":"󰏓","label":"Preinstalls","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-preinstalls"},
"remove.security": {"icon":"","label":"Security","keywords":"fingerprint fido2"},
"remove.security.fingerprint": {"icon":"󰈷","label":"Fingerprint","action":"present_terminal omarchy-remove-security-fingerprint"},
"remove.security.fido2": {"icon":"","label":"Fido2","action":"present_terminal omarchy-remove-security-fido2"},
"remove.browser.chrome": {"icon":"","label":"Chrome","action":"present_terminal 'omarchy-remove-browser chrome'"},
"remove.browser.edge": {"icon":"","label":"Edge","action":"present_terminal 'omarchy-remove-browser edge'"},
"remove.browser.brave": {"icon":"","label":"Brave","action":"present_terminal 'omarchy-remove-browser brave'"},
"remove.browser.brave-origin": {"icon":"","label":"Brave Origin","action":"present_terminal 'omarchy-remove-browser brave-origin'"},
"remove.browser.firefox": {"icon":"","label":"Firefox","action":"present_terminal 'omarchy-remove-browser firefox'"},
"remove.browser.zen": {"icon":"","label":"Zen","action":"present_terminal 'omarchy-remove-browser zen'"},
"remove.gaming.steam": {"icon":"","label":"Steam","action":"present_terminal omarchy-remove-gaming-steam"},
"remove.gaming.retroarch": {"icon":"","label":"RetroArch","action":"present_terminal omarchy-remove-gaming-retroarch"},
"remove.gaming.minecraft": {"icon":"󰍳","label":"Minecraft","action":"present_terminal omarchy-remove-gaming-minecraft"},
"remove.gaming.geforce-now": {"icon":"󰢹","label":"NVIDIA GeForce NOW","action":"present_terminal omarchy-remove-gaming-geforce-now"},
"remove.gaming.xbox-cloud": {"icon":"","label":"Xbox Cloud Gaming","action":"present_terminal omarchy-remove-gaming-xbox-cloud"},
"remove.gaming.xbox-controller": {"icon":"󰖺","label":"Xbox Controller (󰂯)","action":"present_terminal omarchy-remove-gaming-xbox-controllers"},
"remove.gaming.moonlight": {"icon":"󰍹","label":"Moonlight (GameStream)","action":"present_terminal omarchy-remove-gaming-moonlight"},
"remove.gaming.lutris": {"icon":"","label":"Lutris (Battle.net)","action":"present_terminal omarchy-remove-gaming-lutris"},
"remove.gaming.heroic": {"icon":"󱓟","label":"Heroic (Epic Games)","action":"present_terminal omarchy-remove-gaming-heroic"},
"remove.development.rails": {"icon":"󰫏","label":"Ruby on Rails","action":"present_terminal 'omarchy-remove-dev-env ruby'"},
"remove.security.fingerprint": {"icon":"󰈷","label":"Fingerprint","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-security-fingerprint"},
"remove.security.fido2": {"icon":"","label":"Fido2","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-security-fido2"},
"remove.browser.chrome": {"icon":"","label":"Chrome","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-browser chrome'"},
"remove.browser.edge": {"icon":"","label":"Edge","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-browser edge'"},
"remove.browser.brave": {"icon":"","label":"Brave","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-browser brave'"},
"remove.browser.brave-origin": {"icon":"","label":"Brave Origin","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-browser brave-origin'"},
"remove.browser.firefox": {"icon":"","label":"Firefox","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-browser firefox'"},
"remove.browser.zen": {"icon":"","label":"Zen","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-browser zen'"},
"remove.gaming.steam": {"icon":"","label":"Steam","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-steam"},
"remove.gaming.retroarch": {"icon":"","label":"RetroArch","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-retroarch"},
"remove.gaming.minecraft": {"icon":"󰍳","label":"Minecraft","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-minecraft"},
"remove.gaming.geforce-now": {"icon":"󰢹","label":"NVIDIA GeForce NOW","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-geforce-now"},
"remove.gaming.xbox-cloud": {"icon":"","label":"Xbox Cloud Gaming","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-xbox-cloud"},
"remove.gaming.xbox-controller": {"icon":"󰖺","label":"Xbox Controller (󰂯)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-xbox-controllers"},
"remove.gaming.moonlight": {"icon":"󰍹","label":"Moonlight (GameStream)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-moonlight"},
"remove.gaming.lutris": {"icon":"","label":"Lutris (Battle.net)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-lutris"},
"remove.gaming.heroic": {"icon":"󱓟","label":"Heroic (Epic Games)","action":"omarchy-launch-floating-terminal-with-presentation omarchy-remove-gaming-heroic"},
"remove.development.rails": {"icon":"󰫏","label":"Ruby on Rails","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env ruby'"},
"remove.development.javascript": {"icon":"","label":"JavaScript","keywords":"node bun deno"},
"remove.development.go": {"icon":"","label":"Go","keywords":"golang","action":"present_terminal 'omarchy-remove-dev-env go'"},
"remove.development.go": {"icon":"","label":"Go","keywords":"golang","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env go'"},
"remove.development.php": {"icon":"","label":"PHP","keywords":"laravel symfony"},
"remove.development.python": {"icon":"","label":"Python","action":"present_terminal 'omarchy-remove-dev-env python'"},
"remove.development.python": {"icon":"","label":"Python","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env python'"},
"remove.development.elixir": {"icon":"","label":"Elixir","keywords":"phoenix"},
"remove.development.zig": {"icon":"","label":"Zig","action":"present_terminal 'omarchy-remove-dev-env zig'"},
"remove.development.rust": {"icon":"","label":"Rust","action":"present_terminal 'omarchy-remove-dev-env rust'"},
"remove.development.java": {"icon":"","label":"Java","action":"present_terminal 'omarchy-remove-dev-env java'"},
"remove.development.dotnet": {"icon":"","label":".NET","action":"present_terminal 'omarchy-remove-dev-env dotnet'"},
"remove.development.ocaml": {"icon":"","label":"OCaml","action":"present_terminal 'omarchy-remove-dev-env ocaml'"},
"remove.development.clojure": {"icon":"","label":"Clojure","action":"present_terminal 'omarchy-remove-dev-env clojure'"},
"remove.development.scala": {"icon":"","label":"Scala","action":"present_terminal 'omarchy-remove-dev-env scala'"},
"remove.development.javascript.node": {"icon":"","label":"Node.js","action":"present_terminal 'omarchy-remove-dev-env node'"},
"remove.development.javascript.bun": {"icon":"","label":"Bun","action":"present_terminal 'omarchy-remove-dev-env bun'"},
"remove.development.javascript.deno": {"icon":"","label":"Deno","action":"present_terminal 'omarchy-remove-dev-env deno'"},
"remove.development.php.php": {"icon":"","label":"PHP","action":"present_terminal 'omarchy-remove-dev-env php'"},
"remove.development.php.laravel": {"icon":"","label":"Laravel","action":"present_terminal 'omarchy-remove-dev-env laravel'"},
"remove.development.php.symfony": {"icon":"","label":"Symfony","action":"present_terminal 'omarchy-remove-dev-env symfony'"},
"remove.development.elixir.elixir": {"icon":"","label":"Elixir","action":"present_terminal 'omarchy-remove-dev-env elixir'"},
"remove.development.elixir.phoenix": {"icon":"","label":"Phoenix","action":"present_terminal 'omarchy-remove-dev-env phoenix'"},
"remove.development.zig": {"icon":"","label":"Zig","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env zig'"},
"remove.development.rust": {"icon":"","label":"Rust","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env rust'"},
"remove.development.java": {"icon":"","label":"Java","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env java'"},
"remove.development.dotnet": {"icon":"","label":".NET","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env dotnet'"},
"remove.development.ocaml": {"icon":"","label":"OCaml","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env ocaml'"},
"remove.development.clojure": {"icon":"","label":"Clojure","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env clojure'"},
"remove.development.scala": {"icon":"","label":"Scala","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env scala'"},
"remove.development.javascript.node": {"icon":"","label":"Node.js","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env node'"},
"remove.development.javascript.bun": {"icon":"","label":"Bun","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env bun'"},
"remove.development.javascript.deno": {"icon":"","label":"Deno","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env deno'"},
"remove.development.php.php": {"icon":"","label":"PHP","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env php'"},
"remove.development.php.laravel": {"icon":"","label":"Laravel","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env laravel'"},
"remove.development.php.symfony": {"icon":"","label":"Symfony","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env symfony'"},
"remove.development.elixir.elixir": {"icon":"","label":"Elixir","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env elixir'"},
"remove.development.elixir.phoenix": {"icon":"","label":"Phoenix","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-remove-dev-env phoenix'"},
// Update
"update.omarchy": {"icon":"","label":"Omarchy","keywords":"system","action":"present_terminal omarchy-update"},
"update.omarchy": {"icon":"","label":"Omarchy","keywords":"system","action":"omarchy-launch-floating-terminal-with-presentation omarchy-update"},
"update.channel": {"icon":"󰔫","label":"Channel","keywords":"stable rc edge dev"},
"update.config": {"icon":"","label":"Config","keywords":"refresh default"},
"update.themes": {"icon":"󰸌","label":"Extra Themes","action":"present_terminal omarchy-theme-update"},
"update.themes": {"icon":"󰸌","label":"Extra Themes","action":"omarchy-launch-floating-terminal-with-presentation omarchy-theme-update"},
"update.process": {"icon":"","label":"Process","keywords":"restart services"},
"update.hardware": {"icon":"󰇅","label":"Hardware","keywords":"restart audio wifi bluetooth trackpad"},
"update.firmware": {"icon":"","label":"Firmware","keywords":"fwupd","action":"present_terminal omarchy-update-firmware"},
"update.firmware": {"icon":"","label":"Firmware","keywords":"fwupd","action":"omarchy-launch-floating-terminal-with-presentation omarchy-update-firmware"},
"update.password": {"icon":"","label":"Password","keywords":"drive user"},
"update.timezone": {"icon":"","label":"Timezone","keywords":"time zone","action":"present_terminal omarchy-tz-select"},
"update.time": {"icon":"","label":"Time","keywords":"clock ntp","action":"present_terminal omarchy-update-time"},
"update.channel.stable": {"icon":"🟢","label":"Stable","action":"present_terminal 'omarchy-channel-set stable'"},
"update.channel.rc": {"icon":"🟡","label":"RC","keywords":"release candidate","action":"present_terminal 'omarchy-channel-set rc'"},
"update.channel.edge": {"icon":"🟠","label":"Edge","action":"present_terminal 'omarchy-channel-set edge'"},
"update.channel.dev": {"icon":"🔴","label":"Dev","keywords":"development","action":"present_terminal 'omarchy-channel-set dev'"},
"update.timezone": {"icon":"","label":"Timezone","keywords":"time zone","action":"omarchy-launch-floating-terminal-with-presentation omarchy-tz-select"},
"update.time": {"icon":"","label":"Time","keywords":"clock ntp","action":"omarchy-launch-floating-terminal-with-presentation omarchy-update-time"},
"update.channel.stable": {"icon":"🟢","label":"Stable","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-channel-set stable'"},
"update.channel.rc": {"icon":"🟡","label":"RC","keywords":"release candidate","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-channel-set rc'"},
"update.channel.edge": {"icon":"🟠","label":"Edge","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-channel-set edge'"},
"update.channel.dev": {"icon":"🔴","label":"Dev","keywords":"development","action":"omarchy-launch-floating-terminal-with-presentation 'omarchy-channel-set dev'"},
"update.process.hypridle": {"icon":"","label":"Hypridle","keywords":"restart","action":"omarchy-restart-hypridle"},
"update.process.hyprsunset": {"icon":"","label":"Hyprsunset","keywords":"restart","action":"omarchy-restart-hyprsunset"},
"update.process.swayosd": {"icon":"","label":"Swayosd","keywords":"restart","action":"omarchy-restart-swayosd"},
"update.process.walker": {"icon":"󰌧","label":"Walker","keywords":"restart launcher","action":"omarchy-restart-walker"},
"update.process.shell": {"icon":"󰍜","label":"Shell","keywords":"restart bar quickshell omarchy-shell","action":"omarchy-restart-shell"},
"update.config.hyprland": {"icon":"","label":"Hyprland","keywords":"refresh","action":"present_terminal omarchy-refresh-hyprland"},
"update.config.hypridle": {"icon":"","label":"Hypridle","keywords":"refresh","action":"present_terminal omarchy-refresh-hypridle"},
"update.config.hyprlock": {"icon":"","label":"Hyprlock","keywords":"refresh","action":"present_terminal omarchy-refresh-hyprlock"},
"update.config.hyprsunset": {"icon":"","label":"Hyprsunset","keywords":"refresh","action":"present_terminal omarchy-refresh-hyprsunset"},
"update.config.plymouth": {"icon":"󱣴","label":"Plymouth","keywords":"refresh","action":"present_terminal omarchy-refresh-plymouth"},
"update.config.swayosd": {"icon":"","label":"Swayosd","keywords":"refresh","action":"present_terminal omarchy-refresh-swayosd"},
"update.config.tmux": {"icon":"","label":"Tmux","keywords":"refresh","action":"present_terminal omarchy-refresh-tmux"},
"update.config.walker": {"icon":"󰌧","label":"Walker","keywords":"refresh","action":"present_terminal omarchy-refresh-walker"},
"update.config.shell": {"icon":"󰍜","label":"Shell","keywords":"refresh bar quickshell","action":"present_terminal omarchy-refresh-shell"},
"update.hardware.audio": {"icon":"","label":"Audio","keywords":"restart pipewire","action":"present_terminal omarchy-restart-pipewire"},
"update.hardware.wifi": {"icon":"󱚾","label":"Wi-Fi","keywords":"restart wireless","action":"present_terminal omarchy-restart-wifi"},
"update.hardware.bluetooth": {"icon":"󰂯","label":"Bluetooth","keywords":"restart","action":"present_terminal omarchy-restart-bluetooth"},
"update.hardware.trackpad": {"icon":"󰟸","label":"Trackpad","keywords":"restart touchpad","action":"present_terminal omarchy-restart-trackpad"},
"update.password.drive": {"icon":"","label":"Drive Encryption","action":"present_terminal omarchy-drive-password"},
"update.password.user": {"icon":"","label":"User","keywords":"passwd","action":"present_terminal passwd"},
"update.config.hyprland": {"icon":"","label":"Hyprland","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-hyprland"},
"update.config.hypridle": {"icon":"","label":"Hypridle","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-hypridle"},
"update.config.hyprlock": {"icon":"","label":"Hyprlock","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-hyprlock"},
"update.config.hyprsunset": {"icon":"","label":"Hyprsunset","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-hyprsunset"},
"update.config.plymouth": {"icon":"󱣴","label":"Plymouth","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-plymouth"},
"update.config.swayosd": {"icon":"","label":"Swayosd","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-swayosd"},
"update.config.tmux": {"icon":"","label":"Tmux","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-tmux"},
"update.config.walker": {"icon":"󰌧","label":"Walker","keywords":"refresh","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-walker"},
"update.config.shell": {"icon":"󰍜","label":"Shell","keywords":"refresh bar quickshell","action":"omarchy-launch-floating-terminal-with-presentation omarchy-refresh-shell"},
"update.hardware.audio": {"icon":"","label":"Audio","keywords":"restart pipewire","action":"omarchy-launch-floating-terminal-with-presentation omarchy-restart-pipewire"},
"update.hardware.wifi": {"icon":"󱚾","label":"Wi-Fi","keywords":"restart wireless","action":"omarchy-launch-floating-terminal-with-presentation omarchy-restart-wifi"},
"update.hardware.bluetooth": {"icon":"󰂯","label":"Bluetooth","keywords":"restart","action":"omarchy-launch-floating-terminal-with-presentation omarchy-restart-bluetooth"},
"update.hardware.trackpad": {"icon":"󰟸","label":"Trackpad","keywords":"restart touchpad","action":"omarchy-launch-floating-terminal-with-presentation omarchy-restart-trackpad"},
"update.password.drive": {"icon":"","label":"Drive Encryption","action":"omarchy-launch-floating-terminal-with-presentation omarchy-drive-password"},
"update.password.user": {"icon":"","label":"User","keywords":"passwd","action":"omarchy-launch-floating-terminal-with-presentation passwd"},
}
@@ -1388,7 +1388,7 @@ Item {
tooltipText: "Omarchy Menu\n\nSuper + Alt + Space"
onPressed: function(button) {
if (button === Qt.RightButton) root.run("xdg-terminal-exec")
else root.run("env -u OMARCHY_PATH " + root.shellQuote(root.home + "/.local/share/omarchy/bin/omarchy-menu"))
else root.run("omarchy-shell-ipc menu summon root")
}
}
@@ -1944,7 +1944,7 @@ Item {
tooltipText: root.batteryTooltip()
onPressed: function(button) {
if (button === Qt.RightButton) root.run("omarchy-notification-send \"$(omarchy-battery-status)\"")
else root.run("omarchy-menu power")
else root.run("omarchy-shell-ipc menu summon power")
}
}
}