Merge branch 'master' of github.com:LemonBoy/bar

* 'master' of github.com:LemonBoy/bar:
  Minor spelling errors
  Change the project name to lemonbar
  Remove the now useless palette.pl script
This commit is contained in:
krypt-n 2015-03-16 14:35:05 +01:00
commit 854af9cbad
4 changed files with 40 additions and 67 deletions

View File

@ -1,11 +1,19 @@
CC ?= gcc # This snippet has been shmelessly stol^Hborrowed from thestinger's repose Makefile
CFLAGS = -Wall -std=c99 -Os VERSION = 1.1
LDFLAGS = -lxcb -lxcb-xinerama -lxcb-randr GIT_DESC=$(shell test -d .git && git describe --always 2>/dev/null)
CFDEBUG = -g3 -pedantic -Wall -Wunused-parameter -Wlong-long\
-Wsign-conversion -Wconversion -Wimplicit-function-declaration
EXEC = bar ifneq "$(GIT_DESC)" ""
SRCS = bar.c VERSION=$(GIT_DESC)
endif
CC ?= gcc
CFLAGS += -Wall -std=c99 -Os -DVERSION="\"$(VERSION)\""
LDFLAGS += -lxcb -lxcb-xinerama -lxcb-randr
CFDEBUG = -g3 -pedantic -Wall -Wunused-parameter -Wlong-long \
-Wsign-conversion -Wconversion -Wimplicit-function-declaration
EXEC = lemonbar
SRCS = lemonbar.c
OBJS = ${SRCS:.c=.o} OBJS = ${SRCS:.c=.o}
PREFIX?=/usr PREFIX?=/usr
@ -14,7 +22,7 @@ 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 $<
@ -29,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 five fonts (the limit can be tweaked by changing the MAX_FONT_COUNT parameter in the source). 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>
@ -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
@ -86,7 +86,7 @@ Set the text foreground color. The parameter I<color> can be I<-> or a color in
=item B<T>I<index> =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. 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>
@ -98,7 +98,7 @@ 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 up and scroll down 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. Nested clickable areas can trigger different commands.
@ -106,7 +106,7 @@ Eg. I<%{A:reboot:}%{A3:halt:} Left click to reboot, right click to shutdown %{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
@ -160,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
@ -168,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

View File

@ -285,7 +285,7 @@ parse_color (const char *str, char **end, const rgba_t def)
nc_reply = xcb_alloc_named_color_reply(c, xcb_alloc_named_color(c, colormap, string_len, str), NULL); nc_reply = xcb_alloc_named_color_reply(c, xcb_alloc_named_color(c, colormap, string_len, str), NULL);
if (!nc_reply) if (!nc_reply)
fprintf(stderr, "Could not alloc color \"%.*s\"\n", string_len, str); fprintf(stderr, "Could not allocate the color \"%.*s\"\n", string_len, str);
ret = nc_reply? ret = nc_reply?
(rgba_t)nc_reply->pixel: (rgba_t)nc_reply->pixel:
@ -446,7 +446,7 @@ select_drawable_font (const uint16_t c)
if (font_index != -1 && font_has_glyph(font_list[font_index - 1], c)) if (font_index != -1 && font_has_glyph(font_list[font_index - 1], c))
return font_list[font_index - 1]; return font_list[font_index - 1];
// If the end is reached without finding an apropriate font, return NULL. // If the end is reached without finding an appropriate font, return NULL.
// If the font can draw the character, return it. // If the font can draw the character, return it.
for (int i = 0; i < font_count; i++) { for (int i = 0; i < font_count; i++) {
if (font_has_glyph(font_list[i], c)) if (font_has_glyph(font_list[i], c))
@ -899,7 +899,7 @@ get_randr_monitors (void)
continue; continue;
for (j = 0; j < num; j++) { for (j = 0; j < num; j++) {
// Does I countain J ? // Does I contain J ?
if (i != j && rects[j].width) { if (i != j && rects[j].width) {
if (rects[j].x >= rects[i].x && rects[j].x + rects[j].width <= rects[i].x + rects[i].width && if (rects[j].x >= rects[i].x && rects[j].x + rects[j].width <= rects[i].x + rects[i].width &&
@ -975,7 +975,7 @@ get_visual (void)
return scr->root_visual; return scr->root_visual;
} }
// Parse an X-styled geometry string, we don't support signed offsets tho. // Parse an X-styled geometry string, we don't support signed offsets though.
bool bool
parse_geometry_string (char *str, int *tmp) parse_geometry_string (char *str, int *tmp)
{ {
@ -1115,7 +1115,7 @@ init (void)
// Generate a list of screens // Generate a list of screens
const xcb_query_extension_reply_t *qe_reply; const xcb_query_extension_reply_t *qe_reply;
// Initialiaze monitor list head and tail // Initialize monitor list head and tail
monhead = montail = NULL; monhead = montail = NULL;
// Check if RandR is present // Check if RandR is present
@ -1254,10 +1254,11 @@ main (int argc, char **argv)
while ((ch = getopt(argc, argv, "hg:bdf:a:pu:B:F:")) != -1) { while ((ch = getopt(argc, argv, "hg:bdf:a:pu:B:F:")) != -1) {
switch (ch) { switch (ch) {
case 'h': case 'h':
printf ("lemonbar version %s\n", VERSION);
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"
"\t-h Show this help\n" "\t-h Show this help\n"
"\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 the 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-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"
@ -1306,7 +1307,7 @@ main (int argc, char **argv)
parse(input); parse(input);
redraw = true; redraw = true;
} }
if (pollin[1].revents & POLLIN) { // Xserver broadcasted an event if (pollin[1].revents & POLLIN) { // The event comes from the Xorg server
while ((ev = xcb_poll_for_event(c))) { while ((ev = xcb_poll_for_event(c))) {
expose_ev = (xcb_expose_event_t *)ev; expose_ev = (xcb_expose_event_t *)ev;

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;
}
}
}