iTerm2 1.0.0.20111219 Canary released

249 views
Skip to first unread message

George Nachman

unread,
Dec 20, 2011, 1:41:49 AM12/20/11
to iterm2-...@googlegroups.com
Dear iTerm2 users,

It's been a while since the last release. But things have not been idle in the land of iTerm2. In fact, you should probably wear a hat, because this release is so amazing your head might explode. Because there are some big new features, I've uploaded a "canary" release. If it doesn't have any serious problems then it will be promoted to a full release and will auto-update, but for now you have to download and install by hand. Consider yourself warned: there might be bugs.


With that out of the way, on to the release notes:

iTerm2 1.0.0.20111219
You'd better sit down for this one.

Marquee Features
- Deep tmux integration!
   Have you ever had an ssh session lost because you had to reboot, had a network failure, or the power went out? Are you tired of giving up a keystroke to tmux or screen? Suffer no longer! iTerm2 and tmux are now deeply integrated. By installing a special version of tmux, it gains the ability to speak directly to iTerm2. When you run tmux with -C, iTerm2 will open real, native windows or tabs for each tmux window. The whole state of your tmux session is reflected in native iTerm2 windows. As you interact with a window, your typing is sent back to tmux. Any time you resize a window, add a split pane, close a split pane, close a window, or open a window (with Shell->tmux->new window), that action happens in tmux as well as in iTerm2.

Enhancements
- Add title bars to split panes that show the title. You can drag panes by their titles, and there is a menu and a close button in it as well.
- Support Lion's Restore functionality.
- "Find" continues to search as new text appears.
- Add option to always copy preferences to prefs stored in a custom folder.
- Add "Always Run Command..." option to semantic history, which runs a command even if you don't cmd-click on a filename.
- Add a new panel to prefs to make mouse actions configurable.
- Add option to make triple-click select a whole wrapped line rather than just one row.
- Add 'New Window (Default Profile)' to dock menu.
- Allow users to add context menu actions through Prefs->Profiles->Advanced->Smart Selection->Edit Actions. When you right-click on text matching a a smart selection, the actions are added to the context menu.
- Add hidden option AutocompleteMaxOptions to adjust number of autocomplete entries.
- Add hidden option PasteHistoryMaxOptions to adjust number of paste history entries.
- Add a new trigger action called "Silent Coprocess" that mutes the session while running (ideal for rz/sz).
- Add \5 as a macro in Semantic History commands to pass the PWD.
- Make growl alerts clickable (thanks, soul.cake.tuesday.duck and bauerb).
- Add hidden variable URLCharacterSet that defines characters that are part of a URL.

Bug fixes:
- Growl notifications were off by default. Should work with Growl 1.3 now.
- Fixed display of different-sized screens in window arrangements tab of prefs (thanks, 0xae).
- Add | to legal URL characters.
- Run triggers on CR, not just LF.
- Fix toolbelt support in Lion fullscreen.
- Ignore sigpipe from coprocesses.
- Show all tabs in Window->Select Tab.
- Fix number-of-scrollback-line field in Lion, which wouldn't allow you to go over 1000.
- Fix bug where scrolling the window while making a selection didn't work sometimes.
- Fix bug with window size changing badly when switching monitors.
- Fix bug where move tab to new window command in tab's context menu creates a session with all black.
- Preserve window number when toggling traditional fullscreen.
- Respect "dim inactive split panes setting" when restoring window arrangements and broadcasting input.

Chas. Owens

unread,
Dec 20, 2011, 5:19:16 AM12/20/11
to iterm2-...@googlegroups.com
On Tue, Dec 20, 2011 at 01:41, George Nachman <gnac...@llamas.org> wrote:
> Dear iTerm2 users,
>
> It's been a while since the last release. But things have not been idle in
> the land of iTerm2. In fact, you should probably wear a hat, because this
> release is so amazing your head might explode. Because there are some big
> new features, I've uploaded a "canary" release. If it doesn't have any
> serious problems then it will be promoted to a full release and will
> auto-update, but for now you have to download and install by hand. Consider
> yourself warned: there might be bugs.
>
> Download
> link: http://code.google.com/p/iterm2/downloads/detail?name=iTerm2-1_0_0_20111219.zip
snip

