feat: sims cli as python package

This commit is contained in:
2026-05-03 22:19:52 +02:00
parent afcf8d51fe
commit 0cd58f4a1f
6 changed files with 171 additions and 60 deletions

20
scripts/cli_launcher.py Normal file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env python3
import os
import sys
script_dir = os.path.dirname(os.path.abspath(__file__))
site_packages_dir = os.path.join(
script_dir,
os.pardir,
"lib",
f"python{sys.version_info.major}.{sys.version_info.minor}",
"site-packages",
)
if site_packages_dir not in sys.path:
sys.path.insert(0, site_packages_dir)
from sims.cli import main
sys.argv[0] = os.path.join(script_dir, os.path.basename(__file__))
sys.exit(main())

View File

@@ -1,53 +0,0 @@
#!/usr/bin/env bash
# sims-cli — talk to the running `sims` status bar over DBus.
set -euo pipefail
DEST=org.Fabric.fabric.sims
OBJ=/org/Fabric/fabric
IFACE=org.Fabric.fabric
invoke() {
dbus-send --session --print-reply --dest="$DEST" "$OBJ" \
"$IFACE.InvokeAction" "string:$1" "array:string:" >/dev/null
}
list_actions() {
dbus-send --session --print-reply --dest="$DEST" "$OBJ" \
org.freedesktop.DBus.Properties.Get \
"string:$IFACE" string:Actions
}
usage() {
cat <<'EOF' >&2
usage: sims-cli <command> [args]
finder open window finder
apps open application launcher
power open power menu
screenshot open screenshot menu
notmuch-refresh refresh unread mail count
screenrec menu open screenrec menu (auto-detects state)
screenrec start-monitor start recording the focused monitor
screenrec start-region start recording a slurp-selected region
screenrec stop stop active recording
list list registered actions
EOF
exit 2
}
case "${1:-}" in
finder) invoke open-finder ;;
apps) invoke open-app-launcher ;;
power) invoke open-power-menu ;;
screenshot) invoke open-screenshot-menu ;;
notmuch-refresh) invoke refresh-notmuch ;;
screenrec)
case "${2:-}" in
menu) invoke open-screenrec-menu ;;
start-monitor) invoke screenrec-start-monitor ;;
start-region) invoke screenrec-start-region ;;
stop) invoke screenrec-stop ;;
*) usage ;;
esac ;;
list) list_actions ;;
*) usage ;;
esac