Thunar Actions Plugin
important note
If you have a *.pdf viewer, please don’t use this wiki but take a look at the below document:
:projects:thunar-actions-plugin_-_project_description_-_v0.1.1j.pdf
If you want to improve thus documentation, please use the below file:
:projects:thunar-actions-plugin_-_project_description_-_v0.1.1j.odt
The layout of this wiki is not really user friendly, for example it renders terrible on 800×480 resolutions.
project introduction
This is an introduction for a new thunar plugin called thunar-actions-plugin. The plugin will be an evolution on the current existing thunar-uca custom actions plugin.
The reason for the creation of the new plugin is the need for a better system to manage custom actions. This include more standardization and automated options.
The improved system will be based on freedesktop.org standards, and will include .desktop files and mime-type activation.
If you want to help with the plugin project, please contact us bye sending an email to the thunar-dev mailinglist.
The original thunar-custom-actions system right-context-menu list gets far to long, is not organized, hard to maintain, and does not provide interoperability with other file managers. So lots of improvement points:
The improved thunar-action-plugin: The right-context-menu is based on .desktop files, mime-type activation, and smart maintaining options. The below image is a manipulated image, and only gives a visualization idea:
feature description: (thunar-actions-plugin)
Right context menu generation for thunar filemanager based on freedesktop.org standards with mime-type activation and .desktop files management. The code will be an evolution on the existing custom actions.
- file extension insensitive
- case insensitive
- multi-language support
- fast
- manageable
- gtk desktop integration
- interoperability
- molecular
- based on standards
- mime-type parsing
- .desktop file parsing
- xdg environment parsing
freedesktop.org .desktop specification freedesktop.org mime specification ordering freedesktop.org basedir specification gnome/gtk/mid Human Interface Guidelines
native packaging planning for:
- fedora
- debian
- ubuntu
status:
we are creating small code frameworks to get the key/base technology’s working and documented.
planning:
- build environment
- thunarx plugin system
- context menu framework
- .desktop parsing
- mime type parsing
- creating library’s
- gtk widgets
- efficient function from thunar
- best caching technology’s
- best querying technology’s
- merging the technology’s
- ......
sub application: xdg-gtk-desktop-file-manager
sort of based on:
- xdg-mime
- xdg-desktop-icon
- xdg-desktop-menu
- update-desktop-database
- desktop-file-validate
- desktop-file-install
standard GNOME/GTK/MID HIG compliant application to open .desktop files
- save .desktop file
- change standard keywords as in the spec:
- name
- genericname
- comment
- icon
- exec (using xdg place holders like %f %F
- categories
- onlyshowin
- mimetype
smart features:
- enter extensions to get mime type selections
- enter string to get matching mime type selections
- typing “image” in the edit box, results in a list of mime-types
- ...
- image/x-icon ico
- image/x-jg art
- image/x-jng jng
- image/x-ms-bmp bmp
- image/x-photoshop psd
- ...
- exclude, include and pattern selection to create a list of mime types.
- some smart gui selection methods molecular auto addition of .desktop keys and values.
sub application: thunar-actions-plugin-settings (optional integration in thunar)
- shows list of used .desktop files for the context menu (list of action’s)
- open selected elements with xdg-gtk-desktop-file-manger
- alphabetic ordering based on environment settings
code flow:
note: needs more documentation, creation of flow diagrams to get a clear structure of the code flow.
- parsing and caching .desktop files
- caching .desktop files key elements
- parsing and caching mime types of selected files
- filter elements that are common on mime type
- create context menu, submenus and action
menu-element press event
- matching of the .desktop file key elements
- argument ordering based on used placeholder
- execute command with arguments