I can't configure the special tmux version:

checking for gcc that whines about -I... yes
checking for glibc... no
checking for library containing clock_gettime... no
./configure: line 4703: syntax error near unexpected token `newline'
./configure: line 4703: `PKG_CHECK_MODULES('


I did get the AC_SEARCH_LIBS error, but luckily I am using brew, so I
was able to run the command suggested on the download page and get
past it.


--
Chas. Owens
wonkden.net
The most important skill a programmer can have is the ability to read.

Nikola Knežević

unread,
Dec 20, 2011, 7:14:05 AM12/20/11
to iterm2-...@googlegroups.com
On 20 Dec 2011, at 7:41 , George Nachman wrote:

> Marquee Features
> - Deep tmux integration!
> Have you ever had an ssh session lost because you had to reboot, had a
> network failure, or the power went out? Are you tired of giving up a
> keystroke to tmux or screen? Suffer no longer! iTerm2 and tmux are now
> deeply integrated. By installing a special version of tmux, it gains the
> ability to speak directly to iTerm2. When you run tmux with -C, iTerm2 will
> open real, native windows or tabs for each tmux window. The whole state of
> your tmux session is reflected in native iTerm2 windows. As you interact
> with a window, your typing is sent back to tmux. Any time you resize a
> window, add a split pane, close a split pane, close a window, or open a
> window (with Shell->tmux->new window), that action happens in tmux as well
> as in iTerm2.
> Download the tmux code here:
> http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20111219.tar.gz

Awesome! Thanks George.

Will these changes to tmux find their way to tmux's main distribution?

Best,
Nikola

ms

unread,
Dec 20, 2011, 9:08:39 AM12/20/11
to iterm2-discuss
Thanks George for this new release.

I have the following issue:

Above you mentioned, to run tmux with the -C option.

I downloaded and compiled your tmux version but it complains about the
-C option:

braeburn:~ ms$ tmux -V
tmux 1.6
braeburn:~ ms$ tmux -C
tmux: illegal option -- C
usage: tmux [-28lquvV] [-c shell-command] [-f file] [-L socket-name]
[-S socket-path] [command [flags]]
braeburn:~ ms$ ls -la `which tmux`
-rwxr-xr-x 1 root wheel 702800 Dec 20 09:12 /usr/local/bin/tmux

Best regards,

Michael

Chas. Owens

unread,
Dec 20, 2011, 10:29:34 AM12/20/11
to iterm2-...@googlegroups.com

I thought the AC_SEARCH_LIBS stuff was fixed because rerunning sh
autogen.sh doesn't complain; however, it appears that it doesn't
complain the second time because the first failed run created
configure anyway.

When I started fresh from the new download, I still got the error:

configure.ac:105: error: possibly undefined macro: AC_SEARCH_LIBS
If this token and others are legitimate, please use m4_pattern_allow.
See the Autoconf documentation.
autoreconf: /Developer/usr/bin/autoconf failed with exit status: 1
autoreconf failed

Which explains why it is failing when I run configure (it has no idea
what AC_SEARCH_LIBS is).

Question, what version of the XCode are you using? I am still using
3.2.5 (1760). Do I need to upgrade to 4 or something?

George Nachman

unread,
Dec 20, 2011, 11:53:35 AM12/20/11
to iterm2-...@googlegroups.com, iterm2-...@googlegroups.com
If you downloaded the tmux source in the first few hours please get it again. It was from the wrong branch. The notes for the download say what to do to fix the error you saw (I hope). Also, you shouldn't need to run autogen on this one.

Chas. Owens

unread,
Dec 20, 2011, 1:37:53 PM12/20/11
to iterm2-...@googlegroups.com
On Tue, Dec 20, 2011 at 11:53, George Nachman <gnac...@gmail.com> wrote:
> If you downloaded the tmux source in the first few hours please get it again.
> It was from the wrong branch. The notes for the download say what to do to fix
> the error you saw (I hope). Also, you shouldn't need to run autogen on this one.
snip

Odd, I grabbed the code after your email went out, but my browser must
have kept it cached or something. Downloading with wget got me the
updated tmux and it compiled just fine.

Running tmux -C in one window causes a new window to pop up that seems
to have tmux integration. Running detach in the new window closes it
and seems to bork the first windows terminal (I have to run stty sane
to get it back to normal).

George Nachman

unread,
Dec 20, 2011, 2:08:42 PM12/20/11
to iterm2-...@googlegroups.com
How did you run detach in the new window? You may be doing something I don't know about.

The way that works is to do shell->tmux->detach.

Chas. Owens

unread,
Dec 20, 2011, 2:24:22 PM12/20/11
to iterm2-...@googlegroups.com
On Tue, Dec 20, 2011 at 14:08, George Nachman <gnac...@llamas.org> wrote:
> How did you run detach in the new window? You may be doing something I don't
> know about.
>
> The way that works is to do shell->tmux->detach.
snip

1. I open an iTerm2 window.
2. I type tmux -C<enter>.
3. A second window opens.
4. I focus the second window.
5. I go to Shell->tmux->detach.
6. The second window closes.
7. I focus the first window.
8. The terminal is borked:
* I type and nothing shows up
* hitting enter causes the typed characters to run
* typing stty sane<enter> restores the normal terminal

One thing that may be different between my setup and yours is that I
installed tmux into $HOME/app/tmux instead of /usr/local.

George Nachman

unread,
Dec 20, 2011, 3:47:38 PM12/20/11
to iterm2-...@googlegroups.com
Can you enable core dumps and see if tmux is crashing? Re-run tmux's configure with --enable_debug and then run make. Then, assuming you use bash, do this:
ulimit -c unlimited
tmux -C
...reporoduce bug...
Check for a new file in /cores and send it to me.

Dan Nawara

unread,
Dec 20, 2011, 4:08:35 PM12/20/11
to iterm2-...@googlegroups.com
Any luck ms? I'm having the same issue here.

Even tried running the executable straight from the source dir.

Daenney

unread,
Dec 20, 2011, 4:23:39 PM12/20/11
to iterm2-...@googlegroups.com
I was wondering if there's some more in depth information about the tmux integration and a wiki page with the docs / a few scenario's layer out.

It seems really interesting but I'm not quite sure how this would actually integrate into my daily flow where I ssh to a server and attach my tmux session with 7 windows...

George Nachman

unread,
Dec 20, 2011, 9:24:28 PM12/20/11
to iterm2-...@googlegroups.com
Make sure when you re-download the tmux source that it really
downloads it. Some people have had problems with browser caches.

I uploaded a binary, but it won't work for everyone. See the caveats
in the description.
http://code.google.com/p/iterm2/downloads/detail?name=tmux-for-iTerm2-20111219-precompiled.tar.gz

spork

unread,
Dec 20, 2011, 10:53:21 PM12/20/11
to iterm2-discuss
George,

This is all very awesome. I hope someone can do a nice writeup on the
homepage about how to get tmux running for those of us that have never
got into screen/tmux.

But... in that long list of features I still don't see a nice toggle
somewhere (even a hidden one would do!) for those of us still not into
tabs/panes. Please, please consider a toggle to allow the default on
opening a new session to be set to a new window rather than a new
tab. There's at least one issue I've +'d or commented on regarding
this in the issue tracker.

Thanks!

George Nachman

unread,
Dec 21, 2011, 1:23:20 AM12/21/11
to iterm2-...@googlegroups.com
I've written some info here:
http://code.google.com/p/iterm2/wiki/TmuxIntegration

People will probably think of ways to use this that I haven't, so I
hope it gets some comments with new ideas.

If you ssh into a server and run tmux with 7 windows, then the obvious
use case is that you get a nicer UI to interact with your tmux
windows. You don't have to give up a keystroke to tmux (^B, or
whatever), and you get all the iTerm2 niceties that tmux doesn't have
(e.g., Find).

