I wanted to create applet for MATE.
I started digging and checking tutorials, forums, source codes on github.
Finally I decided to write it to remeber it.
https://wiki.mate-desktop.org/docs:devel:mate-panel
Applet requires three files:
your-folder/TestApplet.py
/usr/share/mate-panel/applets/TestApplet.mate-panel-applet
/usr/share/dbus-1/services/TestAppletFactory.service
Some examples on internet use names with prefix org.mate.panel.
and org.mate.panel.applet.
but it works without those prefixes.
They are rather for uniq names - so you can install two applets with name TestApplet
.
/usr/share/mate-panel/applets/org.mate.panel.TestApplet.mate-panel-applet
/usr/share/dbus-1/services/org.mate.panel.applet.TestAppletFactory.service
You can install .mate-panel-applet
and .service
once. Inside these files you have to change path to your .py
.
I created install.sh
to (re)install these files. You may have to edit it if you don't use name TestApplet.py
.
Applet will NOT display print()
because it has no access to terminal.
But first you can run applet in terminal to see any errors/typos in code.
You can add and remove applet ro panel to test it OR you can use mate-panel-test-applets
to run it from terminal without installing. But applet still will not display print()
.
I don't know how to start it with parameter --iid
to run
To see any debug messages you can use module logging
and save messages in file to see them after stoping applet.
I took this part from mate-i3-applet
It needs
GLib.timeout_add(1000, update_label)
instead of
Gtk.timeout_add(1000, update_label)
https://saravananthirumuruganathan.wordpress.com/2010/01/15/creating-gnome-panel-applets-in-python/
https://github.com/search?l=Python&q=mate+applet&type=Repositories
logging: https://github.com/city41/mate-i3-applet/blob/master/matei3applet.py
https://github.com/linuxmint/mintmenu-vala/blob/master/mintmenu.vala
https://github.com/ubuntu-mate/mate-optimus/blob/master/usr/lib/mate-optimus/mate-optimus-applet
https://github.com/benpicco/mate-panel-python-applet-example/blob/master/mateAppletExample.py
https://github.com/robint99/mate-dock-applet/blob/master/src/dock_applet.in
https://github.com/projecthamster/hamster/blob/gnome_2x/src/hamster-applet
https://github.com/mate-desktop/mate-applets/blob/master/mateweather/mateweather-applet.c
https://github.com/mate-desktop/mate-applets
https://stackoverflow.com/questions/49498316/auto-refreshing-mate-panel-applet?rq=1
https://ubuntu-mate.community/t/python-menu-panel-applet/9376/2
https://askubuntu.com/questions/751608/how-can-i-write-a-dynamically-updated-panel-app-indicator
https://wiki.mate-desktop.org/docs:devel:mate-panel
http://candidtim.github.io/appindicator/2014/09/13/ubuntu-appindicator-step-by-step.html
https://askubuntu.com/questions/750815/fuzzy-clock-for-ubuntu/752675#752675
https://askubuntu.com/questions/229511/how-can-i-add-an-applet-to-mate-from-the-terminal
/usr/lib/gnome-panel/mate-panel-add --applet=OAFIID:MATE_DockBarXApplet --panel=top_panel_screen0 --position=500
mateconftool-2 --all-dirs /apps/panel/toplevels
https://saravananthirumuruganathan.wordpress.com/2010/01/15/creating-gnome-panel-applets-in-python/