The devs for gnome-shell and notifyOSD have taken it upon themselves to silently(!) ignore the parameter in their server implementation. There is a comment in the code for gnome-shell that states this, but IMHO that is not the right way to deal with this.
I can see two logical solutions:
1) Fix gnome-shell and notifyOSD to conform to the spec. ie. stop ignoring the expire_timeout parameter. This implies modifications to the code (see aforementioned patch) and no modification to the spec.
2) Change the spec to explicitly advertise support for expiration timeout via a server capability eg. if "expire-timeout" does not appear in the list returned by org.freedesktop.Notifications.GetCapabilities() then the client will _know_ that the expire_timeout parameter will be ignored because the server does not support it. This solution would imply no modifications to the code for gnome-shell/notifyOSD (they will not have expire-timeout published in capabilities, therefore ignoring the expire_timeout parameter becomes perfectly logical and expected.) It will however require changes to the spec and probably to various other client and server implementations.
Allow me to clarify the situation.
In the Desktop Notification Specification there is nothing to suggest that the expire_timeout parameter is optional. /developer. gnome.org/ notification- spec/#commands
https:/
The devs for gnome-shell and notifyOSD have taken it upon themselves to silently(!) ignore the parameter in their server implementation. There is a comment in the code for gnome-shell that states this, but IMHO that is not the right way to deal with this.
I can see two logical solutions:
1) Fix gnome-shell and notifyOSD to conform to the spec. ie. stop ignoring the expire_timeout parameter. This implies modifications to the code (see aforementioned patch) and no modification to the spec.
2) Change the spec to explicitly advertise support for expiration timeout via a server capability eg. if "expire-timeout" does not appear in the list returned by org.freedesktop .Notifications. GetCapabilities () then the client will _know_ that the expire_timeout parameter will be ignored because the server does not support it. This solution would imply no modifications to the code for gnome-shell/ notifyOSD (they will not have expire-timeout published in capabilities, therefore ignoring the expire_timeout parameter becomes perfectly logical and expected.) It will however require changes to the spec and probably to various other client and server implementations.