File: inhibited.sh

package info (click to toggle)
goodvibes 0.8.3-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,784 kB
  • sloc: ansic: 16,310; sh: 978; python: 21; makefile: 19
file content (30 lines) | stat: -rwxr-xr-x 892 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash

# qdbus syntax  : qdbus org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager.IsInhibited 4
# dbusctl syntax: busctl --user call org.gnome.SessionManager /org/gnome/SessionManager org.gnome.SessionManager IsInhibited u 4

set -eu

fail() { echo >&2 "$@"; exit 1; }
checkcmd()  { command -v "$1" >/dev/null 2>&1; }
assertcmd() { checkcmd "$1" || fail "'$1' is not installed"; }
checkdbusname() { qdbus "$1" >/dev/null 2>&1; }

assertcmd qdbus

if checkdbusname org.gnome.SessionManager; then
  qdbus \
    org.gnome.SessionManager \
    /org/gnome/SessionManager \
    org.gnome.SessionManager.IsInhibited 4

elif checkdbusname org.freedesktop.PowerManagement; then
  qdbus \
    org.freedesktop.PowerManagement \
    /org/freedesktop/PowerManagement/Inhibit \
    org.freedesktop.PowerManagement.Inhibit.HasInhibit

else
  fail "No D-Bus service found"

fi