Actionclasses

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.