From: Michael Stapelberg Date: Fri, 27 Jan 2012 19:31:05 +0000 (+0000) Subject: add i3 4.1.2 to downloads X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=fdb8f31619e2335615f85f04a1b2b10dfb68f42b;p=i3%2Fi3.github.io add i3 4.1.2 to downloads --- diff --git a/_docs/i3-input.man b/_docs/i3-input.man index cd85c92..df7c4d9 100644 --- a/_docs/i3-input.man +++ b/_docs/i3-input.man @@ -1,7 +1,7 @@ i3-input(1) ========= Michael Stapelberg -v3.delta, November 2009 +v4.1, September 2011 == NAME @@ -9,7 +9,7 @@ i3-input - interactively take a command for i3 window manager == SYNOPSIS -i3-input [-s ] [-p ] [-l ] [-P ] [-f ] [-v] +i3-input [-s ] [-F ] [-l ] [-P ] [-f ] [-v] == DESCRIPTION @@ -17,19 +17,28 @@ i3-input is a tool to take commands (or parts of a command) composed by the user, and send it/them to i3. This is useful, for example, for the mark/goto command. +The -F option takes a format string. In this string, every occurence of %s is +replaced by the user input. + == EXAMPLE ------------------------------------------------ -i3-input -p 'mark ' -l 1 -P 'Mark: ' +i3-input -F 'mark %s' -l 1 -P 'Mark: ' ------------------------------------------------ == ENVIRONMENT === I3SOCK -If no ipc-socket is specified on the commandline, this variable is used -to determine the path, at wich the unix domain socket is expected, on which -to connect to i3. +i3-input handles the different sources of socket paths in the following order: + +* I3SOCK environment variable +* I3SOCK gets overwritten by the -s parameter, if specified +* if neither are available, i3-input reads the socket path from the X11 + property, which is the recommended way +* if everything fails, i3-input tries +/tmp/i3-ipc.sock+ + +The socket path is necessary to connect to i3 and actually issue the command. == SEE ALSO diff --git a/_docs/i3.man b/_docs/i3.man index 868ff8c..2e14fce 100644 --- a/_docs/i3.man +++ b/_docs/i3.man @@ -238,9 +238,10 @@ bindsym Mod1+Shift+r restart # exit i3 (logs you out of your X session) bindsym Mod1+Shift+e exit -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -exec i3status | i3bar -d +# display workspace buttons plus a statusline generated by i3status +bar { + status_command i3status +} ------------------------------------------------------------- === ~/.xsession @@ -293,9 +294,10 @@ exec /usr/bin/i3 -V -d all >> ~/.i3/logfile === I3SOCK This variable overwrites the IPC socket path (placed in -/tmp/i3-%u/ipc-socket.%p by default, where %u is replaced with your UNIX -username and %p is replaced with i3’s PID). The IPC socket is used by external -programs like i3-msg(1) or i3bar(1). +/tmp/i3-%u.XXXXXX/ipc-socket.%p by default, where %u is replaced with your UNIX +username, %p is replaced with i3’s PID and XXXXXX is a string of random +characters from the portable filename character set (see mkdtemp(3))). The IPC +socket is used by external programs like i3-msg(1) or i3bar(1). == TODO diff --git a/_docs/ipc b/_docs/ipc index 7e71326..61a85c0 100644 --- a/_docs/ipc +++ b/_docs/ipc @@ -1,7 +1,7 @@ IPC interface (interprocess communication) ========================================== Michael Stapelberg -March 2010 +October 2011 This document describes how to interface with i3 from a separate process. This is useful for example to remote-control i3 (to write test cases for example) or @@ -11,8 +11,10 @@ workspace bar. The method of choice for IPC in our case is a unix socket because it has very little overhead on both sides and is usually available without headaches in most languages. In the default configuration file, the ipc-socket gets created -in +/tmp/i3-%u/ipc-socket.%p+ where +%u+ is your UNIX username and +%p+ is the -PID of i3. +in +/tmp/i3-%u.XXXXXX/ipc-socket.%p+ where +%u+ is your UNIX username, +%p+ is +the PID of i3 and XXXXXX is a string of random characters from the portable +filename character set (see mkdtemp(3)). You can get the socketpath from i3 by +calling +i3 --get-socketpath+. All i3 utilities, like +i3-msg+ and +i3-input+ will read the +I3_SOCKET_PATH+ X11 property, stored on the X11 root window. @@ -24,7 +26,8 @@ snippet illustrates this in Perl: ------------------------------------------------------------- use IO::Socket::UNIX; -my $sock = IO::Socket::UNIX->new(Peer => '/tmp/i3-ipc.sock'); +chomp(my $path = qx(i3 --get-socketpath)); +my $sock = IO::Socket::UNIX->new(Peer => $path); ------------------------------------------------------------- == Sending messages to i3 @@ -59,6 +62,14 @@ GET_TREE (4):: Gets the layout tree. i3 uses a tree as data structure which includes every container. The reply will be the JSON-encoded tree (see the reply section). +GET_MARKS (5):: + Gets a list of marks (identifiers for containers to easily jump to them + later). The reply will be a JSON-encoded list of window marks (see + reply section). +GET_BAR_CONFIG (6):: + Gets the configuration (as JSON map) of the workspace bar with the + given ID. If no ID is provided, an array with all configured bar IDs is + returned instead. So, a typical message could look like this: -------------------------------------------------- @@ -110,6 +121,10 @@ GET_OUTPUTS (3):: Reply to the GET_OUTPUTS message. GET_TREE (4):: Reply to the GET_TREE message. +GET_MARKS (5):: + Reply to the GET_MARKS message. +GET_BAR_CONFIG (6):: + Reply to the GET_BAR_CONFIG message. === COMMAND reply @@ -418,6 +433,98 @@ JSON dump: } ------------------------ +=== GET_MARKS reply + +The reply consists of a single array of strings for each container that has a +mark. The order of that array is undefined. If more than one container has the +same mark, it will be represented multiple times in the reply (the array +contents are not unique). + +If no window has a mark the response will be the empty array []. + +=== GET_BAR_CONFIG reply + +This can be used by third-party workspace bars (especially i3bar, but others +are free to implement compatible alternatives) to get the +bar+ block +configuration from i3. + +Depending on the input, the reply is either: + +empty input:: + An array of configured bar IDs +Bar ID:: + A JSON map containing the configuration for the specified bar. + +Each bar configuration has the following properties: + +id (string):: + The ID for this bar. Included in case you request multiple + configurations and want to differentiate the different replies. +mode (string):: + Either +dock+ (the bar sets the dock window type) or +hide+ (the bar + does not show unless a specific key is pressed). +position (string):: + Either +bottom+ or +top+ at the moment. +status_command (string):: + Command which will be run to generate a statusline. Each line on stdout + of this command will be displayed in the bar. At the moment, no + formatting is supported. +font (string):: + The font to use for text on the bar. +workspace_buttons (boolean):: + Display workspace buttons or not? Defaults to true. +verbose (boolean):: + Should the bar enable verbose output for debugging? Defaults to false. +colors (map):: + Contains key/value pairs of colors. Each value is a color code in hex, + formatted #rrggbb (like in HTML). + +The following colors can be configured at the moment: + +background:: + Background color of the bar. +statusline:: + Text color to be used for the statusline. +focused_workspace_text/focused_workspace_bg:: + Text color/background color for a workspace button when the workspace + has focus. +active_workspace_text/active_workspace_bg:: + Text color/background color for a workspace button when the workspace + is active (visible) on some output, but the focus is on another one. + You can only tell this apart from the focused workspace when you are + using multiple monitors. +inactive_workspace_text/inactive_workspace_bg:: + Text color/background color for a workspace button when the workspace + does not have focus and is not active (visible) on any output. This + will be the case for most workspaces. +urgent_workspace_text/urgent_workspace_bar:: + Text color/background color for workspaces which contain at least one + window with the urgency hint set. + + +*Example of configured bars:* +-------------- +["bar-bxuqzf"] +-------------- + +*Example of bar configuration:* +-------------- +{ + "id": "bar-bxuqzf", + "mode": "dock", + "position": "bottom", + "status_command": "i3status", + "font": "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1", + "workspace_buttons": true, + "verbose": false, + "colors": { + "background": "#c0c0c0", + "statusline": "#00ff00", + "focused_workspace_text": "#ffffff", + "focused_workspace_bg": "#000000" + } +} +-------------- == Events diff --git a/docs/i3.html b/docs/i3.html index 1edda79..bdc32df 100644 --- a/docs/i3.html +++ b/docs/i3.html @@ -429,9 +429,10 @@ bindsym Mod1+Shift+r restart # exit i3 (logs you out of your X session) bindsym Mod1+Shift+e exit -# Start i3bar to display a workspace bar (plus the system information i3status -# finds out, if available) -exec i3status | i3bar -d +# display workspace buttons plus a statusline generated by i3status +bar { + status_command i3status +}
@@ -487,9 +488,10 @@ exec /usr/bin/i3 -V -d all >> ~/.i3/logfile

