wmii

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

commit 022015d98996f004990d96cc5aad81ddd0db2647
parent 656bbcdb8852dae4c339b10c05905d7c1f9a968b
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Thu,  9 Feb 2006 00:28:49 +0100

implemented first prototype of keys component script


Diffstat:
cmd/wm/wmii | 2--
cmd/wmiifs.c | 16++++++++--------
rc/keys | 99+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rc/wmiirc | 32+-------------------------------
4 files changed, 108 insertions(+), 41 deletions(-)

diff --git a/cmd/wm/wmii b/cmd/wm/wmii @@ -20,7 +20,6 @@ mkdir -p /tmp/.ixp-$USER wmiifs -a $WMII_ADDRESS & wmiifspid=$apid wmiiwm -a unix!/tmp/.ixp-$USER/wmiiwm-$WMII_IDENT & -wmiikeys -a unix!/tmp/.ixp-$USER/wmiikeys-$WMII_IDENT & wmiibar -a unix!/tmp/.ixp-$USER/wmiibar-$WMII_IDENT & #wmiimenu -a /tmp/.ixp-$USER/wmiimenu-$WMII_IDENT & sleep 1 @@ -28,7 +27,6 @@ sleep 1 # mount ixp file systems: echo -n mount unix!/tmp/.ixp-$USER/wmiiwm-$WMII_IDENT /wm | wmiir write /ctl echo -n mount unix!/tmp/.ixp-$USER/wmiibar-$WMII_IDENT /bar | wmiir write /ctl -echo -n mount unix!/tmp/.ixp-$USER/wmiikeys-$WMII_IDENT /keys | wmiir write /ctl # display the wmii introduction if necessary: if(mkdir $HOME/.wmii-3 >[2]/dev/null) { diff --git a/cmd/wmiifs.c b/cmd/wmiifs.c @@ -145,6 +145,8 @@ xmount(char *arg) char *p, *wname = strchr(address, ' '); Mount *mnt; + if(!wname) + return "no mount point supplied"; *wname = 0; wname++; if(*wname == '/') @@ -156,15 +158,13 @@ xmount(char *arg) if(!address || !wname || !*address || !*wname) return Enoserv; - if(name_to_mount(wname)) - return "already mounted"; - - mnt = cext_emallocz(sizeof(Mount)); + if(!(mnt = name_to_mount(wname))) { + mnt = cext_emallocz(sizeof(Mount)); + cext_strlcpy(mnt->address, address, sizeof(mnt->address)); + mount = (Mount **)cext_array_attach((void **)mount, mnt, sizeof(Mount *), &mountsz); + nmount++; + } cext_strlcpy(mnt->wname, wname, sizeof(mnt->wname)); - cext_strlcpy(mnt->address, address, sizeof(mnt->address)); - mount = (Mount **)cext_array_attach((void **)mount, mnt, sizeof(Mount *), &mountsz); - nmount++; - return nil; } diff --git a/rc/keys b/rc/keys @@ -0,0 +1,99 @@ +#!9PREFIX/bin/rc +# configure wmiikeys + +ADDRESS=unix!/tmp/.ixp-$USER/wmiikeys-$WMII_IDENT +PIDFILE=/tmp/.ixp-$USER/keyspid-$WMII_IDENT +if(test -r $PIDFILE) { + kill -2 `{cat $PIDFILE} >[2]/dev/null +} +echo $pid >$PIDFILE + +fn sigint { + if(test -f $PIDFILE && ~ `{cat $PIDFILE} $pid) + rm -f $PIDFILE + xwrite /keys/ctl quit + xwrite /ctl 'unmount /keys' + exit +} + +xterm -rv& +wmiikeys -a $ADDRESS & +fn xwrite { echo -n $2 | wmiir write $1 } +xwrite /ctl 'mount '^$ADDRESS^' /keys' +sleep 1 + +wmiir write /keys/reset <<END +Control-Alt-c +Control-Alt-q,y +Control-Alt-w,y +Alt-t +Alt-d +Alt-a +Shift-Alt-a +Alt-n +Alt-m +Alt-Return +Shift-Alt-Return +Control-Alt-y +Alt-h +Alt-l +Alt-Tab +Alt-j +Alt-k +Shift-Alt-h +Shift-Alt-l +Shift-Alt-p +Shift-Alt-1 +Shift-Alt-2 +Shift-Alt-3 +Shift-Alt-4 +END + +wmiir read /keys/event | while(key=`{read}) { + switch($key) { + case Control-Alt-c + xwrite /wm/sel/sel/sel/ctl kill + case Control-Alt-q,y + quit + case Control-Alt-w,y + wmiirc + case Alt-t + extern xterm -rv & + case Alt-d + xwrite /wm/sel/sel/sel/ctl detach + case Alt-a + xwrite /wm/ctl attach + case Shift-Alt-a + xwrite /wm/ctl detached + case Alt-n + wmiir read /wm/sel/new >/dev/null >[2=1] + case Alt-m + xwrite /wm/sel/sel/sel/ctl max + case Alt-Return + xwrite /wm/sel/sel/ctl 'swap east' + case Shift-Alt-Return + xwrite /wm/sel/sel/ctl 'swap west' + case Control-Alt-y + wmiir read /wm/new >/dev/null >[2=1] + case Alt-h + xwrite /wm/sel/ctl 'select next' + case Alt-l + xwrite /wm/sel/ctl 'select prev' + case Alt-Tab + xwrite /wm/sel/sel/ctl 'select next' + case Alt-j + xwrite /wm/sel/sel/ctl 'select next' + case Alt-k + xwrite /wm/sel/sel/ctl 'select prev' + case Shift-Alt-h + xwrite /wm/ctl 'select prev' + case Shift-Alt-l + xwrite /wm/ctl 'select next' + case Shift-Alt-p + xwrite /wm/ctl pager + case Shift-Alt-[1-9] + xwrite /wm/ctl 'select '^`{echo $k|sed 's/.*-//g'} + } +} + +sigint diff --git a/rc/wmiirc b/rc/wmiirc @@ -26,37 +26,6 @@ for(page in `{wmiir read /wm | grep '^d' | awk '{print $10}' | grep -v new}) { } } -# WMIIKEYS CONFIGURATION -wmiir write /keys/reset <<END -Control-Alt-c #write /wm/sel/sel/sel/ctl kill -Control-Alt-q,y quit -Control-Alt-w,y wmiirc -Alt-t extern xterm -rv -Alt-d #write /wm/sel/sel/sel/ctl detach -Alt-a #write /wm/ctl attach -Shift-Alt-a #write /wm/ctl detached -Alt-n wmiir read /wm/sel/new >/dev/null >[2=1] -Alt-m #write /wm/sel/sel/sel/ctl max -Alt-Return #write /wm/sel/sel/ctl swap east -Shift-Alt-Return #write /wm/sel/sel/ctl swap west -Control-Alt-y wmiir read /wm/new >/dev/null >[2=1] -Alt-h #write /wm/sel/ctl select next -Alt-l #write /wm/sel/ctl select prev -Alt-Tab #write /wm/sel/sel/ctl select next -Alt-j #write /wm/sel/sel/ctl select next -Alt-k #write /wm/sel/sel/ctl select prev -Shift-Alt-h #write /wm/ctl select prev -Shift-Alt-l #write /wm/ctl select next -Shift-Alt-p #write /wm/ctl pager -Shift-Alt-1 #write /wm/ctl select 1 -Shift-Alt-2 #write /wm/ctl select 2 -Shift-Alt-3 #write /wm/ctl select 3 -Shift-Alt-4 #write /wm/ctl select 4 -END - -xwrite /keys/font $FONT -xwrite /keys/color $SEL_COLOR - # WMIIBAR CONFIGURATION xwrite /bar/font $FONT xwrite /bar/defcolor $SEL_COLOR @@ -64,4 +33,5 @@ echo -n fnord | wmiir write /bar/new/data # MISC xsetroot -mod 2 2 -bg '#444466' -fg '#555555' +keys& status&