Difference between revisions of "I3"
(Added reference to i3-gnome in AUR) |
m (fixed link) |
||
(39 intermediate revisions by 22 users not shown) | |||
Line 1: | Line 1: | ||
− | |||
{{DISPLAYTITLE:i3}} | {{DISPLAYTITLE:i3}} | ||
− | [[Category:Tiling WMs | + | [[Category:Tiling WMs]] |
+ | [[Category:Dynamic WMs]] | ||
+ | [[ko:i3]] | ||
+ | [[ru:i3]] | ||
+ | [[zh-CN:i3]] | ||
+ | [http://i3wm.org/ i3] is a dynamic [[Wikipedia:Tiling window manager|tiling window manager]] inspired by [[wmii]] that is primarily targeted at developers and advanced users. | ||
− | + | Clients (windows) are organized in a tree data structure within containers. The tree branches via horizontal or vertical splits, and containers can also be set to tabbed or stacked layouts. Floating windows are available for corner cases that don't mix well with tiling, and remain on a separate layer above the tiled windows. | |
− | |||
− | |||
− | The | ||
− | |||
− | |||
== Installation == | == Installation == | ||
− | + | Install the {{Pkg|i3}} [[Pacman#Installing package groups|package group]] from the [[official repositories]], which includes: {{Pkg|i3-wm}}, the window manager; {{Pkg|i3status}}, a package to write a status line to i3bar through [[Wikipedia:Standard streams#Standard output (stdout)|stdout]]; and {{Pkg|i3lock}}, an improved screenlocker. | |
− | |||
− | + | Additional packages are available in the [[Arch User Repository]]. Install {{AUR|i3-git}} for the development version. Install {{AUR|i3-gnome}} to add a [[GNOME]]-session. | |
− | |||
− | + | == Configuration == | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | == | ||
Edit your {{ic|~/.xinitrc}} and add: | Edit your {{ic|~/.xinitrc}} and add: | ||
exec i3 | exec i3 | ||
If you want i3 to log its output (useful for debugging), add this line to {{ic|~/.xinitrc}}: | If you want i3 to log its output (useful for debugging), add this line to {{ic|~/.xinitrc}}: | ||
− | exec i3 -V >>~/.i3/i3log >&1 | + | exec i3 -V >> ~/.i3/i3log 2>&1 |
− | If you use the Nvidia binary driver you need to add the --force-xinerama flag to {{ic|~/.xinitrc}}. A detailed explanation can be found at [http://i3wm.org/docs/multi-monitor.html i3wm.org]. | + | If you use the Nvidia binary driver '''<302.17''' you need to add the --force-xinerama flag to {{ic|~/.xinitrc}}. A detailed explanation can be found at [http://i3wm.org/docs/multi-monitor.html i3wm.org]. |
exec i3 --force-xinerama | exec i3 --force-xinerama | ||
− | = | + | === Status bar === |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | == Status bar == | ||
The internal status bar, i3-''ws''bar, was deprecated and replaced by i3bar in i3 v4.0. | The internal status bar, i3-''ws''bar, was deprecated and replaced by i3bar in i3 v4.0. | ||
− | === New method: i3bar === | + | ==== New method: i3bar ==== |
− | Unlike i3-wsbar, which requires dzen2, i3bar does not have any | + | Unlike i3-wsbar, which requires dzen2, i3bar does not have any dependencies other than {{Pkg|i3-wm}}. It can be used to view information generated by [[conky]] or i3status. For example (as of version 4.1): |
{{hc|~/.i3/config|<nowiki> | {{hc|~/.i3/config|<nowiki> | ||
bar { | bar { | ||
Line 110: | Line 53: | ||
For further information see the [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] section of the official User Guide. | For further information see the [http://i3wm.org/docs/userguide.html#_configuring_i3bar Configuring i3bar] section of the official User Guide. | ||
− | = | + | ==== Comparison of i3bar and dzen2 ==== |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === Comparison of i3bar and dzen2 === | ||
This comparison of i3bar and dzen2 only takes into account how well the two programs can handle the input from conky or i3status. | This comparison of i3bar and dzen2 only takes into account how well the two programs can handle the input from conky or i3status. | ||
{| border="1" cellpadding="5" align="center" | {| border="1" cellpadding="5" align="center" | ||
! Program !! Color Codes !! Formatting !! Special Fonts !! Dock !! Trayer | ! Program !! Color Codes !! Formatting !! Special Fonts !! Dock !! Trayer | ||
|- | |- | ||
− | | i3bar || | + | | i3bar || Yes || No, right aligned || No (UTF8 only)|| Yes || Yes |
|- | |- | ||
| dzen2 || Yes || No, left aligned || Yes || Yes (the svn version) || No | | dzen2 || Yes || No, left aligned || Yes || Yes (the svn version) || No | ||
Line 135: | Line 64: | ||
|} | |} | ||
− | Though development of i3bar is very active and support for custom formatting and fonts has been announced, dzen2-svn has an edge over i3bar (as of August 7th). | + | Though development of i3bar is very active and support for custom formatting and fonts has been announced, dzen2-svn has an edge over i3bar (as of August 7th). |
− | {{ | + | |
− | + | ==== Alternatives ==== | |
+ | * [https://github.com/enkore/i3pystatus i3pystatus] - extensible i3status replacement with many modules and very flexible configuration. Multi-threaded and lock-up free. | ||
+ | * [https://github.com/ultrabug/py3status py3status] – an extensible i3status wrapper written in python | ||
+ | |||
+ | === Quickly jumping to open window === | ||
+ | * [https://github.com/proxypoke/quickswitch-for-i3 quickswitch-for-i3] – A Python utility to quickly change to and locate windows in i3 | ||
+ | * [https://github.com/yiuin/i3-wm-scripts i3-wm-scripts] – search for and jump to windows with particular names matching regexp | ||
+ | * [https://github.com/ziberna/i3-py/tree/master/examples#winmenupy winmenupy] launches dmenu with a list of clients, sorted after workspaces. Selecting a client jumps to that window. | ||
+ | |||
+ | == Suspending with i3lock == | ||
+ | You need to add unit file below and enable it with {{ic|# systemctl enable suspend@<user>.service}}. | ||
+ | |||
+ | {{hc|/etc/systemd/system/suspend@.service|2=<nowiki> | ||
+ | [Unit] | ||
+ | Description=Starts i3lock at suspend time | ||
+ | Before=sleep.target | ||
+ | |||
+ | [Service] | ||
+ | User=%I | ||
+ | Type=forking | ||
+ | Environment=DISPLAY=:0 | ||
+ | ExecStartPre= | ||
+ | ExecStart=/usr/bin/i3lock | ||
+ | |||
+ | [Install] | ||
+ | WantedBy=sleep.target</nowiki>}} | ||
+ | |||
+ | == Usage == | ||
+ | {{Box BLUE||See the [http://i3wm.org/docs official documentation] on this subject for more information: [http://i3wm.org/docs/userguide.html i3 User’s Guide]}} | ||
+ | |||
+ | i3 currently uses [[dmenu]] as a application launcher, which is bound by default to {{Keypress|Mod1|background=#FF0}}+{{Keypress|d}}. | ||
− | == | + | === Clipboard (copy & paste issues) === |
− | |||
− | + | By default, when you close a window, the buffer with the clipboard info will disappear. You have to use a clipboard manager like {{Pkg|clipit}} to avoid that. | |
− | == | + | == See also == |
* [[Comparison of Tiling Window Managers]] | * [[Comparison of Tiling Window Managers]] | ||
− | * [http://i3wm.org/ | + | * [http://i3wm.org Official website] |
− | * [https://bbs.archlinux.org/viewtopic.php?id=99064 The i3 thread] | + | * [http://code.stapelberg.de/git/i3 Source code] |
+ | * [https://wiki.archlinux.org/index.php/Systemd#Suspend.2Fresume_service_files Suspend/resume service files] | ||
+ | * [https://github.com/ashinkarov/i3-extras Collection of scripts and patches] | ||
+ | '''Arch Linux Forums''' | ||
+ | * [https://bbs.archlinux.org/viewtopic.php?id=99064 ''The i3 thread''] - A general discussion about i3 | ||
+ | * [https://bbs.archlinux.org/viewtopic.php?pid=1229978 ''i3 desktop screenshots and config sharing''] |
Revision as of 18:02, 6 June 2013
zh-CN:i3 i3 is a dynamic tiling window manager inspired by wmii that is primarily targeted at developers and advanced users.
Clients (windows) are organized in a tree data structure within containers. The tree branches via horizontal or vertical splits, and containers can also be set to tabbed or stacked layouts. Floating windows are available for corner cases that don't mix well with tiling, and remain on a separate layer above the tiled windows.
Contents
Installation
Install the i3 package group from the official repositories, which includes: i3-wm, the window manager; i3status, a package to write a status line to i3bar through stdout; and i3lock, an improved screenlocker.
Additional packages are available in the Arch User Repository. Install i3-gitAUR for the development version. Install i3-gnomeAUR to add a GNOME-session.
Configuration
Edit your ~/.xinitrc
and add:
exec i3
If you want i3 to log its output (useful for debugging), add this line to ~/.xinitrc
:
exec i3 -V >> ~/.i3/i3log 2>&1
If you use the Nvidia binary driver <302.17 you need to add the --force-xinerama flag to ~/.xinitrc
. A detailed explanation can be found at i3wm.org.
exec i3 --force-xinerama
Status bar
The internal status bar, i3-wsbar, was deprecated and replaced by i3bar in i3 v4.0.
New method: i3bar
Unlike i3-wsbar, which requires dzen2, i3bar does not have any dependencies other than i3-wm. It can be used to view information generated by conky or i3status. For example (as of version 4.1):
~/.i3/config
bar { output LVDS1 status_command i3status position top mode hide workspace_buttons yes tray_output none font -misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1 colors { background #000000 statusline #ffffff focused_workspace #ffffff #285577 active_workspace #ffffff #333333 inactive_workspace #888888 #222222 urgent_workspace #ffffff #900000 } }
For further information see the Configuring i3bar section of the official User Guide.
Comparison of i3bar and dzen2
This comparison of i3bar and dzen2 only takes into account how well the two programs can handle the input from conky or i3status.
Program | Color Codes | Formatting | Special Fonts | Dock | Trayer |
---|---|---|---|---|---|
i3bar | Yes | No, right aligned | No (UTF8 only) | Yes | Yes |
dzen2 | Yes | No, left aligned | Yes | Yes (the svn version) | No |
Though development of i3bar is very active and support for custom formatting and fonts has been announced, dzen2-svn has an edge over i3bar (as of August 7th).
Alternatives
- i3pystatus - extensible i3status replacement with many modules and very flexible configuration. Multi-threaded and lock-up free.
- py3status – an extensible i3status wrapper written in python
Quickly jumping to open window
- quickswitch-for-i3 – A Python utility to quickly change to and locate windows in i3
- i3-wm-scripts – search for and jump to windows with particular names matching regexp
- winmenupy launches dmenu with a list of clients, sorted after workspaces. Selecting a client jumps to that window.
Suspending with i3lock
You need to add unit file below and enable it with # systemctl enable suspend@<user>.service
.
/etc/systemd/system/suspend@.service
[Unit] Description=Starts i3lock at suspend time Before=sleep.target [Service] User=%I Type=forking Environment=DISPLAY=:0 ExecStartPre= ExecStart=/usr/bin/i3lock [Install] WantedBy=sleep.target
Usage
i3 currently uses dmenu as a application launcher, which is bound by default to Template:Keypress+Template:Keypress.
Clipboard (copy & paste issues)
By default, when you close a window, the buffer with the clipboard info will disappear. You have to use a clipboard manager like clipit to avoid that.
See also
- Comparison of Tiling Window Managers
- Official website
- Source code
- Suspend/resume service files
- Collection of scripts and patches
Arch Linux Forums
- The i3 thread - A general discussion about i3
- i3 desktop screenshots and config sharing