Forzar la apertura de cada nueva terminal en una nueva pestaña

8

Tengo la costumbre de abrir una terminal usando el comando "Abrir terminal aquí" en las carpetas. Esto hace que algunos terminales permanezcan abiertos mientras realmente ya no los uso, o me confundo qué terminal estaba sirviendo para qué propósito.

Sé que puedo etiquetar las pestañas de los terminales y demás, pero ¿puedo forzar a un nuevo terminal que se está abriendo para que se convierta en una nueva pestaña en una pantalla de terminal (si ya hay una abierta?) De esta manera, siempre las tengo en una sola pestaña terminal.

EDITAR Bien, ha pasado un tiempo y mi Linux Mojo ha mejorado mucho. Entonces, la solución actual a esta situación para mí ha estado usando tmux. Es un poco más avanzado que los terminales y las pestañas normales, pero una vez que me acostumbré (aproximadamente una hora de prueba), estoy muy satisfecho con la forma de hacer las cosas.

En primer lugar, me aseguré de que cada vez que abría un terminal usando ctrl-alt-t, abriría tmux por defecto. Esto se puede lograr agregando la siguiente línea en su .bashrcarchivo después de todos los alias:

[[ $TERM != "screen" ]] && exec 'tmux

Ahora, cada vez que engendras un terminal usando, ctrl-alt-tse te presentará un tmux.

Para asegurarme de que solo tiene una terminal abierta al mismo tiempo, hice lo siguiente:

En primer lugar, puede volver a conectar una sesión tmuxejecutándose tmux attach -d. Esto desconectará a todos los demás clientes conectados a esta sesión. Esto funciona bien si eres la única persona que usa las sesiones.

Pero, si no tiene una sesión ejecutándose, dirá que no encontró ninguna sesión. Ergo, necesitas algo como if (nosession) {tmux} else {tmux attach -d}. Para hacer esto cree de anexar a su ~/.tmux.confarchivo la siguiente línea:

#if run as "tmux attach", create a session if one does not already exist
new-session -n $HOST

(Gracias a esta publicación )

En mi .bashrcarchivo, cambié la línea agregada previamente a la siguiente:

[[ $TERM != "screen" ]] && exec 'tmux attach -d'

Lo que esto hace es separar a todos los demás clientes de la tmuxsesión. Cuando haces esto, todas las otras terminales se cierran. Se cierran porque esta línea también se asegura de que cuando abra una terminal (ctrl-alt-t), inmediatamente inicie una sesión tmux.

Ergo, attach -dmata las otras sesiones. ¡Así que esta es la solución más cercana que podría obtener y estoy bastante feliz con ella! :)

Lo único que aún me gustaría es que cuando presiono ctrl-alt-tse abre mi sesión actual y también crea una nueva ventana. Todavía no lo he descubierto, ¡así que siéntete libre de ayudar!

Christophe De Troyer
fuente
Presione ctr + shift + t para abrir la pestaña en la terminal.
Ankur Khandelwal
Sí, soy consciente de eso. Sin embargo, como dije, con frecuencia abro pestañas desde un directorio usando el complemento "Abrir terminal aquí" (esto es predeterminado en Xubuntu, por ejemplo). Estos abren una nueva ventana. Me gustaría que se abrieran como una nueva pestaña en la ventana de terminal ya existente.
Christophe De Troyer

Respuestas:

3

Desafortunadamente, abrir nuevas pestañas en la sesión existente de gnome-terminal ha sido una característica deseada durante varios años, vea aquí .

Sin embargo, sería posible hackear algo juntos. Por ejemplo, esta respuesta proporciona un truco para abrir una nueva pestaña en la ventana actual de gnome-terminal.

Jamie
fuente
Excelente. +1 para el enlace al informe de error. Solo puedo alentar a todos a hacer clic en el enlace "esto también me afecta" en la parte superior para llamar la atención sobre esto. También +1 para el hack. ¡Gran respuesta!
Christophe De Troyer