wmii

git clone git://oldgit.suckless.org/wmii/
Log | Files | Refs | README | LICENSE

commit 523872ca3d8554fa1b8698339e0728e281385df3
parent 6c1ce74e9af5814b2c0c754eb0572aec80e1788e
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Sat, 11 Feb 2006 23:54:00 +0100

removed modes from wmiirc, beside other several fixes


Diffstat:
cmd/wm/client.c | 2+-
cmd/wm/event.c | 6+++---
cmd/wm/fs.c | 7+++++--
cmd/wm/kb.c | 4++--
cmd/wm/page.c | 27++++++++++-----------------
cmd/wm/wm.h | 2+-
rc/wmiirc | 166++++++++++++++++++++++++-------------------------------------------------------
7 files changed, 72 insertions(+), 142 deletions(-)

diff --git a/cmd/wm/client.c b/cmd/wm/client.c @@ -95,7 +95,7 @@ client_name_event(Client *c) { char buf[256]; snprintf(buf, sizeof(buf), "CN %s\n", c->name); - do_pend_fcall(buf); + broadcast_event(buf); } void diff --git a/cmd/wm/event.c b/cmd/wm/event.c @@ -69,7 +69,7 @@ handle_buttonpress(XEvent *e) for(i = 0; i < nlabel; i++) if(blitz_ispointinrect(ev->x, ev->y, &label[i]->rect)) { snprintf(buf, sizeof(buf), "LB %d %d\n", i + 1, ev->button); - do_pend_fcall(buf); + broadcast_event(buf); } } else if((c = win_to_frame(ev->window))) { @@ -87,7 +87,7 @@ handle_buttonpress(XEvent *e) if(c && c->area) { snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button); - do_pend_fcall(buf); + broadcast_event(buf); } } else if((c = win_to_client(ev->window))) { @@ -114,7 +114,7 @@ handle_buttonpress(XEvent *e) if(c && c->area) { snprintf(buf, sizeof(buf), "CB %d %d\n", client_to_index(c) + 1, ev->button); - do_pend_fcall(buf); + broadcast_event(buf); } } diff --git a/cmd/wm/fs.c b/cmd/wm/fs.c @@ -1048,7 +1048,10 @@ xwrite(IXPConn *c, Fcall *fcall) return Enocommand; break; case Dpage: - /* /TODO: /n/ctl commands */ + if(!strncmp(buf, "exec ", 5)) { + aq = (Page **)cext_array_attach((void **)aq, page[i1], sizeof(Page *), &aqsz); + spawn(&buf[5]); + } break; case Darea: /* /TODO: /n/{float,n}/ctl commands */ @@ -1257,7 +1260,7 @@ do_fcall(IXPConn *c) } void -do_pend_fcall(char *event) +broadcast_event(char *event) { size_t i; Fcall *fcall; diff --git a/cmd/wm/kb.c b/cmd/wm/kb.c @@ -208,7 +208,7 @@ handle_key_seq(Window w, Key **done, size_t ndone) case 1: if(!found[0]->next) { snprintf(buf, sizeof(buf), "K %s\n", found[0]->name); - do_pend_fcall(buf); + broadcast_event(buf); break; } default: @@ -232,7 +232,7 @@ handle_key(Window w, unsigned long mod, KeyCode keycode) case 1: if(!found[0]->next) { snprintf(buf, sizeof(buf), "K %s\n", found[0]->name); - do_pend_fcall(buf); + broadcast_event(buf); break; } default: diff --git a/cmd/wm/page.c b/cmd/wm/page.c @@ -71,11 +71,10 @@ destroy_page(Page *p) XChangeProperty(dpy, root, net_atoms[NET_NUMBER_OF_DESKTOPS], XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &i, 1); - /* determine what to focus and do that */ if(npage) focus_page(page[sel]); else - do_pend_fcall("PN -\n"); + broadcast_event("PN -\n"); } int @@ -96,12 +95,15 @@ focus_page(Page *p) Client *c; int i = page_to_index(p); - if(!npage || (i == -1)) + if(!npage || (i == -1)) { + fprintf(stderr, "returning from focus_page %d %d\n", npage, i); + return; + } sel = i; for(i = 0; i < nclient; i++) { c = client[i]; - if(old && (c->area && c->area->page == old)) + if(old && (old != p) && (c->area && c->area->page == old)) XMoveWindow(dpy, c->frame.win, 2 * rect.width, 2 * rect.height); else if(c->area && c->area->page == p) { XMoveWindow(dpy, c->frame.win, c->frame.rect.x, c->frame.rect.y); @@ -111,7 +113,7 @@ focus_page(Page *p) if((c = sel_client_of_page(p))) focus_client(c); snprintf(buf, sizeof(buf), "PN %d\n", sel + 1); - do_pend_fcall(buf); + broadcast_event(buf); XChangeProperty(dpy, root, net_atoms[NET_CURRENT_DESKTOP], XA_CARDINAL, 32, PropModeReplace, (unsigned char *) &sel, 1); XSync(dpy, False); @@ -149,16 +151,6 @@ rectangles(unsigned int *num) /* static void -xexec(void *obj, char *arg) -{ - aq = (Page **)cext_array_attach((void **)aq, obj, - sizeof(Page *), &aqsz); - wmii_spawn(dpy, arg); -} -*/ - -/* -static void swap_client(void *obj, char *arg) { Page *p = obj; @@ -275,9 +267,10 @@ select_page(char *arg) else new = 0; } else { - int idx = cext_strtonum(arg, 0, npage, &err); + int idx = cext_strtonum(arg, 1, npage, &err); if(idx && (idx - 1 < npage)) - new = idx; + new = idx - 1; } focus_page(page[new]); } + diff --git a/cmd/wm/wm.h b/cmd/wm/wm.h @@ -235,7 +235,7 @@ void check_x_event(IXPConn *c); /* fs.c */ unsigned long long mkqpath(unsigned char type, unsigned short pg, unsigned short area, unsigned short cl); -void do_pend_fcall(char *event); +void broadcast_event(char *event); void new_ixp_conn(IXPConn *c); /* kb.c */ diff --git a/rc/wmiirc b/rc/wmiirc @@ -45,18 +45,11 @@ 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-w,y \ + $MODKEY-Control-q,y \ $MODKEY-Control-p \ $MODKEY-Control-a \ - $MODKEY-Control-r \ - $MODKEY-Control-m \ $MODKEY-t \ $MODKEY-d \ $MODKEY-a \ @@ -72,8 +65,6 @@ 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 @@ -113,8 +104,6 @@ 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) @@ -141,109 +130,54 @@ while(event=`{read}) { } } if(~ $event(1) K) { # key press - 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' - - } - + 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-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'} + } } }