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:
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'}
+ }
}
}