Roundcube Swipe Plugin for BananaNetwork - to apply required patches before release or release in async to the official version
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
PhilW 884c2bd51b update plugin repo url 4 years ago
localization s/swipeactions/swipeoptions/ 5 years ago
skins/elastic a few more style tweaks 4 years ago
CHANGELOG add release mark 4 years ago update plugin repo url 4 years ago
composer.json remove repositories section from composer.json, its a root-only prop 4 years ago
swipe.js update after rc cb8c078 4 years ago
swipe.php small CS cleanup 4 years ago

Roundcube Webmail Swipe

This plugin adds left/right/down swipe actions to entries in the the message list on touch devices (tables/phones).


This is just a snapshot from the GIT repository and is NOT A STABLE version of Swipe. It is Intended for use with the GIT-master version of Roundcube and it may not be compatible with older versions. Stable versions of Swipe are available from the Roundcube plugin repository (for 1.4 and above) or the releases section of the GitHub repository.


This plugin is released under the GNU General Public License Version 3+.

Even if skins might contain some programming work, they are not considered as a linked part of the plugin and therefore skins DO NOT fall under the provisions of the GPL license. See the README file located in the core skins folder for details on the skin license.


  • Place this plugin folder into plugins directory of Roundcube
  • Add swipe to $config['plugins'] in your Roundcube config

NB: When downloading the plugin from GitHub you will need to create a directory called skin and place the files in there, ignoring the root directory in the downloaded archive.

Supported skins

  • Elastic

Supported browsers

This plugin relies on Pointer Events with fallback support for Touch Events and should work in any browser which supports either of these, such as: Chrome, Firefox, or Safari. When used with Edge there is no support for vertical swipe actions, this is because the browser does not support the touch-action: pan-down; CSS property - bug report. There is no support for Internet Explorer.


To set the default actions add the following to your Roundcube config file:

$config['swipe_actions'] = array(
    'messagelist' => array(
        'left' => '<action>',
        'right' => '<action>',
        'down' => '<action>'
    'contactlist' => array(
        'left' => '<action>',
        'right' => '<action>',
        'down' => 'none'

Replace <action> with your desired action from the list below. Users can configure the actions, overriding the defaults, from the List Options menu.

Supported actions

Mesasge List: The following actions are available for left/right swipe:

  • archive - Archive the message (Requires the Roundcube Archive plugin)
  • delete - Delete the message
  • forward - Forward the message
  • markasjunk - Mark the message as junk (Requires the Roundcube Markasjunk plugin)
  • move - Move the message to a chosen folder
  • reply - Reply to the message
  • reply-all - Reply all to the message
  • swipe-flagged - Mark the message as flagged/unflagged
  • swipe-read - Mark the message as read/unread
  • swipe-select - Select/deselect the message
  • none - Swipe disabled

The following actions are available for down swipe:

  • checkmail - Check for new messages in the current folder
  • none - Swipe disabled

Contacts List: The following actions are available for left/right swipe:

  • vcard_attachments - Attach the contact to a new message as a vCard (Requires the Roundcube Vcard_attachments plugin)
  • compose - Compose a new message to this contact
  • delete - Delete the contact
  • swipe-select - Select/deselect the contact
  • none - Swipe disabled

The following actions are available for down swipe:

  • none - Swipe disabled

disabled_actions and dont_override

This plugin respects the disabled_actions config option for Roundcube commands. To prevent users from overriding swipe config you can add any of the following to dont_override:

  • swipe_actions - Prevent overriding all swipe config
  • swipe_actions.list - e.g. swipe_actions.mesasgelist Prevent overriding of the swipe actions on a specific list, e.g. mesasgelist
  • swipe_actions.list.direction - e.g. swipe_actions.mesasgelist.left Prevent overriding of the swipe actions on a specific list and direction

Interaction with other plugins

The swipe_actions hook is triggered when the plugin starts up on the list options menu. Arguments:

  • list_type - the name of list the swipe actions are being performed on, e.g. messagelist, used when selecting/saving config
  • actions - an array of actions for this list in the format:
$args['actions'] = array(
    'list_name' => '*JS list object name*',
    'selection_id' => '*JS element identifier e.g. UID*',
    'vertical' => array(
        '*action_name*' => array('label' => '*display name*'),
    'horizontal' => array(
        '*action_name*' => array('label' => '*display name*'),

Return values:

  • list_type
  • actions

The swipe-action JS event is triggered when a swipe action is performed. Return false to abort the action or return a JSON object like this to assign an action:

  'class': '<class name for the action box>',
  'text': '<text displayed in the action box>',
  'callback': function(p) { <your action here> },
  'command': '<roundcube command>'

Note: Only 1 of callback and command need to be supplied. If no callback is defined then the command is passed to the standard Swipe callback function.