7.1. I3SOCK

This variable overwrites the IPC socket path (placed in -/tmp/i3-%u/ipc-socket.%p by default, where %u is replaced with your UNIX -username and %p is replaced with i3’s PID). The IPC socket is used by external -programs like i3-msg(1) or i3bar(1).

+/tmp/i3-%u.XXXXXX/ipc-socket.%p by default, where %u is replaced with your UNIX +username, %p is replaced with i3’s PID and XXXXXX is a string of random +characters from the portable filename character set (see mkdtemp(3))). The IPC +socket is used by external programs like i3-msg(1) or i3bar(1).

diff --git a/docs/ipc.html b/docs/ipc.html index 3a3cb87..d10feef 100644 --- a/docs/ipc.html +++ b/docs/ipc.html @@ -31,7 +31,7 @@ window.onload = function(){asciidoc.footnotes(); asciidoc.toc(2);}

IPC interface (interprocess communication)

Michael Stapelberg
<michael+i3@stapelberg.de>
-March 2010 +October 2011
Table of Contents
@@ -46,8 +46,10 @@ workspace bar.

The method of choice for IPC in our case is a unix socket because it has very little overhead on both sides and is usually available without headaches in most languages. In the default configuration file, the ipc-socket gets created -in /tmp/i3-%u/ipc-socket.%p where %u is your UNIX username and %p is the -PID of i3.

