Thomas Adam
ed1d13b0a1
i3bar: Fix pixel offset calculation in dual-head
...
When running i3bar on a dual-head display with workspaces enabled in i3bar's
config, the second monitor wouldn't use a correct x position offset and
would draw its label too close to the screen's edge. In comparison to the
first monitor, this is inconsistent because that starts with a pixel offset
of 1.
2013-05-20 15:09:15 +02:00
Michael Stapelberg
8247f44e95
Merge branch 'master' into next
2013-04-14 22:54:36 +02:00
Michael Stapelberg
72c279bc39
Bugfix: fix crash when not having tray_output configured (Thanks Layus)
2013-04-14 22:54:15 +02:00
haptix@web.de
90bfbac107
fix font display height in i3bar
...
Increase the drawing area height, in order to prevent the font from being cut off.
fixes #992
2013-04-13 19:49:06 +02:00
haptix@web.de
a9aad872ee
unhide hidden i3bar when mode is active
...
This patch also handles unhiding of i3bar in case the i3bar modifier key is
pressed for activating a new binding mode.
2013-04-13 10:16:34 +02:00
haptix@web.de
921967c729
unhide hidden i3bar when mode is active
...
fixes #961
2013-04-11 22:35:54 +02:00
haptix@web.de
402c3db7ac
restore i3bar compatibility with libyajl version 1
...
fixes #1004
2013-04-07 15:54:20 +02:00
Simon Elsbrock
6b0efac483
i3bar: fix usage description, make -b happen
2013-03-29 09:55:03 +01:00
Yuxuan Shui
18148205b6
Don't dup2() the parent's stdout to child's stdin.
...
There're DLOG()s, seriously.
2013-03-24 09:55:46 +01:00
enkore
58e68940f6
Add click events to i3bar
...
If the statusline generator (i.e. i3status) specifies click_events:true
in the protocol header, i3bar will write a JSON array on it's stdin
notifying it if the user clicks on a block.
The exact protocol is documented in docs/i3bar-protocol.
2013-03-21 23:55:30 +01:00
András Mohari
ae0842532e
Bugfix: Set separator color properly when drawing
...
Set the colors in the GC directly since set_font_colors() does not do it
when using a Pango font, resulting in i3bar drawing separators in the
wrong color.
2013-02-25 23:49:15 +01:00
András Mohari
a0d5b744ab
Allow min_width of a block in i3bar to be a string
...
With this change, min_width can either be an integer (as usual), or a
string. In the latter case, the width of the text given by min_width
determines the minimum width of the block. This way one does not have to
figure out a minimum width by trial and error, only to do it again every
time the font is changed.
2013-02-25 23:48:35 +01:00
Artem Shinkarov
5f05ca6b5d
Separator color via config; separator width and on/off via ipc
...
This patch adds the following features:
1) Configure a color of the separator via config. It is done like
bar {
colors {
separator #000000
}
}
2) A block can have an integer entry "separator_block_width" which
sets the width of the gap which would follow after the current block.
3) A block can have a boolean entry "separator" and if it is set
to false, then the drawing of the separating line would be disabled.
2013-02-18 10:44:44 +01:00
Michael Stapelberg
fc3b0db7a5
i3bar: fix rendering positions
2013-01-24 17:21:34 +01:00
Michael Stapelberg
990a1ca4c2
i3bar: don’t use X11 borders to avoid overlapping in hide mode
...
fixes #923
2013-01-24 16:09:51 +01:00
Michael Stapelberg
f2ca568202
i3bar: set _NET_SYSTEM_TRAY_COLORS for symbolic icons (gtk3+)
2013-01-02 23:14:30 +01:00
Michael Stapelberg
e9503a1fa3
i3bar: fake DestroyNotify and send MANAGER ClientMessages to fix tray restarts
...
fixes #745
2013-01-02 23:14:27 +01:00
Michael Stapelberg
2043076518
i3bar: add missing \n to debug messages
2013-01-02 11:38:03 +01:00
Michael Stapelberg
7658109309
Bugfix: remove superfluous #include <xcb/xcb_atom.h> (Thanks pnutzh4x0r)
...
This fixes the build on CentOS 6.
fixes #889
2012-12-14 21:49:31 +01:00
Antoine Millet
e8149c77b3
i3bar: add min_width and align keys to blocks
2012-12-06 09:48:27 +01:00
Pavel Löbl
6148136e7c
i3bar: Add current binding mode indicator
2012-11-16 13:44:29 +01:00
Michael Stapelberg
b9885ff21e
bugfix: don’t send workspace command when at beginning/end of workspaces (Thanks whitequark)
...
fixes #843
2012-10-14 21:05:44 +02:00
Quentin Glidic
89ca48be20
i3bar: Honor "urgent" protocol hint by unhiding
2012-09-22 15:15:57 +02:00
Quentin Glidic
830829922b
i3bar: Allow to force unhide with draw_bars
2012-09-22 15:15:57 +02:00
Quentin Glidic
8210c6be79
i3bar: Allow child to specify signals to use
...
We now wait for the child process to send the first line before stopping
it to use the signal which might be specified in the i3bar protocol
header
Since clients might use the same signal for both stop and cont, we also
save the stopped state of the child to avoid stopping it while hidden!
2012-09-22 15:13:21 +02:00
Quentin Glidic
1e114d7ab5
i3bar: Fully parse the JSON header
2012-09-22 15:13:21 +02:00
Quentin Glidic
34dc6d4d64
i3bar: Introduce i3bar_child struct
2012-09-22 15:13:21 +02:00
Quentin Glidic
310ae2d0b5
i3bar: Handle the first line with another callback
2012-09-22 15:13:21 +02:00
Quentin Glidic
f691927aa7
i3bar: Split JSON line logic to read_json_input
2012-09-22 15:13:21 +02:00
Quentin Glidic
103b1a3f3a
i3bar: Split flat line logic to read_flat_input
2012-09-22 15:13:21 +02:00
Quentin Glidic
3732cef764
i3bar: Split stdin reading logic to get_buffer
2012-09-22 15:13:21 +02:00
Quentin Glidic
13ecc79fcc
i3bar: Rename determine_json_version to parse_json_header
2012-09-22 15:13:21 +02:00
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
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
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
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
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
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
cf67966fa0
i3bar: document -b in --help (Thanks mxf)
2011-10-21 18:59:59 +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
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
0c51b57b99
Merge branch 'master' into next
2011-09-19 19:20:18 +01:00
Michael Stapelberg
7064cfc2a0
i3bar: Bugfix: Check if the X11 connection is unavailable
...
This fixes the condition where the i3 socket for some reason did not produce an
error, but the X server exited (earlier than i3?) and the left-over i3bar
process would consume 100% CPU.
How to reproduce the problem:
1) Start ./testcases/Xdummy :8
2) Start DISPLAY=:8 i3bar -s <socket path to i3 on :0>
3) Kill the Xdummy
2011-09-19 19:17:25 +01:00
Michael Stapelberg
c7ac1f9077
Merge branch 'master' into next
2011-08-25 18:51:02 +02:00
Michael Stapelberg
39cff5c31f
i3bar: Bugfix: When receiving EOF, immediately redraw and discard input
2011-08-25 18:46:08 +02:00
Michael Stapelberg
9c587a767c
Bugfix: set statusline = NULL, print error messages about EOF/SIGCHLD to stderr (Thanks cls)
2011-08-25 17:10:45 +02:00
Michael Stapelberg
eacbf986a0
Merge branch 'master' into next
2011-08-24 18:49:40 +02:00
Michael Stapelberg
7af39906da
i3bar: Bugfix: Correctly allocate pixmap for statuslines which are longer than your screen
...
In case of a 1024 px screen and a 1128 px status line, the status line was not
only cut off (it has to be, obviously), but the right part showed some black
pixels.
2011-08-24 18:48:29 +02:00
Michael Stapelberg
27ade541a9
Initialize output (fixes compiler warning)
2011-08-24 01:34:56 +02:00
Michael Stapelberg
06ba1c0e65
Fix compilation with xcb 0.3.6
2011-08-24 01:18:27 +02:00
Michael Stapelberg
1c2c22d117
i3bar: properly end the XEMBED protocol by reparenting the dock clients to root, flush connection before disconnecting
2011-08-24 01:18:27 +02:00
Michael Stapelberg
bd2a3363c0
i3bar: tray: little cleanups, more comments
2011-08-24 01:18:27 +02:00
Michael Stapelberg
55e503c17b
i3bar: request the appropriate _NET_SYSTEM_TRAY atom for the display we are running on
2011-08-24 01:18:27 +02:00
Michael Stapelberg
893878cbcc
i3bar: send XEMBED_EMBEDDED_NOTIFY after reparenting/mapping tray clients
2011-08-24 01:18:27 +02:00
Michael Stapelberg
737cd10bdf
i3bar: properly handle the _XEMBED_INFO property
2011-08-24 01:18:27 +02:00
Michael Stapelberg
7df43989c9
i3bar: correctly handle multiple tray clients
2011-08-24 01:18:27 +02:00
Michael Stapelberg
2046e4112f
i3bar: Correctly handle removal of tray clients
2011-08-24 01:18:27 +02:00
Michael Stapelberg
6efa7a754d
i3bar: trigger an update after docking a new client
2011-08-24 01:18:27 +02:00
Michael Stapelberg
025dd68f62
i3bar: quick & dirty systray implementation
...
Works correctly only with exactly one dock client on exactly one output. Maybe
not even then. You have been warned. Proof-of-concept code ;).
2011-08-24 01:18:26 +02:00
Michael Stapelberg
2f116df901
Merge branch 'master' into next
2011-08-12 23:11:13 +02:00
Michael Stapelberg
dddce72bd7
little comment spelling fixes
2011-08-12 23:09:59 +02:00
Michael Stapelberg
72ef8a7c19
Pass NULL to XkbOpenDisplay, it will read $DISPLAY itself
2011-08-12 23:09:36 +02:00
Michael Stapelberg
3892d616cf
Bugfix: Use correct buffer size, quote workspace names
...
This fixes problems with the workspace 'next' and workspace names longer than
40 characters
2011-08-12 22:57:02 +02:00
Axel Wagner
7cb7700b02
i3bar: Fixup indentions
2011-08-12 18:43:09 +02:00
Michael Stapelberg
fef5a69b09
Mac OS X fixes: include string.h, add strndup(), disable xmllint for the docs
2011-08-01 16:17:59 +02:00
Michael Stapelberg
339a7cb8c3
make i3bar use i3’s common.mk
2011-08-01 16:13:19 +02:00
Axel Wagner
3302b22f71
Bugfix: Delay event-subscription until reconnect (thx aniou)
2011-07-31 18:26:52 +02:00
Axel Wagner
8d09ed7bf5
Update changelog and copyright, bump version and more
2011-07-31 16:16:17 +02:00
Axel Wagner
8734337fb5
Stop the reconn-timer before starting it again, else it's running twice
2011-07-15 01:31:02 +02:00
Axel Wagner
3d05fe7a52
Use cleanup() in child.c
2011-07-10 04:34:18 +02:00
Michael Stapelberg
97827372af
Bugfix: Correctly handle EOF on stdin (Thanks woddf2)
2011-07-10 04:31:53 +02:00
Axel Wagner
778268c9bb
Fix unaligned memory access on sparc (Thanks David Coppa)
2011-05-03 12:38:57 +02:00
Axel Wagner
b150ec1c47
Apply ugly yajl-compatibility-fix (thx sECuRE)
2011-04-28 20:23:12 +02:00
Axel Wagner
e7c2b25ddd
Fix compiler-warnings from libev
2011-04-28 19:54:31 +02:00
Axel Wagner
d31384e955
Revert "Allow space after space"
...
This reverts commit c9334c922de120a08e66cb3a8c340fc1a453bf55.
2011-04-22 01:18:57 +02:00
Axel Wagner
bf078c673f
Allow space after space
2011-04-22 00:42:24 +02:00
Axel Wagner
ed5ac7f41d
Implement disabling the workspace buttons („thx“ sECuRE)
2011-04-21 20:24:02 +02:00
Axel Wagner
26993574f5
Revert "Don't draw on backbuffer, when hiding (thx sECuRE)"
...
This reverts commit f51ba2d7ecf3f560c8ce4d3ab8419ecf6265839c.
This commit introduced a regression, which prevented i3bar to be redrawn
at all in some circumstances. It will later be reintroduced in a bigger
refactoring of event-dependencies
2011-03-21 17:29:11 +01:00
Axel Wagner
edcc373077
Fix typo in comment (thx sECuRE)
2011-03-20 19:52:20 +01:00
Axel Wagner
ba748d72ff
Collapse two ChangeGC-calls (thx sECuRE)
2011-03-20 19:50:03 +01:00
Axel Wagner
52e70c3802
Add Color for focused ws (thx phnom)
2011-03-20 19:29:30 +01:00
Axel Wagner
16f7574851
Bugfix: Skip inactive outputs, when unmapping
2011-03-19 23:28:10 +01:00
Axel Wagner
682458f4d7
Don't draw on backbuffer, when hiding (thx sECuRE)
2011-03-19 23:27:50 +01:00
Axel Wagner
1b2002e1c8
XClearArea can't be used on pixmaps (thx sECuRE)
2011-03-19 23:04:09 +01:00
Axel Wagner
a847454a42
bugfix: Skip inactive outputs on redraw (thx sECuRE)
2011-03-19 22:30:59 +01:00
Axel Wagner
aaf60c6321
Don't reallocate the backbuffer on every refresh (thx sECuRE)
2011-03-19 22:27:35 +01:00
Axel Wagner
2fd7449e29
Add support for I3_SOCKET_PATH-atom
2011-03-19 22:06:08 +01:00
Axel Wagner
d993f8a3a1
Auto-update NUM_ATOMS by putting it into the enum (thx sECuRE)
2011-03-19 20:58:05 +01:00
Axel Wagner
5219493ffe
Bugfix: Don't SIGSTOP child in dockmode
2011-03-14 09:24:32 +01:00
Axel Wagner
7fb6258fbd
Use DISPLAY in XKB-code
2011-03-14 09:20:16 +01:00
Axel Wagner
dfd566511e
Bugfix: Don't segfault, if child was killed
2011-03-14 09:17:06 +01:00
Fernando Tarlá Cardoso Lemos
c8032d552d
Correct minor issues reported by the analyzer.
...
Found with the Clang Static Analyzer.
2011-02-26 03:03:30 +01:00
Axel Wagner
64f2a7561d
Implement dock-positioning
2011-02-21 15:53:32 +01:00
Axel Wagner
23a9814090
Correct typo
2011-02-16 19:53:42 +01:00
Axel Wagner
972be13dc5
Bugfix: _only_ stop child, if hide_on_modifier is set (thx cradle)
2011-02-04 10:05:48 +01:00
Axel Wagner
ff925f58e8
Bugfix: Use free-workspaces() in xcb-cleanup (thx dothebart)
2011-01-26 12:57:44 +01:00
Axel Wagner
8fa720d6b9
Bugfix: free() output-names seperately (thx dothebart)
2011-01-26 12:57:38 +01:00
Axel Wagner
dc7cfeaa4f
Bugfix: Also free() the head of slist/tailq (Thx dothebart)
2011-01-26 01:54:36 +01:00
Axel Wagner
d9f35859fa
Bugfix: free() text, after drawing it (thx dothebart)
2011-01-26 01:54:36 +01:00
Axel Wagner
9d22b29166
Bugfix: free() workspace-list of outputs seperately (thx dothebart)
2011-01-26 01:54:36 +01:00
Axel Wagner
7a7faff96d
Remove superflous FREE_SLIST
2011-01-26 01:54:36 +01:00
Axel Wagner
da1b65dd86
Bugfix: free() workspace-names seperately (thx dothebart)
2011-01-26 01:54:36 +01:00
Axel Wagner
cc71c77329
Bugfix: free() command-string, after it is not needed anymore
2011-01-26 01:54:36 +01:00
Axel Wagner
94ca5c73cc
Bugfix: Test for outputs == NULL
2011-01-26 01:54:36 +01:00
Axel Wagner
c9ee3eb21e
Change default socketpath to /tmp/i3-ipc.sock
2011-01-22 17:41:24 +01:00
Axel Wagner
1369e36d7c
Use tree-command for workspace-switching
2011-01-14 19:16:52 +01:00
Axel Wagner
4762152e1c
Display socket-path in connection-error-message
2011-01-14 17:33:40 +01:00
Axel Wagner
caca38b68e
Use I3SOCK environment-variable
2011-01-11 05:03:14 +01:00
Fernando Tarlá Cardoso Lemos
29f153c634
Separate the lines received in a single read.
...
Fixes the case where multiple lines are read in a single read syscall
(it could be better optimized in the future). Also fixes a memory
corruption issue when rec == 0.
2011-01-08 14:57:00 +01:00
Axel Wagner
34dd4bc89e
Bugfix: If hide-on-modifier is set, stop the child after starting
2011-01-06 17:35:23 +01:00
Axel Wagner
2183435da6
Bugfix: Recreate double-buffers on reconfiguring (thx sECuRE)
2011-01-06 17:28:21 +01:00
Axel Wagner
497a091fbb
Use strerror() for more usefull errormessages
2011-01-01 16:55:13 +01:00
Axel Wagner
b40b921228
Fix typo (thx julien)
2011-01-01 15:36:30 +01:00
Axel Wagner
08a5a2fdb0
Only use font_info after we know, the request succeded
2011-01-01 15:19:17 +01:00
Axel Wagner
600c4ae95c
Use "*buffer == '\0'" instead of "strlen(buffer) == 0" (thanks dothebart)
2011-01-01 15:08:43 +01:00
Axel Wagner
3daab599ca
Bugfix: Recover from closed socket
2010-12-26 20:03:06 +01:00
Axel Wagner
3c85c514d4
Merge branch 'master' into tree
2010-12-26 15:27:32 +01:00
Axel Wagner
ff0522fe95
Bugfix: Send child a SIGCONT, so it reacts to SIGTERM (no zombies \o/)
2010-12-26 14:48:39 +01:00
Axel Wagner
cdf56f16bf
Revert "Double-fork() to avoid zombies"
...
This reverts commit a4eafae108b63f5df76eea2958aee8cf95cb1ad6.
2010-12-26 14:48:14 +01:00
Axel Wagner
a39db9ae82
Remove unnecessary declaration
2010-12-23 16:50:48 +01:00
Axel Wagner
94a8273b09
Merge branch 'next'
2010-12-23 16:34:19 +01:00
Axel Wagner
537851b929
Switch back ws_fg and ws_bg (Thanks julien)
2010-12-03 17:59:28 +01:00
Axel Wagner
a3e37b059f
Switch back ws_fg and ws_bg (Thanks julien)
2010-12-03 17:59:16 +01:00
Michael Stapelberg
3de12beef6
make i3bar work with tree branch again (current_workspace is a string now)
2010-11-22 09:44:29 +01:00
Axel Wagner
a88f7fb392
We don't need sig_quit
2010-11-11 03:01:40 +01:00
Axel Wagner
8301d3d9f3
Send a SIGTERM instead of a SIGQUIT to exit the child
2010-11-11 02:59:17 +01:00
Axel Wagner
33202881c4
Handle SIGTERM/-INT/-HUP
2010-11-11 02:57:39 +01:00
Axel Wagner
d5e3b58d47
-V actually does not take an argument (yet)
2010-11-11 02:57:25 +01:00
Axel Wagner
eada483765
Double-fork() to avoid zombies
2010-11-10 18:46:47 +01:00
Axel Wagner
23b62f621d
Add support for bar_fg and bar_bg
2010-11-04 13:46:50 +01:00
Axel Wagner
127c082e83
Call init_colors() earlier
2010-11-04 13:46:33 +01:00
Axel Wagner
992612c89d
Some stylechanges to previous commit
2010-11-04 12:27:10 +01:00
Fernando Tarlá Cardoso Lemos
6376cf99d2
Custom colors can be set from the command line.
2010-11-04 11:51:26 +01:00
Axel Wagner
80172c88c5
Don't map bars on creation, if hide_on_modifier is enabled
2010-10-24 23:03:44 +02:00
Axel Wagner
4830288c7b
Place bar at the bottom of the screen, when creating them
2010-10-24 22:56:08 +02:00
Axel Wagner
cddda0c965
Remove unnecessary dependencies
2010-10-22 00:32:29 +02:00
Axel Wagner
920721bb93
Use DLOG/ELOG-macros, provide --verbose-option
2010-09-17 06:49:28 +02:00
Axel Wagner
ca1a295714
Clean the XCB-errorhandling a little bit up
2010-09-17 05:55:38 +02:00
Axel Wagner
60bab3db28
Use font_ascent instead of font_height, it's more elegant
2010-09-17 05:29:01 +02:00
Axel Wagner
a75cb6e785
Rename xcb_screens to xcb_screen, it's really just one
2010-09-17 05:28:22 +02:00
Axel Wagner
93453c64f2
Add some more comments
2010-09-17 05:26:31 +02:00
Axel Wagner
c82556f0f2
Use only xcb_query_font()
2010-09-17 03:51:41 +02:00
Axel Wagner
7fda48aa9f
We don't need get_string_width anymore
2010-09-17 03:11:49 +02:00
Axel Wagner
5deb95de33
Make i3_default_sock_path a local variable
2010-09-17 03:04:40 +02:00
Axel Wagner
0e4487e489
Move child_pid into child.c
2010-09-17 03:03:43 +02:00
Axel Wagner
d245d14765
Use realloc instead of manually reallocating
2010-09-17 02:28:56 +02:00
Axel Wagner
52120e3ed5
Use draw_text() to render text to the correct spot
2010-09-17 02:17:18 +02:00
Axel Wagner
0dc802c7b5
Write a wrapper around xcb_image_text_16()
...
xcb_image_text_16() can only process up to 255 glyphs, so we
write a wrapper around it for arbitrary long strings
2010-09-17 01:52:04 +02:00
Axel Wagner
c5dc3d49aa
We don't need to crop at that point
2010-09-17 01:51:10 +02:00
Axel Wagner
2ce9c4024f
Draw the statusline to a seperate buffer-pixmap
2010-09-17 01:18:50 +02:00
Axel Wagner
4d38bf81ba
Allocate the right amount of memory for ev_child
2010-09-07 17:28:56 +02:00
Axel Wagner
17484d82f2
Allocate the right amount of memory for ev_child
2010-09-07 17:28:15 +02:00
Axel Wagner
4e298d5a1d
Reimplement double-buffering
...
Due to a merge-fuckup, the double-buffer-code got lost. Know flickering
should not happen anymore.
2010-09-04 18:26:30 +02:00
Axel Wagner
0963a0e5ac
Merge branch 'hide' into next
2010-08-26 00:03:41 +02:00
Axel Wagner
c4c918cb06
Make hide_on_modifier configurable
2010-08-26 00:02:35 +02:00
Axel Wagner
386abde4df
Put usage-message in own function
2010-08-26 00:01:24 +02:00
Axel Wagner
c2ad6167e9
Put the bars on top, when reconfiguring
2010-08-25 23:36:25 +02:00
Axel Wagner
701448c342
Unhide on urgent-hint
2010-08-25 21:50:01 +02:00
Axel Wagner
a83e7699e7
Send the child SIGSTOPs and SIGCONTs
2010-08-25 18:31:03 +02:00
Axel Wagner
3c1a6384ab
Define overrride-redirect
...
The bars should not be in dockmode, when hide-on-mod is active
2010-08-25 18:23:33 +02:00
Axel Wagner
53ec74a4ab
Implement hide-on-modifier
2010-08-25 18:11:06 +02:00
Axel Wagner
6034eee647
Remove trailing newline from stdin
2010-08-25 04:58:28 +02:00
Axel Wagner
bef80146e6
Don't manually strip dzen-formats.
...
Instead "output_format = none" should be used in the i3status-config
2010-08-24 14:01:48 +02:00
Axel Wagner
14b885adf1
Only copy the double-buffer on expose-events
2010-08-22 10:24:32 +02:00
Axel Wagner
6ad922dbd5
Add declaration, accidentally lost in last commit
2010-08-21 13:29:38 +02:00
Axel Wagner
fe24eb748c
Implement double-buffering to get rid of flickering
2010-08-21 13:27:51 +02:00
Axel Wagner
5015cdc4d0
Implement double-buffering to get rid of flickering
2010-08-21 13:24:05 +02:00
Axel Wagner
84d7da0acf
Correct typo in usage-message
2010-08-19 22:13:40 +02:00
Axel Wagner
ddf8bd63c7
Added some error handling for xcb
2010-08-18 03:58:32 +02:00
Axel Wagner
60da522e13
Add licensing information
2010-08-07 18:05:16 +02:00
Axel Wagner
04e2cd1dfe
Add version-option
2010-08-07 03:50:22 +02:00
Axel Wagner
e7ba3183df
Correct behaviour of parsing null-values in src/outputs.c
2010-08-07 02:37:12 +02:00
Axel Wagner
c03e850171
Correct the Macro-calls in src/xcb.c
2010-08-07 02:34:02 +02:00
Axel Wagner
dcbf0c71d2
Move font-height-calculation to the end of init_xcb()
2010-08-07 02:22:20 +02:00
Axel Wagner
6780d87593
Use a while-loop in xcb_chk_cb() to account for the xcb-buffer
2010-08-07 02:20:01 +02:00
Axel Wagner
188d4c18cc
Merge handle_xcb_event() into xcb_chk_cb()
2010-08-07 02:19:25 +02:00
Axel Wagner
cee972280d
Add comments
2010-08-07 02:10:05 +02:00
Axel Wagner
b1a8ddd9d7
We don't need a callback for null-values
2010-08-07 01:57:00 +02:00
Axel Wagner
660c77bdb8
Reconfigure to the correct coordinates
2010-08-06 05:53:38 +02:00
Axel Wagner
55047c1633
Refresh the workspace-list on output-events
2010-08-06 05:52:01 +02:00