On Sat, 2014-08-16 at 22:45 -0400, Chris Moller wrote: > > On 08/16/14 22:09, David B. Lamkins wrote: > > > There are two small tweaks that I'd like to see w.r.t. key mapping and > > binding: > > > > 1. GNOME binds alt-` to rotate through an applications windows, making > > this keystroke unavailable for ◊ in aplwrap. Through trial and error I > > discovered that I can use ctrl-alt-` instead. > > > > While documenting this would be OK, it's still inconsistent with the > > behavior of the rest of the alt-key mappings. Is it possible to disable > > the GNOME intercept on a per-app basis? Failing that, perhaps ◊ could be > > duplicated on some other keytop to give folks who don't read > > documentation a chance to use that key. > > Don't know about GNOME, but there's no way in KDE to disable or remap > that binding. That's why I put diamond on alt-shift-D, D-for-diamond.
Ah. That's what I get for using ]KEYB as a reference. > > > > > 2. With laptops, netbooks and other compact devices, keys like Break, > > PrintScreen, SysRequest, ScrollLock, Pause and Break are disappearing. > > (None of the keyboards that I use have a Break key.) Would it be > > possible to add a second binding for the APL attention key? It's going > > to be a challenge to find something that isn't either already bound or > > not readily available in international keyboard layouts. Perhaps ctrl-. > > (ctrl-period)? > > Do your keyboards have a "Windows" key? That key shows up in GDK as > GDK_KEY_Super_L, making it possible for ctrl-Windows to be used as an > interrupt. (I just tried it.) > Yes, all my keyboards do have a Windows key. Patch attached for enabling APL attention via ctrl-break, ctrl-left_super (a.k.a. Windows) and ctrl-period.
diff --git a/src/aplwrap.c b/src/aplwrap.c index dd608dd..fffe10f 100644 --- a/src/aplwrap.c +++ b/src/aplwrap.c @@ -233,7 +233,9 @@ key_press_event (GtkWidget *widget, GdkEvent *event, gpointer user_data) #endif if (key_event->state == GDK_CONTROL_MASK && - key_event->keyval == GDK_KEY_Break) { + (key_event->keyval == GDK_KEY_Break || + key_event->keyval == GDK_KEY_period || + key_event->keyval == GDK_KEY_Super_L)) { if (apl_pid != -1) kill ((pid_t)apl_pid, SIGINT); return FALSE; }