+in /tmp/i3-%u.XXXXXX/ipc-socket.%p where %u is your UNIX username, %p is +the PID of i3 and XXXXXX is a string of random characters from the portable +filename character set (see mkdtemp(3)). You can get the socketpath from i3 by +calling i3 --get-socketpath.

All i3 utilities, like i3-msg and i3-input will read the I3_SOCKET_PATH X11 property, stored on the X11 root window.

@@ -60,7 +62,8 @@ snippet illustrates this in Perl:

use IO::Socket::UNIX;
-my $sock = IO::Socket::UNIX->new(Peer => '/tmp/i3-ipc.sock');
+chomp(my $path = qx(i3 --get-socketpath)); +my $sock = IO::Socket::UNIX->new(Peer => $path);
@@ -125,6 +128,26 @@ GET_TREE (4) section).

+
+GET_MARKS (5) +
+
+

+ Gets a list of marks (identifiers for containers to easily jump to them + later). The reply will be a JSON-encoded list of window marks (see + reply section). +

+
+
+GET_BAR_CONFIG (6) +
+
+

+ Gets the configuration (as JSON map) of the workspace bar with the + given ID. If no ID is provided, an array with all configured bar IDs is + returned instead. +

+

So, a typical message could look like this:

@@ -207,6 +230,22 @@ GET_TREE (4) Reply to the GET_TREE message.

+
+GET_MARKS (5) +
+
+

+ Reply to the GET_MARKS message. +

+
+
+GET_BAR_CONFIG (6) +
+
+

+ Reply to the GET_BAR_CONFIG message. +

+
@@ -696,6 +735,193 @@ VGA1 }
+
+

3.7. GET_MARKS reply

+

The reply consists of a single array of strings for each container that has a +mark. The order of that array is undefined. If more than one container has the +same mark, it will be represented multiple times in the reply (the array +contents are not unique).

