Commit Graph

272 Commits

Author SHA1 Message Date
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