Compare commits
No commits in common. "c09a9d3461d1f1af5cd592e6eb50007abdcf5e91" and "faf00c8c41fb81f721f0e68ba26f5a80985cfd0b" have entirely different histories.
c09a9d3461
...
faf00c8c41
@ -42,9 +42,9 @@ static const Rule rules[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
/* layout(s) */
|
/* layout(s) */
|
||||||
static float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
static const float mfact = 0.55; /* factor of master area size [0.05..0.95] */
|
||||||
static int nmaster = 1; /* number of clients in master area */
|
static const int nmaster = 1; /* number of clients in master area */
|
||||||
static int resizehints = 1; /* 1 means respect size hints in tiled resizals */
|
static const int resizehints = 1; /* 1 means respect size hints in tiled resizals */
|
||||||
static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
|
static const int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
|
||||||
static const int refreshrate = 120; /* refresh rate (per second) for client move/resize */
|
static const int refreshrate = 120; /* refresh rate (per second) for client move/resize */
|
||||||
|
|
||||||
@ -140,7 +140,6 @@ static const Key keys[] = {
|
|||||||
TAGKEYS( XK_8, 7)
|
TAGKEYS( XK_8, 7)
|
||||||
TAGKEYS( XK_9, 8)
|
TAGKEYS( XK_9, 8)
|
||||||
{ MODKEY|ShiftMask, XK_q, quit, {0} },
|
{ MODKEY|ShiftMask, XK_q, quit, {0} },
|
||||||
{ MODKEY|ControlMask|ShiftMask, XK_q, quit, {1} },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* button definitions */
|
/* button definitions */
|
||||||
|
|||||||
@ -1,162 +0,0 @@
|
|||||||
/* See LICENSE file for copyright and license details. */
|
|
||||||
|
|
||||||
/* appearance */
|
|
||||||
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 systrayonleft = 0; /* 0: systray in the right corner, >0: systray on left of status text */
|
|
||||||
static const unsigned int systrayspacing = 2; /* systray spacing */
|
|
||||||
static const int systraypinningfailfirst = 1; /* 1: if pinning fails, display systray on the first monitor, False: display systray on the last monitor*/
|
|
||||||
static const int showsystray = 1; /* 0 means no systray */
|
|
||||||
static const unsigned int gappih = 20; /* horiz inner gap between windows */
|
|
||||||
static const unsigned int gappiv = 10; /* vert inner gap between windows */
|
|
||||||
static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
|
|
||||||
static const unsigned int gappov = 30; /* vert outer gap between windows and screen edge */
|
|
||||||
static int smartgaps = 0; /* 1 means no outer gap when there is only one window */
|
|
||||||
static const int showbar = 1; /* 0 means no bar */
|
|
||||||
static const int topbar = 1; /* 0 means bottom bar */
|
|
||||||
static const char *fonts[] = { "monospace:size=10" };
|
|
||||||
static const char dmenufont[] = "monospace:size=10";
|
|
||||||
static const char col_gray1[] = "#222222";
|
|
||||||
static const char col_gray2[] = "#444444";
|
|
||||||
static const char col_gray3[] = "#bbbbbb";
|
|
||||||
static const char col_gray4[] = "#eeeeee";
|
|
||||||
static const char col_cyan[] = "#005577";
|
|
||||||
static const char *colors[][3] = {
|
|
||||||
/* fg bg border */
|
|
||||||
[SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
|
|
||||||
[SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
|
||||||
};
|
|
||||||
|
|
||||||
/* 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 int lockfullscreen = 1; /* 1 will force focus on the fullscreen window */
|
|
||||||
static const int refreshrate = 120; /* refresh rate (per second) for client move/resize */
|
|
||||||
|
|
||||||
#define FORCE_VSPLIT 1 /* nrowgrid layout: force two clients to always split vertically */
|
|
||||||
#include "vanitygaps.c"
|
|
||||||
|
|
||||||
static const Layout layouts[] = {
|
|
||||||
/* symbol arrange function */
|
|
||||||
{ "[]=", tile }, /* first entry is default */
|
|
||||||
{ "[M]", monocle },
|
|
||||||
{ "[@]", spiral },
|
|
||||||
{ "[\\]", dwindle },
|
|
||||||
{ "H[]", deck },
|
|
||||||
{ "TTT", bstack },
|
|
||||||
{ "===", bstackhoriz },
|
|
||||||
{ "HHH", grid },
|
|
||||||
{ "###", nrowgrid },
|
|
||||||
{ "---", horizgrid },
|
|
||||||
{ ":::", gaplessgrid },
|
|
||||||
{ "|M|", centeredmaster },
|
|
||||||
{ ">M>", centeredfloatingmaster },
|
|
||||||
{ "><>", NULL }, /* no layout function means floating behavior */
|
|
||||||
{ NULL, NULL },
|
|
||||||
};
|
|
||||||
|
|
||||||
/* 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", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
|
|
||||||
static const char *termcmd[] = { "st", NULL };
|
|
||||||
|
|
||||||
static const 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|ShiftMask, XK_h, setcfact, {.f = +0.25} },
|
|
||||||
{ MODKEY|ShiftMask, XK_l, setcfact, {.f = -0.25} },
|
|
||||||
{ MODKEY|ShiftMask, XK_o, setcfact, {.f = 0.00} },
|
|
||||||
{ MODKEY, XK_Return, zoom, {0} },
|
|
||||||
{ MODKEY|Mod4Mask, XK_u, incrgaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_u, incrgaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_i, incrigaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_i, incrigaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_o, incrogaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_o, incrogaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_6, incrihgaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_6, incrihgaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_7, incrivgaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_7, incrivgaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_8, incrohgaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_8, incrohgaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_9, incrovgaps, {.i = +1 } },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_9, incrovgaps, {.i = -1 } },
|
|
||||||
{ MODKEY|Mod4Mask, XK_0, togglegaps, {0} },
|
|
||||||
{ MODKEY|Mod4Mask|ShiftMask, XK_0, defaultgaps, {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} },
|
|
||||||
{ MODKEY|ControlMask|ShiftMask, XK_q, quit, {1} },
|
|
||||||
};
|
|
||||||
|
|
||||||
/* button definitions */
|
|
||||||
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
|
|
||||||
static const Button buttons[] = {
|
|
||||||
/* click event mask button function argument */
|
|
||||||
{ ClkTagBar, MODKEY, Button1, tag, {0} },
|
|
||||||
{ ClkTagBar, MODKEY, Button3, toggletag, {0} },
|
|
||||||
{ 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} },
|
|
||||||
};
|
|
||||||
|
|
||||||
@ -1,73 +0,0 @@
|
|||||||
--- config.def.h
|
|
||||||
+++ config.def.h
|
|
||||||
@@ -1,21 +1,23 @@
|
|
||||||
/* See LICENSE file for copyright and license details. */
|
|
||||||
|
|
||||||
/* appearance */
|
|
||||||
-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 */
|
|
||||||
-static const char *fonts[] = { "monospace:size=10" };
|
|
||||||
-static const char dmenufont[] = "monospace:size=10";
|
|
||||||
-static const char col_gray1[] = "#222222";
|
|
||||||
-static const char col_gray2[] = "#444444";
|
|
||||||
-static const char col_gray3[] = "#bbbbbb";
|
|
||||||
-static const char col_gray4[] = "#eeeeee";
|
|
||||||
-static const char col_cyan[] = "#005577";
|
|
||||||
-static const char *colors[][3] = {
|
|
||||||
- /* fg bg border */
|
|
||||||
- [SchemeNorm] = { col_gray3, col_gray1, col_gray2 },
|
|
||||||
- [SchemeSel] = { col_gray4, col_cyan, col_cyan },
|
|
||||||
+static unsigned int borderpx = 1; /* border pixel of windows */
|
|
||||||
+static unsigned int snap = 32; /* snap pixel */
|
|
||||||
+static int showbar = 1; /* 0 means no bar */
|
|
||||||
+static int topbar = 1; /* 0 means bottom bar */
|
|
||||||
+static char font[] = "monospace:size=10";
|
|
||||||
+static char dmenufont[] = "monospace:size=10";
|
|
||||||
+static const char *fonts[] = { font };
|
|
||||||
+static char normbgcolor[] = "#222222";
|
|
||||||
+static char normbordercolor[] = "#444444";
|
|
||||||
+static char normfgcolor[] = "#bbbbbb";
|
|
||||||
+static char selfgcolor[] = "#eeeeee";
|
|
||||||
+static char selbordercolor[] = "#005577";
|
|
||||||
+static char selbgcolor[] = "#005577";
|
|
||||||
+static char *colors[][3] = {
|
|
||||||
+ /* fg bg border */
|
|
||||||
+ [SchemeNorm] = { normfgcolor, normbgcolor, normbordercolor },
|
|
||||||
+ [SchemeSel] = { selfgcolor, selbgcolor, selbordercolor },
|
|
||||||
};
|
|
||||||
|
|
||||||
/* tagging */
|
|
||||||
@@ -57,9 +59,30 @@ static const Layout layouts[] = {
|
|
||||||
|
|
||||||
/* commands */
|
|
||||||
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
|
|
||||||
-static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray4, NULL };
|
|
||||||
+static const char *dmenucmd[] = { "dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", normbgcolor, "-nf", normfgcolor, "-sb", selbordercolor, "-sf", selfgcolor, NULL };
|
|
||||||
static const char *termcmd[] = { "st", NULL };
|
|
||||||
|
|
||||||
+/*
|
|
||||||
+ * Xresources preferences to load at startup
|
|
||||||
+ */
|
|
||||||
+ResourcePref resources[] = {
|
|
||||||
+ { "font", STRING, &font },
|
|
||||||
+ { "dmenufont", STRING, &dmenufont },
|
|
||||||
+ { "normbgcolor", STRING, &normbgcolor },
|
|
||||||
+ { "normbordercolor", STRING, &normbordercolor },
|
|
||||||
+ { "normfgcolor", STRING, &normfgcolor },
|
|
||||||
+ { "selbgcolor", STRING, &selbgcolor },
|
|
||||||
+ { "selbordercolor", STRING, &selbordercolor },
|
|
||||||
+ { "selfgcolor", STRING, &selfgcolor },
|
|
||||||
+ { "borderpx", INTEGER, &borderpx },
|
|
||||||
+ { "snap", INTEGER, &snap },
|
|
||||||
+ { "showbar", INTEGER, &showbar },
|
|
||||||
+ { "topbar", INTEGER, &topbar },
|
|
||||||
+ { "nmaster", INTEGER, &nmaster },
|
|
||||||
+ { "resizehints", INTEGER, &resizehints },
|
|
||||||
+ { "mfact", FLOAT, &mfact },
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
static Key keys[] = {
|
|
||||||
/* modifier key function argument */
|
|
||||||
{ MODKEY, XK_p, spawn, {.v = dmenucmd } },
|
|
||||||
54
config.h
54
config.h
@ -2,6 +2,8 @@
|
|||||||
#include <X11/XF86keysym.h>
|
#include <X11/XF86keysym.h>
|
||||||
|
|
||||||
/* appearance */
|
/* appearance */
|
||||||
|
static const unsigned int borderpx = 3; /* 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 systraypinning = 0; /* 0: sloppy systray follows selected monitor, >0: pin systray to monitor X */
|
||||||
static const unsigned int systrayonleft = 0; /* 0: systray in the right corner, >0: systray on left of status text */
|
static const unsigned int systrayonleft = 0; /* 0: systray in the right corner, >0: systray on left of status text */
|
||||||
static const unsigned int systrayspacing = 2; /* systray spacing */
|
static const unsigned int systrayspacing = 2; /* systray spacing */
|
||||||
@ -12,23 +14,19 @@ static const unsigned int gappiv = 10; /* vert inner gap between windows
|
|||||||
static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
|
static const unsigned int gappoh = 10; /* horiz outer gap between windows and screen edge */
|
||||||
static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
|
static const unsigned int gappov = 10; /* vert outer gap between windows and screen edge */
|
||||||
static int smartgaps = 0; /* 1 means no outer gap when there is only one window */
|
static int smartgaps = 0; /* 1 means no outer gap when there is only one window */
|
||||||
static unsigned int borderpx = 1; /* border pixel of windows */
|
static const int showbar = 1; /* 0 means no bar */
|
||||||
static unsigned int snap = 32; /* snap pixel */
|
static const int topbar = 1; /* 0 means bottom bar */
|
||||||
static int showbar = 1; /* 0 means no bar */
|
static const char *fonts[] = {"Maple Mono:size=10"};
|
||||||
static int topbar = 1; /* 0 means bottom bar */
|
static const char dmenufont[] = "Maple Mono:size=10";
|
||||||
static char font[] = "monospace:size=10";
|
static const char col_gray1[] = "#1e1e2e";
|
||||||
static char dmenufont[] = "monospace:size=10";
|
static const char col_gray2[] = "#f9e2af";
|
||||||
static const char *fonts[] = {font};
|
static const char col_gray3[] = "#cdd6f4";
|
||||||
static char normbgcolor[] = "#222222";
|
static const char col_gray4[] = "#eeeeee";
|
||||||
static char normbordercolor[] = "#444444";
|
static const char col_cyan[] = "#a6e3a1";
|
||||||
static char normfgcolor[] = "#bbbbbb";
|
static const char *colors[][3] = {
|
||||||
static char selfgcolor[] = "#eeeeee";
|
/* fg bg border */
|
||||||
static char selbordercolor[] = "#005577";
|
[SchemeNorm] = {col_gray3, col_gray1, col_gray1},
|
||||||
static char selbgcolor[] = "#005577";
|
[SchemeSel] = {col_gray1, col_cyan, col_cyan},
|
||||||
static char *colors[][3] = {
|
|
||||||
/* fg bg border */
|
|
||||||
[SchemeNorm] = {normfgcolor, normbgcolor, normbordercolor},
|
|
||||||
[SchemeSel] = {selfgcolor, selbgcolor, selbordercolor},
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* tagging */
|
/* tagging */
|
||||||
@ -74,7 +72,7 @@ static const Layout layouts[] = {
|
|||||||
|
|
||||||
/* commands */
|
/* commands */
|
||||||
static char dmenumon[2] = "0"; /* component of dmenucmd, manipulated in spawn() */
|
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", selbordercolor, "-sf", selfgcolor, NULL };
|
static const char *dmenucmd[] = {"dmenu_run", "-m", dmenumon, "-fn", dmenufont, "-nb", col_gray1, "-nf", col_gray3, "-sb", col_cyan, "-sf", col_gray1, NULL};
|
||||||
static const char *termcmd[] = {"st", NULL};
|
static const char *termcmd[] = {"st", NULL};
|
||||||
|
|
||||||
static const Key keys[] = {
|
static const Key keys[] = {
|
||||||
@ -116,26 +114,6 @@ static const Key keys[] = {
|
|||||||
{0, XF86XK_MonBrightnessUp, spawn, SHCMD("brightnessctl s 10%-")},
|
{0, XF86XK_MonBrightnessUp, spawn, SHCMD("brightnessctl s 10%-")},
|
||||||
|
|
||||||
};
|
};
|
||||||
/*
|
|
||||||
* Xresources preferences to load at startup
|
|
||||||
*/
|
|
||||||
ResourcePref resources[] = {
|
|
||||||
{"font", STRING, &font},
|
|
||||||
{"dmenufont", STRING, &dmenufont},
|
|
||||||
{"normbgcolor", STRING, &normbgcolor},
|
|
||||||
{"normbordercolor", STRING, &normbordercolor},
|
|
||||||
{"normfgcolor", STRING, &normfgcolor},
|
|
||||||
{"selbgcolor", STRING, &selbgcolor},
|
|
||||||
{"selbordercolor", STRING, &selbordercolor},
|
|
||||||
{"selfgcolor", STRING, &selfgcolor},
|
|
||||||
{"borderpx", INTEGER, &borderpx},
|
|
||||||
{"snap", INTEGER, &snap},
|
|
||||||
{"showbar", INTEGER, &showbar},
|
|
||||||
{"topbar", INTEGER, &topbar},
|
|
||||||
{"nmaster", INTEGER, &nmaster},
|
|
||||||
{"resizehints", INTEGER, &resizehints},
|
|
||||||
{"mfact", FLOAT, &mfact},
|
|
||||||
};
|
|
||||||
|
|
||||||
/* button definitions */
|
/* button definitions */
|
||||||
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
|
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
|
||||||
|
|||||||
2
drw.c
2
drw.c
@ -182,7 +182,7 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
|
|||||||
|
|
||||||
/* Create color schemes. */
|
/* Create color schemes. */
|
||||||
Clr *
|
Clr *
|
||||||
drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount)
|
drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
Clr *ret;
|
Clr *ret;
|
||||||
|
|||||||
@ -176,8 +176,6 @@ drw_clr_create(Drw *drw, Clr *dest, const char *clrname)
|
|||||||
DefaultColormap(drw->dpy, drw->screen),
|
DefaultColormap(drw->dpy, drw->screen),
|
||||||
clrname, dest))
|
clrname, dest))
|
||||||
die("error, cannot allocate color '%s'", clrname);
|
die("error, cannot allocate color '%s'", clrname);
|
||||||
|
|
||||||
dest->pixel |= 0xff << 24;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Create color schemes. */
|
/* Create color schemes. */
|
||||||
|
|||||||
2
drw.h
2
drw.h
@ -41,7 +41,7 @@ void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned in
|
|||||||
/* Colorscheme abstraction */
|
/* Colorscheme abstraction */
|
||||||
void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
|
void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
|
||||||
void drw_clr_free(Drw *drw, Clr *c);
|
void drw_clr_free(Drw *drw, Clr *c);
|
||||||
Clr *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount);
|
Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
|
||||||
void drw_scm_free(Drw *drw, Clr *scm, size_t clrcount);
|
void drw_scm_free(Drw *drw, Clr *scm, size_t clrcount);
|
||||||
|
|
||||||
/* Cursor abstraction */
|
/* Cursor abstraction */
|
||||||
|
|||||||
60
drw.h.orig
60
drw.h.orig
@ -1,60 +0,0 @@
|
|||||||
/* See LICENSE file for copyright and license details. */
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
Cursor cursor;
|
|
||||||
} Cur;
|
|
||||||
|
|
||||||
typedef struct Fnt {
|
|
||||||
Display *dpy;
|
|
||||||
unsigned int h;
|
|
||||||
XftFont *xfont;
|
|
||||||
FcPattern *pattern;
|
|
||||||
struct Fnt *next;
|
|
||||||
} Fnt;
|
|
||||||
|
|
||||||
enum { ColFg, ColBg, ColBorder }; /* Clr scheme index */
|
|
||||||
typedef XftColor Clr;
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
unsigned int w, h;
|
|
||||||
Display *dpy;
|
|
||||||
int screen;
|
|
||||||
Window root;
|
|
||||||
Drawable drawable;
|
|
||||||
GC gc;
|
|
||||||
Clr *scheme;
|
|
||||||
Fnt *fonts;
|
|
||||||
} Drw;
|
|
||||||
|
|
||||||
/* Drawable abstraction */
|
|
||||||
Drw *drw_create(Display *dpy, int screen, Window win, unsigned int w, unsigned int h);
|
|
||||||
void drw_resize(Drw *drw, unsigned int w, unsigned int h);
|
|
||||||
void drw_free(Drw *drw);
|
|
||||||
|
|
||||||
/* Fnt abstraction */
|
|
||||||
Fnt *drw_fontset_create(Drw* drw, const char *fonts[], size_t fontcount);
|
|
||||||
void drw_fontset_free(Fnt* set);
|
|
||||||
unsigned int drw_fontset_getwidth(Drw *drw, const char *text);
|
|
||||||
unsigned int drw_fontset_getwidth_clamp(Drw *drw, const char *text, unsigned int n);
|
|
||||||
void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned int *w, unsigned int *h);
|
|
||||||
|
|
||||||
/* Colorscheme abstraction */
|
|
||||||
void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
|
|
||||||
void drw_clr_free(Drw *drw, Clr *c);
|
|
||||||
Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
|
|
||||||
void drw_scm_free(Drw *drw, Clr *scm, size_t clrcount);
|
|
||||||
|
|
||||||
/* Cursor abstraction */
|
|
||||||
Cur *drw_cur_create(Drw *drw, int shape);
|
|
||||||
void drw_cur_free(Drw *drw, Cur *cursor);
|
|
||||||
|
|
||||||
/* Drawing context manipulation */
|
|
||||||
void drw_setfontset(Drw *drw, Fnt *set);
|
|
||||||
void drw_setscheme(Drw *drw, Clr *scm);
|
|
||||||
|
|
||||||
/* Drawing functions */
|
|
||||||
void drw_rect(Drw *drw, int x, int y, unsigned int w, unsigned int h, int filled, int invert);
|
|
||||||
int drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lpad, const char *text, int invert);
|
|
||||||
|
|
||||||
/* Map functions */
|
|
||||||
void drw_map(Drw *drw, Window win, int x, int y, unsigned int w, unsigned int h);
|
|
||||||
11
drw.h.rej
11
drw.h.rej
@ -1,11 +0,0 @@
|
|||||||
--- drw.h
|
|
||||||
+++ drw.h
|
|
||||||
@@ -39,7 +39,7 @@ void drw_font_getexts(Fnt *font, const char *text, unsigned int len, unsigned in
|
|
||||||
|
|
||||||
/* Colorscheme abstraction */
|
|
||||||
void drw_clr_create(Drw *drw, Clr *dest, const char *clrname);
|
|
||||||
-Clr *drw_scm_create(Drw *drw, const char *clrnames[], size_t clrcount);
|
|
||||||
+Clr *drw_scm_create(Drw *drw, char *clrnames[], size_t clrcount);
|
|
||||||
|
|
||||||
/* Cursor abstraction */
|
|
||||||
Cur *drw_cur_create(Drw *drw, int shape);
|
|
||||||
10
dwm.1
10
dwm.1
@ -150,9 +150,6 @@ Add/remove all windows with nth tag to/from the view.
|
|||||||
.TP
|
.TP
|
||||||
.B Mod1\-Shift\-q
|
.B Mod1\-Shift\-q
|
||||||
Quit dwm.
|
Quit dwm.
|
||||||
.TP
|
|
||||||
.B Mod1\-Control\-Shift\-q
|
|
||||||
Restart dwm.
|
|
||||||
.SS Mouse commands
|
.SS Mouse commands
|
||||||
.TP
|
.TP
|
||||||
.B Mod1\-Button1
|
.B Mod1\-Button1
|
||||||
@ -181,13 +178,6 @@ This file is started before any autostart.sh; dwm waits for its termination.
|
|||||||
.SH CUSTOMIZATION
|
.SH CUSTOMIZATION
|
||||||
dwm is customized by creating a custom config.h and (re)compiling the source
|
dwm is customized by creating a custom config.h and (re)compiling the source
|
||||||
code. This keeps it fast, secure and simple.
|
code. This keeps it fast, secure and simple.
|
||||||
.SH SIGNALS
|
|
||||||
.TP
|
|
||||||
.B SIGHUP - 1
|
|
||||||
Restart the dwm process.
|
|
||||||
.TP
|
|
||||||
.B SIGTERM - 15
|
|
||||||
Cleanly terminate the dwm process.
|
|
||||||
.SH SEE ALSO
|
.SH SEE ALSO
|
||||||
.BR dmenu (1),
|
.BR dmenu (1),
|
||||||
.BR st (1)
|
.BR st (1)
|
||||||
|
|||||||
199
dwm.1.orig
199
dwm.1.orig
@ -1,199 +0,0 @@
|
|||||||
.TH DWM 1 dwm\-VERSION
|
|
||||||
.SH NAME
|
|
||||||
dwm \- dynamic window manager
|
|
||||||
.SH SYNOPSIS
|
|
||||||
.B dwm
|
|
||||||
.RB [ \-v ]
|
|
||||||
.SH DESCRIPTION
|
|
||||||
dwm is a dynamic window manager for X. It manages windows in tiled, monocle
|
|
||||||
and floating layouts. Either layout can be applied dynamically, optimising the
|
|
||||||
environment for the application in use and the task performed.
|
|
||||||
.P
|
|
||||||
In tiled layouts windows are managed in a master and stacking area. The master
|
|
||||||
area on the left contains one window by default, and the stacking area on the
|
|
||||||
right contains all other windows. The number of master area windows can be
|
|
||||||
adjusted from zero to an arbitrary number. In monocle layout all windows are
|
|
||||||
maximised to the screen size. In floating layout windows can be resized and
|
|
||||||
moved freely. Dialog windows are always managed floating, regardless of the
|
|
||||||
layout applied.
|
|
||||||
.P
|
|
||||||
Windows are grouped by tags. Each window can be tagged with one or multiple
|
|
||||||
tags. Selecting certain tags displays all windows with these tags.
|
|
||||||
.P
|
|
||||||
Each screen contains a small status bar which displays all available tags, the
|
|
||||||
layout, the title of the focused window, and the text read from the root window
|
|
||||||
name property, if the screen is focused. A floating window is indicated with an
|
|
||||||
empty square and a maximised floating window is indicated with a filled square
|
|
||||||
before the windows title. The selected tags are indicated with a different
|
|
||||||
color. The tags of the focused window are indicated with a filled square in the
|
|
||||||
top left corner. The tags which are applied to one or more windows are
|
|
||||||
indicated with an empty square in the top left corner.
|
|
||||||
.P
|
|
||||||
dwm draws a small border around windows to indicate the focus state.
|
|
||||||
.P
|
|
||||||
On start, dwm can start additional programs that may be specified in two special
|
|
||||||
shell scripts (see the FILES section below), autostart_blocking.sh and
|
|
||||||
autostart.sh. The former is executed first and dwm will wait for its
|
|
||||||
termination before starting. The latter is executed in the background before
|
|
||||||
dwm enters its handler loop.
|
|
||||||
.P
|
|
||||||
Either of these files may be omitted.
|
|
||||||
.SH OPTIONS
|
|
||||||
.TP
|
|
||||||
.B \-v
|
|
||||||
prints version information to stderr, then exits.
|
|
||||||
.SH USAGE
|
|
||||||
.SS Status bar
|
|
||||||
.TP
|
|
||||||
.B X root window name
|
|
||||||
is read and displayed in the status text area. It can be set with the
|
|
||||||
.BR xsetroot (1)
|
|
||||||
command.
|
|
||||||
.TP
|
|
||||||
.B Button1
|
|
||||||
click on a tag label to display all windows with that tag, click on the layout
|
|
||||||
label toggles between tiled and floating layout.
|
|
||||||
.TP
|
|
||||||
.B Button3
|
|
||||||
click on a tag label adds/removes all windows with that tag to/from the view.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Button1
|
|
||||||
click on a tag label applies that tag to the focused window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Button3
|
|
||||||
click on a tag label adds/removes that tag to/from the focused window.
|
|
||||||
.SS Keyboard commands
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-Return
|
|
||||||
Start
|
|
||||||
.BR st(1).
|
|
||||||
.TP
|
|
||||||
.B Mod1\-p
|
|
||||||
Spawn
|
|
||||||
.BR dmenu(1)
|
|
||||||
for launching other programs.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-,
|
|
||||||
Focus previous screen, if any.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-.
|
|
||||||
Focus next screen, if any.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-,
|
|
||||||
Send focused window to previous screen, if any.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-.
|
|
||||||
Send focused window to next screen, if any.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-b
|
|
||||||
Toggles bar on and off.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-t
|
|
||||||
Sets tiled layout.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-f
|
|
||||||
Sets floating layout.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-m
|
|
||||||
Sets monocle layout.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-space
|
|
||||||
Toggles between current and previous layout.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-j
|
|
||||||
Focus next window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-k
|
|
||||||
Focus previous window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-i
|
|
||||||
Increase number of windows in master area.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-d
|
|
||||||
Decrease number of windows in master area.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-l
|
|
||||||
Increase master area size.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-h
|
|
||||||
Decrease master area size.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Return
|
|
||||||
Zooms/cycles focused window to/from master area (tiled layouts only).
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-c
|
|
||||||
Close focused window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-space
|
|
||||||
Toggle focused window between tiled and floating state.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Tab
|
|
||||||
Toggles to the previously selected tags.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-[1..n]
|
|
||||||
Apply nth tag to focused window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-0
|
|
||||||
Apply all tags to focused window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Control\-Shift\-[1..n]
|
|
||||||
Add/remove nth tag to/from focused window.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-[1..n]
|
|
||||||
View all windows with nth tag.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-0
|
|
||||||
View all windows with any tag.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Control\-[1..n]
|
|
||||||
Add/remove all windows with nth tag to/from the view.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Shift\-q
|
|
||||||
Quit dwm.
|
|
||||||
.SS Mouse commands
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Button1
|
|
||||||
Move focused window while dragging. Tiled windows will be toggled to the floating state.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Button2
|
|
||||||
Toggles focused window between floating and tiled state.
|
|
||||||
.TP
|
|
||||||
.B Mod1\-Button3
|
|
||||||
Resize focused window while dragging. Tiled windows will be toggled to the floating state.
|
|
||||||
.SH FILES
|
|
||||||
The files containing programs to be started along with dwm are searched for in
|
|
||||||
the following directories:
|
|
||||||
.IP "1. $XDG_DATA_HOME/dwm"
|
|
||||||
.IP "2. $HOME/.local/share/dwm"
|
|
||||||
.IP "3. $HOME/.dwm"
|
|
||||||
.P
|
|
||||||
The first existing directory is scanned for any of the autostart files below.
|
|
||||||
.TP 15
|
|
||||||
autostart.sh
|
|
||||||
This file is started as a shell background process before dwm enters its handler
|
|
||||||
loop.
|
|
||||||
.TP 15
|
|
||||||
autostart_blocking.sh
|
|
||||||
This file is started before any autostart.sh; dwm waits for its termination.
|
|
||||||
.SH CUSTOMIZATION
|
|
||||||
dwm is customized by creating a custom config.h and (re)compiling the source
|
|
||||||
code. This keeps it fast, secure and simple.
|
|
||||||
.SH SEE ALSO
|
|
||||||
.BR dmenu (1),
|
|
||||||
.BR st (1)
|
|
||||||
.SH ISSUES
|
|
||||||
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
|
|
||||||
JDK 1.6 versions, because it assumes a reparenting window manager. Possible workarounds
|
|
||||||
are using JDK 1.4 (which doesn't contain the XToolkit/XAWT backend) or setting the
|
|
||||||
environment variable
|
|
||||||
.BR AWT_TOOLKIT=MToolkit
|
|
||||||
(to use the older Motif backend instead) or running
|
|
||||||
.B xprop -root -f _NET_WM_NAME 32a -set _NET_WM_NAME LG3D
|
|
||||||
or
|
|
||||||
.B wmname LG3D
|
|
||||||
(to pretend that a non-reparenting window manager is running that the
|
|
||||||
XToolkit/XAWT backend can recognize) or when using OpenJDK setting the environment variable
|
|
||||||
.BR _JAVA_AWT_WM_NONREPARENTING=1 .
|
|
||||||
.SH BUGS
|
|
||||||
Send all bug reports with a patch to hackers@suckless.org.
|
|
||||||
2757
dwm.c.orig
2757
dwm.c.orig
File diff suppressed because it is too large
Load Diff
80
dwm.c.rej
80
dwm.c.rej
@ -1,80 +0,0 @@
|
|||||||
--- dwm.c
|
|
||||||
+++ dwm.c
|
|
||||||
@@ -36,6 +36,7 @@
|
|
||||||
#include <X11/Xlib.h>
|
|
||||||
#include <X11/Xproto.h>
|
|
||||||
#include <X11/Xutil.h>
|
|
||||||
+#include <X11/Xresource.h>
|
|
||||||
#ifdef XINERAMA
|
|
||||||
#include <X11/extensions/Xinerama.h>
|
|
||||||
#endif /* XINERAMA */
|
|
||||||
@@ -2142,6 +2158,60 @@ zoom(const Arg *arg)
|
|
||||||
pop(c);
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+resource_load(XrmDatabase db, char *name, enum resource_type rtype, void *dst)
|
|
||||||
+{
|
|
||||||
+ char *sdst = NULL;
|
|
||||||
+ int *idst = NULL;
|
|
||||||
+ float *fdst = NULL;
|
|
||||||
+
|
|
||||||
+ sdst = dst;
|
|
||||||
+ idst = dst;
|
|
||||||
+ fdst = dst;
|
|
||||||
+
|
|
||||||
+ char fullname[256];
|
|
||||||
+ char *type;
|
|
||||||
+ XrmValue ret;
|
|
||||||
+
|
|
||||||
+ snprintf(fullname, sizeof(fullname), "%s.%s", "dwm", name);
|
|
||||||
+ fullname[sizeof(fullname) - 1] = '\0';
|
|
||||||
+
|
|
||||||
+ XrmGetResource(db, fullname, "*", &type, &ret);
|
|
||||||
+ if (!(ret.addr == NULL || strncmp("String", type, 64)))
|
|
||||||
+ {
|
|
||||||
+ switch (rtype) {
|
|
||||||
+ case STRING:
|
|
||||||
+ strcpy(sdst, ret.addr);
|
|
||||||
+ break;
|
|
||||||
+ case INTEGER:
|
|
||||||
+ *idst = strtoul(ret.addr, NULL, 10);
|
|
||||||
+ break;
|
|
||||||
+ case FLOAT:
|
|
||||||
+ *fdst = strtof(ret.addr, NULL);
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+load_xresources(void)
|
|
||||||
+{
|
|
||||||
+ Display *display;
|
|
||||||
+ char *resm;
|
|
||||||
+ XrmDatabase db;
|
|
||||||
+ ResourcePref *p;
|
|
||||||
+
|
|
||||||
+ display = XOpenDisplay(NULL);
|
|
||||||
+ resm = XResourceManagerString(display);
|
|
||||||
+ if (!resm)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ db = XrmGetStringDatabase(resm);
|
|
||||||
+ for (p = resources; p < resources + LENGTH(resources); p++)
|
|
||||||
+ resource_load(db, p->name, p->type, p->dst);
|
|
||||||
+ XCloseDisplay(display);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
int
|
|
||||||
main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
@@ -2154,6 +2224,8 @@ main(int argc, char *argv[])
|
|
||||||
if (!(dpy = XOpenDisplay(NULL)))
|
|
||||||
die("dwm: cannot open display");
|
|
||||||
checkotherwm();
|
|
||||||
+ XrmInitialize();
|
|
||||||
+ load_xresources();
|
|
||||||
setup();
|
|
||||||
#ifdef __OpenBSD__
|
|
||||||
if (pledge("stdio rpath proc exec", NULL) == -1)
|
|
||||||
Loading…
x
Reference in New Issue
Block a user