Michael Stapelberg
e7bf93163d
Make path configurable
2009-07-28 22:09:53 +02:00
Michael Stapelberg
a43846ea27
Initial implementation of IPC via UNIX domain sockets
2009-07-28 20:51:29 +02:00
Michael Stapelberg
ce501c9de9
Some fixes/reformatting for bapt’s patch
2009-07-23 20:36:48 +02:00
bapt
40750e227d
Implements a reload command
2009-07-23 18:46:21 +02:00
Michael Stapelberg
5b51c8c6f0
optimization: Render on pixmaps and copy the result on Stack_Wins
...
This should speed up the rendering of Stack_Wins with many window
decorations and it should considerably reduce flicker.
2009-07-17 18:32:40 +02:00
Michael Stapelberg
cba36914a8
Implement selecting the next tiling/floating window (using "focus")
...
Also update documentation (manpage, userguide).
To make the code easier to read/write when checking if a client is
floating, introduce client_is_floating().
2009-06-21 16:14:15 +02:00
Michael Stapelberg
6ca9210335
Bugfix: Properly integrate libxcb’s event loop into libev.
...
Fixes a race condition with GIMP (where it configured its window,
sent the map request and waited for the window to get mapped, but
i3 didn’t get the event until another one was sent (key binding for
example)).
The new solution is much better as it properly hands off all
the work to xcb_poll_for_event.
Inspired by awesome, which uses the same mechanism. Thanks.
2009-06-21 13:05:54 +02:00
Michael Stapelberg
a6d7f5451d
Also set DIALOG, UTILITY and SPLASH windows floating automatically
2009-06-19 12:05:55 +02:00
Michael Stapelberg
02fa3c2cb8
Bugfix: Correctly initialize the new atom, don’t float dock windows
2009-06-13 12:18:16 +02:00
Michael Stapelberg
052190ad05
Handle transient hint and window class dialog to mark clients as floating
2009-06-12 22:59:23 +02:00
Michael Stapelberg
55f0aa8f28
Add a proper error message if connection to the X server can’t be established
2009-06-11 03:30:26 +02:00
Michael Stapelberg
3f925a56d3
Fix warning about dereferencing type-punned pointers
2009-06-01 21:12:13 +02:00
Michael Stapelberg
553db28664
Switch to libev for the event loop to build a base for IPC stuff. Please test!
2009-06-01 20:59:40 +02:00
Michael Stapelberg
2a67630aa6
Optimization: Get the colorpixels when loading configuration, make use of the new config struct
...
Instead of building arrays of colorpixels we can simply use a pointer
to a struct Colortriple. Furthermore, by getting the colorpixels when
loading the configuration, we save a lot of function calls in the
main code.
2009-06-01 15:14:45 +02:00
Michael Stapelberg
94cead993c
Don’t process autostart when restarting (new parameter -a)
2009-05-26 17:09:34 +02:00
Michael Stapelberg
b35599004a
Move the manage_*-functions into their own file as they got quite large
2009-05-16 18:25:04 +02:00
Michael Stapelberg
e79cca8f72
Implement putting clients onto specific workspaces ("assign" in the configfile)
...
This closes ticket #39
2009-05-16 17:32:36 +02:00
Michael Rudolf
3400f0e6bd
Implement autostart using "exec" in config
...
Syntax is "exec <application>", like when creating a binding.
Multiple entries are possible, applications are started in
the specified order.
2009-05-05 20:14:02 +02:00
Michael Stapelberg
e295ab302b
Implement storing WM_CLASS of each client
2009-05-05 16:53:22 +02:00
Michael Stapelberg
99054fb50f
Bugfix: Fix drag&drop in GTK applications (firefox, thunderbird)
...
Thanks to Daniel Wäber’s contribution to wmii:
http://code.suckless.org/hg/wmii/rev/f4f25de0de54
2009-05-02 20:51:55 +02:00
Michael Stapelberg
e91f399609
Bugfix: Correctly restart i3 when not using its absolute path
2009-05-01 16:10:02 +02:00
Michael Stapelberg
982e453251
Don’t rely on libxcb-wm any longer, as it got removed in libxcb 0.3.4
...
See http://cgit.freedesktop.org/xcb/util/commit/?id=4c9a707f472e49bc3005354db265a0214071d46b
2009-04-19 20:44:34 +02:00
Michael Stapelberg
bcbe800720
Bugfix: Store dock clients per screen, not per workspace.
...
This fixes ticket #12
2009-04-11 14:29:15 +02:00
Michael Stapelberg
8cc1fcf536
General small cleanups
2009-04-11 14:08:19 +02:00
Michael Stapelberg
a8478efa34
Bugfix: Correctly filter out the numlock state bit (doesn’t get cleared for some reason)
...
This fixes ticket #14
2009-03-27 15:24:52 +01:00
Michael Stapelberg
eb2ceb95bf
Cleanup makefiles, add version to i3 -v and i3 startup
2009-03-15 23:15:16 +01:00
Michael Stapelberg
c02dd93bcc
Bugfix: Query WM_NORMAL_HINTS when managing a window to handle proportional hints which were set before mapping
2009-03-15 12:24:49 +01:00
Michael Stapelberg
cb9c7078be
Implement kill-command to kill the current window, document it
2009-03-14 22:09:36 +01:00
Michael Stapelberg
e3085b4f75
Fix fullscreen for xpdf (at least on debian, with proper _NET_WM_STATE hints)
...
xpdf sets the _NET_WM_STATE before actually mapping the window. i3 only checked
for changes of this hint, but not if it is already set when intially managing
the window.
Note that you need to patch your xpdf to support _NET_WM_STATE, because, while
only being reported at 2004, upstream still did not merge the patch *grrr*
See this debian bug report:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=247602
Or directly download the patch from:
http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=61;filename=31_fullscreen.dpatch;att=1;bug=247602
2009-03-13 04:51:17 +01:00
Michael Stapelberg
cc2c63b860
Handle legacy window titles by rendering them not unicode-compatible.
2009-03-11 21:31:54 +01:00
Michael Stapelberg
12970211c4
Fix misnomer (window_type_handler → handle_window_type), resolve TODO
2009-03-11 19:39:32 +01:00
Michael Stapelberg
38c8541807
Bugfix: Change the event mask to ignore enter notifies when rendering the layout and changing workspaces
2009-03-11 00:20:56 +01:00
Michael Stapelberg
408b2bdb39
Bugfix: Eliminate race condition, fix dock windows
...
There was a race condition when mapping a window and not setting the event mask
before. Therefore, the ReparentNotify and (more important) the UnmapNotify generated
by reparenting were not received, thus leaving the awaiting_useless_unmap variable
of the client "true". To just make it work, in previous commits the DestroyNotify
handler was introduced. Fortunately, with fixing this race condition by first
setting the event mask and mapping the window afterwards, we can remove this handler.
As for the dock windows, there were quite some occurences were client->container
was used without checking if the client is inside a container at all.
Furthermore, the client’s strut containing the space to reserve at the screen edge
is now checked and the desired height is set to the window’s height if the strut
contains 0 or if no strut was specified at all.
2009-03-10 20:56:25 +01:00
Michael Stapelberg
c025678177
Major change: Redirect events instead of handle the notifies.
...
By specifying XCB_EVENT_MASK_SUBSTRUCTURE_REDIRECT, the window manager
will get map request events instead of map notify events, and therefore
can act sooner (the window won’t be positioned on the screen and moved
afterwards).
Furthermore, this fixes some problems with GIMP/VLC (and probably others)
which caused endless loops.
Also, events which should be ignored are now saved in a queue rather than
saving just the last event. This should eliminate race conditions.
Note that there is a new FIXME in src/handlers.c. Some windows generate
unmap notify events when reparenting while others don’t. We need to
understand, document and implement a more correct way to handle this.
2009-03-10 00:51:15 +01:00
Michael Stapelberg
9e74378dd0
Bugfix: Use _NET_WM_NAME (UTF-8) rather than WM_NAME (COMPOUND_TEXT). Only render client titles, if they are set
2009-03-08 19:07:33 +01:00
Michael Stapelberg
6f630a3335
Implement UTF-8-clean window titles
2009-03-08 00:49:11 +01:00
Michael Stapelberg
35c04b448a
Don’t start a terminal on startup
2009-03-07 05:50:19 +01:00
Michael Stapelberg
1f3ce94027
Bugfix: Correctly place new windows while other windows are in fullscreen mode
2009-03-07 05:49:13 +01:00
Michael Stapelberg
6abcc5f656
Fix some bugs found by using raster’s wm_torture
2009-03-07 02:44:46 +01:00
Michael Stapelberg
96ac9f9066
Implement slog() and the LOG() macro, convert printf() to LOG()
2009-03-06 06:46:43 +01:00
Michael Stapelberg
0831f3e129
Implement handling the size hints so that aspect ratio is used correctly, fix rendering on stacks
2009-03-06 06:06:19 +01:00
Michael Stapelberg
1343b77dbb
Bugfix: Some memory leaks / invalid accesses
2009-03-05 01:48:30 +01:00
Michael Stapelberg
17bca23a8c
Implement a focus stack, correctly free table columns/rows
2009-03-05 01:20:13 +01:00
Michael Stapelberg
f90563011f
Implement option parsing (-c <configfile>)
2009-03-04 16:06:39 +01:00
Michael Stapelberg
a02b861826
Use "conn" for xcb_connection and "event" for xcb_event_* variables everywhere
2009-03-04 15:45:12 +01:00
Michael Stapelberg
45827607dc
Use default cursor (XC_left_ptr) for all windows
2009-03-04 15:28:50 +01:00
Michael Stapelberg
f45e706c48
Merge font.c into xcb.c
2009-03-04 14:52:04 +01:00
Michael Stapelberg
415b5cc0e8
Load configuration file from ~/.i3/config or /etc/i3/config
2009-03-04 09:16:18 +01:00
Michael Stapelberg
3b50615a71
Implement Xinerama screen changes
2009-03-03 23:51:02 +01:00
Michael Stapelberg
cb6ea9861d
Bugfix: Fix various bugs when switching workspaces
2009-02-28 22:11:48 +01:00