aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: 36f6a90d47c185c9ff97e2b11d7ba3350da0728d (plain)
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
# Ayatana System Indicator — Session

The -session Ayatana System Indicator is the the session menu indicator
for Unity7 and MATE (optionally for others). Its behavior and features
are listed at https://wiki.ayatana-indicators.org/AyatanaIndicatorSession

For instructions on building and running built-in tests, see the INSTALL file.


## Notes for Client Renderers

Ayatana Indicator Session has two custom menuitems: the Guest and User
switchers. As per the
https://wiki.ayatana-indicators.org/AyatanaIndicatorSession
specification, both need four visual components: (1) an Active Session
Mark, the user's (2) icon, (3) name, and (4) a Logged In Mark.

### User menuitems have "x-ayatana-type" set to "indicator.user-menu-item"

   Their four visual components are determined by:

   1. You can test for the Action Session Mark by checking the action's state.
      The state is a dicionary whose "active-user" key yields the current
      session's owner's username. If it matches the username in this menuitem's
      "target" attribute, show the Active Session Mark.

   2. The icon is stored in the menuitem's "icon" attribute. If none is set,
      the client should use a fallback icon such as "avatar-default."

   3. The name is stored in the menuitem's "label" attribute.

   4. You can test for the Logged In Mark by checking the action's state.
      The state is a dictionary whose "logged-in-users" key will give
      an array of usernames. If the array contains the username in this
      menuitem's "target" attribute, show the Logged In Mark.

### The Guest switcher has "x-ayatana-type" set to "indicator.guest-menu-item" action

   Its four visual components are determined by:

   1. You can test for the Active Session Mark by checking the action's state.
      The state is a dictionary whose "is-active" key yields a boolean.
      If the boolean is true, show the Active Session Mark.

   2. The guest user should use a fallback icon such as "avatar-default."

   3. The name ("Guest") is stored in the menuitem's "label" attribute.

   4. You can test for the Logged In Mark by checking the action's state.
      The state is a dictionary whose "is-logged-in" key yields a boolean.
      If the boolean is true, show the Logged In Mark.