LINUX.ORG.RU

Вышел tmux 1.9

 


1

3

20 февраля состоялся релиз новой версии терминального мультиплексора tmux.

Tmux позволяет в рамках одного окна терминала работать с несколькими виртуальными терминалами и консольными утилитами. Окна могут быть сгруппированы в сесcии. Является аналогом GNU Screen с более обширными возможностями.

Внимание, в новой версии обновлен протокол, поэтому необходимо перезапустить сервер. В случае обновления без перезапуска теряется возможность присоединения к текущим сессиям

Удалено/устарело:

  • Убрана поддержка 88 цветов.
  • Убрана опция default-path. Для установки директории запуска нового окна используется параметр -c команды new-window. Для создания окна в текущей директории рекомендуется использовать neww -c $PWD, для создания окна в текущей директории активной панели рекомендуется использовать neww - c "#{pane_current_path}".
  • Объявлены устревшими однобуквенные аргументы для параметра -F. Вместо них введены аналоги с более длинными именами. Относится к разделу FORMATS в man-странице tmux(1).
  • Объявлены устаревшими команды для стилизации элементов окна, которые имели вид foo-{fg,bg,attr}. Теперь задавать цвета можно одновременно для нескольких атрибутов одного элемента. Пример нового синтаксиса: set -g status-style fg=yellow,bg=red,blink. Пока что сохраняется обратная совместимость со старым синтаксисом, но в будущем планируется к удалению.

Добавлено:

  • Новая переменная окружения TMUX_TMPDIR. Позволяет переопределить директорию для сохранения сокета.
  • При вызове swap-pane возможно опустить параметр -s, в таком случае в качестве аргумента -s подразумевается текущая панель.
  • Добавлен формат #{pane_syncronized}. Устанавливается в истину, если панель находится в режиме синхронизации(synchronize-panes on).
  • Добавлена поддержка cygwin'а.
  • Добавлена возможность вложенности и дополняемости форматов(FORMATS).
  • Добавлен параметр -с команде new-session. Позволяет задать каталог запуска для новых окон в рамках всей сессии.
  • Теперь при отсоединении от сессии на экран выводится ее имя.
  • Добавлено множество новых форматов(FORMATS).
  • Исправлена возможность возникновения состояния гонки в сервере. Теперь команды не начинают исполняться, пока полностью не прочитан конфигурационный файл.
  • Добавлен регистро-независимый поиск в режиме copy-mode.
  • Добавлена возможность передать окно для подключения через параметр -t комманд attach-session и switch-client.
  • Добавлена возможность вставки текста из буфера обмена в режиме copy-mode.
  • Установка параметра status-interval в 0 теперь работает так, как подразумевалось.
  • Добавлена поддержка 256 цветов при запуске в fbterm.
  • Традиционно, множество багфиксов


>>> Changelog на английском

★★★

Проверено: Shaman007 ()
Последнее исправление: Wizard_ (всего исправлений: 4)
Ответ на: комментарий от vitalif

Ну это... добро пожаловать в мир, где 80x25 терминалы кончились. Совсем. И теперь удобно разделить свой монитор на несколько 80x25 терминалов чтобы одновременно выполнять несколько задач, смотреть вывод нескольких процессов или просто читать ман и писать скрипт на удаленной машине (заметь, две задачи на _удаленной_ машине). И да, комбинации клавиш это дебилизм. Но лучше никто ничего придумать не смог, увы.

anonymous
()
Ответ на: комментарий от anonymous

Вот именно, что 80х25 кончились, но у меня на ноуте окно обычно 146х40. Куда уже его делить? Его если поделить, вот и будет где-то 80х25 как раз...

Хотя тем не менее я согласен, что фича может быть полезной. Но юзабилити - на нуле, а то ниже. Сделали бы уж интерфейс на ncurses... ну а-ля турбо вижн хотя бы...)))

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

да на кой хрен вам ncurses? важно не то, чем tmux отображает, а то, как он отображает. отображает он вполне прилично. или вам надо типа как окошки олдскульные с огромными чёрными тенями?

u283
()
Ответ на: комментарий от vitalif

на ноуте окно обычно 146х40

А у меня 1920x1200. И глупо этим не воспользоваться.

Сделали бы уж интерфейс на ncurses...

Интефейс на ncurses к чему? К хоткеям? Это куда больший дебилизм (hint: в tmux можно выбирать команды в меню. Только это долго.)

anonymous
()
Ответ на: комментарий от u283

ну я имею ввиду не тени, тени и т.п. хрен с ними, я в смысле чтобы оно было приближено к гую, чтобы клавиши висели как-то в духе mc например, а панельки например можно было за границы мышкой тягать :) :)

потому что эти C-a C-ещё шо то там - это мучение, имхо.

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

панельки например можно было за границы мышкой тягать

man tmux

u283
()
Ответ на: комментарий от vitalif

в 8-пиксельные буковки вглядываться

поменяйте шрифт, ёлки. если вам нужен графон, то валите вы из этого треда к чёрту.

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

