Open iTerm2 SSH session in new window instead of new tab
Now that I figured out how to set iTerm2 as the ssh:// URL handler, I'd like iTerm2 to respond to an ssh URL by opening a new window instead of opening a new tab in an existing window. Is this possible?
Solution 1:
I was curious about the same problem. After reviewing the source code, I found in iTerm2 v1.0.0.20111020 is hard-coded to open a new session as a tab if a session already exists, when it receives nearly any "launch this URL with a handler" command.
My Xcode and Objective-C skills are still rather weak, but if you want to give it a shot I believe the problem is related to the source file iTermController.m. On lines 789 to 870 the launchBookmark:withURL
method has the following code:
// Where do we execute this command?
BOOL toggle = NO;
if (theTerm == nil) {
[iTermController switchToSpaceInBookmark:aDict];
term = [[[PseudoTerminal alloc] initWithSmartLayout:YES
windowType:[aDict objectForKey:KEY_WINDOW_TYPE] ? [[aDict objectForKey:KEY_WINDOW_TYPE] intValue] : WINDOW_TYPE_NORMAL
screen:[aDict objectForKey:KEY_SCREEN] ? [[aDict objectForKey:KEY_SCREEN] intValue] : -1] autorelease];
[self addInTerminals: term];
toggle = [term windowType] == WINDOW_TYPE_FULL_SCREEN;
} else {
term = theTerm;
}
id result = [term addNewSession: aDict withURL: url];
I suspect that when theTerm == nil
, addNewSession
works as expected by launching a new window, since one is currently not running. Perhaps you can modify the code to force the first block to always run, regardless of theTerm
's contents.
I hope this helps!! .. It may be worth filing a bug report or contacting the author if you're still having problems.