Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision |
dev:howto:panel_plugins [2017/04/18 03:40] – Update some links and add hint to load plugins during development. andreldm | dev:howto:panel_plugins [2019/01/03 18:44] – [Testing and Releasing the plugin] landry |
---|
Starting from version 4.4 the Xfce Panel support two types of plugins: internal and external. | Starting from version 4.4 the Xfce Panel support two types of plugins: internal and external. |
The internal plugins are loadable modules, using the | The internal plugins are loadable modules, using the |
[[http://developer.gnome.org/doc/API/2.0/glib/glib-Dynamic-Loading-of-Modules.html|GModule]] | [[https://developer.gnome.org/glib/stable/glib-Dynamic-Loading-of-Modules.html|GModule]] |
interface. External plugins are separate programs that are embedded into the panel using the | interface. External plugins are separate programs that are embedded into the panel using the |
[[http://developer.gnome.org/doc/API/2.0/gtk/GtkPlug.html|GtkPlug]] and | [[https://developer.gnome.org/gtk3/stable/GtkPlug.html|GtkPlug]] and |
[[http://developer.gnome.org/doc/API/2.0/gtk/GtkSocket.html|GtkSocket]] mechanism. | [[https://developer.gnome.org/gtk3/stable/GtkSocket.html|GtkSocket]] mechanism. |
| |
In order to handle these plugins the plugin system was entirely rewritten, along with the rest | In order to handle these plugins the plugin system was entirely rewritten, along with the rest |
line like this: | line like this: |
| |
XDT_CHECK_PACKAGE ([LIBXFCE4PANEL], [libxfce4panel-1.0], [4.3.99.2]) | XDT_CHECK_PACKAGE ([LIBXFCE4PANEL], [libxfce4panel-2.0], [4.12.0]) |
| |
The above assumes that you are using the xfce4-dev-tools package, which you really should, | The above assumes that you are using the xfce4-dev-tools package, which you really should, |
To help development, you can also test plugins without installing them on panel's prefix (e.g. /usr), you can also directly run plugins from the source so you don't need to to overwrite a plugin version from your distribution. To accomplish this, build the plugin with make and then follow these steps: | To help development, you can also test plugins without installing them on panel's prefix (e.g. /usr), you can also directly run plugins from the source so you don't need to to overwrite a plugin version from your distribution. To accomplish this, build the plugin with make and then follow these steps: |
| |
* Create a symbolic link from your plugin binary to the panel's prefix installation, e.g. ''ln -s /home/johndoe/where/your/src/is/panel-plugin/.libs/libyourplugin.so /usr/lib/xfce4/panel/plugins/libyourplugin-git.so'' | * Create a symbolic link from your plugin binary to the panel's prefix installation, e.g. ''ln -s /home/johndoe/where/your/src/is/panel-plugin/.libs/libyourplugin.so /usr/lib/xfce4/panel-plugins/libyourplugin-git.so'' |
* Copy ''/usr/share/xfce4/panel/plugins/yourplugin.desktop'' to ''/usr/share/xfce4/panel/plugins/yourplugin-git.desktop'' | * Copy ''/usr/share/xfce4/panel/plugins/yourplugin.desktop'' to ''/usr/share/xfce4/panel/plugins/yourplugin-git.desktop'' |
* Edit the latter to point at 'yourplugin-git' instead of 'yourplugin', modify the 'Name' entry to distinguish your instance. | * Edit the latter to point at 'yourplugin-git' instead of 'yourplugin': modify the ''Name'' entry to distinguish your instance and ''X-XFCE-Module'' to match the symbolic link, i.e. ''yourplugin-git''. |
* If you're porting a plugin to GTK+ 3, make sure to add ''X-XFCE-API=2.0'' to the desktop-git file. | * If you're porting a plugin to GTK+ 3, make sure to add ''X-XFCE-API=2.0'' to the desktop-git file. |
| |
| An example: |
| |
| <code> |
| $cat /usr/share/xfce4/panel/plugins/diskperf-git.desktop |
| [Xfce Panel] |
| Type=X-XFCE-PanelPlugin |
| Encoding=UTF-8 |
| Name=Disk Performance Monitor (git) |
| Comment=Show disk performance |
| Icon=drive-harddisk |
| X-XFCE-Internal=FALSE |
| X-XFCE-Module=diskperf-git |
| X-XFCE-API=2.0 |
| </code> |
| |
Now the 'git' version of the panel plugin should be available in the 'add plugin' panel dialog. Whenever you make changes and compile the plugin, all you need to do is to add the plugin to panel again or simply refresh the panel ''xfce4-panel -r''. | Now the 'git' version of the panel plugin should be available in the 'add plugin' panel dialog. Whenever you make changes and compile the plugin, all you need to do is to add the plugin to panel again or simply refresh the panel ''xfce4-panel -r''. |