* Copyright (c) 2009 Marco Peereboom <marco@peereboom.us>
* Copyright (c) 2009 Ryan McBride <mcbride@countersiege.com>
* Copyright (c) 2009 Darrin Chandler <dwchandler@stilyagin.com>
+ * Copyright (c) 2009 Pierre-Yves Ritschard <pyr@spootnik.org>
*
* Permission to use, copy, modify, and distribute this software for any
* purpose with or without fee is hereby granted, provided that the above
int bar_verbose = 1;
int bar_height = 0;
int clock_enabled = 1;
+int title_name_enabled = 0;
+int title_class_enabled = 0;
pid_t bar_pid;
GC bar_gc;
XGCValues bar_gcv;
case 't':
if (!strncmp(var, "term_width", strlen("term_width")))
term_width = atoi(val);
+ else if (!strncmp(var, "title_class_enabled",
+ strlen("title_class_enabled")))
+ title_class_enabled = atoi(val);
+ else if (!strncmp(var, "title_name_enabled",
+ strlen("title_name_enabled")))
+ title_name_enabled = atoi(val);
else
goto bad;
break;
char s[SWM_BAR_MAX];
char loc[SWM_BAR_MAX];
char *b;
+ XClassHint *xch;
+ Status status;
if (bar_enabled == 0)
return;
localtime_r(&tmt, &tm);
strftime(s, sizeof s, "%a %b %d %R %Z %Y ", &tm);
}
+ xch = NULL;
+ if ((title_name_enabled == 1 || title_class_enabled == 1) &&
+ cur_focus != NULL) {
+ if ((xch = XAllocClassHint()) == NULL)
+ goto out;
+ status = XGetClassHint(display, cur_focus->id, xch);
+ if (status == BadWindow || status == BadAlloc)
+ goto out;
+ if (title_name_enabled)
+ strlcat(s, xch->res_name, sizeof s);
+ if (title_name_enabled && title_class_enabled)
+ strlcat(s, " ", sizeof s);
+ if (title_class_enabled)
+ strlcat(s, xch->res_class, sizeof s);
+ }
+out:
+ if (xch)
+ XFree(xch);
for (i = 0; i < ScreenCount(display); i++) {
x = 1;
TAILQ_FOREACH(r, &screens[i].rl, entry) {
int w_inc = 1, h_inc, w_base = 1, h_base;
int hrh, extra = 0, h_slice, last_h = 0;
int split, colno, winno, mwin, msize, mscale;
- int remain, missing, v_slice;;
+ int remain, missing, v_slice;
unsigned int mask;
DNPRINTF(SWM_D_STACK, "stack_master: workspace: %d\n rot=%s flip=%s",
*mod |= Mod4Mask;
else if (strncasecmp(name, "SHIFT", SWM_MODNAME_SIZE) == 0)
*mod |= ShiftMask;
+ else if (strncasecmp(name, "CONTROL", SWM_MODNAME_SIZE) == 0)
+ *mod |= ControlMask;
else {
*ks = XStringToKeysym(name);
XConvertCase(*ks, ks, &uks);