Ahora que me di cuenta de cómo establecer iTerm2 como el ssh:// controlador de URL, me gustaría iTerm2 para responder a un ssh URL mediante la apertura de una nueva ventana en lugar de abrir una nueva pestaña en una ventana existente. Es esto posible?
Respuesta
¿Demasiados anuncios?Tenía curiosidad sobre el mismo problema. Después de revisar el código fuente, he encontrado en iTerm2 v1.0.0.20111020 está codificada para abrir una nueva sesión como una ficha si ya existe una sesión, cuando recibe casi cualquier "lanzamiento de esta dirección con un controlador de comandos".
Mi Xcode y Objective-C habilidades son todavía bastante débil, pero si quieres darle un tiro creo que el problema está relacionado con el archivo de origen iTermController.m. En líneas 789 a 870 el launchBookmark:withURL
método tiene el siguiente código:
// 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];
Sospecho que cuando theTerm == nil
, addNewSession
funciona como se espera por el lanzamiento de una nueva ventana, ya que uno no se está ejecutando actualmente. Tal vez usted puede modificar el código para forzar el primer bloque para que se ejecute siempre, independientemente de theTerm
's contenido.
Espero que esto ayude!! .. Puede ser digno de la presentación de un informe de error o ponerse en contacto con el autor si usted todavía está teniendo problemas.