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
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
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
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
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
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
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
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
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
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
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
Axel Wagner
8d09ed7bf5
Update changelog and copyright, bump version and more
2011-07-31 16:16:17 +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
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
7fb6258fbd
Use DISPLAY in XKB-code
2011-03-14 09:20:16 +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
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
1369e36d7c
Use tree-command for workspace-switching
2011-01-14 19:16:52 +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
08a5a2fdb0
Only use font_info after we know, the request succeded
2011-01-01 15:19:17 +01:00
Axel Wagner
23b62f621d
Add support for bar_fg and bar_bg
2010-11-04 13:46:50 +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
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
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
c4c918cb06
Make hide_on_modifier configurable
2010-08-26 00:02:35 +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
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
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
660c77bdb8
Reconfigure to the correct coordinates
2010-08-06 05:53:38 +02:00
Axel Wagner
fae997038d
Remove superflous xcb_flush()es
2010-08-06 03:42:33 +02:00
Axel Wagner
1daa395a77
Added Unicode-Support
2010-08-06 03:32:05 +02:00
Axel Wagner
7d7867acce
Be more strict with encapsulation
...
I.e. move the xcb-event-handling into xcb.c and the
child-process-communications into newly created child.c.
Also change some includes.
2010-08-05 05:09:59 +02:00
Axel Wagner
51d466c41c
Cleanup some Memory Leaks
2010-08-04 04:07:16 +02:00
Axel Wagner
27aa9a640e
Display statusline (without formats)
2010-08-04 03:34:18 +02:00
Axel Wagner
8595d3bb48
Change the indention-style
2010-08-03 21:20:11 +02:00
Axel Wagner
49eef0db3f
Making Mouse-clicks work
2010-07-30 04:19:32 +02:00
Axel Wagner
f4b7394655
Implement workspace-change on mouse-wheel
2010-07-30 03:48:46 +02:00
Axel Wagner
43c057f19a
Migrate to queue.h
2010-07-30 03:11:54 +02:00
Axel Wagner
71cb49b847
Move XCB-Event-Handling to xcb.c
2010-07-27 10:18:29 +02:00
Axel Wagner
ff2ee04e0d
Use font-size to correctly determine the size of the bars and buttons.
2010-07-27 02:16:49 +02:00
Axel Wagner
3883ae2738
Handling Exposure-Events
2010-07-26 23:51:51 +02:00
Axel Wagner
0f4164dd0f
Print the workspace-names
2010-07-26 19:55:02 +02:00
Axel Wagner
8a274bd279
Draw the workspace-buttons
2010-07-26 17:21:46 +02:00
Axel Wagner
72b55fdd4f
Get outputs on start. Create dock window for every output.
2010-07-23 05:04:13 +02:00
Axel Wagner
02df973564
Start tracking changes
2010-07-22 01:15:18 +02:00