spork

unread,
Dec 22, 2011, 2:41:40 AM12/22/11
to iterm2-discuss
OK, now I get this. This is huge and will probably make me a tmux
user.

I see two scenarios where this is beyond awesome for sysadmin work:

-Put the modified tmux on all the servers you work with. ssh in with
iTerm and as new tmux sessions, start a few shells, do some long
running stuff, leave some editor sessions open, leave some logfile
tailing open, etc. Leave your desk, grab laptop, ssh to server with
iTerm and you've got all those same windows. Sleep laptop, go to
starbucks, still find those same windows. If this also holds
scrollback, that would be incredibly awesome.

-Put the modified tmux on one very, very secure, trusted box. ssh in
with iTerm, start new tmux sessions and ssh to a bunch of hosts and
start doing a bunch of stuff in them. Same as above, instant portable
workspace when switching macs or travelling with a laptop.

Just a few things I noticed:

The code on the google site seems to work fine, but the git version on
github is not, it does not seem to have the iTerm mods (complains that
"-C" is not valid).

Don't be misled by seeing an OS-X build for tmux, you'll probably see
many more possibilities for using this if you build it on your
servers, dev boxes, whatever you frequently ssh to. Running the tmux
server local to your mac doesn't get you persistent anything to remote
hosts. This may sound obvious if you already use screen/tmux, but
whatever.

