summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/dwm/config.def.h19
-rw-r--r--core/dwm/config.mk2
-rw-r--r--core/dwm/dwm.c111
3 files changed, 35 insertions, 97 deletions
diff --git a/core/dwm/config.def.h b/core/dwm/config.def.h
index 9707ffc..394937d 100644
--- a/core/dwm/config.def.h
+++ b/core/dwm/config.def.h
@@ -71,8 +71,6 @@ static const char *screenshotcmd[] = { "flameshot", "gui", NULL };
static const char *mediaplaypause[] = { "playerctl", "play-pause", NULL };
static const char *medianext[] = { "playerctl", "next", NULL };
static const char *mediaprev[] = { "playerctl", "previous", NULL };
-static const char *calendarcmd[] = { "/bin/sh", "-c", "st -e sh -c 'cal -3 | less'", NULL };
-static const char *dunstlogcmd[] = { "/bin/sh", "-c", "st -e sh -c 'less -+F \"$HOME/.cache/dunst/dunst.log\"'", NULL };
static const char *powermenucmd[] = { "/bin/sh", "-c", "power-menu.sh", NULL };
static const char *steamcmd[] = { "/bin/sh", "-c", "steam-dmenu.sh", NULL };
@@ -127,15 +125,14 @@ static const Key keys[] = {
/* button definitions */
/* click can be ClkTagBar, ClkLtSymbol, ClkStatusText, ClkWinTitle, ClkClientWin, or ClkRootWin */
static const 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, Button1, clickstatus, {0} },
- { ClkStatusText, 0, Button2, spawn, {.v = termcmd } },
- { ClkClientWin, MODKEY, Button1, movemouse, {0} },
- { ClkClientWin, MODKEY, Button2, togglefloating, {0} },
- { ClkClientWin, MODKEY, Button3, resizemouse, {0} },
+ /* 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} },
diff --git a/core/dwm/config.mk b/core/dwm/config.mk
index 6821465..b469a2b 100644
--- a/core/dwm/config.mk
+++ b/core/dwm/config.mk
@@ -23,7 +23,7 @@ FREETYPEINC = /usr/include/freetype2
# includes and libs
INCS = -I${X11INC} -I${FREETYPEINC}
-LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS} -lmpdclient
+LIBS = -L${X11LIB} -lX11 ${XINERAMALIBS} ${FREETYPELIBS}
# flags
CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700L -DVERSION=\"${VERSION}\" ${XINERAMAFLAGS}
diff --git a/core/dwm/dwm.c b/core/dwm/dwm.c
index fc150c0..4adbf21 100644
--- a/core/dwm/dwm.c
+++ b/core/dwm/dwm.c
@@ -47,7 +47,6 @@
#include <X11/extensions/Xinerama.h>
#endif /* XINERAMA */
#include <X11/Xft/Xft.h>
-#include <mpd/client.h>
#include "drw.h"
#include "util.h"
@@ -250,7 +249,6 @@ static void zoom(const Arg *arg);
static void clickstatus(const Arg *arg);
static void getcpu(char *buf, size_t len);
static void getram(char *buf, size_t len);
-static void getmusic(char *buf, size_t len);
static void gettime(char *buf, size_t len);
static void getdunst(char *buf, size_t len);
@@ -288,7 +286,7 @@ static Drw *drw;
static Monitor *mons, *selmon;
static Window root, wmcheckwin;
-enum { SNoti, SCPU, SRAM, SMusic, STime, SPower, StatusLast };
+enum { SNoti, SCPU, SRAM, STime, SPower, StatusLast };
typedef struct {
char text[64];
@@ -504,10 +502,8 @@ buttonpress(XEvent *e)
}
for (i = 0; i < LENGTH(buttons); i++)
if (click == buttons[i].click && buttons[i].func && buttons[i].button == ev->button
- && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
- buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg :
- click == ClkStatusText && buttons[i].arg.i == 0 ? &arg :
- &buttons[i].arg);
+ && CLEANMASK(buttons[i].mask) == CLEANMASK(ev->state))
+ buttons[i].func(click == ClkTagBar && buttons[i].arg.i == 0 ? &arg : &buttons[i].arg);
}
void
@@ -769,16 +765,13 @@ void
drawbar(Monitor *m)
{
int x, w, tw = 0;
- int boxs = drw->fonts->h / 9;
- int boxw = drw->fonts->h / 4 + 3;
+ int boxs = drw->fonts->h / 9;
+ int boxw = drw->fonts->h / 6 + 2;
unsigned int i, occ = 0, urg = 0;
Client *c;
- if (!m->showbar)
- return;
-
- drw_setscheme(drw, scheme[SchemeNorm]);
- drw_rect(drw, 0, 0, m->ww, bh - 3, 1, 1);
+ if (!m->showbar)
+ return;
/* draw status first so it can be overdrawn by tags later */
if (m == selmon) { /* status is only drawn on selected monitor */
@@ -790,7 +783,7 @@ drawbar(Monitor *m)
continue;
w = TEXTW(statusitems[i].text);
statusitems[i].width = w;
- drw_text(drw, m->ww - tw - w, 0, w, bh - 3, 0,
+ drw_text(drw, m->ww - tw - w, 0, w, bh, 0,
statusitems[i].text, 0);
tw += w;
}
@@ -804,9 +797,11 @@ drawbar(Monitor *m)
}
x = 0;
for (i = 0; i < LENGTH(tags); i++) {
+ if (!(occ & 1 << i || m->tagset[m->seltags] & 1 << i))
+ continue;
w = TEXTW(tags[i]);
drw_setscheme(drw, scheme[m->tagset[m->seltags] & 1 << i ? SchemeSel : SchemeNorm]);
- drw_text(drw, x, 0, w, bh - 3, lrpad / 2, tags[i], urg & 1 << i);
+ drw_text(drw, x, 0, w, bh, lrpad / 2, tags[i], urg & 1 << i);
if (occ & 1 << i)
drw_rect(drw, x + boxs, boxs, boxw, boxw,
m == selmon && selmon->sel && selmon->sel->tags & 1 << i,
@@ -815,29 +810,20 @@ drawbar(Monitor *m)
}
w = TEXTW(m->ltsymbol);
drw_setscheme(drw, scheme[SchemeNorm]);
- x = drw_text(drw, x, 0, w, bh - 3, lrpad / 2, m->ltsymbol, 0);
-
- if ((w = m->ww - tw - x) > bh) {
- if (m->sel) {
- int tx = x + (w - TEXTW(m->sel->name)) / 2;
- int twid = TEXTW(m->sel->name);
- drw_setscheme(drw, scheme[SchemeNorm]);
- drw_text(drw, tx, 0, twid, bh - 3, lrpad / 2, m->sel->name, 0);
- if (m == selmon) {
- drw_setscheme(drw, scheme[SchemeSel]);
- for (i = 0; i < 3; i++)
- drw_rect(drw, tx - i, 0, twid + 2 * i, bh - 3, 0, 1);
- }
- if (m->sel->isfloating)
- drw_rect(drw, tx + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
- } else {
- drw_setscheme(drw, scheme[SchemeNorm]);
- drw_rect(drw, x, 0, w, bh - 3, 1, 1);
- }
- }
- drw_setscheme(drw, scheme[SchemeSel]);
- drw_rect(drw, 0, bh - 3, m->ww, 3, 1, 1);
- drw_map(drw, m->barwin, 0, 0, m->ww, bh);
+ x = drw_text(drw, x, 0, w, bh, lrpad / 2, m->ltsymbol, 0);
+
+ if ((w = m->ww - tw - x) > bh) {
+ if (m->sel) {
+ drw_setscheme(drw, scheme[m == selmon ? SchemeSel : SchemeNorm]);
+ drw_text(drw, x, 0, w, bh, lrpad / 2, m->sel->name, 0);
+ if (m->sel->isfloating)
+ drw_rect(drw, x + boxs, boxs, boxw, boxw, m->sel->isfixed, 0);
+ } else {
+ drw_setscheme(drw, scheme[SchemeNorm]);
+ drw_rect(drw, x, 0, w, bh, 1, 1);
+ }
+ }
+ drw_map(drw, m->barwin, 0, 0, m->ww, bh);
}
void
@@ -1695,7 +1681,7 @@ setup(void)
if (!drw_fontset_create(drw, fonts, LENGTH(fonts)))
die("no fonts could be loaded.");
lrpad = drw->fonts->h;
- bh = drw->fonts->h + 8;
+ bh = drw->fonts->h + 2;
updategeom();
/* init atoms */
utf8string = XInternAtom(dpy, "UTF8_STRING", False);
@@ -2215,47 +2201,6 @@ getram(char *buf, size_t len)
}
static void
-getmusic(char *buf, size_t len)
-{
- struct mpd_connection *conn = mpd_connection_new(NULL, 0, 30000);
- if (!conn || mpd_connection_get_error(conn) != MPD_ERROR_SUCCESS) {
- if (conn)
- mpd_connection_free(conn);
- buf[0] = '\0';
- return;
- }
- struct mpd_status *status = mpd_run_status(conn);
- if (!status) {
- mpd_connection_free(conn);
- buf[0] = '\0';
- return;
- }
- enum mpd_state state = mpd_status_get_state(status);
- mpd_status_free(status);
- if (state != MPD_STATE_PLAY) {
- mpd_connection_free(conn);
- buf[0] = '\0';
- return;
- }
- struct mpd_song *song = mpd_run_current_song(conn);
- if (!song) {
- mpd_connection_free(conn);
- buf[0] = '\0';
- return;
- }
- const char *artist = mpd_song_get_tag(song, MPD_TAG_ARTIST, 0);
- const char *title = mpd_song_get_tag(song, MPD_TAG_TITLE, 0);
- if (title && artist)
- snprintf(buf, len, "%s - %s", artist, title);
- else if (title)
- snprintf(buf, len, "%s", title);
- else
- buf[0] = '\0';
- mpd_song_free(song);
- mpd_connection_free(conn);
-}
-
-static void
gettime(char *buf, size_t len)
{
time_t now = time(NULL);
@@ -2309,7 +2254,6 @@ updatestatus(void)
getdunst(statusitems[SNoti].text, sizeof statusitems[SNoti].text);
getcpu(statusitems[SCPU].text, sizeof statusitems[SCPU].text);
getram(statusitems[SRAM].text, sizeof statusitems[SRAM].text);
- getmusic(statusitems[SMusic].text, sizeof statusitems[SMusic].text);
gettime(statusitems[STime].text, sizeof statusitems[STime].text);
strncpy(statusitems[SPower].text, "⏻", sizeof statusitems[SPower].text);
@@ -2335,9 +2279,6 @@ clickstatus(const Arg *arg)
case STime:
spawn(&(Arg){ .v = calendarcmd });
break;
- case SMusic:
- spawn(&(Arg){ .v = mediaplaypause });
- break;
case SPower:
spawn(&(Arg){ .v = powermenucmd });
break;