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