А, ух ты, оно чо, реально умеет мышкой их таскать? круто)))

А шрифт ни при чём, я про _размер_ шрифта говорю. Если окошки делить, то места меньше => либо шрифт меньше, либо влезает меньше. Ни первое ни второе мне не нравится :)

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

Открою секрет: ты обычный неосилятор. Всё остальное — это твои попытки рационализации этого факта.

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

А, не отрицаю, это возможно, я vim например тоже ниасилил)

Правда, как-то и не тянет...

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

Кичанова, ты чтоли?

Нет конечно же. :)

renya ★★★★★
()

связка tmux и urxvt наконец спасла отца русской (пречеркнуто) украинской демократии от использования неплохой но убогой, как оказалась по функционалу konsole. Это освобождение наконец позволило покинуть мир КДЕ (по крайней мере дома), чему я несказанно рад. Несколько полезностей. В автостарт такой скриптик старта демона urxvt

if [[ -n "$isRunning" ]]; then
    echo "urxvtd daemon already running!"
    exit 1
fi

urxvtd -q -f

Теперь в консоль попадаем через команду /usr/local/bin/tmx

#!/bin/bash

UrxvtdPID=`ps o pid,cmd -u $USER | grep urxvtd | grep -v grep | awk '{if($0~/[0-9]+\s+.*urxvt/){print($1)}}'`
tmuxsnum=`tmux ls 2>/dev/null | wc -l`

if [[ $tmuxsnum -eq 1 ]]; then
        echo 1
        if [[ -n "$UrxvtdPID" ]]; then
                echo 2
                urxvtc -geometry 130x60+400+150 -e /bin/bash -i -c "tmux attach"
        else
                Xdialog --msgbox "urxvtd daemon in not running. Start with: urxvtd -q  -f" 10 80
        fi
        elif [[ $tmuxsnum -gt 1 ]]; then
        sessions=`tmux ls`
        sid=`Xdialog --inputbox "Select session to attach:\n$sessions" 10 80 2>&1`
        if [[ -z "$sid" ]]; then
                Xdialog --msgbox "Error. session $sid does not exist." 10 80
                exit 1
        fi
        isExist=`tmux ls | awk -v sid="${sid}:" '{if($1 == sid){print $1}}' `
        if [[ -z "$isExist" ]]; then
                Xdialog --msgbox "Error. session $sid does not exist." 10 80
                exit 1
        else
                urxvtc -geometry 130x60+400+150 -e /bin/bash -i -c "tmux attach -t $sid"
        fi
     else
        if [[ -n "$UrxvtdPID" ]]; then
                echo 3
                urxvtc -geometry 130x60+400+150 -e /bin/bash -i -c "tmux"
        else
                Xdialog --msgbox "urxvtd daemon in not running. Start with: urxvtd -q  -f" 10 80
        fi

fi

ну и конфиг tmux'a

unbind C-b
set -g prefix C-s
bind a send-prefix

set -g history-limit 9999

# Terminal emulator window title
set -g set-titles on
set -g set-titles-string '#S:#I.#P #W'

# auto rename
setw -g automatic-rename on

# Clock
setw -g clock-mode-colour red
setw -g clock-mode-style 24

# Window status colors
setw -g window-status-bg colour40
setw -g window-status-fg colour248
setw -g window-status-current-attr bright
setw -g window-status-current-bg colour40
setw -g window-status-current-fg colour19

# Message/command input colors
set -g message-bg colour40
set -g message-fg yellow
set -g message-attr bright

# Status Bar
set -g status-bg colour40
set -g status-fg colour237
set -g status-interval 1
set -g status-left '[#H]'
set -g status-right '%H:%M:%S %d-%b-%y'

set -g pane-border-fg white
set -g pane-border-bg default
set -g pane-active-border-fg white
set -g pane-active-border-bg default

#Key Binndings
bind -n S-Right next-window
bind -n S-Left previous-window

bind - split-window -v
bind | split-window -h
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D

setw -g monitor-activity on
set -g visual-activity on

set -g default-terminal "screen-256color"

Вход в режим ввода функций C+b это жуть как неудобно, вешать на С+а проблема совместимости с screen, который я пользую на удаленных машинах поэтому повесил на C+s это удобно.

есть проблема с less man more в плане выделения текста. он выделяется италиком. помогают alias'ы на эти команды типа alias less=«TERM=screen.konsole less» less работает корректно когда стоит консоль screen.konsole.

DonPedro123
()
Ответ на: комментарий от KRoN73

Во втором, в отличие от первого, Ctrl-O в mc работает ;)

Всегда работал и работает начиная с 10 федорки и заканчивая 12.04. Просто настраивать надо уметь

$ less .screenrc

# mc subshell support
  altscreen on
unanimous ★★★★★
()
Ответ на: комментарий от KRoN73

Да, после изменения конфига screen еще полезно убрать в настройках mc Pause after execution... (*) Never

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