feat: sims cli as python package
This commit is contained in:
20
scripts/cli_launcher.py
Normal file
20
scripts/cli_launcher.py
Normal 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())
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user