7d2c7ab438
Previously, if you started several areas, one inside another, only the inermost one would get registered and eventually triggered. This patch fixes that, allowing you to use multiple areas around text to respond to several different buttons, for example, both scroll-up and scroll-down. If you define two areas that respond to the same button, only the innermost one would get triggered. I think this makes sense. |
||
---|---|---|
.gitignore | ||
.travis.yml | ||
bar.c | ||
LICENSE | ||
Makefile | ||
palette.pl | ||
README.pod |
=head1 NAME bar - bar ain't recursive =for HTML <a href="https://travis-ci.org/LemonBoy/bar"><img src="https://travis-ci.org/LemonBoy/bar.svg?branch=master"></a> =head1 SYNOPSIS I<bar> [-h | -g I<width>B<x>I<height>B<+>I<x>B<+>I<y> | -b | -d | -f I<font> | -p | -u I<pixel> | -B I<color> | -F I<color>] =head1 DESCRIPTION B<bar> is a lightweight bar entirely based on XCB. Provides full UTF-8 support, basic formatting, RandR and Xinerama support and EWMH compliance without wasting your precious memory. =head1 OPTIONS =over =item B<-h> Display the help and exit. =item B<-g> I<width>B<x>I<height>B<+>I<x>B<+>I<y> Set the window geometry. If a parameter is omitted it's filled with the default value. If the I<y> parameter is specified along with the B<-b> switch then the position is relative to the bottom of the screen. =item B<-b> Dock the bar at the bottom of the screen. =item B<-d> Force docking without asking the window manager. This is needed if the window manager isn't EWMH compliant. =item B<-f> I<font> Comma separated list of fonts, bar supports a maximum of five fonts (the limit can be tweaked by changing the MAX_FONT_COUNT parameter in the source). =item B<-p> Make bar permanent, don't exit after the standard input is closed. =item B<-u> I<pixel> Sets the underline width in pixels. The default is 1. =item B<-B> I<color> Set the background color of the bar. I<color> might be either in hex format (#aarrggbb) or in the symbolic name format (eg. white, indianred, darkgray). If no compositor such as compton or xcompmgr is running the alpha channel is silently ignored. =item B<-F> I<color> Set the foreground color of the bar. Accepts the same color formats as B<-B>. =back =head1 FORMATTING bar provides a screenrc-inspired formatting syntax to allow full customization at runtime. Every formatting block is opened with B<%{> and closed by B<}> and accepts the following commands, the parser tries it's best to handle malformed input. =over =item B<R> Swap the current background and foreground colors. =item B<l> Aligns the following text to the left side of the screen. =item B<c> Aligns the following text to the center of the screen. =item B<r> Aligns the following text to the right side of the screen. =item B<B>I<color> Set the text background color. The parameter I<color> can be I<-> or a color in one of the formats mentioned before. The special value I<-> resets the color to the default one. =item B<F>I<color> Set the text foreground color. The parameter I<color> can be I<-> or a color in one of the formats mentioned before. The special value I<-> resets the color to the default one. =item B<T>I<index> Set the font used to draw the following text. The parameter I<index> is a 1-based index of the font list supplied to bar. Any other value (for example I<->) resets bar to normal behaviour (matching the first font that can be used for that character). If the selected font can't be used to draw a character, bar will fall back to normal behaviour for that character. =item B<U>I<color> Set the text underline color. The parameter I<color> can be I<-> or a color in one of the formats mentioned before. The special value I<-> resets the color to the default one. =item B<A>I<button>:I<command>: Create a clickable area starting from the current position, when the area is clicked I<command> is executed. The area is closed when a B<A> token, not followed by : is encountered. Eg. I<%{A:reboot:} Click here to reboot %{A}> The I<button> field is optional, it defaults to the left button, and it's a number ranging from 1 to 5 which maps to the left, middle, right, scroll down and scroll up movements. Your mileage may vary. =item B<S>I<dir> Change the monitor bar is rendering to. I<dir> can be either =over =item B<+>/B<-> Next/previous monitor. =item B<f>/B<l> First/last monitor. =item I<0-9> Nth monitor. =back =back B<Attribute modifiers> =over =item B<+>I<attribute> Set the attribute I<attribute> for the following text. =item B<->I<attribute> Unset the attribute I<attribute> for the following text. =item B<!>I<attribute> Toggle the attribute I<attribute> for the following text. =back Where I<attribute> is one of the following =over =item B<o> Draw a line over the text. =item B<u> Draw a line under the text. =back =head1 OUTPUT Clicking on an area makes bar output the command to stdout, followed by a newline, allowing the user to pipe it into a script, execute it or simply ignore it. Simple and powerful, that's it. =head1 WWW L<git repository|https://github.com/LemonBoy/bar> =head1 AUTHOR 2012-2014 (C) The Lemon Man Xinerama support was kindly contributed by Stebalien RandR support was kindly contributed by jvvv Clickable areas support was heavily based off u-ra contribution