Created
April 5, 2020 09:27
-
-
Save jams2/a8783a23c3cad61d4cd2726cf09d6e2e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/config.def.h b/config.def.h | |
index 1c0b587..38d2f6c 100644 | |
--- a/config.def.h | |
+++ b/config.def.h | |
@@ -2,6 +2,7 @@ | |
/* appearance */ | |
static const unsigned int borderpx = 1; /* border pixel of windows */ | |
+static const unsigned int gappx = 5; /* gaps between 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 */ | |
@@ -84,6 +85,9 @@ static Key keys[] = { | |
{ MODKEY, XK_period, focusmon, {.i = +1 } }, | |
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, | |
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, | |
+ { MODKEY, XK_minus, setgaps, {.i = -1 } }, | |
+ { MODKEY, XK_equal, setgaps, {.i = +1 } }, | |
+ { MODKEY|ShiftMask, XK_equal, setgaps, {.i = 0 } }, | |
TAGKEYS( XK_1, 0) | |
TAGKEYS( XK_2, 1) | |
TAGKEYS( XK_3, 2) | |
diff --git a/config.h b/config.h | |
index 1c0b587..5b1cfb9 100644 | |
--- a/config.h | |
+++ b/config.h | |
@@ -1,7 +1,9 @@ | |
/* See LICENSE file for copyright and license details. */ | |
+#include <X11/XF86keysym.h> | |
/* appearance */ | |
static const unsigned int borderpx = 1; /* border pixel of windows */ | |
+static const unsigned int gappx = 5; /* gaps between 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 */ | |
@@ -44,7 +46,7 @@ static const Layout layouts[] = { | |
}; | |
/* key definitions */ | |
-#define MODKEY Mod1Mask | |
+#define MODKEY Mod4Mask | |
#define TAGKEYS(KEY,TAG) \ | |
{ MODKEY, KEY, view, {.ui = 1 << TAG} }, \ | |
{ MODKEY|ControlMask, KEY, toggleview, {.ui = 1 << TAG} }, \ | |
@@ -59,6 +61,7 @@ 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 }; | |
+/* see /usr/include/X11/XF86keysym.h */ | |
static Key keys[] = { | |
/* modifier key function argument */ | |
{ MODKEY, XK_p, spawn, {.v = dmenucmd } }, | |
@@ -84,6 +87,11 @@ static Key keys[] = { | |
{ MODKEY, XK_period, focusmon, {.i = +1 } }, | |
{ MODKEY|ShiftMask, XK_comma, tagmon, {.i = -1 } }, | |
{ MODKEY|ShiftMask, XK_period, tagmon, {.i = +1 } }, | |
+ { MODKEY|ShiftMask, XK_x, spawn, SHCMD("logout_dmenu") }, | |
+ { 0, XF86XK_AudioRaiseVolume, spawn, SHCMD("volume_up") }, | |
+ { 0, XF86XK_AudioLowerVolume, spawn, SHCMD("volume_down") }, | |
+ { 0, XF86XK_MonBrightnessUp, spawn, SHCMD("inc_brightness") }, | |
+ { 0, XF86XK_MonBrightnessDown, spawn, SHCMD("dec_brightness") }, | |
TAGKEYS( XK_1, 0) | |
TAGKEYS( XK_2, 1) | |
TAGKEYS( XK_3, 2) | |
diff --git a/dwm b/dwm | |
index 2973c44..90f7cd5 100755 | |
Binary files a/dwm and b/dwm differ | |
diff --git a/dwm.c b/dwm.c | |
index 4465af1..4363627 100644 | |
--- a/dwm.c | |
+++ b/dwm.c | |
@@ -119,6 +119,7 @@ struct Monitor { | |
int by; /* bar geometry */ | |
int mx, my, mw, mh; /* screen size */ | |
int wx, wy, ww, wh; /* window area */ | |
+ int gappx; /* gaps between windows */ | |
unsigned int seltags; | |
unsigned int sellt; | |
unsigned int tagset[2]; | |
@@ -199,6 +200,7 @@ static void sendmon(Client *c, Monitor *m); | |
static void setclientstate(Client *c, long state); | |
static void setfocus(Client *c); | |
static void setfullscreen(Client *c, int fullscreen); | |
+static void setgaps(const Arg *arg); | |
static void setlayout(const Arg *arg); | |
static void setmfact(const Arg *arg); | |
static void setup(void); | |
@@ -638,6 +640,7 @@ createmon(void) | |
m->nmaster = nmaster; | |
m->showbar = showbar; | |
m->topbar = topbar; | |
+ m->gappx = gappx; | |
m->lt[0] = &layouts[0]; | |
m->lt[1] = &layouts[1 % LENGTH(layouts)]; | |
strncpy(m->ltsymbol, layouts[0].symbol, sizeof m->ltsymbol); | |
@@ -1497,6 +1500,16 @@ setfullscreen(Client *c, int fullscreen) | |
} | |
} | |
+void | |
+setgaps(const Arg *arg) | |
+{ | |
+ if ((arg->i == 0) || (selmon->gappx + arg->i < 0)) | |
+ selmon->gappx = 0; | |
+ else | |
+ selmon->gappx += arg->i; | |
+ arrange(selmon); | |
+} | |
+ | |
void | |
setlayout(const Arg *arg) | |
{ | |
@@ -1683,16 +1696,16 @@ tile(Monitor *m) | |
if (n > m->nmaster) | |
mw = m->nmaster ? m->ww * m->mfact : 0; | |
else | |
- mw = m->ww; | |
- for (i = my = ty = 0, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) | |
+ mw = m->ww - m->gappx; | |
+ for (i = 0, my = ty = m->gappx, c = nexttiled(m->clients); c; c = nexttiled(c->next), i++) | |
if (i < m->nmaster) { | |
- h = (m->wh - my) / (MIN(n, m->nmaster) - i); | |
- resize(c, m->wx, m->wy + my, mw - (2*c->bw), h - (2*c->bw), 0); | |
- my += HEIGHT(c); | |
+ h = (m->wh - my) / (MIN(n, m->nmaster) - i) - m->gappx; | |
+ resize(c, m->wx + m->gappx, m->wy + my, mw - (2*c->bw) - m->gappx, h - (2*c->bw), 0); | |
+ my += HEIGHT(c) + m->gappx; | |
} else { | |
- h = (m->wh - ty) / (n - i); | |
- resize(c, m->wx + mw, m->wy + ty, m->ww - mw - (2*c->bw), h - (2*c->bw), 0); | |
- ty += HEIGHT(c); | |
+ h = (m->wh - ty) / (n - i) - m->gappx; | |
+ resize(c, m->wx + mw + m->gappx, m->wy + ty, m->ww - mw - (2*c->bw) - 2*m->gappx, h - (2*c->bw), 0); | |
+ ty += HEIGHT(c) + m->gappx; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment