This IceWM patch changes window move/size behaviour: * KP_Begin (the [5] key on the keypad) centers the window on screen when moving * Shift + cursor keys increase move/size speed 4 times (unchanged by this patch) * Ctrl + cursor keys increase move/size speed 16 times * Ctrl + Shift + cursor keys increase move/size speed 64 times Marius Gedminas marius@gedmin.as http://gedmin.as/icewm/ diff -u ./src/movesize.cc.orig ./src/movesize.cc --- ./src/movesize.cc.orig Sat Dec 18 18:50:14 1999 +++ ./src/movesize.cc Fri Jun 23 19:32:57 2000 @@ -202,9 +202,12 @@ int m = KEY_MODMASK(key.state); int factor = 1; - if (m == ShiftMask) + if (m & ShiftMask) factor = 4; + if (m & ControlMask) + factor *= 16; + if (k == XK_Left || k == XK_KP_Left) newX -= factor; else if (k == XK_Right || k == XK_KP_Right) @@ -221,6 +224,11 @@ newY = manager->minY(getLayer()) - borderY(); else if (k == XK_Next || k == XK_KP_Next) newY = manager->maxY(getLayer()) - height() + borderY(); + else if (k == XK_KP_Begin) + { + newX = (manager->minX(getLayer()) + manager->maxX(getLayer()) - (int)width()) / 2; + newY = (manager->minY(getLayer()) + manager->maxY(getLayer()) - (int)height()) / 2; + } else if (k == XK_Return || k == XK_KP_Enter) return -1; else if (k == XK_Escape) { @@ -240,8 +248,11 @@ int m = KEY_MODMASK(key.state); int factor = 1; - if (m == ShiftMask) + if (m & ShiftMask) factor = 4; + + if (m & ControlMask) + factor *= 16; if (k == XK_Left || k == XK_KP_Left) { if (grabX == 0) {