Go to file
Thomas Adam 482a383afa Don't ignore valid monitors
Rather than assume monitors are valid based on their width, just let the
usual RandR detection handle that.  This addresses the problem of
lemonbar "missing" certain monitors.

There's still more work to do here, but this is a stop-gap measure for
now.
2017-06-08 11:55:29 +01:00
.gitignore bar -> lemonbar in .gitignore, remove config.h in .gitignore 2015-10-20 19:56:29 -05:00
.travis.yml Update the .travis.yml to build all the features 2016-04-23 09:02:46 +02:00
lemonbar.c Don't ignore valid monitors 2017-06-08 11:55:29 +01:00
LICENSE Format LICENSE correctly 2012-07-24 12:08:12 +02:00
Makefile Merge branch 'master' into xft-port 2015-03-16 14:39:07 +01:00
README.pod Add support for named rand outputs 2017-05-12 23:01:30 +01:00

=head1 NAME

lemonbar - Featherweight lemon-scented bar

=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<lemonbar> [-h | -g I<width>B<x>I<height>B<+>I<x>B<+>I<y> | -b | -d | -f I<font> | -p | -n I<name> | -u I<pixel> | -B I<color> | -F I<color> | -U I<color> | -o I<offset> ]

=head1 DESCRIPTION

B<lemonbar> (formerly known as 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<-o> I<name>

Set next output to I<name>. May be used multiple times; order is significant. If any B<-o> options are given, only B<-o> specified monitors will be used. Invalid output names are silently ignored. (only supported on randr configurations at this time)

=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>

Define the font to load into one of the five slots (the number of slots is hardcoded and can be tweaked by
changing the MAX_FONT_COUNT parameter in the source code). This version supports fontconfig font specifiers and anti-aliased fonts.

=item B<-a> I<number>

Set number of clickable areas (default is 10)

=item B<-p>

Make the bar permanent, don't exit after the standard input is closed.

=item B<-n> I<name>

Set the WM_NAME atom value for the bar.

=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> must be specified in the hex format (#aarrggbb, #rrggbb, #rgb). 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>.

=item B<-o> I<offset>

Add a vertical offset to the text. I<offset> must be a number and can be negative. I<-o -3> will push the text 3 pixels up.

=item B<-U> I<color>

Set the underline color of the bar. Accepts the same color formats as B<-B>.

=back

=head1 FORMATTING

lemonbar provides a screenrc-inspired formatting syntax to allow full customization at runtime. Every formatting block is opened with C<%{> and closed by C<}> and accepts the following commands, the parser tries it's best to handle malformed input. Use C<%%> to get a literal percent sign (C<%>).

=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<O>I<width>

Offset the current position by I<width> pixels in the alignment direction.

=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> can either be I<-> or the 1-based index of the slot which contains the desired font. If the parameter is I<-> lemonbar resets to the normal behavior (matching the first font that can be used for the character). If the selected font can't be used to draw a character, lemonbar will fall back to normal behavior 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 printed on stdout. 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 up and scroll down movements. Your mileage may vary.

Nested clickable areas can trigger different commands.

Eg. I<%{A:reboot:}%{A3:halt:} Left click to reboot, right click to shutdown %{A}%{A}>

=item B<S>I<dir>

Change the monitor the bar is rendered 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.

=item I<n>B<NAME>

Named monitor.
Eg. I<%{SnHDMI-0} This text will show up on the HDMI-0 output>

=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 lemonbar 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-2015 (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