Date: Wed, 1 Jul 2009 10:18:59 GMT From: Aragon Gouveia <aragon@phat.za.net> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/136214: New port: x11-wm/scrotwm scrotwm X11 window manager Message-ID: <200907011018.n61AIxHF043100@www.freebsd.org> Resent-Message-ID: <200907011020.n61AK0km012670@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 136214 >Category: ports >Synopsis: New port: x11-wm/scrotwm scrotwm X11 window manager >Confidential: no >Severity: non-critical >Priority: medium >Responsible: freebsd-ports-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: change-request >Submitter-Id: current-users >Arrival-Date: Wed Jul 01 10:20:00 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Aragon Gouveia >Release: 7.1-STABLE >Organization: >Environment: FreeBSD igor.geek.sh 7.1-STABLE FreeBSD 7.1-STABLE #3: Wed Mar 11 14:24:50 SAST 2009 root@igor.geek.sh:/usr/src/sys/amd64/compile/IGOR amd64 >Description: Scrotwm is a small dynamic tiling window manager for X11. It tries to stay out of the way so that valuable screen real estate can be used for much more important stuff. It has sane defaults and does not require one to learn a language to do any configuration. It was written by hackers for hackers and it strives to be small, compact and fast. It was largely inspired by xmonad and dwm. Both are fine products but suffer from things like: crazy-unportable-language-syndrome, silly defaults, asymmetrical window layout, "how hard can it be?" and good old NIH. Nevertheless dwm was a phenomenal resource and many good ideas and code was borrowed from it. On the other hand xmonad has great defaults, key bindings and xinerama support but is crippled by not being written in C. WWW: http://www.peereboom.us/scrotwm/html/scrotwm.html >How-To-Repeat: >Fix: Patch attached with submission follows: # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # scrotwm # scrotwm/files # scrotwm/files/clock_format.patch # scrotwm/files/spawn_menu_colourfix.patch # scrotwm/files/spawn_menu_atbottom.patch # scrotwm/files/patch-globalconfig # scrotwm/Makefile # scrotwm/distinfo # scrotwm/pkg-descr # echo c - scrotwm mkdir -p scrotwm > /dev/null 2>&1 echo c - scrotwm/files mkdir -p scrotwm/files > /dev/null 2>&1 echo x - scrotwm/files/clock_format.patch sed 's/^X//' >scrotwm/files/clock_format.patch << '297846d790ce1b6a4a0a09c955a8ee1d' X--- scrotwm.c.orig 2009-06-29 03:46:08.000000000 +0200 X+++ scrotwm.c 2009-06-28 10:07:24.000000000 +0200 X@@ -182,6 +182,7 @@ X int bar_verbose = 1; X int bar_height = 0; X int clock_enabled = 1; X+char clock_format[31] = "%a %b %d %R %Z %Y"; X pid_t bar_pid; X GC bar_gc; X XGCValues bar_gcv; X@@ -557,6 +558,7 @@ X X /* conf file stuff */ X #define SWM_CONF_WS "\n= \t" X+#define SWM_CONF_VAL_WS "\n\t" X #define SWM_CONF_FILE "scrotwm.conf" X int X conf_load(char *filename) X@@ -594,7 +596,7 @@ X if ((var = strsep(&cp, SWM_CONF_WS)) == NULL || cp == NULL) X break; X cp += (long)strspn(cp, SWM_CONF_WS); X- if ((val = strsep(&cp, SWM_CONF_WS)) == NULL) X+ if ((val = strsep(&cp, SWM_CONF_VAL_WS)) == NULL) X break; X X DNPRINTF(SWM_D_MISC, "conf_load: %s=%s\n",var ,val); X@@ -624,6 +626,8 @@ X case 'c': X if (!strncmp(var, "clock_enabled", strlen("clock_enabled"))) X clock_enabled = atoi(val); X+ else if (!strncmp(var, "clock_format", strlen("clock_format"))) X+ strlcpy(clock_format, val, 31); X else if (!varmatch(var, "color_focus", &i)) X setscreencolor(val, i, SWM_S_COLOR_FOCUS); X else if (!varmatch(var, "color_unfocus", &i)) X@@ -779,12 +783,12 @@ X else { X time(&tmt); X localtime_r(&tmt, &tm); X- strftime(s, sizeof s, "%a %b %d %R %Z %Y ", &tm); X+ strftime(s, sizeof s, clock_format, &tm); X } X for (i = 0; i < ScreenCount(display); i++) { X x = 1; X TAILQ_FOREACH(r, &screens[i].rl, entry) { X- snprintf(loc, sizeof loc, "%d:%d %s%s %s", X+ snprintf(loc, sizeof loc, "%d:%d %s %s %s", X x++, r->ws->idx + 1, s, bar_ext, bar_vertext); X bar_print(r, loc); X } 297846d790ce1b6a4a0a09c955a8ee1d echo x - scrotwm/files/spawn_menu_colourfix.patch sed 's/^X//' >scrotwm/files/spawn_menu_colourfix.patch << '4d2fdd98c382a625c9f8783feaa15040' X--- scrotwm.c.orig 2009-06-29 03:46:08.000000000 +0200 X+++ scrotwm.c 2009-06-28 10:07:24.000000000 +0200 X@@ -1139,7 +1143,7 @@ X spawn_menu[SWM_MENU_FN] = bar_fonts[bar_fidx]; X spawn_menu[SWM_MENU_NB] = r->s->c[SWM_S_COLOR_BAR].name; X spawn_menu[SWM_MENU_NF] = r->s->c[SWM_S_COLOR_BAR_FONT].name; X- spawn_menu[SWM_MENU_SB] = r->s->c[SWM_S_COLOR_BAR_BORDER].name; X+ spawn_menu[SWM_MENU_SB] = r->s->c[SWM_S_COLOR_BAR_FONT].name; X spawn_menu[SWM_MENU_SF] = r->s->c[SWM_S_COLOR_BAR].name; X X spawn(r, args); 4d2fdd98c382a625c9f8783feaa15040 echo x - scrotwm/files/spawn_menu_atbottom.patch sed 's/^X//' >scrotwm/files/spawn_menu_atbottom.patch << '813e12c00447524db8c05acbb274acbf' X--- scrotwm.c.orig 2009-06-29 03:46:08.000000000 +0200 X+++ scrotwm.c 2009-06-28 10:07:24.000000000 +0200 X@@ -199,7 +200,7 @@ X char *spawn_lock[] = { "xlock", NULL }; X char *spawn_initscr[] = { "initscreen.sh", NULL }; X char *spawn_menu[] = { "dmenu_run", "-fn", NULL, "-nb", NULL, X- "-nf", NULL, "-sb", NULL, "-sf", NULL, NULL }; X+ "-nf", NULL, "-sb", NULL, "-sf", NULL, "-b", NULL }; X X #define SWM_MENU_FN (2) X #define SWM_MENU_NB (4) 813e12c00447524db8c05acbb274acbf echo x - scrotwm/files/patch-globalconfig sed 's/^X//' >scrotwm/files/patch-globalconfig << '19df3de6b7558e0806fa27aa40efd8b2' X--- scrotwm.c.orig 2009-06-29 04:32:04.000000000 +0200 X+++ scrotwm.c 2009-06-29 04:32:13.000000000 +0200 X@@ -3499,7 +3499,7 @@ X cfile = conf; X } else { X /* try global conf file */ X- snprintf(conf, sizeof conf, "/etc/%s", SWM_CONF_FILE); X+ snprintf(conf, sizeof conf, "/usr/local/etc/%s", SWM_CONF_FILE); X if (!stat(conf, &sb)) X if (S_ISREG(sb.st_mode)) X cfile = conf; X--- scrotwm.1.orig 2009-06-29 04:37:19.000000000 +0200 X+++ scrotwm.1 2009-06-29 04:37:26.000000000 +0200 X@@ -66,7 +66,7 @@ X .Pa ~/.scrotwm.conf . X If that file is unavailable, X it then tries to open the global configuration file X-.Pa /etc/scrotwm.conf . X+.Pa /usr/local/etc/scrotwm.conf . X .Pp X The format of the file is \*(Ltkeyword\*(Gt = \*(Ltsetting\*(Gt. X For example: 19df3de6b7558e0806fa27aa40efd8b2 echo x - scrotwm/Makefile sed 's/^X//' >scrotwm/Makefile << '22ec8049968c0a93a52f5b91d6ea9e1f' X# New ports collection makefile for: scrotwm X# Date created: June 29, 2009 X# Whom: Aragon Gouveia <aragon@phat.za.net> X# X XPORTNAME= scrotwm XPORTVERSION= 0.9.5 XCATEGORIES= x11-wm XMASTER_SITES= http://www.peereboom.us/scrotwm/snapshot/ XEXTRACT_SUFX= .tgz X XMAINTAINER= aragon@phat.za.net XCOMMENT= A small, dynamic tiling window manager for X11 X XOPTIONS= DMENU "Depend on x11/dmenu" On \ X DMENU_COLFIX "Fix inverted/select colour on dmenu" On \ X DMENU_BOTTOM "dmenu at screen bottom (instead of top)" Off \ X CLOCKFORMAT "Configurable strftime(3) clock format" Off X X.include <bsd.port.options.mk> X XUSE_XORG= x11 xproto xrandr X XMAN1= scrotwm.1 XPLIST_FILES= bin/scrotwm lib/swmhack.so etc/scrotwm.conf X X.if defined(WITH_DMENU) XRUN_DEPENDS= dmenu:${PORTSDIR}/x11/dmenu X.endif X.if defined(WITH_DMENU_COLFIX) XEXTRA_PATCHES+= ${FILESDIR}/spawn_menu_colourfix.patch X.endif X.if defined(WITH_DMENU_BOTTOM) XEXTRA_PATCHES+= ${FILESDIR}/spawn_menu_atbottom.patch X.endif X.if defined(WITH_CLOCKFORMAT) XEXTRA_PATCHES+= ${FILESDIR}/clock_format.patch X.endif X Xdo-build: X ${CC} ${CFLAGS} -I${X11BASE}/include -DSWM_DEBUG \ X -I${WRKSRC}/linux -lutil -L${X11BASE}/lib -lX11 -lXrandr \ X -o ${WRKSRC}/${PORTNAME} ${WRKSRC}/${PORTNAME}.c X ${CC} ${CFLAGS} -I${X11BASE}/include -shared -fPIC \ X -o ${WRKSRC}/swmhack.so ${WRKSRC}/lib/swm_hack.c X Xdo-install: X ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin X ${INSTALL_DATA} ${WRKSRC}/swmhack.so ${PREFIX}/lib X ${INSTALL_DATA} ${WRKSRC}/scrotwm.conf ${PREFIX}/etc X ${INSTALL_MAN} ${WRKSRC}/scrotwm.1 ${PREFIX}/man/man1 X Xpost-install: X.if defined(WITH_CLOCKFORMAT) X @${ECHO_MSG} X @${ECHO_MSG} "CLOCK FORMAT" X @${ECHO_MSG} X @${ECHO_MSG} "To set the clock's format, add a clock_format directive" X @${ECHO_MSG} "to your configuration file and set it to a format string" X @${ECHO_MSG} "following strftime(3) convention." X @${ECHO_MSG} X.endif X X.include <bsd.port.mk> 22ec8049968c0a93a52f5b91d6ea9e1f echo x - scrotwm/distinfo sed 's/^X//' >scrotwm/distinfo << 'd07c61f12f17478b4f12607dec2c4b28' XMD5 (scrotwm-0.9.5.tgz) = d0ae2cdcaefa953627a250a183261670 XSHA256 (scrotwm-0.9.5.tgz) = 35a7e3ab805fc680459390e2e165f224268cec39bceb9679385c86a3054035ae XSIZE (scrotwm-0.9.5.tgz) = 36134 d07c61f12f17478b4f12607dec2c4b28 echo x - scrotwm/pkg-descr sed 's/^X//' >scrotwm/pkg-descr << '5f9b52ff2216db9937d6dcf87b080326' XScrotwm is a small dynamic tiling window manager for X11. It tries to stay out Xof the way so that valuable screen real estate can be used for much more Ximportant stuff. It has sane defaults and does not require one to learn a Xlanguage to do any configuration. It was written by hackers for hackers and it Xstrives to be small, compact and fast. X XIt was largely inspired by xmonad and dwm. Both are fine products but suffer Xfrom things like: crazy-unportable-language-syndrome, silly defaults, Xasymmetrical window layout, "how hard can it be?" and good old NIH. XNevertheless dwm was a phenomenal resource and many good ideas and code was Xborrowed from it. On the other hand xmonad has great defaults, key bindings Xand xinerama support but is crippled by not being written in C. X XWWW: http://www.peereboom.us/scrotwm/html/scrotwm.html 5f9b52ff2216db9937d6dcf87b080326 exit >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200907011018.n61AIxHF043100>