2013-10-24 3 views
5

Я новичок в tmux и хотел бы настроить его таким образом, чтобы при запуске tmux мои настраиваемые окна/панели были немедленно доступны.tmux: Как автоматически открывать сеансы, окна и панели

Например, вот основная ~/.tmux.conf:

new -s main -n workspace 
neww 

Когда я бегу tmux, я получаю сбрасывали в простой старой сессии. Когда я делаю list-sessions, я вижу сеанс рабочей области, указанный в файле conf, но для его использования я должен переключиться на него.

Как я могу просто перейти к сеансу «рабочей области» в сеансе, в который я сбрасываюсь, когда я открываю tmux, так что мне не нужно переключаться на него каждый раз?

+0

См [мой ответ здесь] (http://stackoverflow.com/questions/5609192/how-to-set-up-tmux-so-that-it-starts-up-with-specified-windows -открыто/5753059 # 5753059) – jasonwryan

+0

Я видел это; однако он не отвечает на мой вопрос, потому что для активации сеанса мне нужно привязать его к ключу. Я хочу, чтобы мой автоматически открывался и вставлял меня в свой пользовательский сеанс. – doremi

+0

Как насчет этого [подхода?] (Https://stackoverflow.com/a/40125397/1592039) – danbruegge

ответ

2

Не уверен, что я понял вопрос, но я использую tmuxinator для быстрого запуска сеансов, предварительно заполненные с окнами, стекла и процессов.

0

Вы создаете сеанс в своем файле .tmux.conf, но вы никогда не присоединяетесь к нему. Когда вы просто запустите

tmux 

нет команды указано, поэтому он по умолчанию работает new-session и присоединение к полученной сессии.

Это немного чище, чтобы ограничить файл .tmux.conf различными настройками и зарезервировать создание сеанса и управление отдельным сценарием.

#!/bin/bash 

tmux new -s main -n workspace 
tmux neww # Creates a 2nd window, in addition to the new session's first window 
tmux attach -t main 
+0

Мне это нравится, но это лучшая практика? Я только спрашиваю, потому что [этот комментарий] (http://stackoverflow.com/questions/5609192/how-to-set-up-tmux-so-that-it-starts-up-with-specified-windows-opened/5753059 # comment6585934_5752901) по соответствующему вопросу показывает различное мнение. – doremi

+0

На самом деле, все работает, если я просто, как вы сказали, присоединяется к сеансу, когда я начинаю tmux ala 'tmux attach-session main'. И я мог бы добавить псевдоним в мой .bash_profile, чтобы сократить это до псевдонима. – doremi

+3

'tmux a' запустится и присоединяется к сеансу по умолчанию, то есть к указанному в вашем' .tmux.conf' @doremi – jasonwryan

1

Вы можете подключиться к последнему использованному сеансу (который будет создан вашим файлом conf, если это применимо), запустив tmux attach вместо tmux.

Если в вашей конфигурации установлено несколько сеансовых настроек, вы можете выбрать, с кем вы приземляетесь, используя целевой флаг назначения имени сеанса, например: tmux attach -t <session_name>.

0

Я создал this script. Ему не нужны tmuxinator, ruby ​​или другие. Это просто Баш скрипт, конфигурируемый:

файл с именем конфигурации должна содержать что-то вроде этого:

combo=() 
combo+=('logs' 'cd /var/log; clear; pwd') 
combo+=('home' 'cd ~; clear; pwd') 

и код Баш должен быть:

#!/bin/bash 

if [ -r config ]; then 
    echo "" 
    echo "Loading custom file" 
    . config 
else 
    . config.dist 
fi 

tmux start-server 

window=0 
windownumber=-1 

for i in "${combo[@]}"; do 

    if [ $((window%2)) == 0 ]; then 
     name=${i} 
     ((windownumber++)) 
    else 
     command=${i} 
    fi 

    if [ ${combo[0]} == "${i}" ]; then 
     tmux new-session -d -s StarTmux -n "${name}" 
    else 
     if [ $((window%2)) == 0 ]; then 
      tmux new-window -tStarTmux:$windownumber -n "${name}" 
     fi 
    fi 

    if [ $((window%2)) == 1 ]; then 
     tmux send-keys -tStarTmux:$windownumber "${command}" C-m 
    fi 

    ((window++)) 
done 

tmux select-window -tStarTmux:0 
tmux attach-session -d -tStarTmux 
+0

Привет sensario, в то время как эта ссылка может ответить на вопрос, лучше включить основные части ответа здесь и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. Пожалуйста, посмотрите здесь: [Почему и как удалены некоторые ответы?] (Http://stackoverflow.com/help/deleted-answers) – bummi

0

Используйте мой сценарий. IniTmux. Вы можете легко описать сеансы, окна и панели с помощью простых файлов YAML.

--- 
name: AK-Math 
root: /i/project/LibAK/feature/Math 
windows: 
- Matrix : feature 
- Vector : feature 
- Number : feature 
- Complex : feature 
- Real : feature 
- Integer : feature 
- Bool : feature 

- Math: 
    layout : tiled 
    dir : branch 
    panes : 
    - 'ranger' 
    - '' 

models: 
    feature: 
     layout: "40fd,113x31,0,0[113x22,0,0{22x22,0,0,0,90x22,23,0,1},113x9,0,23,2]" 
     dir: <WName> 
     panes: 
     - loop "tree obj" 0.5 
     - vim -c VWSLoadWorkSpace 
     - '' 
Смежные вопросы