What are they?
As the name suggests, actionclasses are used when clicking on borders and buttons to initiate some type of action, such as moving or maximizing a window. They are primarily used within border configurations.
A bit of history
Historically, enlightenment relied upon the actionclasses.cfg file provided in a theme. Unfortunately this led to dramatic differences in mouse button and keyboard controls between themes. A user switching from one theme to the next would need to retrain their fingers based on theme design choices rather than the consistency of window manager settings.
Eventually enlightenment added a default actionclasses.cfg file (currently located in [INSTALL_BASE]/share/e16/config/actionclasses.cfg). It is used unless one exists within a theme.
Base actionclasses
The following is a table of the default actionclass names and the operations they preform.
| NAME |
ACTIVATOR |
DESCRIPTION |
| ACTION_AUTOSHADE |
Cursor movement |
Automatically shade window when mouse cursor enters and exits |
| ACTION_BUTTON_DRAG |
Button 1,2,3 |
Move desktop buttons |
| ACTION_GOTO_DESK_NEXT |
Button 1,2,3 |
Go to the next desktop |
| ACTION_GOTO_DESK_PREV |
Button 1,2,3 |
Go to the previous desktop |
| ACTION_ICONIFY |
Button 1
Button 3 |
Iconify (or minimize) window
Show the window operations menu |
| ACTION_KILL |
Button 1
Button 3 |
Close window
Forcibly destroy window |
| ACTION_LOWER |
Button 1,2,3 |
Lower window (push behind other windows) |
| ACTION_MAX |
Button 1
Button 2
Button 3 |
Toggle between maximum screen size and normal size
Toggle between maximum screen width and normal width
Toggle between maximum screen height and normal height |
| ACTION_MAXH |
Button 1,2,3 |
Toggle between maximum screen height and normal height |
| ACTION_MAXW |
Button 1,2,3 |
Toggle between maximum screen width and normal width |
| ACTION_MENU |
Button 1,2,3 |
Show window options menu |
| ACTION_MOVE |
Button 1
Button 2
Button 3
Button 4 (mousewheel up)
Button 5 (mousewheel down)
SHIFT Button 1
CTRL Button 1
CTRL-SHIFT Button 1
SHIFT Button 2 |
Move this window
Shade/Unshade this window
Show the Window Options menu
Shade window
Unshade window
Start a group
Add to current group
Break window's group
Show/Hide group borders |
| ACTION_RAISE |
Button 1,2,3 |
Raise window (place in front of other windows) |
| ACTION_RESIZE |
Button 1
Button 3 |
Resize window
Move window |
| ACTION_RESIZE_H |
Button 1
Button 3 |
Resize window horizontally
Move window |
| ACTION_RESIZE_V |
Button 1
Button 3 |
Resize window vertically
Move window |
| ACTION_SEND_NEXT |
Button 1,2,3 |
Send to next desktop |
| ACTION_SEND_PREV |
Button 1,2,3 |
Send to previous desktop |
| ACTION_SHADE |
Button 1,2,3 |
Shade/unshade window |
| ACTION_SNAPSHOT |
Button 1,2,3 |
Remember all window/border settings |
| ACTION_STICK |
Button 1,2,3 |
Toggle the Omnipresent (visible on all Desktops) state |
| ACTION_WINDOW_SLIDEOUT |
Button 1,2,3 |
Show more buttons |
The best way to add custom actionclasses
If your theme has an actionclass.cfg base configuration file, then by default it overrides the system one and you would need to redefine all the default actionclasses over again. If you did this then your theme would not inherit any changes made to the system actionclasses.cfg file that may occur in the future.
To be able to extend the system actionclasses you will need to use the include_next directive in your themes actionclasses.cfg file like this:
#include_next "actionclasses.cfg"
This will include the system actionclasses.cfg file into your themes's actionclasses.cfg file. Then you'll just need to create any custom actionclasses.