Building tmux on FreeBSD is pretty easy:

$ cd /usr/ports/devel/libevent; make install clean
$ fetch http://iterm2.googlecode.com/files/tmux-for-iTerm2-20111219.tar.gz
$ tar xvzf tmux-for-iTerm2-20111219.tar.gz
$ cd tmux-for-iTerm2-20111219
$ export PKG_CONFIG=/usr/local/bin/pkg-config; export CPPFLAGS="-I/usr/
local/include"; export LDFLAGS="-L/usr/local/lib"
$ ./configure
$ make install
$ tmux # (start a bunch of new sessions)

If you're running the new iTerm, then ssh to the box where you just
built tmux and run "tmux -C attach" and you will see iTerm pop a
window up for each session you started in the previous tmux
invocation. A very obvious and simple example, but pretty whiz-bang
if you aren't a tmux/screen user.

"Look Ma, no tmux escape sequences to remember!" :)

Sam Critchley

unread,
Dec 22, 2011, 5:21:19 PM12/22/11
to iterm2-...@googlegroups.com

Hi,

At the moment I do a lot of work on a remote server and use iTerm2, running multiple tabs (see the Applescript on the iTerm2 site for how to run this as an executable), one session per tab with screen on the remote machine so I don't lose my sessions if I get disconnected. This tmux stuff looks interesting, but what does it give me that screen doesn't? The tmux documentation is a little difficult to understand in this respect.... what would be ideal would be a local shell command I can type in iTerm which will reconnect me all the way to vim or whatever's running on the remote server.

Thanks,

Sam

Sam Critchley
s...@l3bv.com
Location, Location, Location B.V.
Nieuwe Leliestraat 78
1015 SV Amsterdam
The Netherlands
M: +31 6 28 233 133


George Nachman

unread,
Dec 22, 2011, 6:53:07 PM12/22/11
to iterm2-...@googlegroups.com
Here's what you'd do:

Set up a profile whose command is something like this:

ssh m...@myhost.example.com "tmux -C attach || tmux -C"

Open a window with that profile and then hide it. The hotkey window is useful for this because it's automatically hidden. (there will be improvements on this front in future releases)

A bunch of windows open up showing your various remote sessions. You can rearrange them into tabs in a single window if you prefer. (a future release will remember how you had your sessions set up and generally make this process smoother). You're right where you left off.

