LINUX.ORG.RU

tmux & pwd & remain-on-exit

 


0

3

Доброго времени суток! Не получается настроить tmux так, как мне хотелось бы. Первая проблема: в правой части статус-панели отображается путь к текущему каталогу и время, в конфиге:

set -g status-right '#(pwd) %R %d/%m/%g'
разумеется, pwd пишет полностью переменную $HOME. я бы хотел, чтобы вместо этого там было ~/. Когда мне это понадобилось в заголовке окна терминала, была найдена функция, которая была в .bashrc и хорошо работала:
function directory_to_titlebar {
        local pwd_length=42
        local dir="$PWD"
        if [[ "$HOME" == ${dir:0:${#HOME}} ]] ; then
                dir="~${dir:${#HOME}}"
        fi
        if [[ ${dir:${#dir}-1} != "/" ]] ; then
                dir="$dir/"
        fi
        if [[ "$dir" =~ (~){0,1}/.*(.{${pwd_length}}) ]] ; then
                local tilde=${BASH_REMATCH[1]}
                local directory=${BASH_REMATCH[2]}
                if [[ "$directory" =~ [^/]*(.*) ]] ; then
                  directory=${BASH_REMATCH[1]}
                fi
                dir="$tilde/...$directory"
        fi
        printf "\033]0;%s\007" "$dir"
}
PROMPT_COMMAND='echo -ne "\033]0;${directory_to_titlebar}\007"'
и я не могу понять, как бы мне это использовать для статус панели в tmux. Хотя может есть и более изящный вариант, не откажусь.

Второе. В конфиге описано, что нужно запустить при старте tmux, вот:

new -n rss newsbeuter
neww -n mutt mutt
neww -n mocp mocp
neww -n bash
selectw -t 4
Ситуация такова, что если запустить просто tmux, то откроется то, что запланировано и скроется сразу же, а мне откроется другая сессия с одним окошком, как дефолт. Чтобы этого избежать нужно сразу же писать tmux attach, но это несколько неудобно.

Так же, если закрыть одно из запущенных приложений, например mutt, то и окошко с ним закрывается и не помогает в этом случае remain-on-exit on, только если убивать обычное окошко, оно напишет pane is dead.

Вот такие вот проблемы, жду советов и рекомендаций.

1.Так и заменяй /home/user на ~:

set -g status-right '#(pwd|perl -pne s-/home/$USER-~-) %R %d/%m/%g'

3.

neww 'mutt;bash'

Второй вопрос не распарсил

disarmer ★★★
()
Последнее исправление: disarmer (всего исправлений: 1)
Ответ на: комментарий от disarmer

Спасибо за ответ. Да, действительно проще просто замену сделать. За вызов второй команды не знал, у себя исправил.

По поводу второго, вот что происходит, когда tmux не запущен и я вызываю его первый раз(с учётом того, что он должен открыть нужные окна):

$ tmux # (вот тут я попадаю в tmux session 1)
[detached (from session 1)]
$ tmux ls
0: 4 windows (created Fri Jan 22 22:50:53 2016) [80x23]
1: 1 windows (created Fri Jan 22 22:50:54 2016) [93x25]
т.е. по сути запускается в фоне сессия, которая мне нужна, а мне показывается новая сессия с одним окном. Насколько я понимаю, может нужно в конфиге указать сессию, которую нужно создать и подключаться к ней автоматом? Так же у меня reload конфига сделан на горячих клавишах и если перечитывать конфиг, то появляется много новых сессий с 4-мя окнами.

conformist ★★★
() автор топика
Ответ на: комментарий от conformist

Понял, но не могу подсказать, никогда не пользовался сессиями Вообще вот: https://wiki.archlinux.org/index.php/tmux#Session_initialization

если перечитывать конфиг, то появляется много новых сессий с 4-мя окнами

Логично, надо выносить в отдельный файл

disarmer ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.