Added coordinate fix as an option
This commit is contained in:
parent
6641a2f082
commit
58705e5d1b
|
@ -32,6 +32,10 @@ Dock the bar at the bottom of the screen.
|
||||||
|
|
||||||
Force docking without asking the window manager. This is needed if the window manager isn't EWMH compliant.
|
Force docking without asking the window manager. This is needed if the window manager isn't EWMH compliant.
|
||||||
|
|
||||||
|
=item B<-c>
|
||||||
|
|
||||||
|
Fix the bar being positioned incorrectly by the window manager. This is only necessary for some window managers. It may break a multi-monitor setup.
|
||||||
|
|
||||||
=item B<-f> I<font>
|
=item B<-f> I<font>
|
||||||
|
|
||||||
Comma separated list of fonts, bar supports a maximum of two fonts.
|
Comma separated list of fonts, bar supports a maximum of two fonts.
|
||||||
|
|
8
bar.c
8
bar.c
|
@ -74,6 +74,7 @@ static monitor_t *monhead, *montail;
|
||||||
static font_t *main_font, *alt_font;
|
static font_t *main_font, *alt_font;
|
||||||
static uint32_t attrs = 0;
|
static uint32_t attrs = 0;
|
||||||
static bool dock = false;
|
static bool dock = false;
|
||||||
|
static bool fix_position = false;
|
||||||
static bool topbar = true;
|
static bool topbar = true;
|
||||||
static int bw = -1, bh = -1, bx = 0, by = 0;
|
static int bw = -1, bh = -1, bx = 0, by = 0;
|
||||||
static int bu = 1; /* Underline height */
|
static int bu = 1; /* Underline height */
|
||||||
|
@ -880,9 +881,12 @@ init (void)
|
||||||
|
|
||||||
/* Make sure the WM puts the window in the right place, since some don't
|
/* Make sure the WM puts the window in the right place, since some don't
|
||||||
* take (X,Y) coorinates into account when xcb_create_window is called */
|
* take (X,Y) coorinates into account when xcb_create_window is called */
|
||||||
|
if (fix_position)
|
||||||
|
{
|
||||||
const uint32_t coords[] = {mon->x,mon->y};
|
const uint32_t coords[] = {mon->x,mon->y};
|
||||||
xcb_configure_window(c,mon->window,XCB_CONFIG_WINDOW_X|XCB_CONFIG_WINDOW_Y,coords);
|
xcb_configure_window(c,mon->window,XCB_CONFIG_WINDOW_X|XCB_CONFIG_WINDOW_Y,coords);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
xcb_flush(c);
|
xcb_flush(c);
|
||||||
}
|
}
|
||||||
|
@ -1025,7 +1029,7 @@ main (int argc, char **argv)
|
||||||
ugc = fgc;
|
ugc = fgc;
|
||||||
|
|
||||||
char ch;
|
char ch;
|
||||||
while ((ch = getopt(argc, argv, "hg:bdf:a:pu:B:F:")) != -1) {
|
while ((ch = getopt(argc, argv, "hg:bdcf:a:pu:B:F:")) != -1) {
|
||||||
switch (ch) {
|
switch (ch) {
|
||||||
case 'h':
|
case 'h':
|
||||||
printf ("usage: %s [-h | -g | -b | -d | -f | -a | -p | -u | -B | -F]\n"
|
printf ("usage: %s [-h | -g | -b | -d | -f | -a | -p | -u | -B | -F]\n"
|
||||||
|
@ -1033,6 +1037,7 @@ main (int argc, char **argv)
|
||||||
"\t-g Set the bar geometry {width}x{height}+{xoffset}+{yoffset}\n"
|
"\t-g Set the bar geometry {width}x{height}+{xoffset}+{yoffset}\n"
|
||||||
"\t-b Put bar at the bottom of the screen\n"
|
"\t-b Put bar at the bottom of the screen\n"
|
||||||
"\t-d Force docking (use this if your WM isn't EWMH compliant)\n"
|
"\t-d Force docking (use this if your WM isn't EWMH compliant)\n"
|
||||||
|
"\t-c Coordinate fix (use if your WM doesn't position the bar correctly)\n"
|
||||||
"\t-f Bar font list, comma separated\n"
|
"\t-f Bar font list, comma separated\n"
|
||||||
"\t-p Don't close after the data ends\n"
|
"\t-p Don't close after the data ends\n"
|
||||||
"\t-u Set the underline/overline height in pixels\n"
|
"\t-u Set the underline/overline height in pixels\n"
|
||||||
|
@ -1043,6 +1048,7 @@ main (int argc, char **argv)
|
||||||
case 'p': permanent = true; break;
|
case 'p': permanent = true; break;
|
||||||
case 'b': topbar = false; break;
|
case 'b': topbar = false; break;
|
||||||
case 'd': dock = true; break;
|
case 'd': dock = true; break;
|
||||||
|
case 'c': fix_position = true; break;
|
||||||
case 'f': parse_font_list(optarg); break;
|
case 'f': parse_font_list(optarg); break;
|
||||||
case 'u': bu = strtoul(optarg, NULL, 10); break;
|
case 'u': bu = strtoul(optarg, NULL, 10); break;
|
||||||
case 'B': dbgc = bgc = parse_color(optarg, NULL, scr->black_pixel); break;
|
case 'B': dbgc = bgc = parse_color(optarg, NULL, scr->black_pixel); break;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user