The advantages over screen or traditional tmux are:
- iTerm2 features work better without a terminal multiplexer. For example, find (cmd-F) sees your history, whereas with screen you have to use its less-stellar find function.
- It's easier to interact with native windows or tabs than virtual windows.
- Screen demands that you give up a key for sending it commands. In this mode, you don't lose any keys at all and you just use native iTerm2 keystroke to manipulate your sessions (e.g., to split panes, close windows, etc.)
- Traditional tmux (and I believe screen) only speak the "screen" TERM. Unknown escape codes just get swallowed up. In this mode, you don't have that problem. iTerm2 offers a lot of useful escape codes that you can now use.
- You don't have to learn how to use screen or tmux. You just work in your normal environment.

The tmux integration is still very early in its development. What you see in this release is the minimum viable feature set--I wanted to release it as soon as possible to get feedback and find bugs. Let me know what improvements you'd like to see. I'm open to making changes to make this work really well. I believe that if you ssh to a remote host, this should be the preferred way to work.

-G

Chas. Owens

unread,
Dec 22, 2011, 7:29:31 PM12/22/11
to iterm2-...@googlegroups.com
On Thu, Dec 22, 2011 at 18:53, George Nachman <geo...@google.com> wrote:
snip

> - Traditional tmux (and I believe screen) only speak the "screen" TERM.
> Unknown escape codes just get swallowed up. In this mode, you don't have
> that problem. iTerm2 offers a lot of useful escape codes that you can now
> use.
snip

I can confirm that screen eats escape codes. There is some talk of
making tmux able to pass on unknown escape codes or a adding an escape
code to forward a different escape code.

snip


> The tmux integration is still very early in its development. What you see in
> this release is the minimum viable feature set--I wanted to release it as
> soon as possible to get feedback and find bugs. Let me know what
> improvements you'd like to see. I'm open to making changes to make this work
> really well. I believe that if you ssh to a remote host, this should be the
> preferred way to work.

snip

One thing I am finding annoying is that I tend to use "ctrl-a a" (I
remap ctrl-b to ctrl-a and ctrl-a l to ctrl-a a to make it easier to
switch between tmux and screen) a lot to bounce between two windows.
There doesn't seem to be a last-used-(window|tab|pane) action in
iTerm2.

I think you have already mentioned the possibility of having tabs
instead of windows be the default based on an option. That is
something else I really want. For one thing, it would make session
switching easier to deal with (not that the code supports session
switching yet).

I think I may have found a bug: an arrow is used to indicate that this
is a tmux window, but when I create a pane, the new pane's title bar
doesn't have the arrow (but the original does).

George Nachman

unread,
Dec 22, 2011, 7:54:49 PM12/22/11
to iterm2-...@googlegroups.com
>
> One thing I am finding annoying is that I tend to use "ctrl-a a" (I
> remap ctrl-b to ctrl-a and ctrl-a l to ctrl-a a to make it easier to
> switch between tmux and screen) a lot to bounce between two windows.
> There doesn't seem to be a last-used-(window|tab|pane) action in
> iTerm2.

There is a "cycle tabs forward" action that acts like cmd-tab, but for
tabs. I recommend binding control-tab to that action. It will let you
switch between two tabs as you describe. I'm certainly open to adding
a "cycle through windows" and "cycle through panes" action if that
would be useful.

> I think you have already mentioned the possibility of having tabs
> instead of windows be the default based on an option.  That is
> something else I really want.  For one thing, it would make session
> switching easier to deal with (not that the code supports session
> switching yet).

I'm thinking that when you attach you'll get a tmux window manager
(similar to the cmd-O profiles window) that lets you open tmux windows
in various ways.

> I think I may have found a bug: an arrow is used to indicate that this
> is a tmux window, but when I create a pane, the new pane's title bar
> doesn't have the arrow (but the original does).
>

Thanks for the bug report. I'll have a look at that.

Reply all
Reply to author
Forward
0 new messages