Michael Stapelberg
2d71102796
Bugfix: Switch to appropriate workspace when using 'focus' (+test) (Thanks rogutes)
...
Fixes #432
2011-07-14 23:45:36 +02:00
Michael Stapelberg
c55abca115
add i3-nagbar. tells you about config file errors (for example)
2011-07-10 14:33:19 +02:00
Michael Stapelberg
c408fef021
Implement 'focus floating', 'focus tiling' and 'focus mode_toggle' (+test +docs)
2011-07-04 17:09:52 +02:00
Michael Stapelberg
fb9d77305e
Implement 'fullscreen global'
2011-06-10 18:27:20 +02:00
Michael Stapelberg
bef25d72aa
Implement 'border toggle' (+test)
2011-06-10 16:15:52 +02:00
Michael Stapelberg
60ae26c19d
Implement 'workspace next/prev' (+test)
2011-06-10 16:03:59 +02:00
Michael Stapelberg
39b1c1bf75
Re-implement the 'mode' command
2011-06-10 02:38:07 +02:00
Michael Stapelberg
df0b7bed48
cmdparse: s/direction/split_direction to be more clear
2011-06-10 02:25:14 +02:00
Michael Stapelberg
f1385ba3d5
CONFIG BREAK: Rename 'restore' to 'append_layout'
2011-06-10 02:15:31 +02:00
Michael Stapelberg
bd49c80d5f
CONFIG BREAK: rename 'mode floating/tiling' to 'floating enable/disable'
...
The three different variants now:
floating enable
floating disable
floating toggle
2011-06-10 02:06:47 +02:00
Michael Stapelberg
9bbb37bb55
BREAKS CONFIG: rename 'level up' to 'focus parent'
...
…and 'level down' to 'focus child'. More intuitive than the old command names.
2011-06-10 01:36:33 +02:00
Michael Stapelberg
9aa7e5fbd6
Parse multiple criteria in commands (+test), better error message for 'focus'
2011-06-08 23:34:08 +02:00
Michael Stapelberg
d68e4710fe
CONFIG BREAK: kick the 'next'/'prev' commands, introduce 'focus left' etc.
...
Instead of the cryptic next/prev commands, we now provide an argument to the
focus command. Userguide and default config is updated.
2011-06-08 20:49:49 +02:00
Michael Stapelberg
1585d942ea
Make workspace_layout handle all cons at workspace level, not only the first one (+test)
...
This makes opening new windows on workspace level and moving windows to the
right/left more like in the old i3.
2011-06-02 17:21:38 +02:00
Michael Stapelberg
8acea3d34c
call tree_render() only after commands which require it
...
Saves one call of tree_render for exec, for example
2011-05-29 13:20:34 +02:00
Michael Stapelberg
08f64f011d
cleanup cmdparse lexer/parser (ignore whitespace, solves conflicts)
2011-05-22 21:26:50 +02:00
Michael Stapelberg
5ae4620a24
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'.
2011-05-15 20:10:25 +02:00
Michael Stapelberg
ca2e4199b5
Introduce HANDLE_EMPTY_MATCH macro to simplify command handlers in cmdparse.y
2011-05-15 19:43:35 +02:00
Michael Stapelberg
3d2cd6abaa
Fix kill command with trailing whitespace
2011-05-13 21:18:20 +02:00
Michael Stapelberg
167bdd26b7
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).
2011-05-13 20:41:03 +02:00
Michael Stapelberg
a075fd4ee2
cmdparse.y: set type on the tokens/non-terminals (Thanks Merovius)
2011-05-05 20:39:05 +02:00
Michael Stapelberg
b342d387a8
Handle saved_configpath in get_config_path, fix memleak in current_configpath handling, update atoms after reloading (Thanks fernandotcl)
2011-03-19 22:26:15 +01:00
Michael Stapelberg
7100d32971
cmdparse: correctly parse con_id/id (fixes warning)
2011-03-14 23:14:40 +01:00
Michael Stapelberg
b21137b2c0
cmdparse: expect 4 shift/reduce conflicts
2011-03-14 23:08:33 +01:00
Michael Stapelberg
f900fab453
cmdparse: don’t allow empty operations
2011-03-14 23:03:25 +01:00
Michael Stapelberg
627683c053
cmdparse: don’t allow empty commands
2011-03-14 23:03:13 +01:00
Michael Stapelberg
8928823e07
remove usless 'operation' token, already handled by 'operation optwhitespace'
2011-03-14 22:29:07 +01:00
Michael Stapelberg
18215445f8
remove unused current_bindings (left-over from cfgparse.y)
2011-03-14 22:28:55 +01:00
Fernando Tarlá Cardoso Lemos
b4e3dfd76b
Add the "created" parameter to workspace_get.
...
If created is not NULL, *created is set to whether or not the
workspace has been just created.
2011-03-14 17:07:53 +01:00
Michael Stapelberg
287d7f9527
Bugfix: Don’t focus new cons when there is a fullscreen con (Thanks dothebart)
...
Also, remove the focus_it parameter from tree_open_con, it makes more sense to
call con_focus outside of the function.
2011-03-06 23:26:02 +01:00
Michael Stapelberg
7f89c71689
Implement dock mode, update testsuite
...
Currently, dock clients are only possible at the top.
2011-02-20 23:43:03 +01:00
Michael Stapelberg
26a416e016
refactor tree_move() into src/move.c, change config (!), change testcase
...
Due to lots of cases which were added and added to tree_move(), the function
was not really easy to understand. For this refactoring, I wrote tree_move()
from scratch, thinking about (hopefully) all cases. The testsuite still passes.
The move command also has different parameters now. Instead of the hard to
understand 'before v' stuff, we use 'move [left|right|up|down]'.
2011-02-14 23:05:20 +01:00
Michael Stapelberg
0238ce3c73
fix some compiler warnings
2011-02-01 15:43:59 +01:00
Michael Stapelberg
bdbda20293
cmdparse: free strings
2011-01-04 22:37:50 +01:00
Axel Wagner
aa422c07c4
Add forgetful restart to sighandler
2010-12-31 19:36:35 +01:00
Michael Stapelberg
a86d8ab329
use con_num_children()
2010-11-28 22:45:39 +01:00
Michael Stapelberg
77d0d42ed2
look and feel: create split container when switching workspace layout
...
Quote from the source:
When the container type is CT_WORKSPACE, the user wants to change the
whole workspace into stacked/tabbed mode. To do this and still allow
intuitive operations (like level-up and then opening a new window), we
need to create a new split container. */
2010-11-26 23:08:12 +01:00
Michael Stapelberg
131a2f8765
debugging: implement a NOP command which just spits out its argument
...
You can use this in testcases to mark specific sections:
$i3->command('nop before trying to crash')->recv;
leads to the following output in the i3 logfile:
-------------------------------------------------
NOP: before trying to crash
-------------------------------------------------
2010-11-20 18:40:25 +01:00
Michael Stapelberg
d760a1c7b2
Bugfix: don’t kill parent when currently in tree_close() for a child of this parent
2010-11-14 20:14:09 +01:00
Michael Stapelberg
a415d56048
parser: return a proper JSON reply on parse errors
2010-11-14 01:45:05 +01:00
Michael Stapelberg
e07fee4472
parser: don’t exit(1) on invalid command, use better error message
2010-11-12 20:22:55 +01:00
Michael Stapelberg
ea4e3e7682
parser: bugfix: initialize match when parsing new command
2010-11-12 19:07:48 +01:00
Michael Stapelberg
6eb7f2a01d
lexer/parser: implement 'border' command
2010-11-12 18:41:54 +01:00
Lourens Rozema
8159ffaa06
Bugfix for the kill command (used a.o. in test 18). Call to match_init is to be used i.o. a simple memset() to zero. Otherwise the boolean dock field doesn't get initalized to -1.
2010-08-21 18:28:37 +02:00
Michael Stapelberg
d066341261
ipc/parser: commands can now return custom JSON replies
...
Also, finally add include/cmdparse.h
2010-07-17 15:15:37 +02:00
Michael Stapelberg
6d152103f5
parser: implement move
2010-06-30 22:23:32 +02:00
Michael Stapelberg
565ef78b12
parser: implement resize command
2010-06-30 19:47:23 +02:00
Michael Stapelberg
bd9e5c0bc4
parser: implement explicit "mode floating"/"mode tiling"
2010-06-30 15:54:34 +02:00
Michael Stapelberg
2da4173144
parser: implement "reload"
2010-06-30 15:31:29 +02:00
Michael Stapelberg
ea30fdc327
parser: call tree_close_con() instead of tree_close() when run interactively
2010-06-30 15:27:18 +02:00