diff -Naur xfwm4-4.8.2-orig//src/cycle.c xfwm4-4.8.2/src/cycle.c --- xfwm4-4.8.2-orig//src/cycle.c 2011-09-22 21:12:34.000000000 +0200 +++ xfwm4-4.8.2/src/cycle.c 2012-01-26 17:53:45.000000000 +0100 @@ -192,7 +192,7 @@ ClientCycleData *passdata; Client *c, *removed; eventFilterStatus status; - KeyCode cancel; + KeyCode cancel, left, right; int key, modifier; gboolean key_pressed, cycling, gone; @@ -208,6 +208,8 @@ screen_info = c->screen_info; display_info = screen_info->display_info; cancel = screen_info->params->keys[KEY_CANCEL].keycode; + left = screen_info->params->keys[KEY_LEFT].keycode; + right = screen_info->params->keys[KEY_RIGHT].keycode; modifier = screen_info->params->keys[KEY_CYCLE_WINDOWS].modifier; status = EVENT_FILTER_STOP; removed = NULL; @@ -249,12 +251,12 @@ c2 = tabwinSelectHead (passdata->tabwin); cycling = FALSE; } - else if (key == KEY_CYCLE_REVERSE_WINDOWS) + else if (key == KEY_CYCLE_REVERSE_WINDOWS || xevent->xkey.keycode == left) { TRACE ("Cycle: previous"); c2 = tabwinSelectPrev(passdata->tabwin); } - else if (key == KEY_CYCLE_WINDOWS) + else if (key == KEY_CYCLE_WINDOWS || xevent->xkey.keycode == right) { TRACE ("Cycle: next"); c2 = tabwinSelectNext(passdata->tabwin);