diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8bfdd9e --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +dwm* +!dwm.c +*.o diff --git a/config.h b/config.h index 1c0b587..7107da1 100644 --- a/config.h +++ b/config.h @@ -1,21 +1,21 @@ /* 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 borderpx = 2; /* border pixel of windows */ +static const unsigned int snap = 16; /* 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 col_bg[] = "#282828"; +static const char col_fg[] = "#ebdbb2"; +static const char col_bord[] = "#928374"; +static const char col_selbg[] = "#458588"; +static const char col_selfg[] = "#fbf1c7"; +static const char col_selbord[] = "#fe8019"; static const char *colors[][3] = { /* fg bg border */ - [SchemeNorm] = { col_gray3, col_gray1, col_gray2 }, - [SchemeSel] = { col_gray4, col_cyan, col_cyan }, + [SchemeNorm] = { col_fg, col_bg, col_bord }, + [SchemeSel] = { col_selfg, col_selbg, col_selbord }, }; /* tagging */ @@ -44,7 +44,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} }, \ @@ -55,14 +55,15 @@ static const Layout layouts[] = { #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 char *roficmd[] = { "rofi", "-show", "drun", NULL }; +static const char *rofiruncmd[] = { "rofi", "-show", "run", NULL}; +static const char *termcmd[] = { "alacritty", NULL }; static Key keys[] = { /* modifier key function argument */ - { MODKEY, XK_p, spawn, {.v = dmenucmd } }, - { MODKEY|ShiftMask, XK_Return, spawn, {.v = termcmd } }, + { MODKEY, XK_p, spawn, {.v = roficmd } }, + { MODKEY|ShiftMask, XK_p, spawn, {.v = rofiruncmd } }, + { MODKEY, XK_Return, spawn, {.v = termcmd } }, { MODKEY, XK_b, togglebar, {0} }, { MODKEY, XK_j, focusstack, {.i = +1 } }, { MODKEY, XK_k, focusstack, {.i = -1 } }, @@ -70,7 +71,7 @@ static Key keys[] = { { 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|ShiftMask, XK_Return, zoom, {0} }, { MODKEY, XK_Tab, view, {0} }, { MODKEY|ShiftMask, XK_c, killclient, {0} }, { MODKEY, XK_t, setlayout, {.v = &layouts[0]} }, diff --git a/drw.c b/drw.c index 8fd1ca4..38d0a2a 100644 --- a/drw.c +++ b/drw.c @@ -252,7 +252,7 @@ drw_text(Drw *drw, int x, int y, unsigned int w, unsigned int h, unsigned int lp { char buf[1024]; int ty; - unsigned int ew; + unsigned int ew = 0; XftDraw *d = NULL; Fnt *usedfont, *curfont, *nextfont; size_t i, len; diff --git a/dwm.c b/dwm.c index 4465af1..bdded62 100644 --- a/dwm.c +++ b/dwm.c @@ -36,6 +36,7 @@ #include #include #include +#include #ifdef XINERAMA #include #endif /* XINERAMA */ @@ -395,6 +396,7 @@ void arrangemon(Monitor *m) { strncpy(m->ltsymbol, m->lt[m->sellt]->symbol, sizeof m->ltsymbol); + m->ltsymbol[sizeof(m->ltsymbol) - 1] = '\0'; if (m->lt[m->sellt]->arrange) m->lt[m->sellt]->arrange(m); } @@ -990,7 +992,7 @@ keypress(XEvent *e) XKeyEvent *ev; ev = &e->xkey; - keysym = XKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0); + keysym = XkbKeycodeToKeysym(dpy, (KeyCode)ev->keycode, 0, 0); for (i = 0; i < LENGTH(keys); i++) if (keysym == keys[i].keysym && CLEANMASK(keys[i].mod) == CLEANMASK(ev->state) @@ -1505,6 +1507,7 @@ setlayout(const Arg *arg) if (arg && arg->v) selmon->lt[selmon->sellt] = (Layout *)arg->v; strncpy(selmon->ltsymbol, selmon->lt[selmon->sellt]->symbol, sizeof selmon->ltsymbol); + selmon->ltsymbol[sizeof(selmon->ltsymbol) - 1] = '\0'; if (selmon->sel) arrange(selmon); else @@ -1639,8 +1642,6 @@ sigchld(int unused) void spawn(const Arg *arg) { - if (arg->v == dmenucmd) - dmenumon[0] = '0' + selmon->num; if (fork() == 0) { if (dpy) close(ConnectionNumber(dpy));