Commit Graph

333 Commits

Author SHA1 Message Date
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
Noe Rubinstein
a5938c4073 escape font name
The double-dash gets scrambled by a2x otherwise
2011-10-03 19:30:47 +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
Axel Wagner
94d55f34e1 i3bar: Fix prototypes (thx sECuRE) 2011-08-10 23:54:27 +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
8e275d85b5 Correct some minor mistakes in the manpage (thx sECuRE) 2011-07-31 15:58:14 +02:00
Axel Wagner
a2a7de5e54 Respect and use CPPFLAGS 2011-07-19 04:21:36 +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
cdc5e6527f yajl-compatibility: Forgot to git-add that one 2011-04-28 20:55:40 +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
acb52fc654 Bugfix: Don't override DEBUG-env in Makefile 2011-02-05 15:20:40 +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
9912d7fdbb Update changelog and manpage 2010-12-23 16:39:53 +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