Su archivo de configuración está funcionando, pero hay un par de complicaciones.
Comandos de corta duración
Primero, los comandos que está iniciando (instancias de ls ) terminan de ejecutarse muy rápidamente. Se crean las ventanas y los paneles para los comandos, pero desaparecen en cuanto sale cada comando.
Si su objetivo es utilizar dichos comandos de "un disparo" en su configuración final, entonces probablemente debería usar la opción de ventana remain-on-exit
(y posiblemente la opción de sesión set-remain-on-exit
para proporcionar un valor predeterminado para todas las ventanas creadas en la sesión). Cuando remain-on-exit
se configura para una ventana, no desaparecerá cuando salga el comando. Probablemente desee asignar el mapa respawn-window
a una tecla (nota: respawn-window
reaparecerá el comando original; respawn-pane
también está disponible en tmux 1.5 para reaparecer paneles individuales).
bind-key R respawn-window
# set global r-o-e so that initial window of initial session gets it
set -g set-remain-on-exit on
# create a session and its windows/panes
new -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# restore global r-o-e
set -g set-remain-on-exit off
# let session r-o-e inherit from global value for future windows
set -u set-remain-on-exit
O, si no le importa que su ventana inicial sea el número 1 en lugar del número 0, entonces podemos evitar cambiar el valor global:
bind-key R respawn-window
# create a session with a throw-away window
new true
# for future windows, stay open after the command exits
set set-remain-on-exit on
# create the windows we really want
neww -n estruct ls
neww -n estruct2 ls
splitw -v -p 50 -t 0 ls
# for future windows, revert r-o-e to global value
set -u set-remain-on-exit
Si solo estaba usando ls
un comando de marcador de posición simplificado y realmente tiene la intención de generar algún tipo de comando interactivo en sus ventanas / paneles, entonces probablemente debería generar el comando que pretendía ejecutar eventualmente. Si el comando destinado tarda demasiado tiempo en el arranque para utilizarlo durante tmux prueba, a continuación, sustituir una concha u otro comando simple interactiva (por ejemplo top
, sqlite3
, etc.).
new-session
Es el comando predeterminado
En segundo lugar, ejecutar tmux sin un argumento de comando (por ejemplo tmux
) es equivalente a usar el new-session
comando ( tmux
es decir, es lo mismo que tmux new-session
). Su .tmux.conf
crea una sesión para sus ventanas / paneles ( new
es un alias para new-session
) y se está creando otra sesión para el new-session
comando implícito especificado al iniciar tmux sin un argumento de comando. Si está utilizando la barra de estado predeterminada, verá un [1]
en el lado izquierdo de la barra de estado cuando esté en la sesión "extra" (la sesión inicial creada en el .tmux.conf
es el número 0).
Si desea evitar crear la sesión adicional, utilice en tmux attach
lugar de simple tmux
. Los comandos de su .tmux.conf
se ejecutarán, creando la sesión 0, y luego su cliente se conectará a esa sesión en lugar de crear una nueva.
splitw
, nada más, y todavía no obtengo una pantalla dividida porque lo dice No se puede establecer la sesión actual. Si agregonew
antes, obtengo ... una ventana, un panel. No puedo parecer, por mi vida, obtener dos paneles al inicio.new
, luegosplitw
funciona para mí cuando inicio tmux víatmux attach
. Una cosa para recordar es que.tmux.conf
(o el archivo especificado con la-f
opción) solo se usa si no hay un servidor que ya se esté ejecutando. Compruebe si un servidor se está ejecutando a través detmux ls
. Si desea ejecutar los comandos desde un archivo cuando un servidor ya se está ejecutando, hágalo así:tmux source-file /path/to/conf-file-that-creates-a-session-and-windows \; attach
(si ejecuta esto cuando no hay servidor, su.tmux.conf
(o el-f
archivo) se ejecutará primero y luego susource-file
archivo).tmux new -f myconfig
. El contenido de ese archivo de configuración contiene solonew
seguido desplitw
. Estoy matando todos y cada uno de los procesos tmux antes de probar la línea de comandotmux -f myconfig
. No consigo dos paneles. Estoy realmente perdido aquí con qué hacer más allá de este punto (aparte de renunciar a tmux).-f
o no,tmux
sin un argumento de comando es lo mismo quetmux new-session
(para los nuevos servidores, creará una nueva sesión además de lo que haga su archivo de configuración). Su ventana pre-dividida se crea en la sesión 0, pero elnew-session
comando implícito está creando (y adjuntando) una sesión adicional (sesión 1; busque[1]
en su línea de estado). Usetmux -f myconfig attach
para evitar crear la nueva sesión que oculta su ventana pre-dividida.No estoy seguro de entender lo que quieres decir con "ingresar manualmente", pero así es como lo hago. Escribí un script de "inicio automático" que inicia mi administrador de ventanas. Contiene:
donde cada archivo .session se ve así:
¡Espera, hay más! Tengo un número cada vez mayor de archivos .session que cargo con konsole:
donde work_console.tabs se parece a esto:
Luego presiono F12 para iniciar konsole.
fuente
supongamos que desea iniciar 3 tareas de supervisión del servidor (aquí ping localhost) no hay necesidad de meterse con archivos de configuración y sesiones guardadas. Todo se puede hacer desde la línea de comandos.
fuente
Encontré que teamocil era muy útil para automatizar las ventanas / sesiones de tmux.
Está escrito en Ruby, así que necesitas instalarlo.
Aquí hay una configuración de muestra:
Puede tener una disposición de ventanas y divisiones.
fuente
Otra alternativa similar a teamcoil es tmuxinator , está en desarrollo activo y funciona bastante bien. También se recomienda (y se revisa) en el increíble tmux: Desarrollo productivo sin mouse de The Pragmatic Bookshelf .
fuente
** **
¡Mejor guarde su sesión!
** Descubrí que para un administrador perezoso como yo, preferiría guardar la sesión de tmux, en lugar de pasar horas tratando de construirlo perfectamente. Estoy administrando más de 30 servidores, y mis sesiones tmux son dinámicas, y la configuración cambia todo el tiempo. Fue un dolor en el cuello, hasta que recientemente descubrí tmux-resurrect este complemento es simplemente genial. Darle una oportunidad. Actualmente, los repositorios de Ubuntu tienen tmux 1.8, este complemento necesita 1.9, por lo que necesitaría actualizarlo manualmente
Después de lo cual puedes instalarlo
Luego, coloque esta línea en la parte inferior de ~ / .tmux.conf (si ~ / .tmux.conf no está disponible, cree un archivo vacío)
También agrego esta línea al final de ~ / .tmux.conf para que el complemento guarde sesiones para todos los programas que ejecuto
Luego vuelva a cargar el entorno tmux.
¡Eso es! Estás listo. Ahora, ejecute tmux como de costumbre, cambie el tamaño de sus paneles, cree nuevos paneles, cree nuevas sesiones ... etc. Cuando esté satisfecho con la configuración que alcanzó (en varias ventanas y varias sesiones), simplemente haga clic en ctrl + b y luego ctrl + s para guardar la sesión. Para probar los resultados, simplemente mate todos los tmux
Luego, ejecuta nuevamente tmux
Luego, desde tmux, haga clic en Ctrl + B y luego Ctrl + R (para restaurar) Mágicamente, todas sus ventanas, paneles y sesiones se restauran con la misma geometría y disposición. Espero que esto ayude.
fuente