Michael Stapelberg
d51173b2ba
i3-nagbar: take our terminal execution kludge to the next level
...
Please read commit 2bf80528bd
first.
Then read the comment within the code of this commit.
Then run in circles and cry loudly.
fixes #1002
fixes #1026
2013-06-10 22:55:39 +02:00
Michael Stapelberg
fa1b436fca
Bugfix: mark IPC fd CLOEXEC (Thanks Layus)
...
Without this fix, children of i3bar would inherit the file descriptor of
the IPC connection to i3. Therefore, even if i3bar exits with SIGSEGV,
the connection to i3 stays open. Because nobody actually reads any
messages by i3, the buffer will fill up and i3 can’t deliver any more
messages, and thus busy-loops at that point.
fixes #995
2013-04-14 10:12:21 +02:00
Michael Stapelberg
62b0df0640
Make i3-nagbar use the same font as configured for i3
2013-01-26 09:55:38 +01:00
Michael Stapelberg
dcb8ac84f8
ipc_recv_message: store message_type, don’t compare. add distinct EOF retval
...
Also use ELOG, which requires i3-msg to provide logging functions.
2013-01-23 18:51:39 +01:00
Michael Stapelberg
7b0d75ee0a
ipc_send_message: use stack frame with fixed size
2013-01-11 19:09:41 +01:00
Michael Stapelberg
fc0e80ee7f
Merge branch 'master' into next
2013-01-09 18:11:17 +01:00
Michael Stapelberg
f5b7bfb12e
Bugfix: fix IPC messages writes with low buffer sizes (Thanks jasper, dcoppa)
...
Use the following command to reproduce this bug:
echo 4096 | sudo tee /proc/sys/net/core/wmem_default
Then just switch workspaces with some windows on it and i3bar would
exit due to malformed IPC messages.
This bug hits OpenBSD users (and possibly other BSDs) due to their lower
default buffer size.
fixes #896
2013-01-09 18:11:03 +01:00
Michael Stapelberg
9882a4dc09
fix formatting in get_process_filename.c
2012-12-24 16:57:30 +01:00
Michael Stapelberg
b3d7531947
refactor both i3-nagbar starts into src/util.c
...
With this change, libev >= 4 is a hard dependency. It should be present
in all major linux distributions (even the latest ubuntu LTS).
2012-12-24 16:53:20 +01:00
Kacper Kowalik (Xarthisius)
ef81bd183b
Repect AR environment variable
2012-12-17 10:24:42 +01:00
Quentin Glidic
f0d2d84b1c
libi3/font: Use "pango:" prefix to avoid confusion
...
Also add a user-friendly font description syntax to userguide
2012-11-07 21:23:21 +01:00
Michael Stapelberg
e4019caf7e
clean old and new libi3 (Thanks SardemFF7)
2012-09-20 10:55:26 +02:00
Michael Stapelberg
b9fde552d0
fix make clean targets
2012-09-19 18:05:51 +02:00
Michael Stapelberg
4636eb840d
fix compilation with older xcb-util with -DXCB_COMPAT (Thanks okraits)
2012-09-03 14:55:27 +02:00
Michael Stapelberg
125bf09e70
pango: divide by PANGO_SCALE to get a "normal" font size
2012-08-13 13:39:58 +02:00
Michael Stapelberg
2896ae8057
logging: make libi3 use verboselog()/errorlog(), provide it in each caller
...
While this is a bit ugly, it makes the log messages end up where they
are supposed to: in the shmlog/stdout in case of i3 and on stdout in
case of utilities such as i3-input
2012-08-13 13:27:16 +02:00
Quentin Glidic
310f542937
libi3/font: Log the used font
2012-08-13 11:39:30 +02:00
Fernando Tarlá Cardoso Lemos
6ff3f7abad
libi3: Implement Pango rendering
2012-08-13 11:39:30 +02:00
Fernando Tarlá Cardoso Lemos
ec17a26b0e
libi3: Rework font to support multiple backends
2012-08-13 11:39:29 +02:00
Fernando Tarlá Cardoso Lemos
5d8ccc5912
libi3: Introduce get_visualtype
2012-08-13 11:37:34 +02:00
Quentin Glidic
210fc6dfed
libi3: Rework predict_text_width
...
predict_text_width now takes an i3String as argument
2012-08-13 11:37:23 +02:00
Quentin Glidic
53365fa887
libi3: Rework draw_text
...
We now have two versions of draw_text
draw_text: Now takes an i3String
draw_text_ascii: Designed for static strings in plain ASCII
2012-08-13 11:37:21 +02:00
Fernando Tarlá Cardoso Lemos
7f22d4fe32
libi3: Implement i3String
...
New type designed to handle UCS-2/UTF-8 conversion nicely
2012-08-13 11:29:18 +02:00
Michael Stapelberg
b8e782c983
root_atom_contents: handle CARDINAL atoms such as I3_PID
2012-08-12 14:30:24 +02:00
Quentin Glidic
c7029a5e21
common.mk: Introduce I3_*FLAGS
...
CPPFLGES, CFLAGS and LDFLAGS should be user variables
We now provide default flags but use I3_*FLAGS flags for our own needed
flags
Also reoder lib flags a bit
2012-07-22 23:53:49 +02:00
Quentin Glidic
3b1b72ecbb
*.mk: Support passing specific CFLAGS/LIBS
2012-07-22 23:53:13 +02:00
Quentin Glidic
e452acb30e
Add stub Makefiles to allow subdir make calls
2012-07-22 19:57:48 +02:00
Quentin Glidic
e3b9ffe381
Move libi3 to the new Makefile layout
2012-07-22 19:57:21 +02:00
Michael Stapelberg
f229570bbc
remove unused variable
2012-05-09 19:58:50 +02:00
Michael Stapelberg
eeb6ff9237
Move is_debug_build() to libi3/
2012-05-09 19:12:20 +02:00
Michael Stapelberg
206b96202c
Use (void) instead of () for functions without args (Thanks fernandotcl)
...
See also:
http://article.gmane.org/gmane.linux.kernel/1268792
The C compiler will handle (void) as "no arguments" and () as "variadic
function" (equivalent to (...)) which might lead to subtle errors, such
as the one which was fixed with commit 0ea64ae4
.
2012-03-31 10:53:04 +02:00
Fernando Tarlá Cardoso Lemos
95f510e724
Don't multiply by sizeof(char) twice.
...
This is a no-op, since sizeof(char) is 1. But still, we shouldn't
multiply twice, it's misleading.
2012-03-26 16:47:44 +02:00
Fernando Tarlá Cardoso Lemos
484c2a697b
Document text_len in the draw_text description.
2012-03-26 16:47:23 +02:00
Michael Stapelberg
58ecd14900
Implement support for chosing a 32 bit visual (necessary for pseudo-transparency) (Thanks darkraven)
...
You need to specify the --enable-32bit-visual flag when starting i3. This is
done because everything feels sluggish on my system when using a 32 bit visual
instead of a 24 bit visual. Fast > fancy.
2012-02-15 18:56:07 +00:00
Michael Stapelberg
dee7c07ad2
shmlog: store meta information in the buffer itself, store path as X11 atom
...
This makes i3-dump-log completely independent of a running i3 instance.
2012-01-06 23:40:07 +00:00
Fernando Tarlá Cardoso Lemos
0e6d1909b8
Handle the case where there's no font char infos.
...
Fixes i3bar crash with some fonts (and possible i3 crash too).
Thanks to xeen for reporting the issue.
2011-11-27 19:58:06 +00:00
Fernando Tarlá Cardoso Lemos
340592a532
Invalidate cached pixmaps on reload and redraw.
...
After a reload, the drawing parameters for the decorations might
have changed, so we need to invalidate the cache and force a redraw
of the currently visible decorations. Also, don't leak the previous
font when reloading by freeing it before parsing the config.
2011-11-26 21:51:49 +00:00
Michael Stapelberg
561cf3719f
little style fixes
2011-11-21 21:48:24 +00:00
Fernando Tarlá Cardoso Lemos
344c04af12
Implement set_font_colors.
...
This paves the way for other font rendering backends. Fonts and
colors shouldn't be specified manually from now on.
2011-11-21 20:52:32 +00:00
Fernando Tarlá Cardoso Lemos
5c2088c87e
Enhance libi3 and use it in i3bar.
...
Abstracted draw_text and predict_text_width into libi3. Use
predict_text_width from libi3 in i3 too. This required tracking
xcb_connection in a xcb_connection_t *conn variable that libi3
expects to be available in i3bar.
2011-11-21 20:52:26 +00:00
Michael Stapelberg
70793d8bb9
libi3/ucs2_conversion: tiny style fixes
2011-11-16 21:41:55 +00:00
Fernando Tarlá Cardoso Lemos
fb11cc2d14
Consolidate all convert_* functions into libi3.
...
Some minor fixes along the way as well. Very minor stuff, unlikely
to ever be visible to the user.
2011-11-16 20:54:30 +00:00
Michael Stapelberg
726f2a1e5a
normalize file headers across **/*.{h,c}
2011-10-25 21:19:38 +01:00
Michael Stapelberg
a58018cf66
Add libi3/load_font, use it everywhere
...
…except for i3bar, which needs slightly more information about the font
2011-10-23 22:37:11 +01:00
Michael Stapelberg
91134f75c0
Move get_mod_mask to libi3, use it in i3 and i3-config-wizard
...
Also, the API changed a bit. There are two functions now, both assume you
already got the keysyms (which is the case for i3 and i3-config-wizard),
one gets the modifier mapping for you (aio_get_mod_mask_for) while the other
assumes you also got that. No roundtrips are required for the latter.
2011-10-23 21:26:15 +01:00
Michael Stapelberg
9eda7fb6fb
move strndup to libi3
2011-10-23 18:02:01 +01:00
Michael Stapelberg
cb9bbcfccf
Move get_colorpixel to libi3, use it everywhere else
2011-10-23 17:38:21 +01:00
Michael Stapelberg
4f57d49318
add libi3/ipc_connect, use it in i3-config-wizard, i3-input, i3bar
2011-10-23 17:18:14 +01:00
Michael Stapelberg
9d15a00ba8
introduce sasprintf() in libi3, use it everywhere
2011-10-23 13:16:56 +01:00
Michael Stapelberg
29c185dd0b
Move fake_configure_notify to libi3
2011-10-09 13:40:15 +01:00
Michael Stapelberg
046cf99585
Move ipc_send_message and ipc_recv_message to libi3
...
Make i3-msg and src/ipc.c use it
2011-10-02 18:33:36 +01:00
Michael Stapelberg
501dc36b98
move sstrdup, scalloc, smalloc, srealloc to libi3, improve error messages
2011-10-02 18:09:30 +01:00
Michael Stapelberg
094c26556e
Introduce libi3, an *internal* library to eliminate code duplication
2011-10-02 16:11:30 +01:00