46 Commits

Author SHA1 Message Date
LemonBoy
ebb625b529 Minor spelling errors 2015-03-15 21:35:54 +01:00
LemonBoy
72106b17b1 Change the project name to lemonbar 2015-03-14 13:51:29 +01:00
LemonBoy
19167c2e55 Remove the now useless palette.pl script 2015-03-08 19:45:47 +01:00
LemonBoy
fe4ff881dd Fix a silly error when redrawing the background. Fixes #108 and #82 2015-03-03 11:29:35 +01:00
Giuseppe
75dbf3397e Merge pull request #106 from otommod/click-fix
Fix #105
2015-02-27 15:53:19 +01:00
Otto Modinos
eeb88f8ae0 fix non left alignments causing wrong clicks 2015-02-27 15:57:19 +02:00
LemonBoy
d32cd8bce9 Prevent a NULL pointer deference if monitor_create fails 2015-02-18 12:52:24 +01:00
LemonBoy
5186f68658 Fix the 'T' command parsing 2015-02-16 14:22:34 +01:00
LemonBoy
4ee19586a3 Put the elements of rgba_t in the right order. Thanks to @mrshankly for noticing it 2015-02-15 23:54:04 +01:00
Giuseppe
1ef64eab99 Merge pull request #104 from andornaut/patch-1
Document #97 - Nested clickable areas
2015-02-14 00:47:02 +01:00
andornaut
ab3a49962f Document #97 - Nested clickable areas 2015-02-13 18:43:50 -05:00
LemonBoy
8351859593 Support colors in #rrggbb form 2015-02-14 00:32:16 +01:00
LemonBoy
2778c81699 Make bar compile with -Wall and no warning 2015-02-14 00:20:46 +01:00
LemonBoy
d8443785a8 Treat getopt return value as int instead of char. Avoids bar getting stuck in an endless loop on PPC platforms. (Thanks to @electro7) 2015-02-14 00:09:34 +01:00
LemonBoy
704ba652d9 Clean up the code doing color parsing and handling. Implement gradients as a bonus feature (not yet exposed) 2015-02-14 00:06:43 +01:00
LemonBoy
392f23ef36 Strip all the unnecessary stuff when parsing the font list 2015-02-13 14:23:05 +01:00
Giuseppe
7f1f722965 Merge pull request #102 from mrshankly/fix-typo
Fix typo in README.pod about the scroll up/down buttons
2015-02-11 21:15:26 +01:00
João Marques
927c05604c Fix typo in README.pod about the scroll up/down buttons 2015-02-11 20:03:31 +00:00
Giuseppe
0affee3d2f Merge pull request #97 from otommod/stacking-clicks
Allow having clickable areas one inside another
2015-02-11 15:05:33 +01:00
Otto Modinos
8492309a88 change comment style 2015-02-11 14:54:47 +02:00
Otto Modinos
a313800686 move a declaration to the top of the function 2015-02-11 14:53:13 +02:00
Otto Modinos
4ad9cbd823 remove duplicate test 2015-02-11 14:53:12 +02:00
Otto Modinos
bb466a8c16 area_add: Use str directly
I don't why p was used, if there was a reason, please don't merge.
2015-02-11 14:52:44 +02:00
Otto Modinos
3483f1b083 typo, whitin -> within 2015-02-11 14:51:32 +02:00
Otto Modinos
7d2c7ab438 Allow having clickable areas inside another
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.
2015-02-11 14:51:10 +02:00
LemonBoy
e197a15c3a Fix a silly bound-checking error. (#101)
Close a long-standing PR by configuring the window position after mapping it
Set the window title
2015-02-10 20:35:11 +01:00
LemonBoy
6959085f8d Fixed two memory leaks. Don't treat unicode sequences over two bytes long as latin1 codepoints (fixes #99). 2015-01-25 21:14:06 +01:00
Giuseppe
78dc0d0d21 Merge pull request #98 from flannelhead/font-selection
Font selection
2015-01-21 20:12:05 +01:00
Sakari Kapanen
3b8afc6b05 Allow explicitly specifying the font with %{Tindex} 2015-01-21 20:43:22 +02:00
Giuseppe
c39c4e4d8b Merge pull request #95 from jvvv/master
Add break from main loop when X conn has error
2015-01-07 11:32:03 +01:00
John Vogel
145c66b471 Add break from main loop when X conn has error 2015-01-06 18:44:19 -05:00
LemonBoy
5746d15cf8 Handle escaped : in clickable areas. Fixes #92 2014-12-13 12:12:34 +01:00
LemonBoy
3c2b9ff150 Fix alpha mixing as suggested in #75 2014-11-21 14:19:31 +01:00
LemonBoy
95c41381ac Fix a silly off-by-one in the font cache code. Thanks to @easysid for noticing it! 2014-11-18 23:37:43 +01:00
Giuseppe
e9cdee9701 Merge pull request #78 from rootcoma/fix_click_area
Fix the bounds checking for area_get.
2014-08-27 10:24:08 +02:00
LemonBoy
dbbdf373a3 Better alpha mixing, should produce correct results 2014-08-20 22:42:10 +02:00
rootcoma
c258d0a0fa Fix the bounds checking for area_get.
Mouse at far left (x=0) would not be able to click an area that starts at 0.
2014-08-08 08:06:33 -07:00
LemonBoy
8475ff4fdb Small documentation update 2014-08-08 13:49:45 +02:00
LemonBoy
28b0db1cfa Little documentation fix, closes #73 2014-08-08 11:15:57 +02:00
LemonBoy
69e8ac6f07 Fix #69. Thanks @matchew ! 2014-07-24 10:50:31 +02:00
Giuseppe
6df9a2dd68 Merge pull request #70 from graboy/master
Optional support for more than two fonts, fixed issue #68
2014-07-23 21:29:03 +02:00
Grayson MacKenzie
02627e7609 Minor syntax cleanup. Changed parameter of select_drawable_font() to const 2014-07-22 18:35:21 -04:00
Grayson MacKenzie
1c106dbfd0 Added font caching 2014-07-22 17:23:56 -04:00
Grayson MacKenzie
128e212c14 General style cleanups. 2014-07-22 16:14:48 -04:00
Grayson MacKenzie
d22cd1561b Fixed #68 2014-07-22 15:20:21 -04:00
Grayson MacKenzie
f3e9df4a97 Added support for greater than two fonts. 2014-07-22 14:47:41 -04:00
4 changed files with 531 additions and 315 deletions

View File

@@ -1,12 +1,19 @@
# This snippet has been shmelessly stol^Hborrowed from thestinger's repose Makefile
VERSION = 1.1
GIT_DESC=$(shell test -d .git && git describe --always 2>/dev/null)
ifneq "$(GIT_DESC)" ""
VERSION=$(GIT_DESC)
endif
CC ?= gcc CC ?= gcc
STRIP ?= strip CFLAGS += -Wall -std=c99 -Os -DVERSION="\"$(VERSION)\""
CFLAGS = -std=c99 -Os LDFLAGS += -lxcb -lxcb-xinerama -lxcb-randr
LDFLAGS = -lxcb -lxcb-xinerama -lxcb-randr
CFDEBUG = -g3 -pedantic -Wall -Wunused-parameter -Wlong-long \ CFDEBUG = -g3 -pedantic -Wall -Wunused-parameter -Wlong-long \
-Wsign-conversion -Wconversion -Wimplicit-function-declaration -Wsign-conversion -Wconversion -Wimplicit-function-declaration
EXEC = bar EXEC = lemonbar
SRCS = bar.c SRCS = lemonbar.c
OBJS = ${SRCS:.c=.o} OBJS = ${SRCS:.c=.o}
PREFIX?=/usr PREFIX?=/usr
@@ -15,14 +22,13 @@ BINDIR=${PREFIX}/bin
all: ${EXEC} all: ${EXEC}
doc: README.pod doc: README.pod
pod2man --section=1 --center="bar Manual" --name "bar" --release="bar $(shell git describe --always)" README.pod > bar.1 pod2man --section=1 --center="lemonbar Manual" --name "lemonbar" --release="lemonbar $(VERSION)" README.pod > lemonbar.1
.c.o: .c.o:
${CC} ${CFLAGS} -o $@ -c $< ${CC} ${CFLAGS} -o $@ -c $<
${EXEC}: ${OBJS} ${EXEC}: ${OBJS}
${CC} -o ${EXEC} ${OBJS} ${LDFLAGS} ${CC} -o ${EXEC} ${OBJS} ${LDFLAGS}
${STRIP} -s ${EXEC}
debug: ${EXEC} debug: ${EXEC}
debug: CC += ${CFDEBUG} debug: CC += ${CFDEBUG}
@@ -31,12 +37,12 @@ clean:
rm -f ./*.o ./*.1 rm -f ./*.o ./*.1
rm -f ./${EXEC} rm -f ./${EXEC}
install: bar doc install: lemonbar doc
install -D -m 755 bar ${DESTDIR}${BINDIR}/bar install -D -m 755 lemonbar ${DESTDIR}${BINDIR}/lemonbar
install -D -m 644 bar.1 ${DESTDIR}${PREFIX}/share/man/man1/bar.1 install -D -m 644 lemonbar.1 ${DESTDIR}${PREFIX}/share/man/man1/lemonbar.1
uninstall: uninstall:
rm -f ${DESTDIR}${BINDIR}/bar rm -f ${DESTDIR}${BINDIR}/lemonbar
rm -f $(DESTDIR)$(PREFIX)/share/man/man1/bar.1 rm -f $(DESTDIR)$(PREFIX)/share/man/man1/lemonbar.1
.PHONY: all debug clean install .PHONY: all debug clean install

View File

@@ -1,16 +1,16 @@
=head1 NAME =head1 NAME
bar - bar ain't recursive 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> =for HTML <a href="https://travis-ci.org/LemonBoy/bar"><img src="https://travis-ci.org/LemonBoy/bar.svg?branch=master"></a>
=head1 SYNOPSIS =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>] I<lemonbar> [-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 =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. 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 =head1 OPTIONS
@@ -34,11 +34,11 @@ Force docking without asking the window manager. This is needed if the window ma
=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, lemonbar supports a maximum of five fonts (the limit can be tweaked by changing the MAX_FONT_COUNT parameter in the source).
=item B<-p> =item B<-p>
Make bar permanent, don't exit after the standard input is closed. Make the bar permanent, don't exit after the standard input is closed.
=item B<-u> I<pixel> =item B<-u> I<pixel>
@@ -46,7 +46,7 @@ Sets the underline width in pixels. The default is 1.
=item B<-B> I<color> =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, brightred, darkgray). If no compositor such as compton or xcompmgr is running the alpha channel is silently ignored. 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> =item B<-F> I<color>
@@ -56,7 +56,7 @@ Set the foreground color of the bar. Accepts the same color formats as B<-B>.
=head1 FORMATTING =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. lemonbar 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 =over
@@ -84,6 +84,10 @@ Set the text background color. The parameter I<color> can be I<-> or a color in
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. 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 the 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, lemonbar will fall back to normal behaviour for that character.
=item B<U>I<color> =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. 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.
@@ -94,11 +98,15 @@ Create a clickable area starting from the current position, when the area is cli
Eg. I<%{A:reboot:} Click here to reboot %{A}> 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. 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> =item B<S>I<dir>
Change the monitor bar is rendering to. I<dir> can be either Change the monitor the bar is rendered to. I<dir> can be either
=over =over
@@ -152,7 +160,7 @@ Draw a line under the text.
=head1 OUTPUT =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. 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 =head1 WWW
@@ -160,7 +168,7 @@ L<git repository|https://github.com/LemonBoy/bar>
=head1 AUTHOR =head1 AUTHOR
2012-2014 (C) The Lemon Man 2012-2015 (C) The Lemon Man
Xinerama support was kindly contributed by Stebalien Xinerama support was kindly contributed by Stebalien

File diff suppressed because it is too large Load Diff

View File

@@ -1,36 +0,0 @@
#!/usr/bin/env perl
#
# palette.pl
#
# Converts your .Xdefault/.Xresources colors into a ready to paste palette
# for bar. It takes your foreground/background settings into account and if
# it cant find them it leaves COLOR0/COLOR1 undefined.
#
use strict;
use warnings;
open (F, "<".$ARGV[0]) || die "Can't open!";
our %vars = ();
while (<F>) {
# Don't match comments
if ($_ !~ m/^\s*!/) {
# It's a define!
if ($_ =~ m/^\s*#define\s+(\w+)\s+#([0-9A-Fa-f]{1,6})/) {
$vars{"$1"} = hex($2);
}
elsif ($_ =~ m/^\s*\w*\*(background|foreground|color\d)\s*:\s*([\w\d#]+)/) {
my ($name, $value) = (uc $1, $2);
# Check if it's a color
if (substr($value, 0, 1) eq '#') {
$value = hex(substr($value, 1));
} else {
$value = $vars{"$value"};
}
printf "#define $name 0x%06x\n", $value;
}
}
}