Quentin Glidic
2e5838fb49
i3bar: Rework unhide/hide on workspace urgency
...
We now check globally for workspace urgency instead of per-output since
the result is the same but we call unhide_bars/hide_bars only once this
way
2012-09-22 15:13:21 +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
f18ab28f5c
bugfix: memleak: use i3STRING_FREE() instead of FREE()
2012-09-03 00:42:17 +02:00
Michael Stapelberg
2d1ebc2b90
Bugfix: memleak: because we use i3string_from_utf8(), we need to free buffer()
...
Previously, buffer was directly used and thus not freed, but
i3string_from_utf8() makes a copy.
2012-09-03 00:42:14 +02:00
eeemsi
b9255f51f8
Use (void) instead of () for functions without args
2012-08-23 19:34:37 +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
Fernando Tarlá Cardoso Lemos
6ff3f7abad
libi3: Implement Pango rendering
2012-08-13 11:39:30 +02:00
Fernando Tarlá Cardoso Lemos
edd9007ebf
i3bar: Rename xcb_screen to root_screen for consistency
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
Quentin Glidic
bbd1b16043
i3bar: Port to i3String
2012-08-13 11:30:05 +02:00
Quentin Glidic
50d52f8f9b
i3bar/util.h: Prepare for libi3.h inclusion
2012-08-13 11:29:22 +02:00
Quentin Glidic
b01545b131
Makefile: Always link libi3 first
2012-08-13 02:00:01 +02:00
Michael Stapelberg
e53405c216
i3bar: be less strict about the {"version":1} JSON header
2012-08-12 18:40:15 +02:00
darkraven
875130e7e8
Automatically hide i3bar when it's unneeded.
...
When a workspace marked 'urgent', i3bar unhide
itself. if I want to hide it again, I must press the
modifier.This sometimes annoys me.
In this patch I change the above behavior to this:
If a urgent workspace occurs, i3bar will unhide itself;
and when you navigates away from the last urgent
workspace and there is no more urgent workspace, i3bar
will hide itself.
2012-08-02 01:44:25 +02:00
Quentin Glidic
0b4ee7a1da
common.mk: Split XCB common flags
2012-07-23 00:12:55 +02:00
Quentin Glidic
fde8c0dd85
common.mk: Split Xlib flags
2012-07-23 00:04:01 +02:00
Quentin Glidic
85b261c162
common.mk: Split yajl flags
2012-07-22 23:53:51 +02:00
Quentin Glidic
30934ea316
common.mk: Split libev flags
2012-07-22 23:53:51 +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
8029fae6a9
Move mans to the new Makefile layout
2012-07-22 20:27:13 +02:00
Quentin Glidic
e452acb30e
Add stub Makefiles to allow subdir make calls
2012-07-22 19:57:48 +02:00
Quentin Glidic
1a1eb0f3f2
Move i3bar to the new Makefile layout
2012-07-22 19:57:22 +02:00
Michael Stapelberg
8f2e225db9
i3bar: Fix warnings with libyajl1 (Thanks prg)
...
yajl1 has the status yajl_status_insufficient_data, which in our stream
parsing context basically means "ok". Therefore, in yajl1, we no longer
print an error in this case.
2012-07-16 19:23:37 +02:00
Marcel Hellwig
3daa3e052f
Don't display empty strings from i3status in i3bar
2012-07-11 19:06:02 +02:00
Michael Stapelberg
8a3574f301
i3bar: inform _all_ clients of new tray selection owner
...
This fixes a problem with X-chat (and possibly others).
Fixes : #745
2012-07-10 22:52:14 +02:00
Michael Stapelberg
599f7cc2a4
i3bar: handle clicks with negative coordinates (Thanks Julian)
...
This can happen if you move your mouse pointer to the very left of the
screen and then click. For better usability, we handle this edge case
like a click on pixel 0.
2012-06-10 21:04:51 +02:00
Michael Stapelberg
156a06e495
i3bar: Don’t crash when full_text is missing or null in the JSON input (Thanks fernandotcl)
2012-05-12 08:23:51 +02:00
TunnelWicht
4f93e0587a
don’t wrap when changing workspaces by mouse wheel scrolling
2012-05-09 20:16:02 +02:00
Michael Stapelberg
3a378f7cb1
i3bar: don’t immediately redraw bars after kicking tray clients
2012-04-24 12:04:35 +02:00
Michael Stapelberg
17b477d25d
i3bar: when kicking tray clients, remove them immediately
...
This should fix empty spaces showing up instead of tray icons sometimes.
2012-04-22 20:53:01 +02:00
Michael Stapelberg
78891c1c62
i3bar: when tray_output == primary and there is no primary output, fall back to the first available output
2012-04-22 20:51:15 +02:00
Michael Stapelberg
17e4d7ede1
i3bar: kick tray clients after output configuration changed
...
This makes i3bar reflect xrandr --output foo --primary changes immediately.
2012-04-22 20:43:52 +02:00
Michael Stapelberg
189b27b01e
i3bar: Bugfix: Properly update the primary flag
2012-04-22 20:43:43 +02:00
Michael Stapelberg
54222d5617
Merge branch 'master' into next
2012-04-22 20:11:25 +02:00
Michael Stapelberg
97d17f2f5b
i3bar: Bugfix: Properly reparent tray clients before killing the bar window when outputs disappear
...
Fixes : #655
2012-04-22 20:10:29 +02:00
Michael Stapelberg
24ac6e32aa
Bugfix: Properly terminate lines not ending with a newline (Thanks xeen)
...
Previously, we didn’t check for a newline and thus could be corrupting
formerly valid UTF-8 input, such as
echo -n '↓'
Fixes : #671
2012-04-07 19:15:41 +02:00
Jose Pereira
9a58c1fcaa
Added option to select primary display on tray_output
2012-04-05 14:42:07 +02:00
Michael Stapelberg
d519659ea7
i3bar: kill child processes when exit()ing (they might be stopped) (Thanks darkraven)
2012-03-26 17:36:00 +02:00
Michael Stapelberg
607ba6fcde
i3bar: Fix memory for old plain-text input (Thanks Han)
2012-03-19 22:30:20 +01:00
Michael Stapelberg
e7761a342b
Merge branch 'master' into next
2012-03-19 21:42:08 +01:00
Michael Stapelberg
8b4ad8c6bd
Fix i3bar when using multiple displays (Thanks brimstone)
2012-03-19 21:41:45 +01:00
Michael Stapelberg
a3ee8491fd
i3bar: compile with yajl < 2
2012-02-16 23:41:58 +00:00
Michael Stapelberg
31b9d24c2b
Implement the i3bar JSON protocol (with fallback to plain text)
...
If the first line of the input starts with {"version":, then the input is
considered to be JSON, otherwise it is interpreted as plain text.
Only the "full_text" and "color" parts of a block are currently understood by
i3bar.
2012-02-16 23:28:18 +00:00
Michael Stapelberg
fd2ff3a6ef
Bugfix: insert ending double quote at the right position (Thanks mxf)
2012-02-10 19:55:40 +00:00
Michael Stapelberg
2f8d3d3390
Bugfix: Properly handle workspace names with double quotes (+test) (Thanks kvapen)
2012-02-07 22:50:27 +00:00
Fernando Tarlá Cardoso Lemos
8b29250c32
Fix the text alignment in the workspace indicator.
...
We now use 5px padding for the workspace text on both sides. Some
fonts will look off-by-one (e.g. fixed), but that's because X core
fonts have padding. This padding is per-char, varies wildly across
different fonts, and would be a major pain to offset for. Even if
we could take this padding into account, this would probably make
things look even worse for some fonts.
2012-01-29 23:08:58 +00:00
Michael Stapelberg
0f360f16ab
i3bar: make the ws buttons a bit smaller (like before) and improve the centering
2012-01-29 20:55:54 +00:00
Michael Stapelberg
144be37517
i3bar: correctly check errors when getting the _XEMBED_INFO property
...
This fixes a problem where starting gnome-settings-daemon (maybe other
programs, too) would leave an empty spot in i3bar’s tray area.
2012-01-28 10:22:43 +00:00
Marcelo Cerri
5a2673d08a
Fixed worspace clicking area for i3bar (branch next)
2012-01-28 10:08:14 +00:00
Michael Stapelberg
cc8a3c1019
i3bar: make the space between workspace buttons 1 px again
2012-01-28 10:05:51 +00:00
Michael Stapelberg
1d5071ebbe
i3bar: ignore the "socket_path" config option (redundant anyway)
2012-01-20 22:29:24 +00:00
Michael Stapelberg
b5c25761d5
Bugfix: i3bar: Use the correct keys when reading the color config
2012-01-20 22:03:52 +00:00
Michael Stapelberg
31b7ec29fd
Re-implement bar borders (by Angelo Haller)
...
This re-introduces borders around the workspace buttons in i3bar.
No additional pixels will be consumed (you will not lose any space for your
windows).
2012-01-20 21:36:50 +00:00
dbp
a3081c488a
Allow different modifier keys for showing hidden i3bar.
2012-01-08 12:47:41 +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
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
7f9b65f6a7
i3bar: fix event handling
...
i3bar would only handle one event at a time instead of all pending events.
2011-11-09 23:23:21 +00:00
Michael Stapelberg
e85a352fcf
i3bar: correctly handle unmapped tray clients, reconfigure tray icons after mapping/unmapping (Thanks IsoLnCHiP)
...
Fixes #550
2011-11-09 23:22:44 +00:00
Michael Stapelberg
f0cc13f356
i3bar: fix indention in src/child.c
2011-11-07 21:34:50 +00:00
Fernando Tarlá Cardoso Lemos
d5613905c8
Plug minor leaks in string conversion routines.
2011-11-07 19:57:11 +00:00
Michael Stapelberg
ddf261432a
i3bar: change default color for active workspace buttons to make them visible
...
Previously, you could not figure out which workspace is displayed on a screen
which is not focused.
2011-11-07 19:52:21 +00:00
Michael Stapelberg
a977b2d96e
i3bar: fix -h output (Thanks IsoLnCHiP)
2011-10-31 20:44:55 +00:00
Michael Stapelberg
726f2a1e5a
normalize file headers across **/*.{h,c}
2011-10-25 21:19:38 +01:00
Michael Stapelberg
35bd2d27c0
i3bar: put tray icons in the save-set (prevents them from crashing when i3bar exits/crashes)
2011-10-24 20:11:32 +01:00
Michael Stapelberg
9eda7fb6fb
move strndup to libi3
2011-10-23 18:02:01 +01:00
Michael Stapelberg
ada4857ad2
Fix colors in i3bar (Thanks julien)
...
i3bar previously used get_colorpixel on strings without the leading # (ff0000
instead of #ff0000). Since it uses libi3’s get_colorpixel now we needed to
update a few places.
2011-10-23 17:48:44 +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
499d4c11e0
i3bar: make len an integer for %.*s in sasprintf
2011-10-23 16:39:39 +01:00
Michael Stapelberg
96f67a53a5
i3bar: check exit code of pipe()
2011-10-23 14:31:43 +01:00
Michael Stapelberg
9d15a00ba8
introduce sasprintf() in libi3, use it everywhere
2011-10-23 13:16:56 +01:00
Michael Stapelberg
41551178a8
i3bar: makefile: correctly depend on libi3
2011-10-23 12:10:20 +01:00
Michael Stapelberg
95c2e86db9
i3bar: delete include/queue.h, use i3’s copy
2011-10-22 15:08:24 +01:00
Michael Stapelberg
bc2c63d4ed
i3bar: change default font to the i3 default one
2011-10-22 15:00:31 +01:00
Michael Stapelberg
3ee8bd502d
i3bar: change default colors to fit the i3 look & feel
...
The new default looks like this (like in docs/userguide):
colors {
background #000000
statusline #ffffff
focused_workspace #ffffff #285577
active_workspace #888888 #222222
inactive_workspace #888888 #222222
urgent_workspace #ffffff #900000
}
If you want to go back to the previous colors, use:
colors {
background #000000
statusline #ffffff
focused_workspace #ffffff #480000
active_workspace #ffffff #480000
inactive_workspace #ffffff #240000
urgent_workspace #ffffff #002400
}
2011-10-22 12:34:06 +01:00
Michael Stapelberg
014c3e4b95
i3bar: Bugfix: Don’t crash when tray_output is not set (Thanks fernandotcl)
2011-10-21 23:15:15 +01:00
Michael Stapelberg
15f021b4fc
i3bar: Implement the output option
2011-10-21 22:17:41 +01:00
Michael Stapelberg
6de1590e59
i3bar: spit out an error on wrong bar id
2011-10-21 20:04:55 +01:00
Michael Stapelberg
a3b7ba15ed
i3bar: also use the position option when in 'hide' mode
2011-10-21 19:59:25 +01:00
Michael Stapelberg
8a24be9555
i3bar: implement the tray_output option
2011-10-21 19:47:56 +01:00
Michael Stapelberg
d71db710dd
i3bar: use safewrappers from libi3
2011-10-21 19:30:46 +01:00
Michael Stapelberg
c65d13ff9f
i3bar: makefile: fix dependency on libi3
2011-10-21 19:06:53 +01:00
Michael Stapelberg
0298a32e37
i3bar: makefile: prefix messages with [i3bar]
2011-10-21 19:03:54 +01:00
Michael Stapelberg
cf67966fa0
i3bar: document -b in --help (Thanks mxf)
2011-10-21 18:59:59 +01:00
Michael Stapelberg
d970b19b59
i3bar: update manpage
2011-10-20 22:55:24 +01:00
Michael Stapelberg
c5caa9682c
i3bar: don’t reconnect, but exit(0) on EOF
...
Since i3 starts i3bar instances as necessary, EOF is considered a signal to
either shutdown because i3 exited or because it is restarting.
2011-10-20 19:08:41 +01:00
Michael Stapelberg
a5be27cb79
Make i3bar get its config from i3 via IPC
...
In order to not duplicate configuration options and make stuff confusing, we
dropped the commandline flags (except for socket_path and bar_id). This means
that you *have to* specify bar_id when starting i3bar. The best way is to let
i3 start i3bar, which it will do automatically for every bar {} configuration
block it finds.
2011-10-19 22:58:19 +01:00
Michael Stapelberg
fb4b012013
i3bar: Bugfix: Add tray icon padding when calculating text position (Thanks Bacardi55)
2011-10-10 15:09:39 +01:00
Raphael Kubo da Costa
51116b46f1
Use $(MAKE) instead of hardcoding `make' in the Makefiles.
...
When one is using gmake or anything other than make itself, the same
command should be used in the Makefiles too.
2011-10-10 11:43:16 +01:00
Michael Stapelberg
c5e9527abc
i3bar: include xcb_compat.h for older XCB versions (Thanks motif)
2011-10-10 11:37:56 +01:00
Michael Stapelberg
a70e2057c8
i3bar: set WM_CLASS and WM_NAME
2011-10-09 14:45:23 +01:00
Michael Stapelberg
64a7017c32
i3bar: add modelines to all files
2011-10-09 14:28:20 +01:00
Michael Stapelberg
e77f08d1fc
i3bar: handle ConfigureRequests for tray children (fixes gtk3 size issue)
...
Thanks to yvesf for this simple python test script:
from gi.repository import Gtk as gtk
def cb(*a):
print a
def si_popup(*a):
print a
status_icon = gtk.StatusIcon()
status_icon.set_from_stock(gtk.STOCK_OPEN)
status_icon.connect("activate", cb)
gtk.main()
2011-10-09 13:50:46 +01:00
Michael Stapelberg
b561b911ee
i3bar: add modeline to src/xcb.c
2011-10-09 13:50:39 +01:00
Michael Stapelberg
d78a2444e5
Bugfix: make i3bar depend on libi3
2011-10-09 13:05:29 +01:00
Michael Stapelberg
201268d9b2
Merge branch 'master' into next
2011-10-03 19:31:12 +01:00