dwm: remove config.h

Also expand README to explain how to generate a custom config.h
and some hints on using this port as a reference for a private
and customized dwm port.
This commit is contained in:
John Vogel 2018-03-07 08:26:42 -05:00
parent ad49936212
commit 198f422b37
5 changed files with 22 additions and 121 deletions

View File

@ -1,2 +1 @@
80c4ef2a3eca0fe2d14e2203e3833200 config.h
f0b6b1093b7207f89c2a90b848c008ec dwm-6.1.tar.gz

View File

@ -1,6 +1,5 @@
untrusted comment: verify with /etc/ports/contrib.pub
RWSagIOpLGJF35fcEaw6bHwS4syTYqQEWBu1xNTk5vz/Cr/CJElT+0to/DOG1KGrIrxXuqr+f5tj+uIdO9avFEMamy6hVrx7egw=
SHA256 (Pkgfile) = dd1c7771ca773b4f877f2d8b2a2affb8becf8c38676e16192b84fc992b9e9451
RWSagIOpLGJF33rirwafkyRRP2KX3rSmls4OB8LAhEt4+hBRde1s/rTevfPRBS64ABzqSTPtqMY9A0uEtUkKEzsjY5Xdmw1UkA8=
SHA256 (Pkgfile) = 356d91ede423afee891a8073356e6b4b9155582d686f3399730319e71204d17a
SHA256 (.footprint) = 5fafc2be3ed213723d4401d9318b376ceeae5c7ab3a2ab885c9ab13be1c154a6
SHA256 (dwm-6.1.tar.gz) = c2f6c56167f0acdbe3dc37cca9c1a19260c040f2d4800e3529a21ad7cce275fe
SHA256 (config.h) = 5a7f0769943de1fba30dd8dbeff173c6bdae010ff2716a4d7c231e7f586df4e6

View File

@ -5,13 +5,16 @@
name=dwm
version=6.1
release=2
source=(http://dl.suckless.org/dwm/$name-$version.tar.gz config.h)
release=3
source=(http://dl.suckless.org/dwm/$name-$version.tar.gz)
build () {
cd $name-$version
cp $SRC/config.h .
if [ -f $PKGMK_ROOT/config.h ]; then
cp $PKGMK_ROOT/config.h .
fi
make CC=gcc X11INC=/usr/include
make DESTDIR=$PKG PREFIX=/usr install
}

View File

@ -1 +1,14 @@
Edit config.h and rebuild the package to configure dwm.
The configuration of dwm is done by creating a custom config.h
and (re)compiling the source code. To create a custom config.h,
unpack the tarball, copy the file dwm-$version/config.def.h to
dwm's port directory, and edit to suit your preferences. Then,
when you call pkgmk in the dwm port directory, the custom
config.h will be detected and copied into the source before
compilation. I recommend that you save a copy your custom config.h
some where other than the dwm port directory, so that your changes
won't get nuked when updating ports or performing a prtsweep or
prtwash (see opt/prt-utils for more information about those two).
Another solution for customizing dwm is to create a custom and
(preferably) private port that contains your custom config and also
might include patches, such as from https://suckless.org/patches/.

View File

@ -1,113 +0,0 @@
/* See LICENSE file for copyright and license details. */
/* appearance */
static const char *fonts[] = {
"monospace:size=10"
};
static const char dmenufont[] = "monospace:size=10";
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 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 },
};
/* 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[] = { "st", 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} },
};