budgie-desktop allows for widgets to be created for the panel to be written in Vala, C and Python.
It is a libpeas based API and the API is very straightfoward. On GitHub there is an examples based project for Vala, C and Python.
- Wrap a bit of code around Budgie.Plugin which extends do_get_panel_widget. This function returns an instance of your widget
- The widget extends Budgie.Applet
- The widget/applet can be any GTK based container - typically a button
Have a look at the python example as this is the simplest to read.
All Peas type plugins consist of a .plugin file and the source.
For budgie-desktop, plugin can be installed in a global location or a local location.
For a local (per user basis), both the .plugin and all source files should be places in
For global installation, the .plugin and source module should be installed in
/usr/lib/budgie-desktop/plugins/plugin-name. For data based files
/usr/share/budgie-desktop/plugins/plugin-name is the correct location.
budgie-desktop v10.x supports panel widgets. Raven cannot be modified by additional widgets.
It is proposed that in a future version of budgie-desktop that additional widget types can be created. What form these will take place will be only known as budgie-desktop evolves.