+

If no window has a mark the response will be the empty array [].

+
+
+

3.8. GET_BAR_CONFIG reply

+

This can be used by third-party workspace bars (especially i3bar, but others +are free to implement compatible alternatives) to get the bar block +configuration from i3.

+

Depending on the input, the reply is either:

+
+
+empty input +
+
+

+ An array of configured bar IDs +

+
+
+Bar ID +
+
+

+ A JSON map containing the configuration for the specified bar. +

+
+
+

Each bar configuration has the following properties:

+
+
+id (string) +
+
+

+ The ID for this bar. Included in case you request multiple + configurations and want to differentiate the different replies. +

+
+
+mode (string) +
+
+

+ Either dock (the bar sets the dock window type) or hide (the bar + does not show unless a specific key is pressed). +

+
+
+position (string) +
+
+

+ Either bottom or top at the moment. +

+
+
+status_command (string) +
+
+

+ Command which will be run to generate a statusline. Each line on stdout + of this command will be displayed in the bar. At the moment, no + formatting is supported. +

+
+
+font (string) +
+
+

+ The font to use for text on the bar. +

+
+
+workspace_buttons (boolean) +
+
+

+ Display workspace buttons or not? Defaults to true. +

+
+
+verbose (boolean) +
+
+

+ Should the bar enable verbose output for debugging? Defaults to false. +

+
+
+colors (map) +
+
+

+ Contains key/value pairs of colors. Each value is a color code in hex, + formatted #rrggbb (like in HTML). +

+
+
+

The following colors can be configured at the moment:

+
+
+background +
+
+

+ Background color of the bar. +

+
+
+statusline +
+
+

+ Text color to be used for the statusline. +

+
+
+focused_workspace_text/focused_workspace_bg +
+
+

+ Text color/background color for a workspace button when the workspace + has focus. +

+
+
+active_workspace_text/active_workspace_bg +
+
+

+ Text color/background color for a workspace button when the workspace + is active (visible) on some output, but the focus is on another one. + You can only tell this apart from the focused workspace when you are + using multiple monitors. +

+
+
+inactive_workspace_text/inactive_workspace_bg +
+
+

+ Text color/background color for a workspace button when the workspace + does not have focus and is not active (visible) on any output. This + will be the case for most workspaces. +

+
+
+urgent_workspace_text/urgent_workspace_bar +
+
+

+ Text color/background color for workspaces which contain at least one + window with the urgency hint set. +

+
+
+

Example of configured bars:

+
+
+
["bar-bxuqzf"]
+
+

Example of bar configuration:

