wmii

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

commit 66441bf03bb93f8f6dc1c21bc750315887d917b7
parent 5dfffa855ba91a1f53f8cdd4b18ae5ea1392876c
Author: Anselm R. Garbe <garbeam@wmii.de>
Date:   Sat, 11 Feb 2006 14:07:36 +0100

added Control-Alt-{p,a} shortcuts for new simplified menu


Diffstat:
Makefile | 7+++----
cmd/Makefile | 12++++++------
cmd/wmiiplumb.c | 91-------------------------------------------------------------------------------
cmd/wmiipsel.c | 91+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
rc/wmiirc | 27++++++++++++++++++++++++---
5 files changed, 124 insertions(+), 104 deletions(-)

diff --git a/Makefile b/Makefile @@ -5,9 +5,8 @@ include config.mk SUBDIRS = libcext liblitz libixp cmd -BIN = cmd/wm/wmii cmd/wm/wmiiwm \ - cmd/wmiiplumb cmd/wmiir cmd/wmiiwarp -#cmd/wmiimenu cmd/wmiiplumb cmd/wmiir cmd/wmiiwarp +BIN = cmd/wm/wmii cmd/wm/wmiiwm cmd/wmiimenu \ + cmd/wmiipsel cmd/wmiir cmd/wmiiwarp MAN1 = cmd/wm/wmii.1 cmd/wm/wmiiwm.1 \ cmd/wmiimenu.1 cmd/wmiir.1 @@ -46,7 +45,7 @@ install: all @echo installed executable files to ${DESTDIR}${PREFIX}/bin @mkdir -p ${DESTDIR}${CONFPREFIX}/wmii-3 @cd rc; for i in *; do \ - sed 's|9PREFIX|${9PREFIX}|' <$$i >${DESTDIR}${CONFPREFIX}/wmii-3/$$i; \ + sed 's|CONFPREFIX|${CONFPREFIX}|; s|9PREFIX|${9PREFIX}|' <$$i >${DESTDIR}${CONFPREFIX}/wmii-3/$$i; \ chmod 755 ${DESTDIR}${CONFPREFIX}/wmii-3/$$i; \ done @echo installed rc scripts to ${DESTDIR}${CONFPREFIX}/wmii-3 diff --git a/cmd/Makefile b/cmd/Makefile @@ -12,13 +12,13 @@ OBJ_menu = ${SRC_menu:.c=.o} SRC_r = wmiir.c OBJ_r = ${SRC_r:.c=.o} -SRC_plumb = wmiiplumb.c -OBJ_plumb = ${SRC_plumb:.c=.o} +SRC_psel = wmiipsel.c +OBJ_psel = ${SRC_psel:.c=.o} SRC_warp = wmiiwarp.c OBJ_warp = ${SRC_warp:.c=.o} -all: wmiimenu wmiir wmiiplumb wmiiwarp +all: wmiimenu wmiir wmiipsel wmiiwarp @echo built wmii commands .c.o: @@ -39,13 +39,13 @@ wmiir: ${OBJ_r} # @${CC} -o $@ ${OBJ_r} -g -static -L${PREFIX}/lib -L/usr/lib -lc \ # -L../libixp -lixp -L../libcext -lcext -lsocket -wmiiplumb: ${OBJ_plumb} +wmiipsel: ${OBJ_psel} @echo LD $@ - @${CC} -o $@ ${OBJ_plumb} ${LDFLAGS} + @${CC} -o $@ ${OBJ_psel} ${LDFLAGS} wmiiwarp: ${OBJ_warp} @echo LD $@ @${CC} -o $@ ${OBJ_warp} ${LDFLAGS} clean: - rm -f wmiimenu wmiir wmiiplumb wmiiwarp *.o + rm -f wmiimenu wmiir wmiipsel wmiiwarp *.o diff --git a/cmd/wmiiplumb.c b/cmd/wmiiplumb.c @@ -1,91 +0,0 @@ -/* - * (C)opyright MMIV-MMVI Anselm R. Garbe <garbeam at gmail dot com> - * See LICENSE file for license details. - */ - -#include <stdlib.h> -#include <stdio.h> -#include <string.h> - -#include <X11/Xlib.h> -#include <X11/Xatom.h> - -static char version[] = "wmiiplumb - " VERSION ", (C)opyright MMIV-MMVI Anselm R. Garbe\n"; - -static void -usage() -{ - fprintf(stderr, "%s\n", "usage: wmiiplumb [-v]\n"); - exit(1); -} - -static void -print_sel(Display * dpy, Window w, XSelectionEvent * e) -{ - Atom typeret; - int format; - unsigned long nitems, bytesleft; - unsigned char *data; - - XGetWindowProperty(dpy, w, e->property, 0L, 4096L, False, - AnyPropertyType, &typeret, &format, - &nitems, &bytesleft, &data); - if(format == 8) { - int i; - for(i = 0; i < nitems; i++) - putchar(data[i]); - putchar('\n'); - } - XDeleteProperty(dpy, w, e->property); -} - -int -main(int argc, char **argv) -{ - Display *dpy; - Atom xa_clip_string; - Window w; - XEvent ev; - int pdone = 0; - - - /* command line args */ - if(argc > 1) { - if(!strncmp(argv[1], "-v", 3)) { - fprintf(stdout, "%s", version); - exit(0); - } else - usage(); - } - dpy = XOpenDisplay(0); - if(!dpy) { - fprintf(stderr, "%s", "wmiiplumb: cannot open display\n"); - exit(1); - } - xa_clip_string = XInternAtom(dpy, "PLUMB_STRING", False); - w = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 200, 200, - 1, CopyFromParent, CopyFromParent); - while(1 && !pdone) { - XConvertSelection(dpy, XA_PRIMARY, XA_STRING, xa_clip_string, - w, CurrentTime); - XFlush(dpy); - XNextEvent(dpy, &ev); - switch (ev.type) { - case SelectionNotify: - if(ev.xselection.property != None) - print_sel(dpy, w, &ev.xselection); - else - putchar('\n'); - XDestroyWindow(dpy, w); - XCloseDisplay(dpy); - pdone = 1; - break; - default: - break; - } - } - return 0; - /* - * XDestroyWindow(dpy, w); XCloseDisplay(dpy); return 1; - */ -} diff --git a/cmd/wmiipsel.c b/cmd/wmiipsel.c @@ -0,0 +1,91 @@ +/* + * (C)opyright MMIV-MMVI Anselm R. Garbe <garbeam at gmail dot com> + * See LICENSE file for license details. + */ + +#include <stdlib.h> +#include <stdio.h> +#include <string.h> + +#include <X11/Xlib.h> +#include <X11/Xatom.h> + +static char version[] = "wmiiplumb - " VERSION ", (C)opyright MMIV-MMVI Anselm R. Garbe\n"; + +static void +usage() +{ + fprintf(stderr, "%s\n", "usage: wmiiplumb [-v]\n"); + exit(1); +} + +static void +print_sel(Display * dpy, Window w, XSelectionEvent * e) +{ + Atom typeret; + int format; + unsigned long nitems, bytesleft; + unsigned char *data; + + XGetWindowProperty(dpy, w, e->property, 0L, 4096L, False, + AnyPropertyType, &typeret, &format, + &nitems, &bytesleft, &data); + if(format == 8) { + int i; + for(i = 0; i < nitems; i++) + putchar(data[i]); + putchar('\n'); + } + XDeleteProperty(dpy, w, e->property); +} + +int +main(int argc, char **argv) +{ + Display *dpy; + Atom xa_clip_string; + Window w; + XEvent ev; + int pdone = 0; + + + /* command line args */ + if(argc > 1) { + if(!strncmp(argv[1], "-v", 3)) { + fprintf(stdout, "%s", version); + exit(0); + } else + usage(); + } + dpy = XOpenDisplay(0); + if(!dpy) { + fprintf(stderr, "%s", "wmiiplumb: cannot open display\n"); + exit(1); + } + xa_clip_string = XInternAtom(dpy, "PLUMB_STRING", False); + w = XCreateSimpleWindow(dpy, DefaultRootWindow(dpy), 10, 10, 200, 200, + 1, CopyFromParent, CopyFromParent); + while(1 && !pdone) { + XConvertSelection(dpy, XA_PRIMARY, XA_STRING, xa_clip_string, + w, CurrentTime); + XFlush(dpy); + XNextEvent(dpy, &ev); + switch (ev.type) { + case SelectionNotify: + if(ev.xselection.property != None) + print_sel(dpy, w, &ev.xselection); + else + putchar('\n'); + XDestroyWindow(dpy, w); + XCloseDisplay(dpy); + pdone = 1; + break; + default: + break; + } + } + return 0; + /* + * XDestroyWindow(dpy, w); XCloseDisplay(dpy); return 1; + */ +} diff --git a/rc/wmiirc b/rc/wmiirc @@ -26,7 +26,7 @@ CLIENT_BORDER=3 MODKEY=Alt -# WMIIWM CONFIGURATION +# WM CONFIGURATION xwrite /def/bar $CLIENT_BAR xwrite /def/border $CLIENT_BORDER xwrite /def/inc 1 @@ -43,10 +43,13 @@ for(page in `{wmiir read / | grep '^d' | awk '{print $10}' | grep -v new}) { } } +# KEYS CONFIGURATION for(i in \ $MODKEY-Control-q,y \ $MODKEY-Control-w,y \ $MODKEY-Control-c \ + $MODKEY-Control-p \ + $MODKEY-Control-a \ $MODKEY-t \ $MODKEY-d \ $MODKEY-a \ @@ -70,7 +73,7 @@ for(i in 1 2 3 4 5 6 7 8 9) xwrite /ctl 'grab '^$MODKEY^'-Shift-'^$i -# WMIIBAR CONFIGURATION +# BAR CONFIGURATION for(i in 1 2 3) wmiir remove /bar/1 >/dev/null >[2=1] xwrite /bar/new/colors $WMII_NORMCOLORS @@ -79,9 +82,23 @@ xwrite /bar/new/colors $WMII_NORMCOLORS xwrite /bar/1/data 1 xwrite /bar/expand 2 +# MENU CONFIGURATION +nl=' +' +fn items { + ifs=:$nl { dirs=`{echo $1} } + { + for(dir in $dirs) { + for(file in $dir/*) { + if(! ~ $file $dir^'/*' && ! test -d $file && test -x $file) + echo `{basename $file} + } + } + } | sort +} # MISC -xsetroot -solid '#4a551c' +xsetroot -solid '#1a1c10' status & # EVENT LOOP @@ -101,6 +118,10 @@ while(event=`{read}) { wmiirc & case $MODKEY-Control-q,y xwrite /ctl quit + case $MODKEY-Control-p + extern `{items $OLD_PATH | wmiimenu} & + case $MODKEY-Control-a + `{items CONFPREFIX/wmii-3:$HOME/.wmii-3 | wmiimenu} & case $MODKEY-t extern xterm -rv & case $MODKEY-d