static const char *cvstag = "$scrotwm$";
-#define SWM_VERSION "0.9"
+#define SWM_VERSION "0.9.1"
#include <stdio.h>
#include <stdlib.h>
int bar_extra_running = 0;
int bar_verbose = 1;
int bar_height = 0;
+int clock_enabled = 1;
pid_t bar_pid;
GC bar_gc;
XGCValues bar_gcv;
int bar_fidx = 0;
XFontStruct *bar_fs;
char *bar_fonts[] = {
- "-*-terminus-*-*-*-*-*-*-*-*-*-*-*-*",
+ "-*-terminus-medium-*-*-*-*-*-*-*-*-*-*-*",
"-*-times-medium-r-*-*-*-*-*-*-*-*-*-*",
NULL
};
void grabbuttons(struct ws_win *, int);
void new_region(struct swm_screen *, int, int, int, int);
+void update_modkey(unsigned int);
struct layout {
void (*l_stack)(struct workspace *, struct swm_geometry *);
char *line, *cp, *var, *val;
size_t len, lineno = 0;
int i, sc;
+ unsigned int modkey;
DNPRINTF(SWM_D_MISC, "conf_load: filename %s\n", filename);
break;
case 'c':
- if (!varmatch(var, "color_focus", &i))
+ if (!strncmp(var, "clock_enabled", strlen("clock_enabled")))
+ clock_enabled = atoi(val);
+ else if (!varmatch(var, "color_focus", &i))
setscreencolor(val, i, SWM_S_COLOR_FOCUS);
else if (!varmatch(var, "color_unfocus", &i))
setscreencolor(val, i, SWM_S_COLOR_UNFOCUS);
goto bad;
break;
+ case 'm':
+ if (!strncmp(var, "modkey", strlen("modkey"))) {
+ modkey = MODKEY;
+ if (!strncmp(val, "Mod2", strlen("Mod2")))
+ modkey = Mod2Mask;
+ else if (!strncmp(val, "Mod3", strlen("Mod3")))
+ modkey = Mod3Mask;
+ else if (!strncmp(val, "Mod4", strlen("Mod4")))
+ modkey = Mod4Mask;
+ else
+ modkey = Mod1Mask;
+ update_modkey(modkey);
+ } else
+ goto bad;
+ break;
+
case 'r':
if (!strncmp(var, "region", strlen("region")))
custom_region(val);
} else
strlcpy(bar_ext, "", sizeof bar_ext);
- time(&tmt);
- localtime_r(&tmt, &tm);
- strftime(s, sizeof s, "%a %b %d %R %Z %Y", &tm);
+ if (clock_enabled == 0)
+ strlcpy(s, "", sizeof s);
+ else {
+ time(&tmt);
+ localtime_r(&tmt, &tm);
+ strftime(s, sizeof s, "%a %b %d %R %Z %Y ", &tm);
+ }
for (i = 0; i < ScreenCount(display); i++) {
x = 1;
TAILQ_FOREACH(r, &screens[i].rl, entry) {
- snprintf(loc, sizeof loc, "%s %d:%d %s %s",
- s, x++, r->ws->idx + 1, bar_ext, bar_vertext);
+ snprintf(loc, sizeof loc, "%d:%d %s%s %s",
+ x++, r->ws->idx + 1, s, bar_ext, bar_vertext);
bar_print(r, loc);
}
}
};
void
+update_modkey(unsigned int mod)
+{
+ int i;
+
+ for (i = 0; i < LENGTH(keys); i++)
+ if (keys[i].mod & ShiftMask)
+ keys[i].mod = mod | ShiftMask;
+ else
+ keys[i].mod = mod;
+
+ for (i = 0; i < LENGTH(buttons); i++)
+ if (buttons[i].mask & ShiftMask)
+ buttons[i].mask = mod | ShiftMask;
+ else
+ buttons[i].mask = mod;
+}
+
+void
updatenumlockmask(void)
{
unsigned int i, j;
DNPRINTF(SWM_D_EVENT, "configurenotify: window: %lu\n",
e->xconfigure.window);
+ XMapWindow(display, e->xconfigure.window);
win = find_window(e->xconfigure.window);
- XMapWindow(display, win->id);
- XGetWMNormalHints(display, win->id, &win->sh, &mask);
- adjust_font(win);
- XMapWindow(display, win->id);
- if (font_adjusted)
- stack();
+ if (win) {
+ XGetWMNormalHints(display, win->id, &win->sh, &mask);
+ adjust_font(win);
+ XMapWindow(display, win->id);
+ if (font_adjusted)
+ stack();
+ }
}
void