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
Michael Stapelberg
6897e15e72
Implement mark/goto, modify testcase
2010-06-02 23:32:05 +02:00
Michael Stapelberg
5bff638ea0
bugfix: the layout command needs to change the layout of the parent container
2010-06-02 18:58:52 +02:00
Michael Stapelberg
7c3e88ad93
parser: implement matching on the window id
2010-06-02 17:20:32 +02:00
Michael Stapelberg
cea8f91e18
parser: implement 'layout'
2010-06-01 23:20:57 +02:00
Michael Stapelberg
a25dc3e988
Implement focus command (and extend t/21-next-prev.t to test it)
2010-06-01 18:49:43 +02:00
Michael Stapelberg
71e0e49c0e
Implement mode toggle
2010-05-31 22:48:28 +02:00
Michael Stapelberg
2d52ecf071
Add parameter to reparent windows instead of killing them when closing a container
...
Necessary because when windows are unmapped, they are not necessary to
be killed (an application can unmap it temporarily).
2010-05-15 00:16:59 +02:00
Michael Stapelberg
5eae706427
grammar: s/layout_mode/window_mode
2010-05-11 23:04:21 +02:00
Michael Stapelberg
c75a6732bf
Implement 'restore' in new parser
2010-05-11 23:00:31 +02:00
Michael Stapelberg
a0e33c1d68
implement 'move' command in the new parser
2010-05-11 22:46:49 +02:00
Michael Stapelberg
98dbe63e35
Implement exec, exit, level, restart (without testcases for now)
2010-05-10 10:12:35 +02:00
Michael Stapelberg
6a1c34d2c5
Implement 'split'
2010-05-10 09:33:10 +02:00
Michael Stapelberg
145ebc7584
Implement 'prev', extend testcase
2010-05-10 09:08:31 +02:00
Michael Stapelberg
d8307f4b4a
implement 'next' in the new command parser (testcase unfinished)
2010-05-10 00:06:24 +02:00
Michael Stapelberg
0ea85c1b9d
implement 'fullscreen' command
2010-04-17 19:29:44 +02:00
Michael Stapelberg
22f38ebde4
clear current_match when dropping state
2010-04-17 12:57:06 +02:00
Michael Stapelberg
bb220b27d7
check for empty matches
2010-04-16 22:50:20 +02:00
Michael Stapelberg
93600ce0fd
implement con_id for matching containers, extend testcase
2010-04-16 15:30:07 +02:00
Michael Stapelberg
769501420d
add first version of a new flex/bison based command parser
2010-04-14 20:26:56 +02:00