24 lines
775 B
Bash
Executable File
24 lines
775 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# omarchy:hidden=true
|
|
# omarchy:summary=Watch USBGuard for devices awaiting user approval
|
|
|
|
set -euo pipefail
|
|
|
|
event_handler="$OMARCHY_PATH/bin/omarchy-usb-authorization-event"
|
|
|
|
# A device inserted while the graphical session was stopped is already safely
|
|
# blocked by USBGuard. Surface it now so the user can approve it after login.
|
|
while IFS= read -r line; do
|
|
if [[ $line =~ ^([0-9]+):[[:space:]](block.*)$ ]]; then
|
|
USBGUARD_IPC_SIGNAL=Device.PresenceChanged \
|
|
USBGUARD_DEVICE_ID="${BASH_REMATCH[1]}" \
|
|
USBGUARD_DEVICE_EVENT=Insert \
|
|
USBGUARD_DEVICE_TARGET=block \
|
|
USBGUARD_DEVICE_RULE="${BASH_REMATCH[2]}" \
|
|
"$event_handler"
|
|
fi
|
|
done < <(usbguard list-devices --blocked)
|
|
|
|
exec usbguard watch --wait --exec "$event_handler"
|