]> git.sur5r.net Git - i3/i3/commitdiff
BREAKS CONFIG: rename 'level up' to 'focus parent'
authorMichael Stapelberg <michael@stapelberg.de>
Thu, 9 Jun 2011 23:36:33 +0000 (01:36 +0200)
committerMichael Stapelberg <michael@stapelberg.de>
Thu, 9 Jun 2011 23:36:33 +0000 (01:36 +0200)
…and 'level down' to 'focus child'. More intuitive than the old command names.

docs/userguide
i3.config
src/cmdparse.l
src/cmdparse.y
testcases/t/24-move.t
testcases/t/29-focus-after-close.t
testcases/t/31-stacking-order.t
testcases/t/55-floating-split-size.t
testcases/t/67-workspace_layout.t

index b7a8ff09887a52f860aba5c17858561d9c774694..863199742271735e6ebb24f89875149452709e59 100644 (file)
@@ -237,19 +237,19 @@ unfloat::[]
 You probably guessed it already: There is no limit on how deep your hierarchy
 of splits can be.
 
-=== Level up
+=== Focus parent
 
 Let’s stay with our example from above. We have a terminal on the left and two
 vertically split terminals on the right, focus is on the bottom right one. When
 you open a new terminal, it will open below the current one.
 
 So, how can you open a new terminal window to the *right* of the current one?
-The solution is to use +level up+, which will focus the +Parent Container+ of
+The solution is to use +focus parent+, which will focus the +Parent Container+ of
 the current +Container+. In this case, you would focus the +Vertical Split
 Container+ which is *inside* the horizontally oriented workspace. Thus, now new
 windows will be opened to the right of the +Vertical Split Container+:
 
-image::tree-shot3.png["shot3",title="Level Up, then open new terminal"]
+image::tree-shot3.png["shot3",title="Focus parent, then open new terminal"]
 
 
 == Configuring i3
index f726de8c1b5f43c42ad4a52a0b08e0570cd2a977..72399dfaac0506e8694ee21ba9e0072a130f4d64 100644 (file)
--- a/i3.config
+++ b/i3.config
@@ -40,8 +40,11 @@ bindsym Mod1+l layout default
 # toggle tiling / floating
 bindsym Mod1+Shift+space mode toggle
 
-bindsym Mod1+u level up
-#bindsym Mod1+d level down
+# focus the parent container
+bindsym Mod1+u focus parent
+
+# focus the child container
+#bindsym Mod1+d focus child
 
 # Kill current window
 bindsym Mod1+c kill
index ba2789f267d9ec4a1363b15806efa8ef24c6d474..545def7d05259c53aebf6b8259ee9e2883deb068 100644 (file)
@@ -124,11 +124,12 @@ prev                            { return TOK_PREV; }
 split                           { return TOK_SPLIT; }
 horizontal                      { return TOK_HORIZONTAL; }
 vertical                        { return TOK_VERTICAL; }
-level                           { return TOK_LEVEL; }
 up                              { return TOK_UP; }
 down                            { return TOK_DOWN; }
 left                            { return TOK_LEFT; }
 right                           { return TOK_RIGHT; }
+parent                          { return TOK_PARENT; }
+child                           { return TOK_CHILD; }
 resize                          { return TOK_RESIZE; }
 shrink                          { return TOK_SHRINK; }
 grow                            { return TOK_GROW; }
