mirror of
https://github.com/arthur-pbty/arthur-os.git
synced 2026-08-01 20:28:16 +02:00
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:
+36
@@ -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"
|
||||
Executable
+17
@@ -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}"
|
||||
Executable
+15
@@ -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}"
|
||||
Executable
+17
@@ -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}'"
|
||||
Executable
+15
@@ -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"
|
||||
@@ -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
|
||||
Executable
+28
@@ -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
|
||||
@@ -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
@@ -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")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user