diff --git a/cmd/wm/event.c b/cmd/wm/event.c index bc28ac8a..f0e25218 100644 --- a/cmd/wm/event.c +++ b/cmd/wm/event.c @@ -84,6 +84,11 @@ handle_buttonpress(XEvent *e) else mouse_resize(c, align); } + + if(c && c->area) { + snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button); + do_pend_fcall(buf); + } } else if((c = win_to_client(ev->window))) { ev->state &= valid_mask; @@ -106,11 +111,13 @@ handle_buttonpress(XEvent *e) } else if(ev->button == Button1) focus_client(c); + + if(c && c->area) { + snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button); + do_pend_fcall(buf); + } } - if(c && c->area) { - snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button); - do_pend_fcall(buf); - } + } static void diff --git a/rc/wmiirc b/rc/wmiirc index 216c5508..a844583d 100755 --- a/rc/wmiirc +++ b/rc/wmiirc @@ -45,11 +45,18 @@ for(page in `{wmiir read / | grep '^d' | awk '{print $10}' | grep -v new}) { # KEYS CONFIGURATION for(i in \ + Escape \ + $MODKEY-h \ + $MODKEY-j \ + $MODKEY-k \ + $MODKEY-l \ $MODKEY-Control-q,y \ $MODKEY-Control-w,y \ $MODKEY-Control-c \ $MODKEY-Control-p \ $MODKEY-Control-a \ + $MODKEY-Control-r \ + $MODKEY-Control-m \ $MODKEY-t \ $MODKEY-d \ $MODKEY-a \ @@ -65,11 +72,13 @@ for(i in \ $MODKEY-j \ $MODKEY-k \ $MODKEY-Shift-h \ + $MODKEY-Shift-j \ + $MODKEY-Shift-k \ $MODKEY-Shift-l \ $MODKEY-Shift-p) xwrite /ctl 'grab '^$i -for(i in 1 2 3 4 5 6 7 8 9) +for(i in `{seq 1 9}) xwrite /ctl 'grab '^$MODKEY^'-Shift-'^$i @@ -104,6 +113,8 @@ xsetroot -solid '#1a1c10' status & # EVENT LOOP +kmode='normal' +barh=16 #`{wmiir read /bar/geometry|awk '{print $4}'} wmiir read /event | \ while(event=`{read}) { if(~ $event(1) PN) @@ -130,53 +141,109 @@ while(event=`{read}) { } } if(~ $event(1) K) { # key press - switch($event(2)) { - case $MODKEY-Control-c - xwrite /sel/sel/sel/ctl kill - case $MODKEY-Control-w,y - wmiirc & - case $MODKEY-Control-q,y - xwrite /ctl quit - case $MODKEY-Control-p - extern `{cat /tmp/ns.$USER.$DISPLAY/p.menu | wmiimenu} & - case $MODKEY-Control-a - `{items CONFPREFIX/wmii-3:$HOME/.wmii-3 | wmiimenu} & - case $MODKEY-t - extern xterm -rv & - case $MODKEY-d - xwrite /sel/sel/sel/ctl detach - case $MODKEY-a - xwrite /ctl attach - case $MODKEY-Shift-a - xwrite /ctl detached - case $MODKEY-n - wmiir read /sel/new >/dev/null >[2=1] - case $MODKEY-m - xwrite /sel/sel/sel/ctl max - case $MODKEY-Return - xwrite /sel/sel/ctl 'swap east' - case $MODKEY-Shift-Return - xwrite /sel/sel/ctl 'swap west' - case $MODKEY-Control-y - wmiir read /new >/dev/null >[2=1] - case $MODKEY-h - xwrite /sel/ctl 'select next' - case $MODKEY-l - xwrite /sel/ctl 'select prev' - case $MODKEY-Tab - xwrite /sel/sel/ctl 'select next' - case $MODKEY-j - xwrite /sel/sel/ctl 'select next' - case $MODKEY-k - xwrite /sel/sel/ctl 'select prev' - case $MODKEY-Shift-h - xwrite /ctl 'select prev' - case $MODKEY-Shift-l - xwrite /ctl 'select next' - case $MODKEY-Shift-p - xwrite /ctl pager - case $MODKEY-Shift-[1-9] - xwrite /ctl 'select '^`{echo $k|sed 's/.*-//g'} - } + if (~ $kmode 'normal') + switch($event(2)) { + case $MODKEY-Control-c + xwrite /sel/sel/sel/ctl kill + case $MODKEY-Control-w,y + wmiirc & + case $MODKEY-Control-q,y + xwrite /ctl quit + case $MODKEY-Control-p + extern `{cat /tmp/ns.$USER.$DISPLAY/p.menu | wmiimenu} & + case $MODKEY-Control-a + `{items /usr/local/etc/wmii-3:$HOME/.wmii-3 | wmiimenu} & + case $MODKEY-Control-r + kmode='resize' + case $MODKEY-Control-m + kmode='move' + case $MODKEY-t + extern xterm -rv & + case $MODKEY-d + xwrite /sel/sel/sel/ctl detach + case $MODKEY-a + xwrite /ctl attach + case $MODKEY-Shift-a + xwrite /ctl detached + case $MODKEY-n + wmiir read /sel/new >/dev/null >[2=1] + case $MODKEY-m + xwrite /sel/sel/sel/ctl max + case $MODKEY-Return + xwrite /sel/sel/ctl 'swap east' + case $MODKEY-Shift-Return + xwrite /sel/sel/ctl 'swap west' + case $MODKEY-Control-y + wmiir read /new >/dev/null >[2=1] + case $MODKEY-h + xwrite /sel/ctl 'select next' + case $MODKEY-l + xwrite /sel/ctl 'select prev' + case $MODKEY-Tab + xwrite /sel/sel/ctl 'select next' + case $MODKEY-j + xwrite /sel/sel/ctl 'select next' + case $MODKEY-k + xwrite /sel/sel/ctl 'select prev' + case $MODKEY-Shift-h + xwrite /ctl 'select prev' + case $MODKEY-Shift-l + xwrite /ctl 'select next' + case $MODKEY-Shift-p + xwrite /ctl pager + case $MODKEY-Shift-[1-9] + xwrite /ctl 'select '^`{echo $event(2)|sed 's/.*-//g'} + } + + if (~ $kmode 'move') + switch($event(2)) { + case Escape + kmode='normal' + case $MODKEY-Control-r + kmode='resize' + case $MODKEY-k + xwrite /sel/sel/sel/geometry '-0 -30 -0 -0' + case $MODKEY-j + xwrite /sel/sel/sel/geometry '+0 +30 +0 +0' + case $MODKEY-h + xwrite /sel/sel/sel/geometry '-40 -0 -0 -0' + case $MODKEY-l + xwrite /sel/sel/sel/geometry '+40 +0 +0 +0' + case $MODKEY-Shift-k + xwrite /sel/sel/sel/geometry '-0 north -0 -0' + case $MODKEY-Shift-j + xwrite /sel/sel/sel/geometry '+0 south-'^$barh^' +0 +0' + case $MODKEY-Shift-h + xwrite /sel/sel/sel/geometry 'west -0 -0 -0' + case $MODKEY-Shift-l + xwrite /sel/sel/sel/geometry 'east +0 +0 +0' + } + + if (~ $kmode 'resize') + switch($event(2)) { + case Escape + kmode='normal' + case $MODKEY-Control-m + kmode='move' + case $MODKEY-k + xwrite /sel/sel/sel/geometry '+0 +0 +0 -30' + case $MODKEY-j + xwrite /sel/sel//sel/geometry '+0 +0 +0 +30' + case $MODKEY-h + xwrite /sel/sel/sel/geometry '+0 +0 -40 +0' + case $MODKEY-l $EASTKEY + xwrite /sel/sel/sel/geometry '+0 +0 +40 +0' + case $MODKEY-Shift-k + xwrite /sel/sel/sel/geometry '-0 north -0 +0' + case $MODKEY-Shift-j + xwrite /sel/sel/sel/geometry '-0 0 -0 south-'^$barh + case $MODKEY-Shift-h + xwrite /sel/sel/sel/geometry '0 -0 west -0' + case $MODKEY-Shift-l + xwrite /sel/sel/sel/geometry '0 -0 east -0' + + } + } } +