anybar: initial commit
This commit is contained in:
62
patch/bar_anybar.c
Normal file
62
patch/bar_anybar.c
Normal file
@@ -0,0 +1,62 @@
|
||||
void
|
||||
managealtbar(Window win, XWindowAttributes *wa)
|
||||
{
|
||||
Monitor *m;
|
||||
if (!(m = recttomon(wa->x, wa->y, wa->width, wa->height)))
|
||||
return;
|
||||
|
||||
m->bar->win = win;
|
||||
m->bar->by = wa->y;
|
||||
bh = m->bar->bh = wa->height;
|
||||
updatebarpos(m);
|
||||
arrange(m);
|
||||
XSelectInput(dpy, win, EnterWindowMask|FocusChangeMask|PropertyChangeMask|StructureNotifyMask);
|
||||
XMoveResizeWindow(dpy, win, wa->x, wa->y, wa->width, wa->height);
|
||||
XMapWindow(dpy, win);
|
||||
XChangeProperty(dpy, root, netatom[NetClientList], XA_WINDOW, 32, PropModeAppend,
|
||||
(unsigned char *) &win, 1);
|
||||
}
|
||||
|
||||
void
|
||||
spawnbar()
|
||||
{
|
||||
if (*altbarcmd)
|
||||
system(altbarcmd);
|
||||
}
|
||||
|
||||
void
|
||||
unmanagealtbar(Window w)
|
||||
{
|
||||
Monitor *m = wintomon(w);
|
||||
|
||||
if (!m)
|
||||
return;
|
||||
|
||||
m->bar->win = 0;
|
||||
m->bar->by = 0;
|
||||
m->bar->bh = 0;
|
||||
updatebarpos(m);
|
||||
arrange(m);
|
||||
}
|
||||
|
||||
int
|
||||
wmclasscontains(Window win, const char *class, const char *name)
|
||||
{
|
||||
XClassHint ch = { NULL, NULL };
|
||||
int res = 1;
|
||||
|
||||
if (XGetClassHint(dpy, win, &ch)) {
|
||||
if (ch.res_name && strstr(ch.res_name, name) == NULL)
|
||||
res = 0;
|
||||
if (ch.res_class && strstr(ch.res_class, class) == NULL)
|
||||
res = 0;
|
||||
} else
|
||||
res = 0;
|
||||
|
||||
if (ch.res_class)
|
||||
XFree(ch.res_class);
|
||||
if (ch.res_name)
|
||||
XFree(ch.res_name);
|
||||
|
||||
return res;
|
||||
}
|
4
patch/bar_anybar.h
Normal file
4
patch/bar_anybar.h
Normal file
@@ -0,0 +1,4 @@
|
||||
static void managealtbar(Window win, XWindowAttributes *wa);
|
||||
static void spawnbar();
|
||||
static void unmanagealtbar(Window w);
|
||||
static int wmclasscontains(Window win, const char *class, const char *name);
|
@@ -8,6 +8,9 @@
|
||||
#if BAR_ALTERNATIVE_TAGS_PATCH
|
||||
#include "bar_alternativetags.c"
|
||||
#endif
|
||||
#if BAR_ANYBAR_PATCH
|
||||
#include "bar_anybar.c"
|
||||
#endif
|
||||
#if BAR_DWMBLOCKS_PATCH && BAR_STATUSCMD_PATCH
|
||||
#include "bar_dwmblocks.c"
|
||||
#endif
|
||||
|
@@ -8,6 +8,9 @@
|
||||
#if BAR_ALTERNATIVE_TAGS_PATCH
|
||||
#include "bar_alternativetags.h"
|
||||
#endif
|
||||
#if BAR_ANYBAR_PATCH
|
||||
#include "bar_anybar.h"
|
||||
#endif
|
||||
#if BAR_DWMBLOCKS_PATCH && BAR_STATUSCMD_PATCH
|
||||
#include "bar_dwmblocks.h"
|
||||
#endif
|
||||
|
Reference in New Issue
Block a user