Skip site navigation (1)Skip section navigation (2)
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>