From b7b358394f5c709bb8c098e4f3d29e4e2816371f Mon Sep 17 00:00:00 2001
From: Michael Stapelberg
Date: Tue, 8 Nov 2016 19:55:30 +0100
Subject: [PATCH] update docs for 4.13
---
_docs/debugging | 2 +-
_docs/hacking-howto | 8 +--
_docs/i3bar-protocol | 6 +--
_docs/ipc | 32 ++++++++----
_docs/testsuite | 8 +--
_docs/userguide | 70 ++++++++++++++++++++-----
docs/debugging.html | 2 +-
docs/hacking-howto.html | 8 +--
docs/i3bar-protocol.html | 6 +--
docs/ipc.html | 48 +++++++++++++----
docs/testsuite.html | 8 +--
docs/userguide.html | 110 +++++++++++++++++++++++++++++----------
12 files changed, 226 insertions(+), 82 deletions(-)
diff --git a/_docs/debugging b/_docs/debugging
index 431a67a..e4c4fa9 100644
--- a/_docs/debugging
+++ b/_docs/debugging
@@ -10,7 +10,7 @@ Thank you for being interested in debugging i3. It really means
something to us to get your bug fixed. If you have any questions about the
process and/or need further help, do not hesitate to contact us!
-== Verify you are using i3 ⥠4.12
+== Verify you are using i3 ⥠4.13
Only the latest major version of i3 is supported. To verify which version
you are running, use:
diff --git a/_docs/hacking-howto b/_docs/hacking-howto
index 247a179..74a690e 100644
--- a/_docs/hacking-howto
+++ b/_docs/hacking-howto
@@ -187,7 +187,7 @@ cleanup ("flatten") the tree. See also +src/move.c+ for another similar
function, which was moved into its own file because it is so long.
src/util.c::
-Contains useful functions which are not really dependant on anything.
+Contains useful functions which are not really dependent on anything.
src/window.c::
Handlers to update X11 window properties like +WM_CLASS+, +_NET_WM_NAME+,
@@ -593,7 +593,7 @@ optimize this and call +x_push_node+ on the appropriate con directly.
itself for the containerâs children. This function actually pushes the
state, see the next paragraph.
4. If the pointer needs to be warped to a different position (for example when
- changing focus to a differnt output), it will be warped now.
+ changing focus to a different output), it will be warped now.
5. The eventmask is restored for all mapped windows.
6. Window decorations will be rendered by calling +x_deco_recurse+ on the root
container, which then recursively calls itself for the children.
@@ -850,7 +850,7 @@ empty.
Afterwards, +con_focus+ will be called to fix the focus stack and the tree will
be flattened.
-=== Case 3: Moving to non-existant top/bottom
+=== Case 3: Moving to non-existent top/bottom
Like in case 1, the reference layout for this case is a single workspace in
horizontal orientation with two containers on it. Focus is on the left
@@ -877,7 +877,7 @@ container and the container above/below the current one (on the level of
Now, +con_focus+ will be called to fix the focus stack and the tree will be
flattened.
-=== Case 4: Moving to existant top/bottom
+=== Case 4: Moving to existent top/bottom
The reference layout for this case is a vertical workspace with two containers.
The bottom one is a h-split containing two containers (1 and 2). Focus is on
diff --git a/_docs/i3bar-protocol b/_docs/i3bar-protocol
index 3ae1445..ebd3b83 100644
--- a/_docs/i3bar-protocol
+++ b/_docs/i3bar-protocol
@@ -6,7 +6,7 @@ August 2012
This document explains the protocol in which i3bar expects its input. It
provides support for colors, urgency, shortening and easy manipulation.
-== Rationale for chosing JSON
+== Rationale for choosing JSON
Before describing the protocol, letâs cover why JSON is a building block of
this protocol.
@@ -111,7 +111,7 @@ cont_signal::
processing.
The default value (if none is specified) is SIGCONT.
click_events::
- If specified and true i3bar will write a infinite array (same as above)
+ If specified and true i3bar will write an infinite array (same as above)
to your stdin.
=== Blocks in detail
@@ -233,7 +233,7 @@ name::
instance::
Instance of the block, if set
x, y::
- X11 root window coordinates where the click occured
+ X11 root window coordinates where the click occurred
button::
X11 button ID (for example 1 to 3 for left/middle/right mouse button)
diff --git a/_docs/ipc b/_docs/ipc
index dc4e694..fda289a 100644
--- a/_docs/ipc
+++ b/_docs/ipc
@@ -80,6 +80,8 @@ GET_BAR_CONFIG (6)::
GET_VERSION (7)::
Gets the version of i3. The reply will be a JSON-encoded dictionary
with the major, minor, patch and human-readable version.
+GET_BINDING_MODES (8)::
+ Gets a list of currently configured binding modes.
So, a typical message could look like this:
--------------------------------------------------
@@ -137,6 +139,8 @@ BAR_CONFIG (6)::
Reply to the GET_BAR_CONFIG message.
VERSION (7)::
Reply to the GET_VERSION message.
+BINDING_MODES (8)::
+ Reply to the GET_BINDING_MODES message.
=== COMMAND reply
@@ -285,7 +289,7 @@ type (string)::
Type of this container. Can be one of "root", "output", "con",
"floating_con", "workspace" or "dockarea".
border (string)::
- Can be either "normal", "none" or "1pixel", dependending on the
+ Can be either "normal", "none" or "pixel", depending on the
containerâs border style.
current_border_width (integer)::
Number of pixels of the border width.
@@ -604,6 +608,15 @@ loaded_config_file_name (string)::
}
-------------------
+=== BINDING_MODES reply
+
+The reply consists of an array of all currently configured binding modes.
+
+*Example:*
+---------------------
+["default", "resize"]
+---------------------
+
== Events
[[events]]
@@ -741,14 +754,15 @@ defines whether pango markup shall be used for displaying this mode.
This event consists of a single serialized map containing a property
+change (string)+ which indicates the type of the change
-* +new+ - the window has become managed by i3
-* +close+ - the window has closed
-* +focus+ - the window has received input focus
-* +title+ - the window's title has changed
-* +fullscreen_mode+ - the window has entered or exited fullscreen mode
-* +move+ - the window has changed its position in the tree
-* +floating+ - the window has transitioned to or from floating
-* +urgent+ - the window has become urgent or lost its urgent status
+* +new+ â the window has become managed by i3
+* +close+ â the window has closed
+* +focus+ â the window has received input focus
+* +title+ â the window's title has changed
+* +fullscreen_mode+ â the window has entered or exited fullscreen mode
+* +move+ â the window has changed its position in the tree
+* +floating+ â the window has transitioned to or from floating
+* +urgent+ â the window has become urgent or lost its urgent status
+* +mark+ â a mark has been added to or removed from the window
Additionally a +container (object)+ field will be present, which consists
of the window's parent container. Be aware that for the "new" event, the
diff --git a/_docs/testsuite b/_docs/testsuite
index 8fdb963..71c6a42 100644
--- a/_docs/testsuite
+++ b/_docs/testsuite
@@ -109,7 +109,7 @@ run the tests on a separate X server instance (using Xephyr).
Xephyr will open a window where you can inspect the running test. You can run
the tests without an X session with Xvfb, such as with +xvfb-run
-./complete-run+. This will also speed up the tests signficantly especially on
+./complete-run+. This will also speed up the tests significantly especially on
machines without a powerful video card.
.Example invocation of complete-run.pl+
@@ -196,7 +196,7 @@ In order to open new windows, change attributes, get events, etc., the
testsuite uses X11::XCB, a new (and quite specific to i3 at the moment) Perl
module which uses the XCB protocol description to generate Perl bindings to
X11. They work in a very similar way to libxcb (which i3 uses) and provide
-relatively high-level interfaces (objects such as +X11::XCB::Window+) aswell as
+relatively high-level interfaces (objects such as +X11::XCB::Window+) as well as
access to the low-level interface, which is very useful when testing a window
manager.
@@ -450,7 +450,7 @@ cmd 'focus left';
is($x->input_focus, $left->id, 'left window focused');
----------
-However, the test fails. Sometimes. Apparantly, there is a race condition in
+However, the test fails. Sometimes. Apparently, there is a race condition in
your test. If you think about it, this is because you are using two different
pieces of software: You tell i3 to update focus, i3 confirms that, and then you
ask X11 to give you the current focus. There is a certain time i3 needs to
@@ -614,7 +614,7 @@ activation, we decreased the total amount of time necessary to run all tests
it significantly more attractive to run the test suite more often (or at all)
during development.
-An alternative approach to using socket activation is polling for the existance
+An alternative approach to using socket activation is polling for the existence
of the IPC socket and connecting to it. While this might be slightly easier to
implement, it wastes CPU time and is considerably uglier than this solution
:). After all, +lib/SocketActivation.pm+ contains only 54 SLOC.
diff --git a/_docs/userguide b/_docs/userguide
index f3f80c9..acdc0a5 100644
--- a/_docs/userguide
+++ b/_docs/userguide
@@ -152,7 +152,7 @@ and move it to the wanted size.
You can also use <> to define a mode for resizing via the
keyboard. To see an example for this, look at the
-https://github.com/i3/i3/blob/next/i3.config.keycodes[default config] provided
+https://github.com/i3/i3/blob/next/etc/config.keycodes[default config] provided
by i3.
=== Restarting i3 inplace
@@ -181,7 +181,7 @@ can also do that by using the <>. Another way to resize
floating windows using the mouse is to right-click on the titlebar and drag.
For resizing floating windows with your keyboard, see the resizing binding mode
-provided by the i3 https://github.com/i3/i3/blob/next/i3.config.keycodes[default config].
+provided by the i3 https://github.com/i3/i3/blob/next/etc/config.keycodes[default config].
Floating windows are always on top of tiling windows.
@@ -610,11 +610,13 @@ new_window pixel 3
You can hide container borders adjacent to the screen edges using
+hide_edge_borders+. This is useful if you are using scrollbars, or do not want
-to waste even two pixels in displayspace. Default is none.
+to waste even two pixels in displayspace. The "smart" setting hides borders on
+workspaces with only one window visible, but keeps them on workspaces with
+multiple windows visible. Default is none.
*Syntax*:
-----------------------------------------------
-hide_edge_borders none|vertical|horizontal|both
+hide_edge_borders none|vertical|horizontal|both|smart
-----------------------------------------------
*Example*:
@@ -700,6 +702,38 @@ absolutely no plans to change this. If you need a more dynamic configuration
you should create a little script which generates a configuration file and run
it before starting i3 (for example in your +~/.xsession+ file).
+Also see <> to learn how to create variables based on resources
+loaded from the X resource database.
+
+[[xresources]]
+=== X resources
+
+<> can also be created using a value configured in the X resource
+database. This is useful, for example, to avoid configuring color values within
+the i3 configuration. Instead, the values can be configured, once, in the X
+resource database to achieve an easily maintainable, consistent color theme
+across many X applications.
+
+Defining a resource will load this resource from the resource database and
+assign its value to the specified variable. A fallback must be specified in
+case the resource cannot be loaded from the database.
+
+*Syntax*:
+----------------------------------------------------
+set_from_resource $
+----------------------------------------------------
+
+*Example*:
+----------------------------------------------------------------------------
+# The ~/.Xresources should contain a line such as
+# *color0: #121212
+# and must be loaded properly, e.g., by using
+# xrdb ~/.Xresources
+# This value is picked up on by other applications (e.g., the URxvt terminal
+# emulator) and can be used in i3 like this:
+set_from_resource $black i3wm.color0 #000000
+----------------------------------------------------------------------------
+
[[assign_workspace]]
=== Automatically putting clients on specific workspaces
@@ -1115,11 +1149,15 @@ show_marks yes
Config files support line continuation, meaning when you end a line in a
backslash character (`\`), the line-break will be ignored by the parser. This
feature can be used to create more readable configuration files.
+Commented lines are not continued.
*Examples*:
-------------------
bindsym Mod1+f \
fullscreen toggle
+
+# this line is not continued \
+bindsym Mod1+F fullscreen toggle
-------------------
== Configuring i3bar
@@ -1372,7 +1410,7 @@ NetworkManager, VLC, Pidgin, etc. can place little icons.
You can configure on which output (monitor) the icons should be displayed or
you can turn off the functionality entirely.
-You can use mutliple +tray_output+ directives in your config to specify a list
+You can use multiple +tray_output+ directives in your config to specify a list
of outputs on which you want the tray to appear. The first available output in
that list as defined by the order of the directives will be used for the tray
output.
@@ -1641,6 +1679,9 @@ bindsym $mod+x [class="Firefox" window_role="About"] kill
# enable floating mode and move container to workspace 4
for_window [class="^evil-app$"] floating enable, move container to workspace 4
+
+# move all floating windows to the scratchpad
+bindsym $mod+x [floating] move scratchpad
------------------------------------
The criteria which are currently implemented are:
@@ -1683,6 +1724,10 @@ con_id::
Compares the i3-internal container ID, which you can get via the IPC
interface. Handy for scripting. Use the special value +\_\_focused__+
to match only the currently focused window.
+floating::
+ Only matches floating windows. This criterion requires no value.
+tiling::
+ Only matches tiling windows. This criterion requires no value.
The criteria +class+, +instance+, +role+, +title+, +workspace+ and +mark+ are
actually regular expressions (PCRE). See +pcresyntax(3)+ or +perldoc perlre+ for
@@ -2050,6 +2095,7 @@ See <> for how to move a container/workspace to a different
RandR output.
[[move_to_outputs]]
+[[_moving_containers_workspaces_to_randr_outputs]]
=== Moving containers/workspaces to RandR outputs
To move a container to another RandR output (addressed by names like +LVDS1+ or
@@ -2057,10 +2103,10 @@ To move a container to another RandR output (addressed by names like +LVDS1+ or
+right+, +up+ or +down+), there are two commands:
*Syntax*:
-----------------------------------------------------
-move container to output left|right|down|up|
-
1. Verify you are using i3 ⥠4.12
+
1. Verify you are using i3 ⥠4.13
Only the latest major version of i3 is supported. To verify which version
you are running, use:
diff --git a/docs/hacking-howto.html b/docs/hacking-howto.html
index a2a6646..791b6af 100644
--- a/docs/hacking-howto.html
+++ b/docs/hacking-howto.html
@@ -401,7 +401,7 @@ src/util.c
-Contains useful functions which are not really dependant on anything.
+Contains useful functions which are not really dependent on anything.
@@ -973,7 +973,7 @@ Stack windows above each other, in reverse stack order (starting with the
If the pointer needs to be warped to a different position (for example when
- changing focus to a differnt output), it will be warped now.
+ changing focus to a different output), it will be warped now.
@@ -1319,7 +1319,7 @@ empty.
be flattened.
-
17.3. Case 3: Moving to non-existant top/bottom
+
17.3. Case 3: Moving to non-existent top/bottom
Like in case 1, the reference layout for this case is a single workspace in
horizontal orientation with two containers on it. Focus is on the left
container:
@@ -1353,7 +1353,7 @@ container and the container above/below the current one (on the level of
flattened.
-
17.4. Case 4: Moving to existant top/bottom
+
17.4. Case 4: Moving to existent top/bottom
The reference layout for this case is a vertical workspace with two containers.
The bottom one is a h-split containing two containers (1 and 2). Focus is on
the bottom left container (1).
diff --git a/docs/i3bar-protocol.html b/docs/i3bar-protocol.html
index 1e9cb2d..a9478fc 100644
--- a/docs/i3bar-protocol.html
+++ b/docs/i3bar-protocol.html
@@ -41,7 +41,7 @@ provides support for colors, urgency, shortening and easy manipulation.
-
1. Rationale for chosing JSON
+
1. Rationale for choosing JSON
Before describing the protocol, letâs cover why JSON is a building block of
this protocol.
@@ -182,7 +182,7 @@ click_events
- If specified and true i3bar will write a infinite array (same as above)
+ If specified and true i3bar will write an infinite array (same as above)
to your stdin.
@@ -394,7 +394,7 @@ x, y
- X11 root window coordinates where the click occured
+ X11 root window coordinates where the click occurred
diff --git a/docs/ipc.html b/docs/ipc.html
index 9f55e32..39f6182 100644
--- a/docs/ipc.html
+++ b/docs/ipc.html
@@ -170,6 +170,14 @@ GET_VERSION (7)
with the major, minor, patch and human-readable version.
+
+GET_BINDING_MODES (8)
+
+
+
+ Gets a list of currently configured binding modes.
+
+
So, a typical message could look like this:
@@ -276,6 +284,14 @@ VERSION (7)
Reply to the GET_VERSION message.
+
+BINDING_MODES (8)
+
+
+
+ Reply to the GET_BINDING_MODES message.
+
+
@@ -515,7 +531,7 @@ border (string)
- Can be either "normal", "none" or "1pixel", dependending on the
+ Can be either "normal", "none" or "pixel", depending on the
containerâs border style.
@@ -1109,6 +1125,15 @@ loaded_config_file_name (string)
}
+
+
3.10. BINDING_MODES reply
+
The reply consists of an array of all currently configured binding modes.
+
+
+
@@ -1282,42 +1307,47 @@ defines whether pango markup shall be used for displaying this mode.
-
-new - the window has become managed by i3
+new â the window has become managed by i3
+
+
+-
+
+close â the window has closed
-
-close - the window has closed
+focus â the window has received input focus
-
-focus - the window has received input focus
+title â the window’s title has changed
-
-title - the window’s title has changed
+fullscreen_mode â the window has entered or exited fullscreen mode
-
-fullscreen_mode - the window has entered or exited fullscreen mode
+move â the window has changed its position in the tree
-
-move - the window has changed its position in the tree
+floating â the window has transitioned to or from floating
-
-floating - the window has transitioned to or from floating
+urgent â the window has become urgent or lost its urgent status
-
-urgent - the window has become urgent or lost its urgent status
+mark â a mark has been added to or removed from the window
diff --git a/docs/testsuite.html b/docs/testsuite.html
index 409ccf3..9fa9202 100644
--- a/docs/testsuite.html
+++ b/docs/testsuite.html
@@ -171,7 +171,7 @@ always be found under the symlink latest/. Unless told differently, it
run the tests on a separate X server instance (using Xephyr).
Xephyr will open a window where you can inspect the running test. You can run
the tests without an X session with Xvfb, such as with xvfb-run
-./complete-run. This will also speed up the tests signficantly especially on
+./complete-run. This will also speed up the tests significantly especially on
machines without a powerful video card.
Example invocation of complete-run.pl+
@@ -252,7 +252,7 @@ current state (layout tree).
testsuite uses X11::XCB, a new (and quite specific to i3 at the moment) Perl
module which uses the XCB protocol description to generate Perl bindings to
X11. They work in a very similar way to libxcb (which i3 uses) and provide
-relatively high-level interfaces (objects such as X11::XCB::Window) aswell as
+relatively high-level interfaces (objects such as X11::XCB::Window) as well as
access to the low-level interface, which is very useful when testing a window
manager.
@@ -492,7 +492,7 @@ my $right = open_window($x);
cmd 'focus left';
is($x->input_focus, $left->id, 'left window focused');
-However, the test fails. Sometimes. Apparantly, there is a race condition in
+
However, the test fails. Sometimes. Apparently, there is a race condition in
your test. If you think about it, this is because you are using two different
pieces of software: You tell i3 to update focus, i3 confirms that, and then you
ask X11 to give you the current focus. There is a certain time i3 needs to
@@ -665,7 +665,7 @@ activation, we decreased the total amount of time necessary to run all tests
(72 files at the time of writing) from > 100 seconds to 16 seconds. This makes
it significantly more attractive to run the test suite more often (or at all)
during development.
-
An alternative approach to using socket activation is polling for the existance
+
An alternative approach to using socket activation is polling for the existence
of the IPC socket and connecting to it. While this might be slightly easier to
implement, it wastes CPU time and is considerably uglier than this solution
:). After all, lib/SocketActivation.pm contains only 54 SLOC.
diff --git a/docs/userguide.html b/docs/userguide.html
index 81c9104..e6afdf2 100644
--- a/docs/userguide.html
+++ b/docs/userguide.html
@@ -205,7 +205,7 @@ it does not yet exist.
and move it to the wanted size.
@@ -232,7 +232,7 @@ around. By grabbing the borders and moving them you can resize the window. You
can also do that by using the
[floating_modifier]. Another way to resize
floating windows using the mouse is to right-click on the titlebar and drag.
For resizing floating windows with your keyboard, see the resizing binding mode
-provided by the i3 default config.
+provided by the i3 default config.
Floating windows are always on top of tiling windows.
@@ -674,11 +674,13 @@ new_window pixel 3
4.11. Hiding borders adjacent to the screen edges
You can hide container borders adjacent to the screen edges using
hide_edge_borders. This is useful if you are using scrollbars, or do not want
-to waste even two pixels in displayspace. Default is none.
+to waste even two pixels in displayspace. The "smart" setting hides borders on
+workspaces with only one window visible, but keeps them on workspaces with
+multiple windows visible. Default is none.
-
hide_edge_borders none|vertical|horizontal|both
+
hide_edge_borders none|vertical|horizontal|both|smart
@@ -756,9 +758,38 @@ containing another variable. There is no fancy handling and there are
absolutely no plans to change this. If you need a more dynamic configuration
you should create a little script which generates a configuration file and run
it before starting i3 (for example in your ~/.xsession file).
+Also see [xresources] to learn how to create variables based on resources
+loaded from the X resource database.
+
+
+
4.15. X resources
+
[variables] can also be created using a value configured in the X resource
+database. This is useful, for example, to avoid configuring color values within
+the i3 configuration. Instead, the values can be configured, once, in the X
+resource database to achieve an easily maintainable, consistent color theme
+across many X applications.
+
Defining a resource will load this resource from the resource database and
+assign its value to the specified variable. A fallback must be specified in
+case the resource cannot be loaded from the database.
+
+
+
+
set_from_resource $<name> <resource_name> <fallback>
+
+
+
+
+
# The ~/.Xresources should contain a line such as
+# *color0: #121212
+# and must be loaded properly, e.g., by using
+# xrdb ~/.Xresources
+# This value is picked up on by other applications (e.g., the URxvt terminal
+# emulator) and can be used in i3 like this:
+set_from_resource $black i3wm.color0 #000000
+
-
4.15. Automatically putting clients on specific workspaces
+
4.16. Automatically putting clients on specific workspaces
To automatically make a specific window show up on a specific workspace, you
can use an assignment. You can match windows by using any criteria,
see [command_criteria]. It is recommended that you match on window classes
@@ -827,7 +858,7 @@ exec --no-startup-id i3-msg 'workspace 3; exec iceweasel; workspace 1'
-
4.16. Automatically starting applications on i3 startup
+
4.17. Automatically starting applications on i3 startup
By using the exec keyword outside a keybinding, you can configure
which commands will be performed by i3 on initial startup. exec
commands will not run when restarting i3, if you need a command to run
@@ -854,7 +885,7 @@ exec --no-startup-id urxvt
The flag --no-startup-id is explained in [exec].
-
4.17. Automatically putting workspaces on specific screens
+
4.18. Automatically putting workspaces on specific screens
If you assign clients to workspaces, it might be handy to put the
workspaces on specific screens. Also, the assignment of workspaces to screens
will determine which workspace i3 uses for a new screen when adding screens
@@ -878,7 +909,7 @@ workspace "2: vim" output VGA1
-
4.18. Changing colors
+
4.19. Changing colors
You can change all colors which i3 uses to draw the window decorations.
@@ -964,7 +995,7 @@ single windows within a split container, which are otherwise indistinguishable
from single windows outside of a split container.
-
4.19. Interprocess communication
+
4.20. Interprocess communication
i3 uses Unix sockets to provide an IPC interface. This allows third-party
programs to get information from i3, such as the current workspaces
(to display a workspace bar), and to control i3.
@@ -986,7 +1017,7 @@ user can create that directory.
the next section.
-
4.20. Focus follows mouse
+
4.21. Focus follows mouse
By default, window focus follows your mouse movements. However, if you have a
setup where your mouse usually is in your way (like a touchpad on your laptop
which you do not want to disable completely), you might want to disable focus
@@ -1005,7 +1036,7 @@ links in your browser window).
-
4.21. Mouse warping
+
4.22. Mouse warping
By default, when switching focus to a window on a different output (e.g.
focusing a window on workspace 3 on output VGA-1, coming from workspace 2 on
LVDS-1), the mouse cursor is warped to the center of that window.
@@ -1024,7 +1055,7 @@ behavior described above.
-
+
When you are in fullscreen mode, some applications still open popup windows
(take Xpdf for example). This is because these applications may not be aware
that they are in fullscreen mode (they do not check the corresponding hint).
@@ -1061,7 +1092,7 @@ Leave fullscreen mode.
-
4.23. Focus wrapping
+
4.24. Focus wrapping
When being in a tabbed or stacked container, the first container will be
focused when you use focus down on the last container — the focus wraps. If
however there is another stacked/tabbed container in that direction, focus will
@@ -1083,7 +1114,7 @@ will always wrap.
-
4.24. Forcing Xinerama
+
4.25. Forcing Xinerama
As explained in-depth in http://i3wm.org/docs/multi-monitor.html, some X11
video drivers (especially the nVidia binary driver) only provide support for
Xinerama instead of RandR. In such a situation, i3 must be told to use the
@@ -1106,7 +1137,7 @@ thatâs it).
Xinerama, instead they are counted up, starting at 0:
xinerama-0,
xinerama-1, â¦
-
4.25. Automatic back-and-forth when switching to the current workspace
+
4.26. Automatic back-and-forth when switching to the current workspace
This configuration directive enables automatic workspace back_and_forth (see
[back_and_forth]) when switching to the workspace that is currently focused.
For instance: Assume you are on workspace "1: www" and switch to "2: IM" using
@@ -1124,7 +1155,7 @@ came from now, you can just press $mod+2 again to switch back to "1: www".
-
4.26. Delaying urgency hint reset on workspace change
+
4.27. Delaying urgency hint reset on workspace change
If an application on another workspace sets an urgency hint, switching to this
workspace may lead to immediate focus of the application, which also means the
window decoration color would be immediately reset to client.focused. This
@@ -1146,7 +1177,7 @@ value to 0 disables this feature.
-
4.27. Focus on window activation
+
4.28. Focus on window activation
If a window is activated, e.g., via google-chrome www.google.com, it may request
to take focus. Since this may not preferable, different reactions can be configured.
Note that this may not affect windows that are being opened. To prevent new windows
@@ -1194,7 +1225,7 @@ none
-
4.28. Drawing marks on window decoration
+
4.29. Drawing marks on window decoration
If activated, marks on windows are drawn in their window decoration. However,
any mark starting with an underscore in its name (_) will not be drawn even if
this option is activated.
@@ -1211,15 +1242,19 @@ this option is activated.
-
4.29. Line continuation
+
4.30. Line continuation
Config files support line continuation, meaning when you end a line in a
backslash character (\), the line-break will be ignored by the parser. This
-feature can be used to create more readable configuration files.
+feature can be used to create more readable configuration files.
+Commented lines are not continued.
bindsym Mod1+f \
-fullscreen toggle
+fullscreen toggle
+
+# this line is not continued \
+bindsym Mod1+F fullscreen toggle
@@ -1499,7 +1534,7 @@ bar {
NetworkManager, VLC, Pidgin, etc. can place little icons.
You can configure on which output (monitor) the icons should be displayed or
you can turn off the functionality entirely.
-You can use mutliple tray_output directives in your config to specify a list
+
You can use multiple tray_output directives in your config to specify a list
of outputs on which you want the tray to appear. The first available output in
that list as defined by the order of the directives will be used for the tray
output.
@@ -1825,7 +1860,10 @@ bindsym $mod+x [class="(?i)firefox"] kill
bindsym $mod+x [class="Firefox" window_role="About"] kill
# enable floating mode and move container to workspace 4
-for_window [class="^evil-app$"] floating enable, move container to workspace 4
+for_window [class="^evil-app$"] floating enable, move container to workspace 4
+
+# move all floating windows to the scratchpad
+bindsym $mod+x [floating] move scratchpad
The criteria which are currently implemented are:
@@ -1927,6 +1965,22 @@ con_id
to match only the currently focused window.
+-
+floating
+
+-
+
+ Only matches floating windows. This criterion requires no value.
+
+
+-
+tiling
+
+-
+
+ Only matches tiling windows. This criterion requires no value.
+
+
The criteria class, instance, role, title, workspace and mark are
actually regular expressions (PCRE). See pcresyntax(3) or perldoc perlre for
@@ -2316,15 +2370,15 @@ bindsym $mod+r exec i3-input -F 'rename workspace to "%s"' -P 'New name: '<
RandR output.
-
6.9. Moving containers/workspaces to RandR outputs
+
6.9. Moving containers/workspaces to RandR outputs
To move a container to another RandR output (addressed by names like LVDS1 or
VGA1) or to a RandR output identified by a specific direction (like left,
right, up or down), there are two commands:
-
move container to output left|right|down|up|<output>
-move workspace to output left|right|down|up|<output>
+
move container to output left|right|down|up|current|<output>
+move workspace to output left|right|down|up|current|<output>
@@ -2376,7 +2430,7 @@ default is 10 percentage points). Note that resize set will only work f
floating containers.
--
2.39.5