index c33a145b3be513af74ff2c6f5db3fe29e3937110..8cf7858beac2b42ec88e3aa5c19fd36cb4b2649d 100644 (file)
@@ -144,11 +144,12 @@ char *parse_cmd(const char *new) {
 %token              TOK_SPLIT           "split"
 %token              TOK_HORIZONTAL      "horizontal"
 %token              TOK_VERTICAL        "vertical"
-%token              TOK_LEVEL           "level"
 %token              TOK_UP              "up"
 %token              TOK_DOWN            "down"
 %token              TOK_LEFT            "left"
 %token              TOK_RIGHT           "right"
+%token              TOK_PARENT          "parent"
+%token              TOK_CHILD           "child"
 %token              TOK_RESTORE         "restore"
 %token              TOK_MARK            "mark"
 %token              TOK_RESIZE          "resize"
@@ -168,7 +169,7 @@ char *parse_cmd(const char *new) {
 %token  <number>    NUMBER              "<number>"
 
 %type   <number>    direction
-%type   <chr>       level_direction
+%type   <number>    level
 %type   <number>    window_mode
 %type   <number>    border_style
 %type   <number>    layout_mode
@@ -345,7 +346,6 @@ operation:
     | fullscreen
     | split
     | mode
-    | level
     | mark
     | resize
     | nop
@@ -441,6 +441,19 @@ focus:
 
         tree_render();
     }
+    | TOK_FOCUS level
+    {
+        if ($2 == TOK_PARENT)
+            level_up();
+        else level_down();
+
+        tree_render();
+    }
+    ;
+
+level:
+    TOK_PARENT  { $$ = TOK_PARENT; }
+    | TOK_CHILD { $$ = TOK_CHILD;  }
     ;
 
 kill:
@@ -582,24 +595,6 @@ border_style:
     | TOK_1PIXEL    { $$ = BS_1PIXEL; }
     ;
 
-
-level:
-    TOK_LEVEL level_direction
-    {
-        printf("level %c\n", $2);
-        if ($2 == 'u')
-            level_up();
-        else level_down();
-
-        tree_render();
-    }
-    ;
-
-level_direction:
-    TOK_UP     { $$ = 'u'; }
-    | TOK_DOWN { $$ = 'd'; }
-    ;
-
 move:
     TOK_MOVE direction
     {
index 9d200aa9d518b8ec405aa8db8a067f06131593eb..b007d5b14d2f569a0e0774765f1787bfa08c6e8e 100644 (file)
@@ -75,7 +75,7 @@ is($content->[0]->{id}, $first, 'first container unmodified');
 # |       |        |       |
 # --------------------------
 cmd 'split v';
-cmd 'level up';
+cmd 'focus parent';
 cmd 'open';
 
 $content = get_ws_content($tmp);
index dec9bb92c8b1474b437b8e351b01a2a68fd5fc77..5f5ef4af3174f1c7315b5bcdf565a3ca461770ca 100644 (file)
@@ -23,9 +23,9 @@ cmd 'split v';
 my ($nodes, $focus) = get_ws_content($tmp);
 
 is($nodes->[1]->{focused}, 0, 'split container not focused');
-cmd 'level up';
+cmd 'focus parent';
 ($nodes, $focus) = get_ws_content($tmp);
-is($nodes->[1]->{focused}, 1, 'split container focused after level up');
+is($nodes->[1]->{focused}, 1, 'split container focused after focus parent');
 
 my $third = open_empty_con($i3);
 
index 4ffafa17139f30f2ea64590227ccb0c2250a74c3..ea42596c5a644526a43c3bfbd264a0ebc84344cb 100644 (file)
@@ -38,9 +38,9 @@ is(get_focused($tmp), $second, 'second container focused again');
 # now change the orientation to horizontal and cycle
 ##############################################################
 
-cmd 'level up';
+cmd 'focus parent';
 cmd 'split h';
-cmd 'level down';
+cmd 'focus child';
 
 cmd 'focus down';
 is(get_focused($tmp), $first, 'first container focused');
index 61ceae3cf0f0585ac84a8319f10784614dd0ccc6..3ff1d8f372d66d9afba0cb9a830f26f7999008c7 100644 (file)
@@ -48,7 +48,7 @@ sleep 0.25;
 # Set the parent to floating
 #####################################################################
 cmd 'nop setting floating';
-cmd 'level up';
+cmd 'focus parent';
 cmd 'mode floating';
 
 #####################################################################
index 456e73162ff44d5fce97abb0ea548029e4c8e17a..46d0c2749a77cdeb9366da402cecda276fbafd58 100644 (file)
@@ -79,16 +79,16 @@ ok(@content == 1, 'one con at workspace level');
 is($content[0]->{layout}, 'stacked', 'layout stacked');
 
 #####################################################################
-# 3: level up, open two new cons, check that they end up in a stacked
+# 3: focus parent, open two new cons, check that they end up in a stacked
 # con
 #####################################################################
 
-cmd 'level up';
+cmd 'focus parent';
 my $right_top = open_standard_window($x);
 my $right_bot = open_standard_window($x);
 
 @content = @{get_ws_content($tmp)};
-is(@content, 2, 'two cons at workspace level after level up');
+is(@content, 2, 'two cons at workspace level after focus parent');
 is($content[0]->{layout}, 'stacked', 'layout stacked');
 is($content[1]->{layout}, 'stacked', 'layout stacked');