dwmc removed
This commit is contained in:
parent
e41336f785
commit
d6760a401e
3 changed files with 2 additions and 124 deletions
2
Makefile
2
Makefile
|
@ -35,7 +35,7 @@ dist: clean
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
mkdir -p ${DESTDIR}${PREFIX}/bin
|
mkdir -p ${DESTDIR}${PREFIX}/bin
|
||||||
cp -f dwm dwmc ${DESTDIR}${PREFIX}/bin
|
cp -f dwm ${DESTDIR}${PREFIX}/bin
|
||||||
chmod 755 ${DESTDIR}${PREFIX}/bin/dwm
|
chmod 755 ${DESTDIR}${PREFIX}/bin/dwm
|
||||||
mkdir -p ${DESTDIR}${MANPREFIX}/man1
|
mkdir -p ${DESTDIR}${MANPREFIX}/man1
|
||||||
sed "s/VERSION/${VERSION}/g" < dwm.1 > ${DESTDIR}${MANPREFIX}/man1/dwm.1
|
sed "s/VERSION/${VERSION}/g" < dwm.1 > ${DESTDIR}${MANPREFIX}/man1/dwm.1
|
||||||
|
|
72
config.h
72
config.h
|
@ -282,75 +282,3 @@ static Button buttons[] = {
|
||||||
{ ClkTagBar, 0, Button4, shiftview, {.i = -1} },
|
{ ClkTagBar, 0, Button4, shiftview, {.i = -1} },
|
||||||
{ ClkTagBar, 0, Button5, shiftview, {.i = 1} },
|
{ ClkTagBar, 0, Button5, shiftview, {.i = 1} },
|
||||||
};
|
};
|
||||||
|
|
||||||
void
|
|
||||||
setlayoutex(const Arg *arg)
|
|
||||||
{
|
|
||||||
setlayout(&((Arg) { .v = &layouts[arg->i] }));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
viewex(const Arg *arg)
|
|
||||||
{
|
|
||||||
view(&((Arg) { .ui = 1 << arg->ui }));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
viewall(const Arg *arg)
|
|
||||||
{
|
|
||||||
view(&((Arg){.ui = ~0}));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
toggleviewex(const Arg *arg)
|
|
||||||
{
|
|
||||||
toggleview(&((Arg) { .ui = 1 << arg->ui }));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
tagex(const Arg *arg)
|
|
||||||
{
|
|
||||||
tag(&((Arg) { .ui = 1 << arg->ui }));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
toggletagex(const Arg *arg)
|
|
||||||
{
|
|
||||||
toggletag(&((Arg) { .ui = 1 << arg->ui }));
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
tagall(const Arg *arg)
|
|
||||||
{
|
|
||||||
tag(&((Arg){.ui = ~0}));
|
|
||||||
}
|
|
||||||
|
|
||||||
/* signal definitions */
|
|
||||||
/* signum must be greater than 0 */
|
|
||||||
/* trigger signals using `xsetroot -name "fsignal:<signame> [<type> <value>]"` */
|
|
||||||
static Signal signals[] = {
|
|
||||||
/* signum function */
|
|
||||||
{ "focusstack", focusstack },
|
|
||||||
{ "setmfact", setmfact },
|
|
||||||
{ "togglebar", togglebar },
|
|
||||||
{ "incnmaster", incnmaster },
|
|
||||||
{ "togglefloating", togglefloating },
|
|
||||||
{ "focusmon", focusmon },
|
|
||||||
{ "tagmon", tagmon },
|
|
||||||
{ "zoom", zoom },
|
|
||||||
{ "view", view },
|
|
||||||
{ "viewall", viewall },
|
|
||||||
{ "viewex", viewex },
|
|
||||||
{ "toggleview", view },
|
|
||||||
{ "toggleviewex", toggleviewex },
|
|
||||||
{ "tag", tag },
|
|
||||||
{ "tagall", tagall },
|
|
||||||
{ "tagex", tagex },
|
|
||||||
{ "toggletag", tag },
|
|
||||||
{ "toggletagex", toggletagex },
|
|
||||||
{ "killclient", killclient },
|
|
||||||
{ "quit", quit },
|
|
||||||
{ "setlayout", setlayout },
|
|
||||||
{ "setlayoutex", setlayoutex },
|
|
||||||
{ "xrdb", xrdb },
|
|
||||||
};
|
|
||||||
|
|
52
dwm.c
52
dwm.c
|
@ -128,11 +128,6 @@ typedef struct {
|
||||||
const Arg arg;
|
const Arg arg;
|
||||||
} Key;
|
} Key;
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
const char * sig;
|
|
||||||
void (*func)(const Arg *);
|
|
||||||
} Signal;
|
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char *symbol;
|
const char *symbol;
|
||||||
void (*arrange)(Monitor *);
|
void (*arrange)(Monitor *);
|
||||||
|
@ -179,7 +174,6 @@ static void arrange(Monitor *m);
|
||||||
static void arrangemon(Monitor *m);
|
static void arrangemon(Monitor *m);
|
||||||
static void attach(Client *c);
|
static void attach(Client *c);
|
||||||
static void attachstack(Client *c);
|
static void attachstack(Client *c);
|
||||||
static int fake_signal(void);
|
|
||||||
static void buttonpress(XEvent *e);
|
static void buttonpress(XEvent *e);
|
||||||
static void checkotherwm(void);
|
static void checkotherwm(void);
|
||||||
static void cleanup(void);
|
static void cleanup(void);
|
||||||
|
@ -1088,49 +1082,6 @@ keypress(XEvent *e)
|
||||||
keys[i].func(&(keys[i].arg));
|
keys[i].func(&(keys[i].arg));
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
|
||||||
fake_signal(void)
|
|
||||||
{
|
|
||||||
char fsignal[256];
|
|
||||||
char indicator[9] = "fsignal:";
|
|
||||||
char str_sig[50];
|
|
||||||
char param[16];
|
|
||||||
int i, len_str_sig, n, paramn;
|
|
||||||
size_t len_fsignal, len_indicator = strlen(indicator);
|
|
||||||
Arg arg;
|
|
||||||
|
|
||||||
// Get root name property
|
|
||||||
if (gettextprop(root, XA_WM_NAME, fsignal, sizeof(fsignal))) {
|
|
||||||
len_fsignal = strlen(fsignal);
|
|
||||||
|
|
||||||
// Check if this is indeed a fake signal
|
|
||||||
if (len_indicator > len_fsignal ? 0 : strncmp(indicator, fsignal, len_indicator) == 0) {
|
|
||||||
paramn = sscanf(fsignal+len_indicator, "%s%n%s%n", str_sig, &len_str_sig, param, &n);
|
|
||||||
|
|
||||||
if (paramn == 1) arg = (Arg) {0};
|
|
||||||
else if (paramn > 2) return 1;
|
|
||||||
else if (strncmp(param, "i", n - len_str_sig) == 0)
|
|
||||||
sscanf(fsignal + len_indicator + n, "%i", &(arg.i));
|
|
||||||
else if (strncmp(param, "ui", n - len_str_sig) == 0)
|
|
||||||
sscanf(fsignal + len_indicator + n, "%u", &(arg.ui));
|
|
||||||
else if (strncmp(param, "f", n - len_str_sig) == 0)
|
|
||||||
sscanf(fsignal + len_indicator + n, "%f", &(arg.f));
|
|
||||||
else return 1;
|
|
||||||
|
|
||||||
// Check if a signal was found, and if so handle it
|
|
||||||
for (i = 0; i < LENGTH(signals); i++)
|
|
||||||
if (strncmp(str_sig, signals[i].sig, len_str_sig) == 0 && signals[i].func)
|
|
||||||
signals[i].func(&(arg));
|
|
||||||
|
|
||||||
// A fake signal was sent
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// No fake signal was sent, so proceed with update
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
killclient(const Arg *arg)
|
killclient(const Arg *arg)
|
||||||
{
|
{
|
||||||
|
@ -1411,8 +1362,7 @@ propertynotify(XEvent *e)
|
||||||
XPropertyEvent *ev = &e->xproperty;
|
XPropertyEvent *ev = &e->xproperty;
|
||||||
|
|
||||||
if ((ev->window == root) && (ev->atom == XA_WM_NAME)) {
|
if ((ev->window == root) && (ev->atom == XA_WM_NAME)) {
|
||||||
if (!fake_signal())
|
updatestatus();
|
||||||
updatestatus();
|
|
||||||
} else if (ev->state == PropertyDelete) {
|
} else if (ev->state == PropertyDelete) {
|
||||||
return; /* ignore */
|
return; /* ignore */
|
||||||
} else if ((c = wintoclient(ev->window))) {
|
} else if ((c = wintoclient(ev->window))) {
|
||||||
|
|
Loading…
Reference in a new issue