Package: icewm Version: 1.2.28-1 Severity: wishlist Hi Eduard,
can you apply this patch to icewm? It adds AltGr as a key symbol. This makes it possible to use AltGr+Tab as KeySysSwitchNext. This patch was posted on the ice-user mailinglist and I did not encounter any problems. #v+ diff -u -r icewm-1.2.28/src/wmswitch.cc icewm-1.2.28~/src/wmswitch.cc --- icewm-1.2.28/src/wmswitch.cc 2006-09-10 18:12:11.000000000 +0200 +++ icewm-1.2.28~/src/wmswitch.cc 2006-10-05 01:43:54.402483249 +0200 @@ -592,7 +592,7 @@ void SwitchWindow::begin(bool zdown, int mods) { modsDown = mods & (xapp->AltMask | xapp->MetaMask | xapp->HyperMask | xapp->SuperMask | - ControlMask); + xapp->ModeSwitchMask | ControlMask); if (isUp) { cancelPopup(); @@ -721,14 +721,17 @@ k == XK_Alt_L || k == XK_Alt_R || k == XK_Meta_L || k == XK_Meta_R || k == XK_Super_L || k == XK_Super_R || - k == XK_Hyper_L || k == XK_Hyper_R) + k == XK_Hyper_L || k == XK_Hyper_R || + k == XK_ISO_Level3_Shift || k == XK_Mode_switch) return true; return false; } bool SwitchWindow::modDown(int mod) { - int m = mod & (xapp->AltMask | xapp->MetaMask | xapp->HyperMask | xapp->SuperMask | ControlMask); + int m = mod & (xapp->AltMask | xapp->MetaMask | xapp->HyperMask | + xapp->SuperMask | xapp->ModeSwitchMask | ControlMask); if ((m & modsDown) != modsDown) return false; diff -u -r icewm-1.2.28/src/yconfig.cc icewm-1.2.28~/src/yconfig.cc --- icewm-1.2.28/src/yconfig.cc 2006-09-10 18:12:10.000000000 +0200 +++ icewm-1.2.28~/src/yconfig.cc 2006-10-05 01:43:59.674483249 +0200 @@ -183,6 +183,9 @@ } else if (strncmp("Hyper+", arg, 6) == 0) { *mod |= kfHyper; arg += 6; + } else if (strncmp("AltGr+", arg, 6) == 0) { + *mod |= kfAltGr; + arg += 6; } else break; } diff -u -r icewm-1.2.28/src/yconfig.h icewm-1.2.28~/src/yconfig.h --- icewm-1.2.28/src/yconfig.h 2006-09-10 18:12:10.000000000 +0200 +++ icewm-1.2.28~/src/yconfig.h 2006-10-05 01:43:57.234483249 +0200 @@ -63,6 +63,7 @@ #define kfMeta 8 #define kfSuper 16 #define kfHyper 32 +#define kfAltGr 64 #ifdef GENPREF ///typedef unsigned int KeySym; diff -u -r icewm-1.2.28/src/ywindow.cc icewm-1.2.28~/src/ywindow.cc --- icewm-1.2.28/src/ywindow.cc 2006-09-10 18:12:11.000000000 +0200 +++ icewm-1.2.28~/src/ywindow.cc 2006-10-05 01:43:59.938483249 +0200 @@ -1616,13 +1616,16 @@ m |= xapp->SuperMask; if (vm & kfHyper) m |= xapp->HyperMask; + if (vm & kfAltGr) + m |= xapp->ModeSwitchMask; MSG(("grabVKey %d %d %d", key, vm, m)); if (key != 0 && (vm == 0 || m != 0)) { if ((!(vm & kfMeta) || xapp->MetaMask) && (!(vm & kfAlt) || xapp->AltMask) && (!(vm & kfSuper) || xapp->SuperMask) && - (!(vm & kfHyper) || xapp->HyperMask)) + (!(vm & kfHyper) || xapp->HyperMask) && + (!(vm & kfAltGr) || xapp->ModeSwitchMask)) { grabKey(key, m); } @@ -1639,6 +1642,8 @@ m |= xapp->SuperMask; if (vm & kfHyper) m |= xapp->HyperMask; + if (vm & kfAltGr) + m |= xapp->ModeSwitchMask; grabKey(key, m); } } @@ -1659,6 +1664,8 @@ m |= xapp->SuperMask; if (vm & kfHyper) m |= xapp->HyperMask; + if (vm & kfAltGr) + m |= xapp->ModeSwitchMask; MSG(("grabVButton %d %d %d", button, vm, m)); @@ -1666,7 +1673,8 @@ if ((!(vm & kfMeta) || xapp->MetaMask) && (!(vm & kfAlt) || xapp->AltMask) && (!(vm & kfSuper) || xapp->SuperMask) && - (!(vm & kfHyper) || xapp->HyperMask)) + (!(vm & kfHyper) || xapp->HyperMask) && + (!(vm & kfAltGr) || xapp->ModeSwitchMask)) { grabButton(button, m); } @@ -1683,6 +1691,8 @@ m |= xapp->SuperMask; if (vm & kfHyper) m |= xapp->HyperMask; + if (vm & kfAltGr) + m |= xapp->ModeSwitchMask; grabButton(button, m); } } @@ -1712,6 +1722,8 @@ vm |= kfSuper; if (m1 & xapp->HyperMask) vm |= kfHyper; + if (m1 & xapp->ModeSwitchMask) + vm |= kfAltGr; return vm; } diff -u -r icewm-1.2.28/src/yxapp.cc icewm-1.2.28~/src/yxapp.cc --- icewm-1.2.28/src/yxapp.cc 2006-09-10 18:12:10.000000000 +0200 +++ icewm-1.2.28~/src/yxapp.cc 2006-10-05 01:43:59.202483249 +0200 @@ -381,7 +381,7 @@ SuperMask = (1 << m); if ((kc == XK_Hyper_L || kc == XK_Hyper_R) && HyperMask == 0) HyperMask = (1 << m); - if (kc == XK_Mode_switch && ModeSwitchMask == 0) + if ((kc == XK_Mode_switch || kc == XK_ISO_Level3_Shift) && ModeSwitchMask == 0) ModeSwitchMask = (1 << m); } @@ -417,6 +417,9 @@ if (AltMask == 0) AltMask = Mod1Mask; + if (ModeSwitchMask & (AltMask | MetaMask | SuperMask | HyperMask)) + ModeSwitchMask = 0; + PRECONDITION(xapp->AltMask != 0); PRECONDITION(xapp->AltMask != ShiftMask); PRECONDITION(xapp->AltMask != ControlMask); #v- Bye, Jörg. -- System Information: Debian Release: unstable/experimental APT prefers unstable APT policy: (990, 'unstable'), (1, 'experimental') Architecture: powerpc (ppc) Shell: /bin/sh linked to /bin/dash Kernel: Linux 2.6.18 Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8) Versions of packages icewm depends on: ii icewm-common 1.2.28-1 wonderful Win95-OS/2-Motif-like wi ii imlib11 1.9.14-31 Imlib is an imaging library for X ii libaudiofile0 0.2.6-6 Open-source version of SGI's audio ii libc6 2.3.6.ds1-4 GNU C Library: Shared libraries ii libesd0 0.2.36-3 Enlightened Sound Daemon - Shared ii libfontconfig1 2.4.1-2 generic font configuration library ii libfreetype6 2.2.1-5 FreeType 2 font engine, shared lib ii libgcc1 1:4.2-20060709-1 GCC support library ii libice6 1:1.0.1-2 X11 Inter-Client Exchange library ii libjpeg62 6b-13 The Independent JPEG Group's JPEG ii libpng12-0 1.2.8rel-5.2 PNG library - runtime ii libsm6 1:1.0.1-3 X11 Session Management library ii libtiff4 3.8.2-6 Tag Image File Format (TIFF) libra ii libungif4g 4.1.4-4 shared library for GIF images ii libx11-6 2:1.0.0-9 X11 client-side library ii libxext6 1:1.0.1-2 X11 miscellaneous extension librar ii libxft2 2.1.8.2-8 FreeType-based font drawing librar ii libxinerama1 1:1.0.1-4.1 X11 Xinerama extension library ii libxrandr2 2:1.1.0.2-4 X11 RandR extension library ii libxrender1 1:0.9.1-3 X Rendering Extension client libra ii zlib1g 1:1.2.3-13 compression library - runtime icewm recommends no packages. -- no debconf information
pgpQKSvIfT74z.pgp
Description: PGP signature