examples | ||
COPYING | ||
dbus.xml | ||
extension.js | ||
metadata.json | ||
README.md |
Introduction
This GNOME Shell Extension aims to display information to center box. Using DBUS protocol, any application can add or remove text and icons in the upper bar, right after date & clock.
Installation
Create a symbolic link from your .local directory and enable extension
ln -s $PWD/generic-monitor@gnome-shell-extensions/ ~/.local/share/gnome-shell/extensions/ gnome-extensions enable generic-monitor@gnome-shell-extensions
Restart GNOME
DBUS protocol
All functions read JSON formatted parameters
notify(): { "group": "groupname", "items": [ { "name" : "", "box" : "", // Optional : left, right or center "text" : <text_object>, // Optional "icon" : <icon_object>, // Optional "popup" : <popup_object>, // Optional <signals_description>, // Optional }, ... ] } }
deleteItems(): { "items": ["@", ...] }
deleteGroups(): { "groups": ["", ...] }
openPopup(): { "item": "@" }
closePopup(): { "item": "@" }
togglePopup(): { "item": "@" }
DBUS object
<text_object> is defined as : { "text" : "Text to be displayed", "style" : "CSS style to be applied", // Optional }
<icon_object> is defined as : { "path" : "Icon path", "style" : "CSS style to be applied", // Optional }
<picture_object> is defined as : { "path" : "Icon path", "width" : XXX, // Optional : Force width in pixels, can be -1 for defaut value "height" : XXX, // Optional : Force height in pixels, can be -1 for defaut value }
<popup_object is defuned as : { "items": [<text_objects> and/or <picture_objects>] }
Signals description
Signals can be :
"on-click" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"] "on-dblclick" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"] "on-rightclick" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"] "on-rightdblclick" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"] "on-enter" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"] "on-leave" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"] "on-scroll" : ["signal"|"delete"|"open-popup"|"close-popup"|"toggle-popup"]
<!!> WARNING <!!> : It seems that GNOME 3.38.0 had some troubles managing on-enter/on-leave signal
Targets :
- signal : emit a signal to desktop application
- delete : Delete item
- open-popup : Open the popup if there is one
- close-popup : Close the popup if there is one
- toggle-popup : Toggle (open/close) the popup if there is one
Signal names emit when action "signal" is specified :
- onClick
- onRightClick
- onDblClick
- onRightDblClick
- onEnter
- onLeave
- onScrollUp
- onScrollDown
Each signal is sent with one parameter : "@"
Other signals are available when extension is activated/deactivated :
- onActivate
- onDeactivate
Example
You can test it with command line :
gdbus call --session --dest org.gnome.Shell --object-path /com/soutade/GenericMonitor --method com.soutade.GenericMonitor.notify '{"group":"new","items":[{"name":"first","on-click":"toggle-popup","text":"Hello","style":"color:green","popup":{"items":[{"picture":{"path":"/tmp/cat2.jpg"}}]}}]}'
gdbus call --session --dest org.gnome.Shell --object-path /com/soutade/GenericMonitor --method com.soutade.GenericMonitor.deleteGroups '{"groups":["new"]}'
Python example is available
Development
After doing code update, you can test it within a nested window. In other cases you have to restart GNOME.
dbus-run-session -- gnome-shell --nested [--wayland]
To see log & errors :
journalctl /usr/bin/gnome-shell
Licence
GNU GPL 3