¿Cómo obtener tanto el directorio de trabajo actual como el proceso actual en la línea de estado de tmux?

¿Cómo obtener tanto el directorio de trabajo actual como el proceso actual en la línea de estado de tmux?

Me gustaría tener dos líneas de estado: la primera línea de estado muestra en qué directorio se encuentra la ventana y la segunda muestra qué proceso se está ejecutando en la ventana. es posible? Utilizo bash pero estoy abierto a cambiar a otro shell si es más fácil realizar esta configuración.

Si esto no es posible con tmux o es muy difícil de configurar, ¿hay alguna otra herramienta que pueda usar y que pueda proporcionarme esta información? (Básicamente, quiero que se abran varias pestañas/ventanas en la terminal, con el directorio y la información del proceso).

Respuesta1

Una muy buena pregunta. Puedo hacer que "funcione", pero no lo suficientemente bien como para que sea "utilizable", en mi humilde opinión. Estoy de acuerdo en que sería un buen formato si funcionara lo suficientemente bien. Proporcionaré la información que encontré aquí, con la esperanza de que tal vez usted (o alguien más que venga) pueda completar el resto del rompecabezas.

A partir de tmux 2.9 en 2019, es fácil agregar una segunda línea de estado con setw -g status 2. El formato para la primera línea sería (muybásicoversión):

setw -g status-format[0] '#{W:#{pane_current_path} }' # or ...
setw -g status-format[0] '#{W:#(pwd) }'

La segunda línea sería:

setw -g status-format[1] '#{W:#{pane_current_command} }' # or possibly
setw -g status-format[1] '#{W:#W } # if there's no other function changing the window title'

El problema es que estos no se alinean entre sí en absoluto, y todavía no he encontrado una manera de hacerlo a través de las directivas de configuración tmux. Puede haber una manera de al menos rellenar/forzar los resultados superior e inferior a un cierto ancho para crear alineación de esa manera, pero aún no he llegado tan lejos.

Tenga en cuenta también que, de forma predeterminada, tmux solo se actualiza cada 15 segundos. Puede actualizar este intervalo usando algo como setw -g status-interval 1.

También tenga en cuenta que cualquiera de los comandos se puede utilizar de forma interactiva en el shell simplemente anteponiendo el tmuxcomando.

información relacionada