summarylogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.SRCINFO26
-rwxr-xr-xPKGBUILD45
-rwxr-xr-xcompile.sh7
-rwxr-xr-xconfig.def.h148
-rwxr-xr-xdwm-6.1-center.diff42
-rwxr-xr-xdwm.install4
-rw-r--r--md5sums3
7 files changed, 275 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..b39c99d20d54
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,26 @@
+pkgbase = dwm-git
+ pkgdesc = A dynamic window manager for X
+ pkgver = 6.1
+ pkgrel = 1
+ epoch = 1
+ url = http://dwm.suckless.org
+ install = dwm.install
+ arch = i686
+ arch = x86_64
+ license = MIT
+ makedepends = git
+ depends = libx11
+ depends = libxinerama
+ depends = libxft
+ provides = dwm
+ conflicts = dwm
+ options = zipman
+ source = dwm::git+http://git.suckless.org/dwm
+ source = config.def.h
+ source = dwm-6.1-center.diff
+ md5sums = SKIP
+ md5sums = 596c20f45d805c872789037a338a358d
+ md5sums = 5f6f840c692f43f7e349bb87e895ff26
+
+pkgname = dwm-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100755
index 000000000000..d94f4bd4b342
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,45 @@
+pkgname=dwm-git
+_pkgname=dwm
+pkgdesc="dwm with uleenucks personalisations"
+pkgver=6.1
+pkgver(){
+ cd $_pkgname
+ git describe --tags |sed 's/-/./g'
+}
+pkgrel=1
+pkgdesc="A dynamic window manager for X"
+url="http://dwm.suckless.org"
+arch=('i686' 'x86_64')
+license=('MIT')
+options=(zipman)
+depends=('libx11' 'libxinerama' 'libxft')
+makedepends=('git')
+install=dwm.install
+provides=('dwm')
+conflicts=('dwm')
+epoch=1
+source=("$_pkgname::git+http://git.suckless.org/dwm"
+ config.def.h
+ dwm-6.1-center.diff)
+
+. md5sums
+prepare() {
+ if [[ -f $SRCDEST/config.def.h ]]; then
+ ln -sf $SRCDEST/config.def.h $srcdir/dwm/config.h
+ fi
+}
+
+build() {
+ cd $_pkgname
+
+ patch -p1 < ../dwm-6.1-center.diff || exit 1
+ make X11INC=/usr/include/X11 X11LIB=/usr/lib/X11
+}
+
+package() {
+ make -C $_pkgname PREFIX=/usr DESTDIR=$pkgdir install
+ install -m644 -D $_pkgname/LICENSE $pkgdir/usr/share/licenses/$pkgname/LICENSE
+ install -m644 -D $_pkgname/README $pkgdir/usr/share/doc/$pkgname/README
+}
+
+# vim:set ts=2 sw=2 et:
diff --git a/compile.sh b/compile.sh
new file mode 100755
index 000000000000..52173923dd9c
--- /dev/null
+++ b/compile.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+rm -rf src/
+[[ -f "config.def.h" ]] && rm config.def.h
+[[ "$(hostname)" == "uh-x200s" ]] && cp config.def.h.x200s config.def.h
+[[ "$(hostname)" == "uh-lin" ]] && cp config.def.h.work config.def.h
+makepkg -g > md5sums
+makepkg -fi
diff --git a/config.def.h b/config.def.h
new file mode 100755
index 000000000000..6d4e0f05f969
--- /dev/null
+++ b/config.def.h
@@ -0,0 +1,148 @@
+/* See LICENSE file for copyright and license details. */
+
+/* appearance */
+static const char *fonts[] = {
+ "Erusfont:size=8",
+ "VL Gothic:size=10.5",
+ "WenQuanYi Micro Hei:size=10.5",
+};
+static const char font[] = "-*-proggyoptis-*-*-*-*-11-*-*-*-*-*-*-*";
+static const char normbordercolor[] = "#002b36";
+static const char normbgcolor[] = "#002b36";
+static const char normfgcolor[] = "#839496";
+static const char selbordercolor[] = "#0066ff";
+static const char selbgcolor[] = "#073642";
+static const char selfgcolor[] = "#cb4b16";
+static const unsigned int borderpx = 1; /* border pixel of windows */
+static const unsigned int snap = 32; /* snap pixel */
+static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */
+static const unsigned int systrayspacing = 2; /* systray spacing */
+static const Bool systraypinningfailfirst = True; /* True: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/
+static const Bool showsystray = True; /* False means no systray */
+static const int nmaster = 2; /* number of clients in master area */
+static const Bool showbar = True; /* False means no bar */
+static const Bool topbar = True; /* False means bottom bar */
+
+/* tagging */
+static const char *tags[] = { "1/main", "2/web", "3/stuff", "4/office" };
+
+static const Rule rules[] = {
+ /* class instance title tags mask iscentered isfloating monitor */
+ /* monitor 0 */
+ { "Wine", NULL, NULL, 1 << 1, True, True, 0 },
+ { "Remmina", NULL, NULL, 1 << 1, True, True, 0 },
+ { "calibre-gui", NULL, NULL, 1 << 1, True, True, 0 },
+ { "VirtualBox", NULL, NULL, 1 << 1, True, True, 0 },
+ { "Chromium", NULL, NULL, 1 << 1, False, False, 0 },
+ { "google-chrome-beta", NULL, NULL, 1 << 1, False, False, 0 },
+ { NULL, "Browser", NULL, 1 << 1, True, True, 0 },
+ { NULL, "dwb", NULL, 1 << 1, False, False, 0 },
+ { "Firefox", NULL, NULL, 1 << 1, False, False, 0 },
+ { "KeePass2", NULL, "Auto-Type Entry Selection", 1 << 1, True, True, 0 },
+ { "Gajim", NULL, NULL, 1 << 2, True, True, 0 },
+ { "KeePass2", NULL, NULL, 1 << 2, True, True, 0 },
+ { "Corebird", NULL, NULL, 1 << 2, True, True, 0 },
+ { "Spotify", NULL, NULL, 1 << 2, True, True, 0 },
+ { NULL, "libreoffice", NULL, 1 << 3, False, False, 0 },
+ { NULL, "Eclipse", NULL, 1 << 3, False, False, 0 },
+ { "Gimp", NULL, NULL, 1 << 3, False, True, 0 },
+ { "PacketTracer6", NULL, NULL, 1 << 3, True, True, 0 },
+ { "feh", NULL, NULL, 0, True, True, -1 },
+ { "Sxiv", NULL, NULL, 0, True, True, -1 },
+ { "mpv", NULL, NULL, 0, True, True, -1 },
+ { "Wine", NULL, NULL, 0, True, True, -1 },
+ { "XFontSel", NULL, NULL, 0, True, True, -1 },
+ { NULL, "xterm", NULL, 0, True, True, -1 },
+ { "Zathura", NULL, NULL, 0, True, True, -1 },
+ { NULL, NULL, "Save file", 0, True, True, -1 },
+ { NULL, NULL, "Wicd Network Manager", 0, True, True, -1 },
+};
+
+/* layout(s) */
+static const float mfact = 0.50; /* factor of master area size [0.05..0.95] */
+static const Bool resizehints = False; /* True means respect size hints in tiled resizals */
+
+static const Layout layouts[] = {
+ /* symbol arrange function */
+ { "[T]", tile }, /* first entry is default */
+ { "[M]", monocle }, /* maximized */
+ { "><>", NULL }, /* floating */
+};
+
+/* key definitions */
+#define MODKEY Mod4Mask
+#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", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL };
+static const char *termcmd[] = { "tmuxattach.sh", NULL };
+static const char *mostusedcmd[] = { "mostused", NULL };
+static const char *lockcmd[] = { "slock", NULL };
+static const char *passcmd[] = { "keepass", "--auto-type", NULL };
+
+static Key keys[] = {
+ /* modifier key function argument */
+ { MODKEY, XK_p, spawn, {.v = dmenucmd } },
+ { MODKEY, XK_v, spawn, {.v = mostusedcmd } },
+ { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } },
+ { MODKEY|ShiftMask, XK_l, spawn, {.v = lockcmd } },
+ { ControlMask|Mod1Mask, XK_a, spawn, {.v = passcmd } },
+ { MODKEY|ShiftMask, XK_b, togglebar, {0} },
+ { MODKEY, XK_j, focusstack, {.i = +1 } },
+ { MODKEY, XK_k, focusstack, {.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_a, incnmaster, {.i = +1 } },
+ { MODKEY, XK_z, incnmaster, {.i = -1 } },
+ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} },
+ { MODKEY, XK_b, setlayout, {.v = &layouts[1]} },
+ { MODKEY, XK_m, setlayout, {.v = &layouts[2]} },
+ { MODKEY, XK_f, setlayout, {.v = &layouts[3]} },
+ { 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} },
+};
+
diff --git a/dwm-6.1-center.diff b/dwm-6.1-center.diff
new file mode 100755
index 000000000000..b96685879fab
--- /dev/null
+++ b/dwm-6.1-center.diff
@@ -0,0 +1,42 @@
+ /* layout(s) */
+diff --git a/dwm.c b/dwm.c
+index 0362114..4aaaa60 100644
+--- a/dwm.c
++++ b/dwm.c
+@@ -92,7 +92,7 @@ struct Client {
+ int basew, baseh, incw, inch, maxw, maxh, minw, minh;
+ int bw, oldbw;
+ unsigned int tags;
+- int isfixed, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
++ int isfixed, iscentered, isfloating, isurgent, neverfocus, oldstate, isfullscreen;
+ Client *next;
+ Client *snext;
+ Monitor *mon;
+@@ -137,6 +137,7 @@ typedef struct {
+ const char *instance;
+ const char *title;
+ unsigned int tags;
++ int iscentered;
+ int isfloating;
+ int monitor;
+ } Rule;
+@@ -296,6 +297,7 @@ applyrules(Client *c)
+ && (!r->class || strstr(class, r->class))
+ && (!r->instance || strstr(instance, r->instance)))
+ {
++ c->iscentered = r->iscentered;
+ c->isfloating = r->isfloating;
+ c->tags |= r->tags;
+ for (m = mons; m && m->num != r->monitor; m = m->next);
+@@ -1063,6 +1065,11 @@ manage(Window w, XWindowAttributes *wa)
+ && (c->x + (c->w / 2) < c->mon->wx + c->mon->ww)) ? bh : c->mon->my);
+ c->bw = borderpx;
+
++ if(c->iscentered) {
++ c->x = (c->mon->mw - WIDTH(c)) / 2;
++ c->y = (c->mon->mh - HEIGHT(c)) / 2;
++ }
++
+ wc.border_width = c->bw;
+ XConfigureWindow(dpy, w, CWBorderWidth, &wc);
+ XSetWindowBorder(dpy, w, scheme[SchemeNorm].border->pix);
diff --git a/dwm.install b/dwm.install
new file mode 100755
index 000000000000..44b50ed824c7
--- /dev/null
+++ b/dwm.install
@@ -0,0 +1,4 @@
+post_install() {
+ echo "-- Edit config.h in dwm's PKGBUILD directory (generally /var/abs/community/dwm/)"
+ echo "-- and rebuild package if you want to change settings."
+}
diff --git a/md5sums b/md5sums
new file mode 100644
index 000000000000..767ac849e3cd
--- /dev/null
+++ b/md5sums
@@ -0,0 +1,3 @@
+md5sums=('SKIP'
+ '596c20f45d805c872789037a338a358d'
+ '5f6f840c692f43f7e349bb87e895ff26')