File: gnomeSession.js

package info (click to toggle)
cinnamon 6.4.13-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 13,304 kB
  • sloc: javascript: 54,298; ansic: 51,499; python: 21,971; xml: 2,803; sh: 96; makefile: 27; perl: 13
file content (91 lines) | stat: -rw-r--r-- 3,194 bytes parent folder | download | duplicates (5)
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-

const Gio = imports.gi.Gio;

var PresenceIface = '\
<node> \
    <interface name="org.gnome.SessionManager.Presence"> \
        <method name="SetStatus"> \
            <arg type="u" direction="in"/> \
        </method> \
        <property name="status" type="u" access="readwrite"/> \
        <signal name="StatusChanged"> \
            <arg type="u" direction="out"/> \
        </signal> \
    </interface> \
</node>';

var PresenceStatus = {
    AVAILABLE: 0,
    INVISIBLE: 1,
    BUSY: 2,
    IDLE: 3
};

var PresenceProxy = Gio.DBusProxy.makeProxyWrapper(PresenceIface);
function Presence(initCallback, cancellable) {
    return new PresenceProxy(Gio.DBus.session, 'org.gnome.SessionManager',
                             '/org/gnome/SessionManager/Presence', initCallback, cancellable);
}

var InhibitorIface = ' \
<node> \
    <interface name="org.gnome.SessionManager.Inhibitor"> \
        <method name="GetFlags"> \
            <arg name="flags" type="u" direction="out"/> \
        </method> \
        <method name="GetReason"> \
            <arg name="reason" type="s" direction="out"/> \
        </method> \
        <method name="GetAppId"> \
            <arg name="app_id" type="s" direction="out"/> \
        </method> \
    </interface> \
</node>';

var InhibitorProxy = Gio.DBusProxy.makeProxyWrapper(InhibitorIface);
function Inhibitor(objectPath, initCallback, cancellable) {
    return new InhibitorProxy(Gio.DBus.session, 'org.gnome.SessionManager', objectPath, initCallback, cancellable);
}

var SessionManagerIface = '\
<node> \
    <interface name="org.gnome.SessionManager"> \
        <method name="Logout"> \
            <arg type="u" direction="in" /> \
        </method> \
        <method name="Shutdown" /> \
        <method name="CanShutdown"> \
            <arg type="b" direction="out" /> \
        </method> \
        <method name="Inhibit"> \
            <arg type="s" direction="in" /> \
            <arg type="u" direction="in" /> \
            <arg type="s" direction="in" /> \
            <arg type="u" direction="in" /> \
            <arg type="u" direction="out" /> \
        </method> \
        <method name="Uninhibit"> \
            <arg type="u" direction="in" /> \
        </method> \
       <method name="IsInhibited"> \
           <arg type="u" name="flags" direction="in"/> \
           <arg type="b" name="is_inhibited" direction="out"/> \
       </method>   \
       <method name="GetInhibitors"> \
           <arg type="ao" name="inhibitors" direction="out"/> \
       </method> \
       <signal name="InhibitorAdded"> \
           <arg type="o" name="id" direction="out"/> \
       </signal> \
       <signal name="InhibitorRemoved"> \
           <arg type="o" name="id" direction="out"/> \
       </signal> \
       <property name="InhibitedActions" type="u" access="read"/> \
    </interface> \
</node>';

var SessionManagerProxy = Gio.DBusProxy.makeProxyWrapper(SessionManagerIface);
function SessionManager(initCallback, cancellable) {
    return new SessionManagerProxy(Gio.DBus.session, 'org.gnome.SessionManager', '/org/gnome/SessionManager', initCallback, cancellable);
}