it* dwm + patches Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/dwm-sdk URL:git://git.codevoid.de/dwm-sdk codevoid.de 70 1Log /git/dwm-sdk/log.gph codevoid.de 70 1Files /git/dwm-sdk/files.gph codevoid.de 70 1Refs /git/dwm-sdk/refs.gph codevoid.de 70 1README /git/dwm-sdk/file/README.gph codevoid.de 70 1LICENSE /git/dwm-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit 3ff447e3f9a6832071cc6fda363932ed203a76a5 /git/dwm-sdk/commit/3ff447e3f9a6832071cc6fda363932ed203a76a5.gph codevoid.de 70 1parent f436e545cf64dc3001d54524862d95b5445ea310 /git/dwm-sdk/commit/f436e545cf64dc3001d54524862d95b5445ea310.gph codevoid.de 70 hAuthor: Stefan Hagen URL:mailto:sh+git[at]codevoid[dot]de codevoid.de 70 iDate: Wed, 14 Nov 2018 18:15:09 +0100 Err codevoid.de 70 i Err codevoid.de 70 iDowngrade to DWM 6.0 Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M LICENSE | 17 ++++++----------- Err codevoid.de 70 i M Makefile | 4 ++-- Err codevoid.de 70 i M README | 3 +++ Err codevoid.de 70 i M config.def.h | 62 ++++++++++--------------------- Err codevoid.de 70 i M config.h | 230 ++++++++++++------------------- Err codevoid.de 70 i M config.mk | 25 ++++++++++--------------- Err codevoid.de 70 i D drw.c | 421 ------------------------------- Err codevoid.de 70 i D drw.h | 57 ------------------------------- Err codevoid.de 70 i M dwm.1 | 31 +++++++++++++++---------------- Err codevoid.de 70 i M dwm.c | 2183 ++++++++++++++----------------- Err codevoid.de 70 i D dwm.png | 0 Err codevoid.de 70 i D layouts.c | 57 ------------------------------- Err codevoid.de 70 i A maximize.c | 45 +++++++++++++++++++++++++++++++ Err codevoid.de 70 i D patches/dwm-bottomstack-6.1.diff | 101 ------------------------------- Err codevoid.de 70 i D patches/dwm-r1615-selfrestart.diff | 101 ------------------------------- Err codevoid.de 70 i D patches/dwm-scratchpad-20170207-bb… | 83 ------------------------------- Err codevoid.de 70 i D patches/dwm-systray-20180314-3bd84… | 716 ------------------------------- Err codevoid.de 70 i M scripts/browser | 13 ++++--------- Err codevoid.de 70 i D scripts/browserpaste | 2 -- Err codevoid.de 70 i D scripts/mixer | 2 -- Err codevoid.de 70 i M scripts/sshot | 24 ++++++++++++++---------- Err codevoid.de 70 i D transient.c | 42 ------------------------------- Err codevoid.de 70 i D util.c | 35 ------------------------------- Err codevoid.de 70 i D util.h | 8 -------- Err codevoid.de 70 i Err codevoid.de 70 i24 files changed, 1173 insertions(+), 3089 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/LICENSE b/LICENSE /git/dwm-sdk/file/LICENSE.gph codevoid.de 70 it@@ -1,22 +1,17 @@ Err codevoid.de 70 i MIT/X Consortium License Err codevoid.de 70 i Err codevoid.de 70 i-© 2006-2017 Anselm R Garbe Err codevoid.de 70 i-© 2006-2009 Jukka Salmi Err codevoid.de 70 i-© 2006-2007 Sander van Dijk Err codevoid.de 70 i+© 2006-2011 Anselm R Garbe Err codevoid.de 70 i © 2007-2011 Peter Hartlich Err codevoid.de 70 i+© 2010-2011 Connor Lane Smith Err codevoid.de 70 i+© 2006-2009 Jukka Salmi Err codevoid.de 70 i+© 2007-2009 Premysl Hruby Err codevoid.de 70 i © 2007-2009 Szabolcs Nagy Err codevoid.de 70 i © 2007-2009 Christof Musik Err codevoid.de 70 i-© 2007-2009 Premysl Hruby Err codevoid.de 70 i+© 2009 Mate Nagy Err codevoid.de 70 i © 2007-2008 Enno Gottox Boland Err codevoid.de 70 i © 2008 Martin Hurton Err codevoid.de 70 i © 2008 Neale Pickett Err codevoid.de 70 i-© 2009 Mate Nagy Err codevoid.de 70 i-© 2010-2016 Hiltjo Posthuma Err codevoid.de 70 i-© 2010-2012 Connor Lane Smith Err codevoid.de 70 i-© 2011 Christoph Lohmann <20h@r-36.net> Err codevoid.de 70 i-© 2015-2016 Quentin Rameau Err codevoid.de 70 i-© 2015-2016 Eric Pruitt Err codevoid.de 70 i-© 2016-2017 Markus Teich Err codevoid.de 70 i+© 2006-2007 Sander van Dijk Err codevoid.de 70 i Err codevoid.de 70 i Permission is hereby granted, free of charge, to any person obtaining a Err codevoid.de 70 i copy of this software and associated documentation files (the "Software"), Err codevoid.de 70 1diff --git a/Makefile b/Makefile /git/dwm-sdk/file/Makefile.gph codevoid.de 70 it@@ -3,7 +3,7 @@ Err codevoid.de 70 i Err codevoid.de 70 i include config.mk Err codevoid.de 70 i Err codevoid.de 70 i-SRC = drw.c dwm.c util.c Err codevoid.de 70 i+SRC = dwm.c Err codevoid.de 70 i OBJ = ${SRC:.c=.o} Err codevoid.de 70 i Err codevoid.de 70 i all: options dwm Err codevoid.de 70 it@@ -36,7 +36,7 @@ dist: clean Err codevoid.de 70 i @echo creating dist tarball Err codevoid.de 70 i @mkdir -p dwm-${VERSION} Err codevoid.de 70 i @cp -R LICENSE Makefile README config.def.h config.mk \ Err codevoid.de 70 i- dwm.1 drw.h util.h ${SRC} dwm.png transient.c dwm-${VERSION} Err codevoid.de 70 i+ dwm.1 ${SRC} dwm-${VERSION} Err codevoid.de 70 i @tar -cf dwm-${VERSION}.tar dwm-${VERSION} Err codevoid.de 70 i @gzip dwm-${VERSION}.tar Err codevoid.de 70 i @rm -rf dwm-${VERSION} Err codevoid.de 70 1diff --git a/README b/README /git/dwm-sdk/file/README.gph codevoid.de 70 it@@ -18,6 +18,9 @@ necessary as root): Err codevoid.de 70 i Err codevoid.de 70 i make clean install Err codevoid.de 70 i Err codevoid.de 70 i+If you are going to use the default bluegray color scheme it is highly Err codevoid.de 70 i+recommended to also install the bluegray files shipped in the dextra package. Err codevoid.de 70 i+ Err codevoid.de 70 i Err codevoid.de 70 i Running dwm Err codevoid.de 70 i ----------- Err codevoid.de 70 1diff --git a/config.def.h b/config.def.h /git/dwm-sdk/file/config.def.h.gph codevoid.de 70 it@@ -1,53 +1,39 @@ Err codevoid.de 70 i /* See LICENSE file for copyright and license details. */ Err codevoid.de 70 i Err codevoid.de 70 i /* appearance */ Err codevoid.de 70 i+static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*"; Err codevoid.de 70 i+static const char normbordercolor[] = "#444444"; Err codevoid.de 70 i+static const char normbgcolor[] = "#222222"; Err codevoid.de 70 i+static const char normfgcolor[] = "#bbbbbb"; Err codevoid.de 70 i+static const char selbordercolor[] = "#005577"; Err codevoid.de 70 i+static const char selbgcolor[] = "#005577"; Err codevoid.de 70 i+static const char selfgcolor[] = "#eeeeee"; Err codevoid.de 70 i static const unsigned int borderpx = 1; /* border pixel of windows */ Err codevoid.de 70 i+static const unsigned int gappx = 18; /* gap pixel between windows */ Err codevoid.de 70 i static const unsigned int snap = 32; /* snap pixel */ Err codevoid.de 70 i-static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */ Err codevoid.de 70 i-static const unsigned int systrayspacing = 2; /* systray spacing */ Err codevoid.de 70 i-static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/ Err codevoid.de 70 i-static const int showsystray = 1; /* 0 means no systray */ Err codevoid.de 70 i-static const int showbar = 1; /* 0 means no bar */ Err codevoid.de 70 i-static const int topbar = 1; /* 0 means bottom bar */ Err codevoid.de 70 i-static const char *fonts[] = { "monospace:size=10" }; Err codevoid.de 70 i-static const char dmenufont[] = "monospace:size=10"; Err codevoid.de 70 i-static const char col_gray1[] = "#222222"; Err codevoid.de 70 i-static const char col_gray2[] = "#444444"; Err codevoid.de 70 i-static const char col_gray3[] = "#bbbbbb"; Err codevoid.de 70 i-static const char col_gray4[] = "#eeeeee"; Err codevoid.de 70 i-static const char col_cyan[] = "#005577"; Err codevoid.de 70 i-static const char *colors[][3] = { Err codevoid.de 70 i- /* fg bg border */ Err codevoid.de 70 i- [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, Err codevoid.de 70 i- [SchemeSel] = { col_gray4, col_cyan, col_cyan }, Err codevoid.de 70 i-}; Err codevoid.de 70 i+static const Bool showbar = True; /* False means no bar */ Err codevoid.de 70 i+static const Bool topbar = True; /* False means bottom bar */ Err codevoid.de 70 i+static const Bool extrabar = True; /* False means no extra bar */ Err codevoid.de 70 i Err codevoid.de 70 i /* tagging */ Err codevoid.de 70 i static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; Err codevoid.de 70 i Err codevoid.de 70 i static const Rule rules[] = { Err codevoid.de 70 i- /* xprop(1): Err codevoid.de 70 i- * WM_CLASS(STRING) = instance, class Err codevoid.de 70 i- * WM_NAME(STRING) = title Err codevoid.de 70 i- */ Err codevoid.de 70 i /* class instance title tags mask isfloating monitor */ Err codevoid.de 70 i- { "Gimp", NULL, NULL, 0, 1, -1 }, Err codevoid.de 70 i- { "Firefox", NULL, NULL, 1 << 8, 0, -1 }, Err codevoid.de 70 i+ { "Gimp", NULL, NULL, 0, True, -1 }, Err codevoid.de 70 i+ { "Firefox", NULL, NULL, 1 << 8, False, -1 }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* layout(s) */ Err codevoid.de 70 i-static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ Err codevoid.de 70 i-static const int nmaster = 1; /* number of clients in master area */ Err codevoid.de 70 i-static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */ Err codevoid.de 70 i+static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ Err codevoid.de 70 i+static const int nmaster = 1; /* number of clients in master area */ Err codevoid.de 70 i+static const Bool resizehints = True; /* True means respect size hints in tiled resizals */ Err codevoid.de 70 i Err codevoid.de 70 i static const Layout layouts[] = { Err codevoid.de 70 i /* symbol arrange function */ Err codevoid.de 70 i { "[]=", tile }, /* first entry is default */ Err codevoid.de 70 i { "><>", NULL }, /* no layout function means floating behavior */ Err codevoid.de 70 i { "[M]", monocle }, Err codevoid.de 70 i- { "TTT", bstack }, Err codevoid.de 70 i- { "===", bstackhoriz }, Err codevoid.de 70 i- { "H[]", deck }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* key definitions */ Err codevoid.de 70 it@@ -62,20 +48,15 @@ static const Layout layouts[] = { Err codevoid.de 70 i #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } Err codevoid.de 70 i Err codevoid.de 70 i /* commands */ Err codevoid.de 70 i-static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ Err codevoid.de 70 i-static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL }; Err codevoid.de 70 i-static const char *termcmd[] = { "st", NULL }; Err codevoid.de 70 i-static const char scratchpadname[] = "scratchpad"; Err codevoid.de 70 i-static const char *scratchpadcmd[] = { "st", "-t", scratchpadname, "-g", "120x34", NULL }; Err codevoid.de 70 i- Err codevoid.de 70 i-#include "selfrestart.c" Err codevoid.de 70 i+static const char *dmenucmd[] = { "dmenu_run", "-fn", font, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbgcolor, "-sf", selfgcolor, NULL }; Err codevoid.de 70 i+static const char *termcmd[] = { "uxterm", NULL }; Err codevoid.de 70 i Err codevoid.de 70 i static Key keys[] = { Err codevoid.de 70 i /* modifier key function argument */ Err codevoid.de 70 i { MODKEY, XK_p, spawn, {.v = dmenucmd } }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, Err codevoid.de 70 i- { MODKEY, XK_grave, togglescratch, {.v = scratchpadcmd } }, Err codevoid.de 70 i { MODKEY, XK_b, togglebar, {0} }, Err codevoid.de 70 i+ { MODKEY, XK_b, toggleextrabar, {0} }, Err codevoid.de 70 i { MODKEY, XK_j, focusstack, {.i = +1 } }, Err codevoid.de 70 i { MODKEY, XK_k, focusstack, {.i = -1 } }, Err codevoid.de 70 i { MODKEY, XK_i, incnmaster, {.i = +1 } }, Err codevoid.de 70 it@@ -88,9 +69,6 @@ static Key keys[] = { Err codevoid.de 70 i { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, Err codevoid.de 70 i { MODKEY, XK_f, setlayout, {.v = &layouts[1]} }, Err codevoid.de 70 i { MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, Err codevoid.de 70 i- { MODKEY, XK_u, setlayout, {.v = &layouts[3]} }, Err codevoid.de 70 i- { MODKEY, XK_o, setlayout, {.v = &layouts[4]} }, Err codevoid.de 70 i- { MODKEY, XK_c, setlayout, {.v = &layouts[5]} }, Err codevoid.de 70 i { MODKEY, XK_space, setlayout, {0} }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, Err codevoid.de 70 i { MODKEY, XK_0, view, {.ui = ~0 } }, Err codevoid.de 70 it@@ -108,7 +86,6 @@ static Key keys[] = { Err codevoid.de 70 i TAGKEYS( XK_7, 6) Err codevoid.de 70 i TAGKEYS( XK_8, 7) Err codevoid.de 70 i TAGKEYS( XK_9, 8) Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_r, self_restart, {0} }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_q, quit, {0} }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 it@@ -128,3 +105,4 @@ static Button buttons[] = { Err codevoid.de 70 i { ClkTagBar, MODKEY, Button1, tag, {0} }, Err codevoid.de 70 i { ClkTagBar, MODKEY, Button3, toggletag, {0} }, Err codevoid.de 70 i }; Err codevoid.de 70 i+ Err codevoid.de 70 1diff --git a/config.h b/config.h /git/dwm-sdk/file/config.h.gph codevoid.de 70 it@@ -1,18 +1,20 @@ Err codevoid.de 70 i /* See LICENSE file for copyright and license details. */ Err codevoid.de 70 i Err codevoid.de 70 i /* appearance */ Err codevoid.de 70 i-static const unsigned int borderpx = 1; /* border pixel of windows */ Err codevoid.de 70 i-static const unsigned int snap = 8; /* snap pixel */ Err codevoid.de 70 i-static const unsigned int systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */ Err codevoid.de 70 i-static const unsigned int systrayspacing = 2; /* systray spacing */ Err codevoid.de 70 i- Err codevoid.de 70 i-static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/ Err codevoid.de 70 i-static const int showsystray = 1; /* 0 means no systray */ Err codevoid.de 70 i-static const int showbar = 1; /* 0 means no bar */ Err codevoid.de 70 i-static const int topbar = 1; /* 0 means bottom bar */ Err codevoid.de 70 i- Err codevoid.de 70 i-static const char font_normal[] = "-misc-tamzenforpowerline-medium-r-normal--20-145-100-100-c-100-iso8859-1"; Err codevoid.de 70 i-static const char *fonts[] = { font_normal }; Err codevoid.de 70 i+//static const char font[] = "-misc-tamzenforpowerline-medium-r-normal--20-145-100-100-c-100-iso8859-1"; Err codevoid.de 70 i+static const char font[] = "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*"; Err codevoid.de 70 i+static const char normbordercolor[] = "#333333"; Err codevoid.de 70 i+static const char normbgcolor[] = "#181818"; Err codevoid.de 70 i+static const char normfgcolor[] = "#999999"; Err codevoid.de 70 i+static const char selbordercolor[] = "#FF0000"; // window border color Err codevoid.de 70 i+static const char selbgcolor[] = "#181818"; // top bar background Err codevoid.de 70 i+static const char selfgcolor[] = "#eeeeee"; // top bar selected Err codevoid.de 70 i+static const unsigned int borderpx = 1; /* border pixel of windows */ Err codevoid.de 70 i+static const unsigned int gappx = 8; /* gap pixel between windows */ Err codevoid.de 70 i+static const unsigned int snap = 8; /* snap pixel */ Err codevoid.de 70 i+static const Bool showbar = True; /* False means no bar */ Err codevoid.de 70 i+static const Bool topbar = True; /* False means bottom bar */ Err codevoid.de 70 i+static const Bool extrabar = True; /* False means no extra bar */ Err codevoid.de 70 i Err codevoid.de 70 i static const char col_vdark[] = "#111111"; Err codevoid.de 70 i static const char col_dark[] = "#333333"; Err codevoid.de 70 it@@ -25,165 +27,111 @@ static const char col_gray3[] = "#bbbbbb"; Err codevoid.de 70 i static const char col_gray4[] = "#eeeeee"; Err codevoid.de 70 i static const char col_cyan[] = "#005577"; Err codevoid.de 70 i Err codevoid.de 70 i-static const char *colors[][3] = { Err codevoid.de 70 i- /* fg bg border */ Err codevoid.de 70 i- [SchemeNorm] = { col_norm, col_vdark, col_dark }, Err codevoid.de 70 i- [SchemeSel] = { col_full, col_vdark, col_norm }, Err codevoid.de 70 i-}; Err codevoid.de 70 i- Err codevoid.de 70 i-#define DMENUOPTS "-m", dmenumon, "-fn", font_normal, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4 Err codevoid.de 70 i- Err codevoid.de 70 i- Err codevoid.de 70 i /* tagging */ Err codevoid.de 70 i-static const char *tags[] = { "Ⅰ", "Ⅱ", "Ⅲ", "Ⅳ", "Ⅴ", "Ⅵ", "Ⅶ", "Ⅷ", "Ⅸ" }; Err codevoid.de 70 i-//static const char *tags[] = { "One", "Two", "Three", "Four", "Five" }; Err codevoid.de 70 i+static const char *tags[] = { "1", "2", "3", "4", "5", "6", "7", "8", "9" }; Err codevoid.de 70 i Err codevoid.de 70 i static const Rule rules[] = { Err codevoid.de 70 i- /* xprop(1): Err codevoid.de 70 i- * WM_CLASS(STRING) = instance, class Err codevoid.de 70 i- * WM_NAME(STRING) = title Err codevoid.de 70 i- */ Err codevoid.de 70 i- /* class instance title tags mask isfloating monitor */ Err codevoid.de 70 i- { "Gimp", NULL, NULL, 0, 1, -1 }, Err codevoid.de 70 i- { "Pidgin", NULL, NULL, 0, 1, -1 }, Err codevoid.de 70 i- { "Steam", NULL, NULL, 0, 1, -1 }, Err codevoid.de 70 i- { "Wine", NULL, NULL, 0, 1, -1 }, Err codevoid.de 70 i- { "wine.exe", NULL, NULL, 0, 1, -1 }, Err codevoid.de 70 i+ /* class instance title tags mask isfloating monitor */ Err codevoid.de 70 i+ { "Gimp", NULL, NULL, 0, True, -1 }, Err codevoid.de 70 i+ { "Firefox", NULL, NULL, 1 << 8, False, -1 }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i+#define DMENUOPTS "-fn", "-*-terminus-medium-r-*-*-16-*-*-*-*-*-*-*" , "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4 Err codevoid.de 70 i+ Err codevoid.de 70 i /* layout(s) */ Err codevoid.de 70 i-static const float mfact = 0.50; /* factor of master area size [0.05..0.95] */ Err codevoid.de 70 i+static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */ Err codevoid.de 70 i static const int nmaster = 1; /* number of clients in master area */ Err codevoid.de 70 i-static const int resizehints = 0; /* 1 means respect size hints in tiled resizals */ Err codevoid.de 70 i+static const Bool resizehints = False; /* True means respect size hints in tiled resizals */ Err codevoid.de 70 i Err codevoid.de 70 i-#include "layouts.c" Err codevoid.de 70 i static const Layout layouts[] = { Err codevoid.de 70 i- /* symbol arrange function */ Err codevoid.de 70 i- //{ "🇸", bstack }, Err codevoid.de 70 i- //{ "H[]", deck }, Err codevoid.de 70 i- { "HHH", grid }, Err codevoid.de 70 i- { "🇲", monocle }, Err codevoid.de 70 i+ /* symbol arrange function */ Err codevoid.de 70 i+ { "TILE", tile }, /* first entry is default */ Err codevoid.de 70 i+ //{ "NULL", NULL }, /* no layout function means floating behavior */ Err codevoid.de 70 i+ //{ "MONO", monocle }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* key definitions */ Err codevoid.de 70 i #define MODKEY Mod1Mask Err codevoid.de 70 i #define TAGKEYS(KEY,TAG) \ Err codevoid.de 70 i-{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \ Err codevoid.de 70 i-{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ Err codevoid.de 70 i-{ MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ Err codevoid.de 70 i-{ MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, Err codevoid.de 70 i+ { MODKEY, KEY, view, {.ui = 1 << TAG} }, \ Err codevoid.de 70 i+ { MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ Err codevoid.de 70 i+ { MODKEY|ShiftMask, KEY, tag, {.ui = 1 << TAG} }, \ Err codevoid.de 70 i+ { MODKEY|ControlMask|ShiftMask, KEY, toggletag, {.ui = 1 << TAG} }, Err codevoid.de 70 i Err codevoid.de 70 i /* helper for spawning shell commands in the pre dwm-5.0 fashion */ Err codevoid.de 70 i #define SHCMD(cmd) { .v = (const char*[]){ "/bin/sh", "-c", cmd, NULL } } Err codevoid.de 70 i Err codevoid.de 70 i /* commands */ Err codevoid.de 70 i-static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */ Err codevoid.de 70 i-static const char scratchpadname[] = "scratchpad"; Err codevoid.de 70 i- Err codevoid.de 70 i-static const char *termcmd[] = { "st", "-f", font_normal, "-e", "mksh", NULL }; Err codevoid.de 70 i-static const char *mailcmd[] = { "st", "-f", font_normal, "-e", "mutt", NULL }; Err codevoid.de 70 i+static const char *dmenucmd[] = { "dmenu_run", DMENUOPTS, NULL }; Err codevoid.de 70 i+static const char *termcmd[] = { "st", "-e", "mksh", NULL }; Err codevoid.de 70 i+static const char *notescmd[] = { "st", "-e", "vim", "Seafile/NotesSync/notes.otl", NULL }; Err codevoid.de 70 i+static const char *browsercmd[] = { ".dwm/browser", DMENUOPTS, NULL }; Err codevoid.de 70 i+static const char *passmenucmd[] = { ".dwm/passmenu", DMENUOPTS, NULL }; Err codevoid.de 70 i+static const char *sshot[] = { ".dwm/sshot", NULL }; Err codevoid.de 70 i+ Err codevoid.de 70 i+#include "maximize.c" Err codevoid.de 70 i+static Key keys[] = { Err codevoid.de 70 i+ /* modifier key function argument */ Err codevoid.de 70 i Err codevoid.de 70 i-static const char *notescmd[] = { "st", "-f", font_normal, "-e", "vim", "Seafile/NotesSync/notes.otl", NULL }; Err codevoid.de 70 i-static const char *scratchpadcmd[] = { "st", "-f", font_normal, "-e", "mksh", "-t", scratchpadname, "-g", "100x25", NULL }; Err codevoid.de 70 i Err codevoid.de 70 i-static const char *dmenucmd[] = { "dmenu_run", DMENUOPTS, NULL }; Err codevoid.de 70 i-static const char *browsercmd[] = { ".dwm/browser", DMENUOPTS, NULL }; Err codevoid.de 70 i-static const char *passmenucmd[] = { ".dwm/passmenu", DMENUOPTS, NULL }; Err codevoid.de 70 i-static const char *sshot[] = { ".dwm/sshot", NULL }; Err codevoid.de 70 i+ { MODKEY, XK_d, spawn, {.v = dmenucmd } }, Err codevoid.de 70 i+ { MODKEY, XK_Return, spawn, {.v = termcmd } }, Err codevoid.de 70 i Err codevoid.de 70 i-static Key keys[] = { Err codevoid.de 70 i- /* modifier key function argument */ Err codevoid.de 70 i- // application launcher Err codevoid.de 70 i- { MODKEY, XK_d, spawn, {.v = dmenucmd } }, Err codevoid.de 70 i- { MODKEY, XK_Return, spawn, {.v = termcmd } }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_f, spawn, {.v = browsercmd } }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_p, spawn, {.v = passmenucmd } }, Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_m, spawn, {.v = mailcmd } }, Err codevoid.de 70 i- { MODKEY, XK_minus, togglescratch, {.v = scratchpadcmd } }, Err codevoid.de 70 i { MODKEY, XK_Print, spawn, {.v = sshot } }, Err codevoid.de 70 i { MODKEY|ShiftMask, XK_o, spawn, {.v = notescmd } }, Err codevoid.de 70 i Err codevoid.de 70 i- // show/hide statusbar Err codevoid.de 70 i- { MODKEY, XK_b, togglebar, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // cycle frame focus Err codevoid.de 70 i- { MODKEY, XK_Down, focusstack, {.i = +1 } }, Err codevoid.de 70 i- { MODKEY, XK_Up, focusstack, {.i = -1 } }, Err codevoid.de 70 i- Err codevoid.de 70 i- // increase frames in master area Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_Left, incnmaster, {.i = +1 } }, Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_Right, incnmaster, {.i = -1 } }, Err codevoid.de 70 i- Err codevoid.de 70 i- // change frame size Err codevoid.de 70 i- { MODKEY, XK_Left, setmfact, {.f = -0.05} }, Err codevoid.de 70 i- { MODKEY, XK_Right, setmfact, {.f = +0.05} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // bring focused frame to master area Err codevoid.de 70 i- { MODKEY, XK_m, zoom, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // switch to last workspace Err codevoid.de 70 i- { MODKEY, XK_Tab, view, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // destroy focused frame Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_q, killclient, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // toggle last layout Err codevoid.de 70 i- { MODKEY, XK_f, setlayout, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // set frame to floating Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // show all frames from all workspaces Err codevoid.de 70 i- { MODKEY, XK_0, view, {.ui = ~0 } }, Err codevoid.de 70 i- Err codevoid.de 70 i- // move window to all screens Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, Err codevoid.de 70 i- Err codevoid.de 70 i- // switch focus to monitor Err codevoid.de 70 i- { MODKEY, XK_comma, focusmon, {.i = -1 } }, Err codevoid.de 70 i- { MODKEY, XK_period, focusmon, {.i = +1 } }, Err codevoid.de 70 i- Err codevoid.de 70 i- // swich frame to monitor Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, Err codevoid.de 70 i- Err codevoid.de 70 i- { MODKEY|ShiftMask, XK_End, quit, {0} }, Err codevoid.de 70 i- Err codevoid.de 70 i- // /* Media keys */ Err codevoid.de 70 i- // { 0, XF86XK_AudioRaiseVolume, spawn, {.v = volumeupcmd } }, Err codevoid.de 70 i- // { 0, XF86XK_AudioLowerVolume, spawn, {.v = volumedowncmd } }, Err codevoid.de 70 i- // { 0, XF86XK_AudioMute, spawn, {.v = volmute } }, Err codevoid.de 70 i- // { 0, XF86XK_AudioPlay, spawn, {.v = audioplay } }, Err codevoid.de 70 i- // { 0, XF86XK_AudioPrev, spawn, {.v = audioback } }, Err codevoid.de 70 i- // { 0, XF86XK_AudioNext, spawn, {.v = audionext } }, Err codevoid.de 70 i- // { 0, XF86XK_MonBrightnessUp, spawn, {.v = backlightup } }, Err codevoid.de 70 i- // { 0, XF86XK_MonBrightnessDown, spawn, {.v = backlightdown } }, Err codevoid.de 70 i- Err codevoid.de 70 i- // workspace keys Err codevoid.de 70 i- TAGKEYS( XK_1, 0) Err codevoid.de 70 i- TAGKEYS( XK_2, 1) Err codevoid.de 70 i- TAGKEYS( XK_3, 2) Err codevoid.de 70 i- TAGKEYS( XK_4, 3) Err codevoid.de 70 i- TAGKEYS( XK_5, 4) Err codevoid.de 70 i- TAGKEYS( XK_6, 5) Err codevoid.de 70 i- TAGKEYS( XK_7, 6) Err codevoid.de 70 i- TAGKEYS( XK_8, 7) Err codevoid.de 70 i- TAGKEYS( XK_9, 8) Err codevoid.de 70 i- Err codevoid.de 70 i+ { MODKEY, XK_b, togglebar, {0} }, Err codevoid.de 70 i+ { MODKEY, XK_b, toggleextrabar, {0} }, Err codevoid.de 70 i+ Err codevoid.de 70 i+ { MODKEY, XK_Down, focusstack, {.i = +1 } }, Err codevoid.de 70 i+ { MODKEY, XK_Up, focusstack, {.i = -1 } }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_Left, incnmaster, {.i = +1 } }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_Right, incnmaster, {.i = -1 } }, Err codevoid.de 70 i+ Err codevoid.de 70 i+ { MODKEY, XK_m, zoom, {0} }, Err codevoid.de 70 i+ { MODKEY, XK_h, setmfact, {.f = -0.05} }, Err codevoid.de 70 i+ { MODKEY, XK_l, setmfact, {.f = +0.05} }, Err codevoid.de 70 i+ { MODKEY, XK_Tab, view, {0} }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_q, killclient, {0} }, Err codevoid.de 70 i+ { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, Err codevoid.de 70 i+ { MODKEY, XK_space, setlayout, {.v = &layouts[1]} }, Err codevoid.de 70 i+ //{ MODKEY, XK_m, setlayout, {.v = &layouts[2]} }, Err codevoid.de 70 i+ { MODKEY, XK_f, togglemaximize, {0} }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_space, togglefloating, {0} }, Err codevoid.de 70 i+ { MODKEY, XK_0, view, {.ui = ~0 } }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_0, tag, {.ui = ~0 } }, Err codevoid.de 70 i+ { MODKEY, XK_comma, focusmon, {.i = -1 } }, Err codevoid.de 70 i+ { MODKEY, XK_period, focusmon, {.i = +1 } }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, Err codevoid.de 70 i+ TAGKEYS( XK_1, 0) Err codevoid.de 70 i+ TAGKEYS( XK_2, 1) Err codevoid.de 70 i+ TAGKEYS( XK_3, 2) Err codevoid.de 70 i+ TAGKEYS( XK_4, 3) Err codevoid.de 70 i+ TAGKEYS( XK_5, 4) Err codevoid.de 70 i+ TAGKEYS( XK_6, 5) Err codevoid.de 70 i+ TAGKEYS( XK_7, 6) Err codevoid.de 70 i+ TAGKEYS( XK_8, 7) Err codevoid.de 70 i+ TAGKEYS( XK_9, 8) Err codevoid.de 70 i+ { MODKEY|ShiftMask, XK_End, quit, {0} }, Err codevoid.de 70 i }; Err codevoid.de 70 i Err codevoid.de 70 i /* button definitions */ Err codevoid.de 70 i /* click can be ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */ Err codevoid.de 70 i static Button buttons[] = { Err codevoid.de 70 i- /* click event mask button function argument */ Err codevoid.de 70 i- { ClkLtSymbol, 0, Button1, setlayout, {0} }, Err codevoid.de 70 i- { ClkWinTitle, 0, Button2, zoom, {0} }, Err codevoid.de 70 i- { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, Err codevoid.de 70 i- { ClkClientWin, MODKEY, Button1, movemouse, {0} }, Err codevoid.de 70 i- { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, Err codevoid.de 70 i- { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, Err codevoid.de 70 i- { ClkTagBar, 0, Button1, view, {0} }, Err codevoid.de 70 i- { ClkTagBar, 0, Button3, toggleview, {0} }, Err codevoid.de 70 i- { ClkTagBar, MODKEY, Button1, tag, {0} }, Err codevoid.de 70 i- { ClkTagBar, MODKEY, Button3, toggletag, {0} }, Err codevoid.de 70 i+ /* click event mask button function argument */ Err codevoid.de 70 i+ { ClkLtSymbol, 0, Button1, setlayout, {0} }, Err codevoid.de 70 i+ { ClkLtSymbol, 0, Button3, setlayout, {.v = &layouts[2]} }, Err codevoid.de 70 i+ { ClkWinTitle, 0, Button2, zoom, {0} }, Err codevoid.de 70 i+ { ClkStatusText, 0, Button2, spawn, {.v = termcmd } }, Err codevoid.de 70 i+ { ClkClientWin, MODKEY, Button1, movemouse, {0} }, Err codevoid.de 70 i+ { ClkClientWin, MODKEY, Button2, togglefloating, {0} }, Err codevoid.de 70 i+ { ClkClientWin, MODKEY, Button3, resizemouse, {0} }, Err codevoid.de 70 i+ { ClkTagBar, 0, Button1, view, {0} }, Err codevoid.de 70 i+ { ClkTagBar, 0, Button3, toggleview, {0} }, Err codevoid.de 70 i+ { ClkTagBar, MODKEY, Button1, tag, {0} }, Err codevoid.de 70 i+ { ClkTagBar, MODKEY, Button3, toggletag, {0} }, Err codevoid.de 70 i }; Err codevoid.de 70 i+ Err codevoid.de 70 1diff --git a/config.mk b/config.mk /git/dwm-sdk/file/config.mk.gph codevoid.de 70 it@@ -1,5 +1,5 @@ Err codevoid.de 70 i # dwm version Err codevoid.de 70 i-VERSION = 6.1 Err codevoid.de 70 i+VERSION = 6.0 Err codevoid.de 70 i Err codevoid.de 70 i # Customize below to fit your system Err codevoid.de 70 i Err codevoid.de 70 it@@ -10,25 +10,20 @@ MANPREFIX = ${PREFIX}/share/man Err codevoid.de 70 i X11INC = /usr/X11R6/include Err codevoid.de 70 i X11LIB = /usr/X11R6/lib Err codevoid.de 70 i Err codevoid.de 70 i-# Xinerama, comment if you don't want it Err codevoid.de 70 i-XINERAMALIBS = -lXinerama Err codevoid.de 70 i+# Xinerama Err codevoid.de 70 i+XINERAMALIBS = -L${X11LIB} -lXinerama Err codevoid.de 70 i XINERAMAFLAGS = -DXINERAMA Err codevoid.de 70 i Err codevoid.de 70 i-# freetype Err codevoid.de 70 i-FREETYPELIBS = -lfontconfig -lXft Err codevoid.de 70 i-FREETYPEINC = /usr/include/freetype2 Err codevoid.de 70 i-# OpenBSD (uncomment) Err codevoid.de 70 i-# FREETYPEINC = ${X11INC}/freetype2 Err codevoid.de 70 i- Err codevoid.de 70 i # includes and libs Err codevoid.de 70 i-INCS = -I${X11INC} -I${FREETYPEINC} Err codevoid.de 70 i-LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} Err codevoid.de 70 i+INCS = -I. -I/usr/include -I${X11INC} Err codevoid.de 70 i+LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${XINERAMALIBS} Err codevoid.de 70 i Err codevoid.de 70 i # flags Err codevoid.de 70 i-CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_POSIX_C_SOURCE=2 -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} Err codevoid.de 70 i-#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} Err codevoid.de 70 i-CFLAGS = -std=c99 -pedantic -Wall -Wno-deprecated-declarations -Os ${INCS} ${CPPFLAGS} Err codevoid.de 70 i-LDFLAGS = -s ${LIBS} Err codevoid.de 70 i+CPPFLAGS = -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS} Err codevoid.de 70 i+#CFLAGS = -g -std=c99 -pedantic -Wall -O0 ${INCS} ${CPPFLAGS} Err codevoid.de 70 i+CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} Err codevoid.de 70 i+#LDFLAGS = -g ${LIBS} Err codevoid.de 70 i+LDFLAGS = -s ${LIBS} Err codevoid.de 70 i Err codevoid.de 70 i # Solaris Err codevoid.de 70 i #CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" Err codevoid.de 70 1diff --git a/drw.c b/drw.c /git/dwm-sdk/file/drw.c.gph codevoid.de 70 it@@ -1,421 +0,0 @@ Err codevoid.de 70 i-/* See LICENSE file for copyright and license details. */ Err codevoid.de 70 i-#include Err codevoid.de 70 i-#include Err codevoid.de 70 i-#include Err codevoid.de 70 i-#include Err codevoid.de 70 i-#include Err codevoid.de 70 i- Err codevoid.de 70 i-#include "drw.h" Err codevoid.de 70 i-#include "util.h" Err codevoid.de 70 i- Err codevoid.de 70 i-#define UTF_INVALID 0xFFFD Err codevoid.de 70 i-#define UTF_SIZ 4 Err codevoid.de 70 i- Err codevoid.de 70 i-static const unsigned char utfbyte[UTF_SIZ + 1] = {0x80, 0, 0xC0, 0xE0, 0xF0}; Err codevoid.de 70 i-static const unsigned char utfmask[UTF_SIZ + 1] = {0xC0, 0x80, 0xE0, 0xF0, 0xF8}; Err codevoid.de 70 i-static const long utfmin[UTF_SIZ + 1] = { 0, 0, 0x80, 0x800, 0x10000}; Err codevoid.de 70 i-static const long utfmax[UTF_SIZ + 1] = {0x10FFFF, 0x7F, 0x7FF, 0xFFFF, 0x10FFFF}; Err codevoid.de 70 i- Err codevoid.de 70 i-static long Err codevoid.de 70 i-utf8decodebyte(const char c, size_t *i) Err codevoid.de 70 i-{ Err codevoid.de 70 i- for (*i = 0; *i < (UTF_SIZ + 1); ++(*i)) Err codevoid.de 70 i- if (((unsigned char)c & utfmask[*i]) == utfbyte[*i]) Err codevoid.de 70 i- return (unsigned char)c & ~utfmask[*i]; Err codevoid.de 70 i- return 0; Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-static size_t Err codevoid.de 70 i-utf8validate(long *u, size_t i) Err codevoid.de 70 i-{ Err codevoid.de 70 i- if (!BETWEEN(*u, utfmin[i], utfmax[i]) || BETWEEN(*u, 0xD800, 0xDFFF)) Err codevoid.de 70 i- *u = UTF_INVALID; Err codevoid.de 70 i- for (i = 1; *u > utfmax[i]; ++i) Err codevoid.de 70 i- ; Err codevoid.de 70 i- return i; Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-static size_t Err codevoid.de 70 i-utf8decode(const char *c, long *u, size_t clen) Err codevoid.de 70 i-{ Err codevoid.de 70 i- size_t i, j, len, type; Err codevoid.de 70 i- long udecoded; Err codevoid.de 70 i- Err codevoid.de 70 i- *u = UTF_INVALID; Err codevoid.de 70 i- if (!clen) Err codevoid.de 70 i- return 0; Err codevoid.de 70 i- udecoded = utf8decodebyte(c[0], &len); Err codevoid.de 70 i- if (!BETWEEN(len, 1, UTF_SIZ)) Err codevoid.de 70 i- return 1; Err codevoid.de 70 i- for (i = 1, j = 1; i < clen && j < len; ++i, ++j) { Err codevoid.de 70 i- udecoded = (udecoded << 6) | utf8decodebyte(c[i], &type); Err codevoid.de 70 i- if (type) Err codevoid.de 70 i- return j; Err codevoid.de 70 i- } Err codevoid.de 70 i- if (j < len) Err codevoid.de 70 i- return 0; Err codevoid.de 70 i- *u = udecoded; Err codevoid.de 70 i- utf8validate(u, len); Err codevoid.de 70 i- Err codevoid.de 70 i- return len; Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-Drw * Err codevoid.de 70 i-drw_create(Display *dpy, int screen, Window root, unsigned int w, unsigned int h) Err codevoid.de 70 i-{ Err codevoid.de 70 i- Drw *drw = ecalloc(1, sizeof(Drw)); Err codevoid.de 70 i- Err codevoid.de 70 i- drw->dpy = dpy; Err codevoid.de 70 i- drw->screen = screen; Err codevoid.de 70 i- drw->root = root; Err codevoid.de 70 i- drw->w = w; Err codevoid.de 70 i- drw->h = h; Err codevoid.de 70 i- drw->drawable = XCreatePixmap(dpy, root, w, h, DefaultDepth(dpy, screen)); Err codevoid.de 70 i- drw->gc = XCreateGC(dpy, root, 0, NULL); Err codevoid.de 70 i- XSetLineAttributes(dpy, drw->gc, 1, LineSolid, CapButt, JoinMiter); Err codevoid.de 70 i- Err codevoid.de 70 i- return drw; Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-void Err codevoid.de 70 i-drw_resize(Drw *drw, unsigned int w, unsigned int h) Err codevoid.de 70 i-{ Err codevoid.de 70 i- if (!drw) Err codevoid.de 70 i- return; Err codevoid.de 70 i- Err codevoid.de 70 i- drw->w = w; Err codevoid.de 70 i- drw->h = h; Err codevoid.de 70 i- if (drw->drawable) Err codevoid.de 70 i- XFreePixmap(drw->dpy, drw->drawable); Err codevoid.de 70 i- drw->drawable = XCreatePixmap(drw->dpy, drw->root, w, h, DefaultDepth(drw->dpy, drw->screen)); Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-void Err codevoid.de 70 i-drw_free(Drw *drw) Err codevoid.de 70 i-{ Err codevoid.de 70 i- XFreePixmap(drw->dpy, drw->drawable); Err codevoid.de 70 i- XFreeGC(drw->dpy, drw->gc); Err codevoid.de 70 i- free(drw); Err codevoid.de 70 i-} Err codevoid.de 70 i- Err codevoid.de 70 i-/* This function is an implementation detail. Library users should use Err codevoid.de 70 i- * drw_fontset_create instead. Err codevoid.de 70 i- */ Err codevoid.de 70 i-static Fnt * Err codevoid.de 70 i-xfont_create(Drw *drw, const char *fontname, FcPattern *fontpattern) Err codevoid.de 70 i-{ Err codevoid.de 70 i- Fnt *font; Err codevoid.de 70 i- XftFont *xfont = NULL; Err codevoid.de 70 i- FcPattern *pattern = NULL; Err codevoid.de 70 i- Err codevoid.de 70 i- if (fontname) { Err codevoid.de 70 i- /* Using the pattern found at font->xfont->pattern does not yield the Err codevoid.de 70 i- * same substitution results as using the pattern returned by Err codevoid.de 70 i- * FcNameParse; using the latter results in the desired fallback Err codevoid.de 70 i- Err codevoid.de 70 .