¿Cómo puedo abrir varias carcasas de terminales personalizadas?

¿Cómo puedo personalizar Terminal para que cuando abra la aplicación abra varias pestañas de shell? Si es posible, también me gustaría que ejecute un script de entorno diferente para cada pestaña.

Ejemplo: Ejecute este comando source bin/activate, que es un comando de configuración de virtualenv de Python.

Respuestas (5)

Agregue esto a su ~/.bash_profilesi usa bash o ~/.zshrcsi usa zsh, cambiando el contenido de la COMMANDSmatriz:

function openterms() {
    COMMANDS=("source bin/activate" "add another here" "continue likewise")
    for command in $COMMANDS
        do osascript -e \
        "tell application \"Terminal\" to do script with command \"$command\""
    done
}

Ahora llamar opentermsa un shell abrirá todos los otros shells que querías.

Estoy usando Keyboard Maestro . Una vez grabé una macro que configura Terminal (estoy usando iTerm, pero no importa) de la manera que me gusta e hice que esta macro se activara al iniciar iTerm.

Entonces, cuando lo lanzo, está configurado como yo quería. Dos ventanas, cinco pestañas en una para diferentes carpetas con cada pestaña con el nombre apropiado, y otra ventana con dos pestañas conectadas a mi servidor, una de ellas inicia un script de monitoreo. Todo esto se hace dentro de los 2 segundos posteriores al lanzamiento de la Terminal, lo que antes demoraba un minuto o más.

Ahora no tengo tanto miedo de cerrar iTerm si lo necesito, ya que puedo volver a abrirlo en el mismo estado sin ningún esfuerzo.

Por cierto, Keyboard Maestro también es bueno para muchas otras cosas. Hace poco lo compré con descuento en mupromo.com, donde lo descubrí por primera vez pero, en mi opinión, también vale su precio completo.

Como mencionó Josh K, puede crear un grupo de ventanas para abrir una o más ventanas con diseños y apariencias específicas. Además, los "perfiles de configuración" (Terminal > Preferencias > Configuración) pueden especificar un comando para ejecutar cuando se crea una terminal con ese perfil. Puede crear un perfil separado para cada comando que desee ejecutar y luego crear ventanas con esos perfiles. Cuando los guarde en un grupo de ventanas y los vuelva a abrir, esos comandos se ejecutarán en sus ventanas correspondientes. Incluso puede hacer que Terminal abra un grupo de ventanas específico al inicio.

A partir de Mac OS X Lion 10.7, hay varias mejoras nuevas en esta área:

  1. Reanudar restaurará automáticamente las ventanas que estaban abiertas cuando salió de Terminal, por lo que usar un grupo de ventanas para esto ya no es estrictamente necesario (aunque le permiten volver a crear una configuración específica si ha cerrado las ventanas).

  2. Si crea una nueva terminal usando Shell > Nuevo comando, dado que la Terminal sabe qué comando ejecutó, puede restaurarla ejecutándola nuevamente. La terminal ahora restaurará automáticamente los comandos "seguros"† al reanudar.

  3. Terminal también restaurará estos comandos si guarda este tipo de terminales en un grupo de ventanas. Además, al guardar un grupo de ventanas, hay una opción para restaurar todos los comandos, no solo los "seguros". Por lo tanto, ya no necesita crear un perfil de configuración separado para cada comando que desee ejecutar.

† Los comandos "seguros" incluyen todo lo que aparece en /etc/shells, emacs, vi/vim, nano, pico, top, screen, tmux y cualquier comando creado con Shell > Nueva conexión remota (p. ej., sesiones ssh). Tenga en cuenta que solo la parte superior se considera "segura" cuando se usa con argumentos; los otros admiten argumentos que pueden hacer cosas que no le gustaría que hicieran sin la confirmación del usuario, por lo que no se consideran "seguros" para la restauración automática a menos que se invoquen sin argumentos. Puede personalizar la lista de comandos "seguros" con "los valores predeterminados escriben com.apple.Terminal RestorableCommands". El valor es una lista de cadenas que contienen los nombres de los comandos. Para indicar que se permiten argumentos, agregue un asterisco después de un comando. por ejemplo, "top *" hace que top sea seguro cuando se usa con argumentos, pero "top" no lo hace.

Alternativamente, también puede usar screenpara abrir varias pestañas en una sola ventana. La pantalla es muy flexible y puede configurarse para ejecutar cualquier script durante el inicio del terminal.

Más información.

¿ Esta publicación describe lo que quieres hacer?