On Tue, Nov 10, 2015 at 07:44:06PM -0300, Gleydson Soares wrote:
> On Tue, Nov 10, 2015 at 11:30:02AM +0100, Joerg Jung wrote:
> >
> > > On 09 Nov 2015, at 22:07, Ted Unangst <[email protected]> wrote:
> > > Joerg Jung wrote:
> > >>
> > >> please find below an update for x11/dwm to 6.1. This release contains
> > >> various fixes and improvements, see announcement [1] for more details.
> > >>
> > >> OK?
> > >
> > > so now that we finally changed the default xterm back to uxterm, they
> > > changed
> > > it to st. needs another man page patch. :)
> >
> > I wonder what dwm users think about the following proposal:
> >
> > Remove the uxterm patch and keep st as the default terminal.
> > If you are a dwm/dmenu suckless user on your desktop you are
> > probably also fine with using st.
> >
> > st has become rather stable and usable. A lot of issues are
> > fixed and most terminal applications seem to work just fine.
> >
> > Other “desktop environments” also all start their own terminals
> > (e.g. gnome, kde, xfce, …).
> >
> > Or does this go one step too far?! What do you think?
>
> here is a proposal [1]
> the idea of dwm is that user can edit your own def.h and rebuild it.
Right. The same approach is used in others as well, e.g.
tabbed, dmenu, surf, ...
So this is not only needed by dwm but all suckless ports and leads to a
suckless bsd.port.mk module.
> we should zap the patch and add our modified config.def.h to files/ directory
> so others can to edit/override it with your own version....
> ?
Mhhmmm... this way you have always M's in your tree, because
config.def.h is committed.
Better not commit it to have '?' instead of 'M's?
And what about using patches instead, like this:
pre-configure:
cd ${WRKSRC} && patch -p0 < ${FILESDIR}/config.def.h.diff
However, I think this is a good starting point, but might be not enough.
Think of package updates/upgrades: You will loose the customizations
with them.
I already discussed a similar approach with czarkoff@ at u2k15, here are
some of our thoughts:
1. first, we need a directory were root user can put (config.def.h)
patches he wants to have applied on top of existing port
- should be something standardized like /usr/ports/mypatches or
/etc/ports/patches or whatever... no matter, let's call this
dir $PATCHES for now
2. secondly, we need a bsd.port.mk module which uses/applies these
patches from $PATCHES folder
- so, sub-folders for ports are needed, e.g. $PATCHES/dwm
- the module might also "bump" the port, and introduce a
"-custom flavor", e.g. dwm-6.0p1-custom.tgz
3. once the ports infrastructure is there and working, the pkg_* tools
can be adjusted: e.g. if pkg_add -u finds a dwm -custom installed, it
should issue a rebuild with user patches applied from ports tree
I think 1.+2. are easy and we should start with it.
The 3. is much more complicated and others like espie might not like it.
...
But maybe this all goes to far and is not worthwhile, and we should
instead just handle all suckless ports as you proposed below -- simply
put all own patches/files in files/ dir and force users to manually
rebuilt from port after upgrades... fine with me as well, as long as
all suckless ports treated similar.
> diff includes man page bit pointed out by ingo@
>
> [1] - shutupandhack.org/~gsoares/openbsd/dwm-6.1_.diff
>
> ?
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/x11/dwm/Makefile,v
> retrieving revision 1.26
> diff -u -p -u -p -r1.26 Makefile
> --- Makefile 25 Oct 2015 14:23:07 -0000 1.26
> +++ Makefile 10 Nov 2015 22:25:41 -0000
> @@ -2,8 +2,7 @@
>
> COMMENT= dynamic window manager
>
> -DISTNAME= dwm-6.0
> -REVISION= 1
> +DISTNAME= dwm-6.1
>
> CATEGORIES= x11
>
> @@ -18,12 +17,16 @@ WANTLIB= X11 Xinerama c
>
> MASTER_SITES= http://dl.suckless.org/dwm/
>
> -RUN_DEPENDS= x11/dmenu>=4.4 \
> +RUN_DEPENDS= x11/dmenu>=4.6 \
> fonts/terminus-font
>
> MAKE_ENV= LDFLAGS="${LDFLAGS}"
> FAKE_FLAGS= DESTDIR=""
>
> NO_TEST= Yes
> +
> +pre-configure:
> + cd ${WRKSRC}/ && cp config.def.h config.def.h.orig
> + cp ${FILESDIR}/config.def.h ${WRKSRC}
>
> .include <bsd.port.mk>
> Index: distinfo
> ===================================================================
> RCS file: /cvs/ports/x11/dwm/distinfo,v
> retrieving revision 1.18
> diff -u -p -u -p -r1.18 distinfo
> --- distinfo 18 Jan 2015 03:15:53 -0000 1.18
> +++ distinfo 10 Nov 2015 22:25:41 -0000
> @@ -1,2 +1,2 @@
> -SHA256 (dwm-6.0.tar.gz) = srlIPeaSWe7qVoRImbsjhRWNPnmkLYKxDBQgmfyO61Y=
> -SIZE (dwm-6.0.tar.gz) = 20810
> +SHA256 (dwm-6.1.tar.gz) = wvbFYWfwrNvj3DfMqcGhkmDAQPLUgA41KaIa18zidf4=
> +SIZE (dwm-6.1.tar.gz) = 25887
> Index: files/config.def.h
> ===================================================================
> RCS file: files/config.def.h
> diff -N files/config.def.h
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ files/config.def.h 10 Nov 2015 22:25:41 -0000
> @@ -0,0 +1,115 @@
> +/* See LICENSE file for copyright and license details. */
> +
> +/* appearance */
> +static const char *fonts[] = {
> + "terminus:size=8"
> +};
> +static const char dmenufont[] = "terminus:size=8";
> +static const char normbordercolor[] = "#404040";
> +static const char normbgcolor[] = "#202020";
> +static const char normfgcolor[] = "#c0c0c0";
> +static const char selbordercolor[] = "#8888ff";
> +static const char selbgcolor[] = "#404040";
> +static const char selfgcolor[] = "#f0f0f0";
> +static const unsigned int borderpx = 1; /* border pixel of windows */
> +static const unsigned int snap = 32; /* snap pixel */
> +static const int showbar = 1; /* 0 means no bar */
> +static const int topbar = 1; /* 0 means bottom bar */
> +
> +/* tagging */
> +static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" };
> +
> +static const Rule rules[] = {
> + /* xprop(1):
> + * WM_CLASS(STRING) = instance, class
> + * WM_NAME(STRING) = title
> + */
> + /* class instance title tags mask isfloating
> monitor */
> + { "Gimp", NULL, NULL, 0, 1, -1 },
> + { "Firefox", NULL, NULL, 1 << 8, 0, -1 },
> + { "Xonix", NULL, NULL, 0, 1, -1 },
> + { NULL, NULL, "glxgears", 0, 1, -1 },
> +};
> +
> +/* layout(s) */
> +static const float mfact = 0.55; /* factor of master area size
> [0.05..0.95] */
> +static const int nmaster = 1; /* number of clients in master area */
> +static const int resizehints = 1; /* 1 means respect size hints in tiled
> resizals */
> +
> +static const Layout layouts[] = {
> + /* symbol arrange function */
> + { "[]=", tile }, /* first entry is default */
> + { "><>", NULL }, /* no layout function means floating behavior
> */
> + { "[M]", monocle },
> +};
> +
> +/* key definitions */
> +#define MODKEY Mod1Mask
> +#define TAGKEYS(KEY,TAG) \
> + { MODKEY, KEY, view, {.ui = 1 <<
> TAG} }, \
> + { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 <<
> TAG} }, \
> + { MODKEY|ShiftMask, KEY, tag, {.ui = 1 <<
> TAG} }, \
> + { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 <<
> TAG} },
> +
> +/* helper for spawning shell commands in the pre dwm-5.0 fashion */
> +#define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } }
> +
> +/* commands */
> +static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in
> spawn() */
> +static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn",
> dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf",
> selfgcolor, NULL };
> +static const char *termcmd[] = { "uxterm", NULL };
> +
> +static Key keys[] = {
> + /* modifier key function argument */
> + { MODKEY, XK_p, spawn, {.v =
> dmenucmd } },
> + { MODKEY|ShiftMask, XK_Return, spawn, {.v =
> termcmd } },
> + { MODKEY, XK_b, togglebar, {0} },
> + { MODKEY, XK_j, focusstack, {.i = +1 } },
> + { MODKEY, XK_k, focusstack, {.i = -1 } },
> + { MODKEY, XK_i, incnmaster, {.i = +1 } },
> + { MODKEY, XK_d, incnmaster, {.i = -1 } },
> + { MODKEY, XK_h, setmfact, {.f = -0.05}
> },
> + { MODKEY, XK_l, setmfact, {.f = +0.05}
> },
> + { MODKEY, XK_Return, zoom, {0} },
> + { MODKEY, XK_Tab, view, {0} },
> + { MODKEY|ShiftMask, XK_c, killclient, {0} },
> + { MODKEY, XK_t, setlayout, {.v =
> &layouts[0]} },
> + { MODKEY, XK_f, setlayout, {.v =
> &layouts[1]} },
> + { MODKEY, XK_m, setlayout, {.v =
> &layouts[2]} },
> + { MODKEY, XK_space, setlayout, {0} },
> + { MODKEY|ShiftMask, XK_space, togglefloating, {0} },
> + { MODKEY, XK_0, view, {.ui = ~0 }
> },
> + { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 }
> },
> + { MODKEY, XK_comma, focusmon, {.i = -1 } },
> + { MODKEY, XK_period, focusmon, {.i = +1 } },
> + { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } },
> + { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } },
> + TAGKEYS( XK_1, 0)
> + TAGKEYS( XK_2, 1)
> + TAGKEYS( XK_3, 2)
> + TAGKEYS( XK_4, 3)
> + TAGKEYS( XK_5, 4)
> + TAGKEYS( XK_6, 5)
> + TAGKEYS( XK_7, 6)
> + TAGKEYS( XK_8, 7)
> + TAGKEYS( XK_9, 8)
> + { MODKEY|ShiftMask, XK_q, quit, {0} },
> +};
> +
> +/* button definitions */
> +/* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or
> ClkRootWin */
> +static Button buttons[] = {
> + /* click event mask button function
> argument */
> + { ClkLtSymbol, 0, Button1, setlayout,
> {0} },
> + { ClkLtSymbol, 0, Button3, setlayout,
> {.v = &layouts[2]} },
> + { ClkWinTitle, 0, Button2, zoom,
> {0} },
> + { ClkStatusText, 0, Button2, spawn,
> {.v = termcmd } },
> + { ClkClientWin, MODKEY, Button1, movemouse,
> {0} },
> + { ClkClientWin, MODKEY, Button2, togglefloating,
> {0} },
> + { ClkClientWin, MODKEY, Button3, resizemouse,
> {0} },
> + { ClkTagBar, 0, Button1, view,
> {0} },
> + { ClkTagBar, 0, Button3, toggleview,
> {0} },
> + { ClkTagBar, MODKEY, Button1, tag,
> {0} },
> + { ClkTagBar, MODKEY, Button3, toggletag,
> {0} },
> +};
> +
> Index: patches/patch-config_def_h
> ===================================================================
> RCS file: patches/patch-config_def_h
> diff -N patches/patch-config_def_h
> --- patches/patch-config_def_h 25 Oct 2015 14:23:07 -0000 1.10
> +++ /dev/null 1 Jan 1970 00:00:00 -0000
> @@ -1,33 +0,0 @@
> -$OpenBSD: patch-config_def_h,v 1.10 2015/10/25 14:23:07 jung Exp $
> ---- config.def.h.orig Mon Dec 19 16:02:46 2011
> -+++ config.def.h Thu Oct 8 20:58:14 2015
> -@@ -1,13 +1,13 @@
> - /* See LICENSE file for copyright and license details. */
> -
> - /* appearance */
> --static const char font[] =
> "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*";
> --static const char normbordercolor[] = "#444444";
> --static const char normbgcolor[] = "#222222";
> --static const char normfgcolor[] = "#bbbbbb";
> --static const char selbordercolor[] = "#005577";
> --static const char selbgcolor[] = "#005577";
> --static const char selfgcolor[] = "#eeeeee";
> -+static const char font[] =
> "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*";
> -+static const char normbordercolor[] = "#404040";
> -+static const char normbgcolor[] = "#202020";
> -+static const char normfgcolor[] = "#c0c0c0";
> -+static const char selbordercolor[] = "#8888ff";
> -+static const char selbgcolor[] = "#404040";
> -+static const char selfgcolor[] = "#f0f0f0";
> - static const unsigned int borderpx = 1; /* border pixel of windows
> */
> - static const unsigned int snap = 32; /* snap pixel */
> - static const Bool showbar = True; /* False means no bar */
> -@@ -20,6 +20,8 @@ static const Rule rules[] = {
> - /* class instance title tags mask isfloating
> monitor */
> - { "Gimp", NULL, NULL, 0, True, -1 },
> - { "Firefox", NULL, NULL, 1 << 8, False, -1 },
> -+ { "Xonix", NULL, NULL, 0, True, -1 },
> -+ { NULL, NULL, "glxgears", 0, True, -1 },
> - };
> -
> - /* layout(s) */
> Index: patches/patch-config_mk
> ===================================================================
> RCS file: /cvs/ports/x11/dwm/patches/patch-config_mk,v
> retrieving revision 1.9
> diff -u -p -u -p -r1.9 patch-config_mk
> --- patches/patch-config_mk 9 Jul 2012 16:33:40 -0000 1.9
> +++ patches/patch-config_mk 10 Nov 2015 22:25:41 -0000
> @@ -1,7 +1,7 @@
> $OpenBSD: patch-config_mk,v 1.9 2012/07/09 16:33:40 zinke Exp $
> ---- config.mk.orig Mon Dec 19 16:02:46 2011
> -+++ config.mk Sat Jul 7 22:28:18 2012
> -@@ -4,30 +4,30 @@ VERSION = 6.0
> +--- config.mk.orig Sun Nov 8 23:39:37 2015
> ++++ config.mk Mon Nov 9 21:14:22 2015
> +@@ -4,11 +4,11 @@ VERSION = 6.1
> # Customize below to fit your system
>
> # paths
> @@ -15,25 +15,28 @@ $OpenBSD: patch-config_mk,v 1.9 2012/07/
> +X11INC = ${X11BASE}/include
> +X11LIB = ${X11BASE}/lib
>
> - # Xinerama
> - XINERAMALIBS = -L${X11LIB} -lXinerama
> - XINERAMAFLAGS = -DXINERAMA
> -
> - # includes and libs
> --INCS = -I. -I/usr/include -I${X11INC}
> --LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS}
> -+INCS = -I${X11INC}
> -+LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS}
> + # Xinerama, comment if you don't want it
> + XINERAMALIBS = -lXinerama
> +@@ -16,7 +16,7 @@ XINERAMAFLAGS = -DXINERAMA
> +
> + # freetype
> + FREETYPELIBS = -lfontconfig -lXft
> +-FREETYPEINC = /usr/include/freetype2
> ++#FREETYPEINC = /usr/include/freetype2
> + # OpenBSD (uncomment)
> + FREETYPEINC = ${X11INC}/freetype2
> +
> +@@ -25,14 +25,14 @@ INCS = -I${X11INC} -I${FREETYPEINC}
> + LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
>
> # flags
> --CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
> -+CPPFLAGS += -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
> - #CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
> --CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
> -+CFLAGS += -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
> - #LDFLAGS = -g ${LIBS}
> --LDFLAGS = -s ${LIBS}
> -+LDFLAGS += ${LIBS}
> +-CPPFLAGS = -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\"
> ${XINERAMAFLAGS}
> ++CPPFLAGS += -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\"
> ${XINERAMAFLAGS}
> + #CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS}
> +-CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os
> ${INCS} ${CPPFLAGS}
> +-LDFLAGS = -s ${LIBS}
> ++CFLAGS += -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os
> ${INCS} ${CPPFLAGS}
> ++LDFLAGS += -s ${LIBS}
>
> # Solaris
> #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\"
> Index: patches/patch-dwm_1
> ===================================================================
> RCS file: patches/patch-dwm_1
> diff -N patches/patch-dwm_1
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-dwm_1 10 Nov 2015 22:25:41 -0000
> @@ -0,0 +1,21 @@
> +$OpenBSD$
> +--- dwm.1.orig Sun Nov 8 19:39:37 2015
> ++++ dwm.1 Mon Nov 9 20:04:23 2015
> +@@ -57,7 +57,7 @@ click on a tag label adds/removes that tag to/from the
> + .TP
> + .B Mod1\-Shift\-Return
> + Start
> +-.BR st(1).
> ++.BR uxterm (1).
> + .TP
> + .B Mod1\-,
> + Focus previous screen, if any.
> +@@ -151,7 +151,7 @@ dwm is customized by creating a custom config.h and (r
> + code. This keeps it fast, secure and simple.
> + .SH SEE ALSO
> + .BR dmenu (1),
> +-.BR st (1)
> ++.BR uxterm (1)
> + .SH BUGS
> + Java applications which use the XToolkit/XAWT backend may draw grey windows
> + only. The XToolkit/XAWT backend breaks ICCCM-compliance in recent JDK 1.5
> and early