Status Notifier specification

Alberts Muktupāvels alberts.muktupavels at gmail.com
Sat Jan 9 02:36:35 PST 2016


Hi,

few extra changes...

1. Watcher.
===========

1.1. Two extra methods - UnregisterHost and UnregisterItem with bus_name
and object_path as arguments.

1.2. Previously I wrote that bus_name could be also empty, but now I think
that it would be better to just require valid bus name - unique or
well-known.

2. Item.
===========

2.1. Scroll method - change orientation argument from string to unsigned
int (u). 0 = Horizontal, 1 = Vertical. Unrecognised orientation should be
considered equal to Horizontal.

2.2. Category - change property type from string to unsigned int. 0 =
ApplicationStatus, 1 = Communications, 2 = System Services, 3 = Hardware.
Unrecognised category should be considered equal to ApplicationStatus.

2.3. Status - change property type from string to unsigned int. 0 =
Passive, 1 = Active, 2 = Needs Attention. Unrecognised status should be
considered equal to Passive.


On Sun, Dec 6, 2015 at 4:01 PM, Alberts Muktupāvels <
alberts.muktupavels at gmail.com> wrote:

> Hi!
>
> I think that it is time to update this specification. Here is list with
> changes that I propose.
>
> 1. Specification.
> =================
>
> 1.1. Currently we have three components - Watcher, Host and Item. We
> should rename specification from 'Status Notifier Item' to 'Status
> Notifier'.
>
> 1.2. Current implementations use org.kde.* for dbus names. While this
> specification is not used by all desktop environments it is not used only
> by kde either. We should start using org.freedesktop.* for dbus names.
>
> 1.3. We should start to use versioned dbus interface names.
>
> 2. Watcher.
> ===========
>
> 2.1. Make method, property and signal names shorter by removing
> 'StatusNotifier' part from names.
>
> 2.2. RegisterHost method, change arguments to:
> - bus_name (s) - the bus name of Status Notifier Host or empty to use
> sender;
> - object_path (o) - the object path of Status Notifier Host.
>
> 2.3. RegisterItem method, change arguments to:
> - bus_name (s) - the bus name of Status Notifier Item or empty to use
> sender;
> - object_path (o) - the object path of Status Notifier Item.
>
> 2.4. RegisteredItems property, change type from 'as' to 'a(so)' - bus name
> and object path for each registered item.
>
> 2.5. ProtocolVersion property, remove it.
>
> 2.6. Rename 'StatusNotifierHostRegistered' signal to 'HostsChanged'.
> Should be emitted when new host is registered or existing disappears.
>
> 2.7. ItemRegistered signal, change arguments to:
> - bus_name (s) - the bus name of Status Notifier Item that was registered;
> - object_path (o) - the object path of Status Notifier Item that was
> registered;
>
> 2.8. ItemUnregistered signal, change arguments to:
> - bus_name (s) - the bus name of Status Notifier Item that was
> unregistered;
> - object_path (o) - the object path of Status Notifier Item that was
> unregistered;
>
> Watcher should use:
> - org.freedesktop.StatusNotifier1.Watcher as bus name and interface name;
> - /org/freedesktop/StatusNotifier1/Watcher as object path.
>
> Improvements over existing interface:
> - removed unused property;
> - ability to create/register multiple items/hosts from one connection
> (currently it is not possible because there can not be two objects with
> same path);
> - hosts and items are not required to create separate bus name.
>
> Updated dbus interface is added as attachment.
>
> 3. Host.
> ========
>
> Host should use:
> - org.freedesktop.StatusNotifier1.Host as interface name.
>
> Optionally (not required, but similar to current specification):
> - org.freedesktop.StatusNotifier1.Host-{pid}-{id} as bus name where {pid}
> is process id and {id} is unique identifier starting with 1 (was
> 'org.kde.StatusNotifierHost-{pid}');
> - /org/freedesktop/StatusNotifier1/Host{id} as object path where {id} is
> unique identifier starting with 1 (was '/StatusNotifierHost').
>
> 4. Item.
> ========
>
> 4.1. Drop all New* signals and use PropertiesChanged to get new/changed
> data.
>
> 4.2. New property - IconThemePath (type=s). An additional path to add to
> the theme search path to find the icons. It looks like this is used by
> current implementations.
>
> 4.3. New property - ItemIsMenu (type=b). I have seen this in interface
> files, does anyone knows if this is really used? If not then it should not
> be included in updated spec.
>
> 4.4. New property - Menu (type=o). Object path to dbus menu
> (com.canonical.dbusmenu interface). This is used at least by ubuntu.
>
> Maybe type could be changed from o to s? So if there is no menu it could
> be set to empty string instead of non-existent path?
>
> 4.5. Specification should mention which properties are required and which
> ones are optional.
>
> Item should use:
> - org.freedesktop.StatusNotifier1.Item as interface name.
>
> Optionally (not required, but similar to current specification):
> - org.freedesktop.StatusNotifier1.Item-{pid}-{id} as bus name where {pid}
> is process id and {id} is unique identifier starting with 1 (was
> 'org.kde.StatusNotifierItem-{pid}-{id}');
> - /org/freedesktop/StatusNotifier1/Item{id} as object path where {id} is
> unique identifier starting with 1 (was '/StatusNotifierItem').
>
> Updated dbus interface is added as attachment.
>
> --
> Alberts Muktupāvels
>



-- 
Alberts Muktupāvels
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/xdg/attachments/20160109/6d5e5521/attachment.html>


More information about the xdg mailing list