]>
git.sur5r.net Git - i3/i3/log
Michael Stapelberg [Sun, 22 May 2011 20:08:40 +0000 (22:08 +0200)]
cfgparse.l: kill a few states by using the stack
Michael Stapelberg [Sun, 22 May 2011 19:48:25 +0000 (21:48 +0200)]
cleanup cfgparse lexer/parser (ignore whitespace, solves conflicts)
Michael Stapelberg [Sun, 22 May 2011 19:42:34 +0000 (21:42 +0200)]
forgot to remove unused TOK_ATTACH token from lexer
Michael Stapelberg [Sun, 22 May 2011 19:26:50 +0000 (21:26 +0200)]
cleanup cmdparse lexer/parser (ignore whitespace, solves conflicts)
Michael Stapelberg [Mon, 16 May 2011 20:03:07 +0000 (22:03 +0200)]
tests: also test multiple commands in for_window
Increases branch coverage to 49.1%
Michael Stapelberg [Mon, 16 May 2011 19:45:30 +0000 (21:45 +0200)]
tests: add test for the for_window config directive, use separate config for tests
This test increases code coverage to 60.7%
Michael Stapelberg [Mon, 16 May 2011 18:51:29 +0000 (20:51 +0200)]
Bugfix: fix crash when disabling floating mode
Michael Stapelberg [Sun, 15 May 2011 18:10:25 +0000 (20:10 +0200)]
Time Lord technology: for_window config directive to run arbitrary cmds
An example to set all XTerms floating:
for_window [class="XTerm"] mode floating
To make all urxvts use a 1-pixel border:
for_window [class="urxvt"] border 1pixel
A less useful, but rather funny example:
for_window [title="x200: ~/work"] mode floating
The commands are not completely arbitrary. The commands above were tested,
others may need some fixing. Internally, windows are compared against your
criteria (class, title, …) when they are initially managed and whenever one of
the relevant values change. Then, the specified command is run *once* (per
window). It gets prefixed with a criteria to make it match only the specific
window that triggered it. So, if you configure "mode floating", i3 runs
something like '[id="
8393923 "] mode floating'.
Michael Stapelberg [Sun, 15 May 2011 17:43:35 +0000 (19:43 +0200)]
Introduce HANDLE_EMPTY_MATCH macro to simplify command handlers in cmdparse.y
Michael Stapelberg [Sat, 14 May 2011 20:38:19 +0000 (22:38 +0200)]
Remove old code from randr.c and workspace.c
Michael Stapelberg [Sat, 14 May 2011 20:34:34 +0000 (22:34 +0200)]
Bugfix: Fix initialization / assignments when RandR is missing
Michael Stapelberg [Sat, 14 May 2011 20:13:29 +0000 (22:13 +0200)]
re-implement assignments of workspace to specific outputs
Michael Stapelberg [Sat, 14 May 2011 20:11:09 +0000 (22:11 +0200)]
introduce the NODES_FOREACH and GREP_FIRST macros
Michael Stapelberg [Sat, 14 May 2011 18:04:34 +0000 (20:04 +0200)]
x.c: disable some of the debug output
Michael Stapelberg [Fri, 13 May 2011 19:57:45 +0000 (21:57 +0200)]
Correctly re-implement scrolling on window decorations
Got lost when refactoring the click handling in
24463718cc2ae6d44d75104bb8ade636985ff86c
Fixes: #390
Michael Stapelberg [Fri, 13 May 2011 19:29:01 +0000 (21:29 +0200)]
Bugfix: Attach new cons at the correct place when a floating con is focused (+test) (Thanks fernandotcl)
New containers were previously attached directly to the workspace instead of to
the previously focused place in the workspace (for example a stacked con).
Fixes: #376
Michael Stapelberg [Fri, 13 May 2011 19:18:20 +0000 (21:18 +0200)]
Fix kill command with trailing whitespace
Michael Stapelberg [Fri, 13 May 2011 18:41:03 +0000 (20:41 +0200)]
Argument for 'kill' for killing a specific window (now default) or the whole client (+test)
Use 'kill window' to kill a specific window (for example only one specific
popup), use 'kill client' to kill the whole application (or X11 connection to
be specific).
Michael Stapelberg [Fri, 13 May 2011 17:53:19 +0000 (19:53 +0200)]
Bugfix: When focusing the next floating window, descend the CT_FLOATING_CON
makes t/35-floating-focus.t pass again
Michael Stapelberg [Fri, 13 May 2011 17:27:18 +0000 (19:27 +0200)]
t/35-floating-focus: rewrite testcase to use windows instead of empty cons
Michael Stapelberg [Fri, 13 May 2011 15:03:52 +0000 (17:03 +0200)]
Bugfix: set WM_STATE to WITHDRAWN when an app unmaps their window(s) (+test)
Fixes: #362
Michael Stapelberg [Fri, 13 May 2011 15:03:15 +0000 (17:03 +0200)]
Bugfix: Fix the WANT_QSTRING state
Michael Stapelberg [Thu, 12 May 2011 20:24:52 +0000 (22:24 +0200)]
Bugfix: Fix focus follows mouse for non-default layout cons (Thanks phnom)
Fixes: #361
Michael Stapelberg [Thu, 12 May 2011 15:20:00 +0000 (17:20 +0200)]
s/seperate/separate (Thanks Jon)
Michael Stapelberg [Thu, 12 May 2011 05:22:17 +0000 (07:22 +0200)]
Bugfix: Ignore focus when attaching cons while restoring the layout
Fixes: #369
Michael Stapelberg [Thu, 12 May 2011 05:09:06 +0000 (07:09 +0200)]
Bugfix: Correct string/quoted string parsing for the commands exec, workspace, nop, restore and mark (Thanks SardemFF7)
Fixes: #380
Michael Stapelberg [Thu, 12 May 2011 04:58:09 +0000 (06:58 +0200)]
Bugfix: Don’t append the --restart parameter on each restart (Thanks aniou)
Fixes: #384
Michael Stapelberg [Wed, 11 May 2011 20:45:20 +0000 (22:45 +0200)]
Bugfix: Don’t crash when dock clients set the urgency hint (+testcase)
Michael Stapelberg [Wed, 11 May 2011 20:01:09 +0000 (22:01 +0200)]
Bugfix: Don’t fill split cons etc. with client background color (fixes nested decoration rendering)
Fixes: #359
Michael Stapelberg [Wed, 11 May 2011 18:45:56 +0000 (20:45 +0200)]
Bugfix: Restore border_style when restarting inplace (Thanks aniou)
Fixes #385.
Michael Stapelberg [Wed, 11 May 2011 18:39:18 +0000 (20:39 +0200)]
ipc: change border_style to human-readable string instead of enum value
Michael Stapelberg [Wed, 11 May 2011 18:22:47 +0000 (20:22 +0200)]
Bugfix: Don’t run into an endless loop when killing con with children (Thanks mseed)
When a tabbed container had more than one child and at least the first one
supported WM_DELETE, i3 entered an endless loop when killing that tabbed
container. This was due to tree_close only sending WM_DELETE without actually
removing the child, while the loop in tree_close assumed that with every call
of tree_close one child would be removed.
Michael Stapelberg [Sun, 8 May 2011 18:08:46 +0000 (20:08 +0200)]
add coverage target to makefile to generate a coverage report
Michael Stapelberg [Sun, 8 May 2011 18:08:35 +0000 (20:08 +0200)]
tests: add --coverage-testing option to complete-run.pl
Michael Stapelberg [Sun, 8 May 2011 17:56:11 +0000 (19:56 +0200)]
makefile: add COVERAGE flag
Michael Stapelberg [Fri, 6 May 2011 11:09:50 +0000 (13:09 +0200)]
Bugfix: assign BORDER_BOTTOM instead of BORDER_RIGHT (Thanks Jan)
Michael Stapelberg [Thu, 5 May 2011 19:58:28 +0000 (21:58 +0200)]
cfgparse.y: define types (Thanks Merovius)
Michael Stapelberg [Thu, 5 May 2011 19:19:47 +0000 (21:19 +0200)]
re-indent cfgparse.y
Michael Stapelberg [Thu, 5 May 2011 18:39:05 +0000 (20:39 +0200)]
cmdparse.y: set type on the tokens/non-terminals (Thanks Merovius)
Michael Stapelberg [Mon, 2 May 2011 21:29:26 +0000 (23:29 +0200)]
re-implement assigning windows to workspaces
Michael Stapelberg [Mon, 2 May 2011 09:06:13 +0000 (11:06 +0200)]
Bugfix: Before rendering, attach the con to its floating_con
Otherwise, the rendering will produce negative coordinates.
Michael Stapelberg [Mon, 2 May 2011 09:05:50 +0000 (11:05 +0200)]
Bugfix: When re-assigning floating windows to a different output, use the last focused workspace, not the first
Michael Stapelberg [Sun, 1 May 2011 20:27:06 +0000 (22:27 +0200)]
Bugfix: Fix the client background rectangle calculation (Thanks Mike)
Really fixes #364.
Michael Stapelberg [Sun, 1 May 2011 17:46:41 +0000 (19:46 +0200)]
Bugfix: For fullscreen cons, use a deco_height of 0 to correctly render the background color
This should fix #364.
Michael Stapelberg [Sun, 1 May 2011 16:48:30 +0000 (18:48 +0200)]
Bugfix: Correctly render decorations in tabbed containers (don’t overlap)
This fixes a regression introduced in
b644fb5f26c1768b70c5b49d8cd917a63a2d1d91 .
Michael Stapelberg [Sun, 1 May 2011 11:56:35 +0000 (13:56 +0200)]
wizard: actually write the output config
Michael Stapelberg [Sun, 1 May 2011 10:50:18 +0000 (12:50 +0200)]
wizard: check if the config file does not already exist and if we can create it
Michael Stapelberg [Sat, 30 Apr 2011 22:26:10 +0000 (00:26 +0200)]
initial commit of the i3-config-wizard (GUI working, functionality incomplete)
Michael Stapelberg [Fri, 29 Apr 2011 22:37:03 +0000 (00:37 +0200)]
Bugfix: Add missing tree_render() when handling the urgency hint (Thanks mxf)
Michael Stapelberg [Thu, 28 Apr 2011 19:44:29 +0000 (21:44 +0200)]
Fix unaligned memory access on sparc (Thanks David Coppa)
Michael Stapelberg [Thu, 28 Apr 2011 18:24:16 +0000 (20:24 +0200)]
remove useless checks, size_t != ssize_t :)
Michael Stapelberg [Wed, 27 Apr 2011 17:52:53 +0000 (19:52 +0200)]
Make code compatible with yajl 2.0 *and* 1.0
Michael Stapelberg [Wed, 27 Apr 2011 08:18:46 +0000 (10:18 +0200)]
Bugfix: Ensure that all outputs have a ->con before handling disabled outputs (Thanks JimdiGriz)
Steps to reproduce:
• xrandr --output VGA1 --auto
• xrandr --output LVDS1 --off
Michael Stapelberg [Tue, 26 Apr 2011 17:28:33 +0000 (19:28 +0200)]
fix warning by removing 'const' from ipc_socket_path
Michael Stapelberg [Tue, 26 Apr 2011 17:20:29 +0000 (19:20 +0200)]
tests: make complete-run.pl scan tests for !NO_I3_INSTANCE!, simplify code
Michael Stapelberg [Tue, 26 Apr 2011 17:15:55 +0000 (19:15 +0200)]
tests: add testcase for the different socket path locations
Sardem FF7 [Mon, 18 Apr 2011 22:22:32 +0000 (00:22 +0200)]
Use XDG_RUNTIME_DIR when available
XDG_RUNTIME_DIR is the volatile runtime data dir provided by modern
session manager such as systemd
Michael Stapelberg [Tue, 19 Apr 2011 19:50:56 +0000 (21:50 +0200)]
Bugfix: Ignore EnterNotifies generated by UnmapNotifies
Actually, commit
1c5adc6c35cffaedc08c7d1dd1b03a3269d1367c commented out code
without ever fixing it. I think this was responsible for the 'workspace
switching sometimes does not work' bug. My observations:
Had it again today and analyzed a log of it. Looks like after unmapping the
windows on one workspace (in my case: chromium, eclipse, urxvt, focus on
eclipse) we get UnmapNotify events for chromium and eclipse, but then we get an
EnterNotify for the terminal (due to unmapping the other windows and therefore
mapping the terminal under the cursor), only afterwards the UnmapNotify
follows.
So, there are two things wrong with that:
• We handle EnterNotifys for unmapped windows
• Unmapping windows sometimes works in a sequence, sometimes the sequence gets
split. Not sure why (if unmapping can take longer for some windows or if our
syncing is wrong -- but i checked the latter briefly and it looks correct).
Maybe GrabServer helps?
• We don’t ignore EnterNotify events caused by UnmapNotifies. We used to, but
then there was a different problem and we decided to solve the EnterNotify
problem in another way, which actually never happened (commit
1c5adc6c35cffaedc08c7d1dd1b03a3269d1367c ).
Sardem FF7 [Mon, 18 Apr 2011 21:06:32 +0000 (23:06 +0200)]
Rename bind to bindcode
Also fallback when using just 'bind' to be backward-compatible
Michael Stapelberg [Mon, 18 Apr 2011 19:10:50 +0000 (21:10 +0200)]
x: Set pixmap as background window, saves a lot of CopyAreas
Michael Stapelberg [Mon, 18 Apr 2011 17:36:10 +0000 (19:36 +0200)]
Bugfix: Center floating windows with invalid coordinates on current ws
Michael Stapelberg [Mon, 18 Apr 2011 17:28:03 +0000 (19:28 +0200)]
Bugfix: Check if a floating window’s coordinates are within a different workspace when managing (Thanks Merovius)
Fixes: #297
Michael Stapelberg [Mon, 18 Apr 2011 16:44:39 +0000 (18:44 +0200)]
Bugfix: Assign floating cons to correct workspace when moving between monitors (Thanks dothebart)
Fixes: #371
Michael Stapelberg [Mon, 18 Apr 2011 16:44:18 +0000 (18:44 +0200)]
Bugfix: When moving floating cons to other workspaces, attach them to the workspace
Michael Stapelberg [Sat, 2 Apr 2011 20:08:19 +0000 (22:08 +0200)]
Bugfix: Don’t set the layout when it’s default layout anyways
Fixes some nasty side-effects
Michael Stapelberg [Sat, 2 Apr 2011 19:49:35 +0000 (21:49 +0200)]
Rename new_container to workspace_layout
Simon Kampe [Wed, 23 Mar 2011 15:11:46 +0000 (16:11 +0100)]
Implemented config key 'new_container'
Michael Stapelberg [Fri, 1 Apr 2011 20:40:12 +0000 (22:40 +0200)]
optimization: when moving floating windows, render/push only the floatingcon
Michael Stapelberg [Fri, 1 Apr 2011 19:57:08 +0000 (21:57 +0200)]
Bugfix: Flush the Xlib connection after creating cursors
Fixes a race condition where the cursors were created after we were already
using them.
Michael Stapelberg [Fri, 1 Apr 2011 19:54:45 +0000 (21:54 +0200)]
x: skip creating pixmaps when the rect is actually invisible
This fixes a few X11 errors.
Michael Stapelberg [Fri, 1 Apr 2011 19:39:58 +0000 (21:39 +0200)]
bugfix: fix race condition where window titles were not correctly updated
Fixes: #351
Michael Stapelberg [Fri, 1 Apr 2011 18:41:08 +0000 (20:41 +0200)]
x: skip x_draw_decoration when con is not mapped
This commit makes workspace switching completely free of cache misses, so
decorations are not re-rendered when switching workspaces.
Michael Stapelberg [Fri, 1 Apr 2011 18:40:32 +0000 (20:40 +0200)]
x: recurse x_push_node in focus order. reduces flickering when switching workspaces
Michael Stapelberg [Wed, 30 Mar 2011 21:00:48 +0000 (23:00 +0200)]
Skip FocusIn events with mode == NOTIFY_MODE_GRAB or NOTIFY_MODE_UNGRAB
According to the Xlib Programming Manual section 10.7.2 [1], these events are
generated when keyboard grabs activate/deactivate, while we are only interested
in focus changes which are done by other programs independend from the
keyboard.
[1] http://tronche.com/gui/x/xlib/events/input-focus/grab.html
Michael Stapelberg [Mon, 21 Mar 2011 22:54:13 +0000 (23:54 +0100)]
little coding style fixes, fix compilation warning
Fernando Tarlá Cardoso Lemos [Mon, 21 Mar 2011 12:05:58 +0000 (09:05 -0300)]
If the socket path isn't specified, write it to /tmp.
Michael Stapelberg [Mon, 21 Mar 2011 22:49:16 +0000 (23:49 +0100)]
FREE() already nulls the pointer
Fernando Tarlá Cardoso Lemos [Sun, 20 Mar 2011 14:34:34 +0000 (11:34 -0300)]
Set the I3_SOCKET_PATH atom to the expanded path.
Michael Stapelberg [Sun, 20 Mar 2011 18:32:00 +0000 (19:32 +0100)]
Focus cons when moving to a visible workspace on a different output (Thanks mseed)
Fixes: #355
Michael Stapelberg [Sun, 20 Mar 2011 17:27:14 +0000 (18:27 +0100)]
Bugfix: Fix switching workspaces on multi-monitor setups (Thanks mseed)
Fixes #356
Michael Stapelberg [Sun, 20 Mar 2011 17:17:18 +0000 (18:17 +0100)]
Bugfix: Also invalidate caches of the following cons in a split con on cache miss (Thanks fernandotcl)
Michael Stapelberg [Sun, 20 Mar 2011 17:07:07 +0000 (18:07 +0100)]
Bugfix: Also update pixmaps when the position of the deco_rect has changed (Thanks fernandotcl)
Michael Stapelberg [Sun, 20 Mar 2011 15:53:12 +0000 (16:53 +0100)]
refactor handlers.{c,h}: declare the handlers static, remove unnecessary parameters
Michael Stapelberg [Sun, 20 Mar 2011 15:35:08 +0000 (16:35 +0100)]
remove unused struct Colorpixel
Michael Stapelberg [Sun, 20 Mar 2011 15:26:36 +0000 (16:26 +0100)]
Handle FocusIn events generated by clients and update decoration accordingly (Thanks mseed)
Michael Stapelberg [Sun, 20 Mar 2011 13:29:48 +0000 (14:29 +0100)]
Remove debugging syncs
Michael Stapelberg [Sun, 20 Mar 2011 13:07:16 +0000 (14:07 +0100)]
Re-implement rendering to pixmaps (double-buffering) and caching decorations
Michael Stapelberg [Sun, 20 Mar 2011 00:07:21 +0000 (01:07 +0100)]
Bugfix: Actually re-attach dock clients when outputs get disabled (Thanks phnom)
Fixes: #348
Michael Stapelberg [Sat, 19 Mar 2011 22:19:42 +0000 (23:19 +0100)]
Bugfix: Don’t use the workspace where focus is for deleting workspaces when switching (Thanks mseed)
Fixes: #353
Michael Stapelberg [Sat, 19 Mar 2011 21:54:53 +0000 (22:54 +0100)]
Bugfix: also invalidate focused_id when the to_focus window is not mapped
This fixes a bug where focus might not be set correctly when changing workspaces
Michael Stapelberg [Sat, 19 Mar 2011 21:26:15 +0000 (22:26 +0100)]
Handle saved_configpath in get_config_path, fix memleak in current_configpath handling, update atoms after reloading (Thanks fernandotcl)
Michael Stapelberg [Sat, 19 Mar 2011 20:50:13 +0000 (21:50 +0100)]
Bugfix: correctly store the config path for using it for I3_CONFIG_PATH later
Michael Stapelberg [Sat, 19 Mar 2011 20:37:27 +0000 (21:37 +0100)]
Bugfix: fix null-pointer dereference when IPC is disabled (Thanks Merovius)
Michael Stapelberg [Sat, 19 Mar 2011 20:23:55 +0000 (21:23 +0100)]
i3-msg, i3-input: get the I3_SOCKET_PATH atoms if socket path was not specified
Michael Stapelberg [Sat, 19 Mar 2011 20:20:38 +0000 (21:20 +0100)]
Set the I3_SOCKET_PATH and I3_CONFIG_PATH atoms on the X11 root window
Michael Stapelberg [Sat, 19 Mar 2011 19:43:06 +0000 (20:43 +0100)]
Bugfix: When there’s nothing to focus, focus the root window (Thanks fernandotcl, ThePub)
Michael Stapelberg [Sat, 19 Mar 2011 01:21:46 +0000 (02:21 +0100)]
tests: add testcase for WM_TAKE_FOCUS
requires the very latest checkout of X11::XCB
Michael Stapelberg [Fri, 18 Mar 2011 19:47:59 +0000 (20:47 +0100)]
rendering: correctly draw background rect (Thanks phnom)
Fixes #347
Michael Stapelberg [Fri, 18 Mar 2011 17:11:02 +0000 (18:11 +0100)]
remove hard-coded paths since we now use pkg-config for all the dependencies
Michael Stapelberg [Fri, 18 Mar 2011 17:07:04 +0000 (18:07 +0100)]
remove obsolete xcb-property line (Thanks SardemFF7)