]> git.sur5r.net Git - i3/i3/commitdiff
Added configuration directive for 'move [container|window] [to] mark <str>'
authorIngo Bürk <ingo.buerk@tngtech.com>
Sun, 12 Apr 2015 15:30:31 +0000 (17:30 +0200)
committerIngo Bürk <ingo.buerk@tngtech.com>
Sun, 19 Apr 2015 18:57:44 +0000 (20:57 +0200)
docs/userguide
include/commands.h
parser-specs/commands.spec
src/commands.c

index 96b369024d40a7c2eeb98554cf469aae98f4d614..f7135c6a5ee915a171700a0b647527f5351d222f 100644 (file)
@@ -1837,6 +1837,26 @@ bindsym $mod+x move workspace to output right
 bindsym $mod+x move container to output VGA1
 --------------------------------------------------------
 
+=== Moving containers/workspaces to marks
+
+To move a container to another container with a specific mark (see <<vim_like_marks>>),
+you can use the following command.
+
+The window will be moved right after the marked container in the tree, i.e., it ends up
+in the same position as if you had opened a new window when the marked container was
+focused. If the mark is on a split container, the window will appear as a new child
+after the currently focused child within that container.
+
+*Syntax*:
+------------------------------------
+move window|container to mark <mark>
+------------------------------------
+
+*Example*:
+--------------------------------------------------------
+for_window [instance="tabme"] move window to mark target
+--------------------------------------------------------
+
 [[resizingconfig]]
 
 === Resizing containers/windows
index 0f7e3635c0964b997f7ea219b930c5359fd50124..ccb555a4a5bcaf1210eebb612447f04f001daefc 100644 (file)
@@ -132,6 +132,12 @@ void cmd_mode(I3_CMD, char *mode);
  */
 void cmd_move_con_to_output(I3_CMD, char *name);
 
+/**
+ * Implementation of 'move [window|container] [to] mark <str>'.
+ *
+ */
+void cmd_move_con_to_mark(I3_CMD, char *mark);
+
 /**
  * Implementation of 'floating enable|disable|toggle'
  *
index 87db6cf082cebfeb04e430cc5a31ba1fe19370e4..8fe1f5697edab766fb7e650b53f4929abe592f35 100644 (file)
@@ -265,6 +265,7 @@ state RENAME_WORKSPACE_NEW_NAME:
 # move <direction> [<pixels> [px]]
 # move [window|container] [to] workspace [<str>|next|prev|next_on_output|prev_on_output|current]
 # move [window|container] [to] output <str>
+# move [window|container] [to] mark <str>
 # move [window|container] [to] scratchpad
 # move workspace to [output] <str>
 # move scratchpad
@@ -280,6 +281,8 @@ state MOVE:
       -> MOVE_WORKSPACE
   'output'
       -> MOVE_TO_OUTPUT
+  'mark'
+      -> MOVE_TO_MARK
   'scratchpad'
       -> call cmd_move_scratchpad()
   direction = 'left', 'right', 'up', 'down'
@@ -321,6 +324,10 @@ state MOVE_TO_OUTPUT:
   output = string
       -> call cmd_move_con_to_output($output)
 
+state MOVE_TO_MARK:
+  mark = string
+      -> call cmd_move_con_to_mark($mark)
+
 state MOVE_WORKSPACE_TO_OUTPUT:
   'output'
       ->
index 79071d6bb5f451dbae214fcb6fd2a53dbde7813f..c81bafb7e2aad557a2a8ed2ebfae0881e2c8c2bd 100644 (file)
@@ -1169,6 +1169,14 @@ void cmd_move_con_to_output(I3_CMD, char *name) {
     ysuccess(true);
 }
 
+/*
+ * Implementation of 'move [container|window] [to] mark <str>'.
+ *
+ */
+void cmd_move_con_to_mark(I3_CMD, char *mark) {
+    ysuccess(true);
+}
+
 /*
  * Implementation of 'floating enable|disable|toggle'
  *