Michael Stapelberg
e900a8d23d
xinerama: correctly put windows which are assigned to a specific screen on that screen when it becomes available (Thanks badboy)
2009-12-21 22:30:08 +01:00
Michael Stapelberg
6ef0d1fa79
Touch each log message and classify it as DLOG (debug), ELOG (error) or LOG (verbose)
2009-12-19 22:40:23 +01:00
Michael Stapelberg
44c4c9d5a6
Bugfix: Go to the target workspace before changing focus on goto command (Thanks yurifury)
2009-10-07 20:41:21 +02:00
Michael Stapelberg
2b70e05ee9
Refactor workspaces to be stored in a TAILQ instead of an array
...
This fixes many problems we were having with a dynamically growing
array because of the realloc (pointers inside the area which was
allocated were no longer valid as soon as the realloc moved the
memory to another address).
Again, this is a rather big change, so expect problems and enable
core-dumps.
2009-09-29 19:45:41 +02:00
Michael Stapelberg
bfd704c523
Fix syntax for resize command
2009-09-29 00:54:27 +02:00
Michael Stapelberg
8f67eba044
Implement modes. Modes allow you to use different keybindings and switch between them.
...
For example, you can create a mode which will let you resize windows
with some easy to use keys. So, instead of binding a combination
of your homerow and modifiers to resize, like this:
bind Mod4+44 resize right +10
bind Mod4+45 resize right -10
...
You can instead define a new mode:
mode "resize" {
bind 44 resize right +10
bind 45 resize right -10
...
bind 36 mode default
}
bindsym Mod4+r mode resize
So, if you press Mod4+r now, your keybindings will be set to the ones
defined in your resize mode above. You can then use your homerow
(without any other modifier) to resize the current column/row and
press enter to go back to the default mode when you are done.
Note that using this option requires you to enable the new lexer/parser
by passing the -l flag to i3 when starting.
2009-09-27 18:45:39 +02:00
Michael Stapelberg
f38809288a
Make number of workspaces dynamic (no longer limited by 10)
...
Warning: This is not yet thoroughly tested, so be prepared to
encounter some segfaults. Please enable logging and coredumps,
so we can fix bugs quickly.
2009-09-27 14:00:54 +02:00
Michael Stapelberg
a55d0b77fe
Implement resize command
...
Syntax: resize <left|right|up|down> [+|-]<pixels>
2009-09-26 17:18:50 +02:00
Michael Stapelberg
f4ec7fdfe9
Implement stack-limit for further defining how stack windows should look
...
Using this command, you can limit the amount of columns or rows for
a stacking container. This allows for better usage of screen estate
when using stacking containers with many clients.
Examples:
i3-msg "stack-limit cols 2"
You will now have a stack window which has two columns of windows.
2009-09-22 18:07:59 +02:00
Michael Stapelberg
3ada8f326c
Implement vim-like marks
...
Commands are 'mark' and 'goto'. Both can be used either directly,
like 'mark a' and 'goto a', or interactively (just 'mark'). For
interactive mode, i3-input must be installed and in your PATH.
2009-09-20 16:54:29 +02:00
Michael Stapelberg
739f4f35aa
Compilation fix for the last commit
2009-09-12 18:34:03 +02:00
Michael Stapelberg
3b59f5829f
Bugfix: Correctly initialize workspaces for floating clients, too
2009-09-12 18:18:41 +02:00
Michael Stapelberg
4d01a02dba
Bugfix: Correctly initialize workspace when moving clients (Thanks tsdh)
2009-09-12 18:15:32 +02:00
Michael Stapelberg
bf043cd2bd
Some little style adjustments for badboy’s patch
2009-09-10 18:48:16 +02:00
Jan-Erik Rediger
40bc7c93d0
Implement command to toggle border style
...
Use 'bt' to toggle from normal to 1-px, borderless and back.
2009-09-10 18:44:27 +02:00
Michael Stapelberg
d9d4d9fff1
Implement tabbing
...
Use command "T" to switch to tabbing
2009-08-22 09:07:23 +02:00
Michael Stapelberg
44d9111d65
More log cleanups
2009-08-11 15:23:58 +02:00
Michael Stapelberg
556f180290
Bugfix: Fix screen wrapping, cleanup some log messages
...
Before this fix, you could go upwards and select the screen which
was at the rightmost because it also was the one topmost (if all
screen’s top position is equal).
2009-08-11 15:02:30 +02:00
Michael Stapelberg
b9636ceeec
Set WM_STATE_WITHDRAWN when unmapping, unmap windows when destroying (Thanks xeen)
...
Seems like java apps need it. Also, you probably want to use XToolkit,
when you have to work with java apps:
export AWT_TOOLKIT=XToolkit
2009-08-11 12:16:10 +02:00
Michael Stapelberg
47a798ac4a
Implement assignments of workspaces to screens, big cleanup of workspace code
...
Please test this! Plug in screens, unplug them, use your video projector,
change resolutions, etc.
To use the assignments, use the following syntax:
workspace <number> [screen <screen>] [name]
Where screen can be one of:
<number> (It is not provided that these numbers stay constant, so use with care)
<x>x<y> (Coordinates where the screen starts, so 1280 will be fine to match the
screen right of the main screen if your main screen is 1280 pixels
width. However, 1281 will not match)
<x>
x<y>
Some examples follow:
workspace 1 screen 0
workspace 1 screen 1
workspace 1 screen 1280x0
workspace 2 screen 1280
workspace 3 screen x0
workspace 3 screen 1 www
workspace 4 screen 0 mail
2009-08-08 19:51:51 +02:00
Michael Stapelberg
35d811db82
Bugfix: Change to default mode if there was no client selected
...
Another bug fixed by having testcases :-)
2009-08-06 00:16:58 +02:00
Michael Stapelberg
22e4f03553
Implement ws (with screen) to focus the next screen (wsl for example)
2009-08-05 19:24:21 +02:00
Michael Stapelberg
9222bea3b2
Implement borderless / 1-px-bordered windows
...
Use bn (normal), bp (1-px), bb (borderless) as commands to change the
border style of the currently focused window. Feel free to use i3-msg
to do this.
2009-08-05 18:33:44 +02:00
Michael Stapelberg
7cfe520755
Bugfix: Don’t hide assigned clients to inactive but visible workspaces (Thanks xeen)
2009-08-02 22:31:52 +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
9db8535b4c
Some little fixes (mostly formatting) for bapt’s patch
2009-07-22 00:16:16 +02:00
Bapt
3e262913e8
Implements next-previous workspace
2009-07-21 23:50:08 +02:00
Michael Stapelberg
ab48d714cf
Bugfix: Don’t lose focus when putting windows into floating
2009-06-26 04:34:36 +02:00
Michael Stapelberg
8f87c212be
Bugfix: When moving, first check boundaries, then check for col-/rowspan (Thanks Mirko)
2009-06-26 04:21:30 +02:00
Michael Stapelberg
8659419ef6
Bugfix: Correctly handle moving fullscreen client onto another screen (Thanks dirkson)
2009-06-25 13:46:47 +02:00
Michael Stapelberg
aa2f20ce26
Bugfix: Correctly handle floating windows when unmapping, fix focus bug when moving
2009-06-25 13:31:58 +02:00
Michael Stapelberg
777eedf0f4
Bugfix: Fix selecting col-/rowspanned containers
2009-06-24 21:10:12 +02:00
Michael Stapelberg
07bebdf841
Correctly re-assign floating clients to the destination workspace when moving
2009-06-24 17:12:12 +02:00
Michael Stapelberg
7ed967c96f
Ensure that the focus is set correctly when moving floating clients
2009-06-24 00:35:05 +02:00
Michael Stapelberg
125faef1f4
Correctly move floating clients to other workspaces on visible screens
2009-06-24 00:34:03 +02:00
Michael Stapelberg
0aed552bae
Bugfix: Remove/add floating clients to workspace->floating_clients when moving to other workspaces
2009-06-23 23:17:06 +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
93ff4159c1
Bugfix: Obey colspan/rowspan when checking if containers can be snapped to the right/bottom (Thanks Mirko)
...
This fixes ticket #54 .
2009-06-19 22:39:03 +02:00
Michael Stapelberg
89c0caaec4
Implement a command for hiding all floating windows (and showing them again)
2009-06-19 13:59:29 +02:00
Michael Stapelberg
5c48444b4e
Implement the possibility to set a workspace open clients automatically in floating mode
...
Use "wwt" (with workspace: toggle floating) in your configuration file
2009-06-19 13:20:10 +02:00
Michael Stapelberg
4135aaad7c
Implement moving of floating clients
2009-06-19 12:57:21 +02:00
Michael Stapelberg
a6d7f5451d
Also set DIALOG, UTILITY and SPLASH windows floating automatically
2009-06-19 12:05:55 +02:00
Michael Stapelberg
00c6bdeb0b
Implement changing focus via keyboard between floating clients, fix several floating bugs
2009-06-14 01:04:59 +02:00
Michael Stapelberg
d70ea03356
Remove some dead code, add default paths to switch() to make static analyzers happy
...
Check was done with scan-build from the LLVM suite. The remaining reports are false
positives and have been reported to llvm:
http://llvm.org/bugs/show_bug.cgi?id=4358
http://llvm.org/bugs/show_bug.cgi?id=4359
2009-06-10 19:59:36 +02:00
Michael Stapelberg
2f334c3f59
Bugfix: Don’t set focus when unmapping clients if the workspace is not active (Thanks Mirko)
...
This fixes ticket #53 because current workspace was set to the
workspace which was deleted.
2009-06-07 19:09:39 +02:00
Michael Stapelberg
0cb5d7448d
Implement clients going automatically into floating
2009-05-31 00:31:18 +02:00
Michael Stapelberg
fccbdea925
Bugfix: Correctly set focus when switching to a workspace with floating clients
...
This fixes ticket #45
2009-05-30 11:41:49 +02:00
Michael Stapelberg
b1eb93326f
Bugfix: Correctly cleanup stack_windows when setting clients to floating
...
This fixes ticket #44
2009-05-30 11:35:32 +02:00
Michael Stapelberg
94ee39d1ce
Bugfix: Forgot to update client’s workspace pointer (Thanks Mirko)
2009-05-27 12:27:29 +02:00
Michael Stapelberg
bcd68d9ca1
Bugfix: Fix crash when focusing/moving on an empty workspace (Thanks Mirko)
2009-05-27 12:15:23 +02:00
Michael Stapelberg
9c3b37f2d1
Bugfix: Cleanup the table after putting clients into floating mode
2009-05-26 17:16:51 +02:00
Michael Stapelberg
94cead993c
Don’t process autostart when restarting (new parameter -a)
2009-05-26 17:09:34 +02:00
Michael Stapelberg
b58e2fa8ed
Move toggle_fullscreen to client.c
2009-05-26 16:49:57 +02:00
Michael Stapelberg
5b8e2ecb18
Implement floating (please test and find bugs)
...
Details which are missing: A command to hide/show all floating clients,
moving/resizing clients with your mouse holding Mod1 (click anywhere
in the client, not just on its borders), resize/move by keyboard, select
next/previous client by keyboard
2009-05-23 16:34:03 +02:00
Michael Stapelberg
d5d44e66a2
Bugfix: Re-assign dock windows to different workspaces when a workspace is deleted
...
Killing a dock client and having destroyed workspace 1 before (or the workspace
on which the dock client was started when it was not auto-started) crashed i3 before
this bugfix.
2009-05-16 18:12:35 +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 Stapelberg
610fabf873
Bugfix: Correctly handle col-/rowspanned containers when setting focus (Thanks Ned)
...
This fixes ticket #34
2009-05-09 20:00:20 +02:00
Michael Stapelberg
18da0a3017
Bugfix: Force reconfiguration of all windows on workspaces which needed to be re-assigned (Thanks Mirko)
...
When you disable a Xinerama screen (think of removing a video projector),
the workspaces of that screen need to be re-assigned to another screen.
Previously, the clients affected by this re-assignment did not get re-
configured, which made them appear on the next screen which got configured
at the position of the old one again if you did not switch to the reassigned
workspace before.
So, to reproduce it:
xrandr --output VGA --mode 1280x1024 --right-of LVDS
move windows to the new workspace
xrandr --output VGA --off
xrandr --output VGA --mode 1280x1024 --right-of LVDS
This fixes ticket #36
2009-05-09 13:04:34 +02:00
Michael Stapelberg
3a2b546c9e
Implement a command to travel the focusstack. This can be used like a jumpback.
...
However, it is a bit more flexible obviously. You can specify the
offset of the window you want to go to, to implement workflows like
the following:
* Jump to mutt
* Jump to irssi
* Jump back ("focus 2" would be the command)
2009-05-05 17:25:56 +02:00
Michael Stapelberg
56d637a665
Add debug message for jumping
2009-05-05 16:57:21 +02:00
Michael Stapelberg
f72214725c
Implement jumping to windows by matching their class / title
2009-05-05 16:53:22 +02:00
Michael Stapelberg
12fa69329a
Change syntax of jump to col,row instead of row,col to make it consistent with the internal data structures, document it in commandmode
2009-05-05 16:47:06 +02:00
Michael Stapelberg
79e5d5f29d
Some small style changes to make urs’ code consistent
2009-05-05 16:47:05 +02:00
Urs Ganse
efbe2dfeaa
Added a "jump" command to directly focus a container.
...
Syntax is "jump <ws> <row> <col>".
This is quite handy for clients that you always keep
in the same spot, and like to jump to quite often. The
irc client would be an example.
2009-05-05 16:47:05 +02:00
Michael Stapelberg
c27c7fc020
Bugfix: Insert windows at correct position/set focus correctly when moving between containers
2009-05-03 16:24:12 +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
49d5bdbb08
Bugfix: Correctly adjust state when transferring fullscreen windows to other workspaces (Thanks Mirko)
...
This fixes ticket #27 .
Furthermore, it is ensured that only one client at a time is in fullscreen mode.
2009-04-17 21:01:33 +02:00
Michael Stapelberg
b7e8a63474
Bugfix: Fix warping of cursor when only switching screen, not workspace
2009-04-11 20:55:16 +02:00
Michael Stapelberg
8cc1fcf536
General small cleanups
2009-04-11 14:08:19 +02:00
Michael Stapelberg
0216e84327
Bugfix: Warp pointer to the right window
...
This fixes ticket #20
2009-04-11 11:36:58 +02:00
Michael Stapelberg
4bd7667445
Bugfix: Correctly set focus when switching between screens
2009-04-08 13:48:37 +02:00
Michael Stapelberg
cb7b7a73d2
Bugfix: Set focus to the client which was previously focused instead of the next client when moving windows
...
This fixes ticket #21
2009-04-07 16:48:42 +02:00
Michael Stapelberg
28aa13d831
Bugfix: Don’t set focus if it is not necessary.
...
This fixes ticket #13
2009-04-01 12:50:42 +02:00
Michael Stapelberg
755540817e
Implement scrolling on stack windows and on the bar. This implements ticket #18
2009-04-01 12:31:13 +02:00
Michael Stapelberg
75a35319c9
Bugfix: Correctly remove client from container when moving to another workspace
...
This fixes ticket #16
2009-04-01 12:02:22 +02:00
Michael Stapelberg
3d260f8e50
Bugfix: re-decorate old client when switching screens
2009-03-15 21:13:15 +01:00
Michael Stapelberg
3a994e4bf7
Implement clicking on the bar to switch workspaces
2009-03-15 17:49:25 +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
cc0b060628
Implement exit command, document it in manpage, add it to defaultconfig (Mod1+Shift+e)
2009-03-14 21:31:22 +01:00
Michael Stapelberg
c0aa9cac61
Implement moving containers, implement moving windows to the top if top-most, change config to use Mod3
2009-03-11 18:56:31 +01:00
Michael Stapelberg
49b56166dc
Implement moving clients to the left if they are leftmost
2009-03-11 01:55:10 +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
00f08cba75
Bugfix: Correctly free containers, the bug was not freeing when not moving
2009-03-09 08:14:00 +01:00
Michael Stapelberg
71993c9b48
Implement wrapping left/right/up/down across screens
2009-03-09 07:39:19 +01:00
Michael Stapelberg
a411ed24cb
Bugfix: Correctly check for empty containers and unmap the stack_win
2009-03-06 19:08:59 +01:00
Michael Stapelberg
bf92a0c617
Don’t switch focus when in fullscreen mode
2009-03-06 16:53:47 +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
d2d6c0de12
Enable switching to containers when the current container has only one client
2009-03-05 19:47:16 +01:00
Michael Stapelberg
c5dffde101
Bugfix: Correct boundary checking for increasing col/rowspan
2009-03-05 17:24:04 +01:00
Michael Stapelberg
906914fe61
Bugfix: Rendering of colspan/rowspan was wrong
2009-03-05 17:17:37 +01:00
Michael Stapelberg
1343b77dbb
Bugfix: Some memory leaks / invalid accesses
2009-03-05 01:48:30 +01:00
Michael Stapelberg
bde67a179e
Implement wrapping, selecting containers is now Mod1+Ctrl+h/j/k/l
2009-03-04 23:45:44 +01:00
Michael Stapelberg
91f98cc597
Implement auto-destroying of empty workspaces
2009-03-04 22:52:36 +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
bb83dd6727
Implement switching to different screens when focusing left/right/up/down at the edge of a screen
2009-03-04 13:06:14 +01:00
Michael Stapelberg
3911d18982
Implement moving windows to other workspaces
2009-03-04 08:59:03 +01:00
Michael Stapelberg
3b50615a71
Implement Xinerama screen changes
2009-03-03 23:51:02 +01:00
Michael Stapelberg
16a514b9c1
Use a different color for focused windows in not focused containers, includes bugfixes for re-decoration
2009-03-03 02:28:26 +01:00
Michael Stapelberg
cb6ea9861d
Bugfix: Fix various bugs when switching workspaces
2009-02-28 22:11:48 +01:00
Michael Stapelberg
b651b132bc
Update TODO, fix parsing in commandmode for moving windows to workspaces vs. switching
2009-02-28 02:46:36 +01:00
Michael Stapelberg
d8a6f41e39
Bugfix: Set focus when table was shrinked and CUR_CELL might have been shrinked
2009-02-28 01:12:05 +01:00
Michael Stapelberg
10c5702a78
Implement restart-command to restart i3 without having to end your session
2009-02-27 22:40:48 +01:00
Michael Stapelberg
0edc523885
Bugfix: Correctly map/unmap stack windows
2009-02-25 02:05:08 +01:00
Michael Stapelberg
dadace2fa3
Implement automatic cleaning of the table
2009-02-24 20:29:30 +01:00
Michael Stapelberg
0e3a378c39
Implement stacking
2009-02-24 00:30:04 +01:00
Michael Stapelberg
07b92c2792
Don’t assign ->container for dock-windows
2009-02-23 03:44:10 +01:00
Michael Stapelberg
fe0485f9e5
Fix some movement/rendering bugs
2009-02-23 01:41:26 +01:00
Michael Stapelberg
28ea379c10
Update TODO and header-comments
2009-02-15 03:07:29 +01:00
Michael Stapelberg
26944bea99
Use c99
2009-02-15 02:30:18 +01:00
Michael Stapelberg
09cd7bd2d0
Implement Xinerama (workspaces have a specific screen)
2009-02-15 01:58:09 +01:00
Michael Stapelberg
18543c6bce
Implement fullscreen mode (Mod1+f)
2009-02-14 20:12:50 +01:00
Michael Stapelberg
fb4c851e2a
Add vim hints, copyright notice to each file, add LICENSE, retab! everything
2009-02-14 02:33:31 +01:00
Michael Stapelberg
4589c26558
Environment filtering is not needed. Instead, open applications through SHELL, double-fork
2009-02-14 01:36:12 +01:00
Michael Stapelberg
82dd64ff24
Move stuff to include/ and src/
2009-02-13 19:09:25 +01:00