+
+
+
{
+ "id": "bar-bxuqzf",
+ "mode": "dock",
+ "position": "bottom",
+ "status_command": "i3status",
+ "font": "-misc-fixed-medium-r-normal--13-120-75-75-C-70-iso10646-1",
+ "workspace_buttons": true,
+ "verbose": false,
+ "colors": {
+   "background": "#c0c0c0",
+   "statusline": "#00ff00",
+   "focused_workspace_text": "#ffffff",
+   "focused_workspace_bg": "#000000"
+ }
+}
+
+
diff --git a/downloads/RELEASE-NOTES-4.1.2.txt b/downloads/RELEASE-NOTES-4.1.2.txt new file mode 100644 index 0000000..90bd9ed --- /dev/null +++ b/downloads/RELEASE-NOTES-4.1.2.txt @@ -0,0 +1,37 @@ + + ┌──────────────────────────────┐ + │ Release notes for i3 v4.1.2 │ + └──────────────────────────────┘ + +This is the second minor release of i3 v4.1. It is a bugfix release and +considered stable. All users of i3 v4.1.1 are strongly encouraged to upgrade. + +i3 developers will be present at FOSDEM in Brussels. +Please get in touch and have a nice chat with us :). + + + ┌────────────────────────────┐ + │ Changes in v4.1.2 │ + └────────────────────────────┘ + + • Bugfix: Don’t lose focus on fullscreen windows when another window gets + moved to that workspace + • Bugfix: Open new windows in the correct place when assignments match + • Bugfix: Fix assignments of floating windows to (yet) unused workspaces + • Bugfix: Either use SetInputFocus *or* send WM_TAKE_FOCUS, not both + • Bugfix: Respect WM_HINTS.input for WM_TAKE_FOCUS clients + • Bugfix: Setup the _NET_SUPPORTING_WM_CHECK atom in a standards-compliant way + • Bugfix: Only ignore EnterNotify events after UnmapNotifies from managed windows + • Bugfix: Force a new sequence number after UnmapNotify + • Bugfix: Position floating windows exactly where their geometry specified + • Bugfix: Fix coordinates when the rect of an output changes + + ┌────────────────────────────┐ + │ Thanks! │ + └────────────────────────────┘ + +Thanks for testing, bugfixes, discussions and everything I forgot go out to: + + B-Con, David Coppa, Don, Paul, rami, zeus + +-- Michael Stapelberg, 2012-01-27 diff --git a/downloads/i3-4.1.2.tar.bz2 b/downloads/i3-4.1.2.tar.bz2 new file mode 100644 index 0000000..72ebf30 Binary files /dev/null and b/downloads/i3-4.1.2.tar.bz2 differ diff --git a/downloads/i3-4.1.2.tar.bz2.asc b/downloads/i3-4.1.2.tar.bz2.asc new file mode 100644 index 0000000..52c6ed6 --- /dev/null +++ b/downloads/i3-4.1.2.tar.bz2.asc @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.11 (GNU/Linux) + +iQIcBAABCAAGBQJPIvpqAAoJEE5xYO1KyO4drGUQAIb497YrMh7UP8x+70XFBI/q +aUaGCxur0IEGart3geQQ2aCm0SeHyhmeQI7qRkzMrNTXZwjiapCfkjzbumUq001Y +UXgL1hhyDw1ync/opfjwCAYauHcgs0YhvUHwGYduKHF7ni2JuW0ezaKIyDRquwjV +bRu/0iya3SkonsT8rZJMiFUa1vfnznuktu5CUR4PhPzlEQ2Tk9iLFSDAGTZjIsCT +yL3FW0zAAHDjFGhyS1uPRGFUa6g0QQ4/tGygLuai5BQ4kLqwzg0yP9v5cpSdYoEN +BJZKfvqZvHiZFUBmR2KusXsqpFUCBrgF5Q4OuGIsvtk80lHpJU1jCPiH5X/EvNsJ +dNqB55NTcZ3u1JlsrTqmRj7C3wVA6ZnRRxp2nUKplNpI6LEYj9pD+50t7RDvW89E +vrZNPGBrNDMUhyvDxv2imQqEEV2MTRq8ATI75dmBAZ1CWdLsxBETpV2CQeQ7Ep71 +OyMzKcmPy8gMOltNdEvwfF0KN+R4Tw69dR/zpAuG6aYyDRJv52y6xCv0I6kkEx7x +Cr3Jmif35vuFQpg083cGXODk+sNgfiHJTO7bOQ/TMvCpEEmFie/LWMSjJegVvb5y +mmq+KPSK7Ch2QYVhK3fh5Z8DfCR9ygUfVkxXZEr744K8OFA3Db9RGARtdnAKnYpn +TmF8p1Vcqv2fufhYxl3+ +=EntO +-----END PGP SIGNATURE----- diff --git a/downloads/index.html.mako b/downloads/index.html.mako index 4548b66..8ccac3c 100644 --- a/downloads/index.html.mako +++ b/downloads/index.html.mako @@ -79,7 +79,7 @@ We also provide Debian and Ubuntu repositories

Downloads

- The current stable version is 4.1.1. + The current stable version is 4.1.2.

@@ -102,6 +102,15 @@ We also provide Debian and Ubuntu repositories + + 4.1.2 + i3-4.1.2.tar.bz2 + 550 KiB + signature + 2012-01-27 + release notes + + 4.1.1 i3-4.1.1.tar.bz2 diff --git a/index.html.mako b/index.html.mako index 2ae8b06..01bebcd 100644 --- a/index.html.mako +++ b/index.html.mako @@ -20,7 +20,7 @@ ➡ Download the latest version - 4.1.1 + 4.1.2