После почти года разработки представлен (http://sourceforge.net/mailarchive/message.php?msg_id=32005405) релиз консольного оконного менеджера tmux (http://tmux.sourceforge.net/) 1.9 ("terminal multiplexer"), разрабатываемого в рамках проекта OpenBSD в качестве распространяемой под лицензией BSD замены программы GNU Screen (http://www.gnu.org/software/screen/). Tmux позволяет организовать многооконный интерфейс в консоли, через мультиплексирование одного физического терминала на несколько виртуальных терминалов.Основные отличия (http://tmux.cvs.sourceforge.net/viewvc/*checkout*/tmux/tmux/FAQ) tmux от GNU Screen:
- Исходные тексты распространяются в рамках лицензии BSD. Более современная и упрощенная кодовая база (коду screen 20 лет);- Предусмотрена возможность подключения расширений от сторонних разработчиков;
- Четко формализованная клиент-серверная модель, при которой окна выступают в роли независимых объектов, которые могут сопоставляться и перераспределяться между разными сессиями. При этом поддерживается назначение одного окна нескольким разным клиентам и передача окон от одного клиента другому;
- Наличие механизма автоматизации выполнения типовых действий, через подключение внешних скриптов. Полноценный интерфейс управления из командной строки, позволяющий управлять всеми операциями tmux из скриптов;
- Наличие нескольких независимых буферов обмена;
- Поддержка опции для ограничения размера окна. Более гибкие возможности по разбиению окон на части (поддержка вертикального разделения);
- Более ясный синтаксис для формирования содержимого строки статуса. Возможность отображения в строке статуса первой строки вывода определенной команды;
- Более экономное расходование оперативной памяти;
- Улучшенная поддержка UTF-8.
Наиболее заметные изменения (http://sourceforge.net/projects/tmux/files/tmux/tmux-1.9/) в tmux 1.9:
- Обновлена версия протокола, что при ведёт к ошибке при попытке использования новой версии клиента tmux со старой версией серверной части (для избежания ошибки после обновления следует не забыть перезапустить сервер);
- Прекращена поддержка команды 'default-path', вместо которой для определения пути для нового окна следует использовать опцию "-c", например, 'neww -c путь'. Для определения пути при создании нового сеанса можно использовать конструкцию 'new-session -c путь';
- Объявлены устаревшими команды foo-{fg,bg,attr}, вместо которых следует использовать аналогичные опции;
- Добавлена переменная окружения TMUX_TMPDIR, позволяющая организовать хранение директории с управляющим сокетом вне временной директории, заданной переменной TMPDIR.- Форматы теперь могут быть вложены друг в друга, один формат может расширять другой. Добавлена поддержка #{pane_syncronized} и некоторых других спецификаторов формата;
- Добавлена поддержка опции 'automatic-rename-format', позволяющей использовать в механизме автоматического переименования параметры, отличные от значений по умолчанию #{pane_current_command}';
- Обеспечена работа в окружении Cygwin;
- При отсоединении сеанса на терминал теперь выводится имя сеанса;
- Клавиша Paste позволяет вставить текст из буфера обмена в режиме копирования;
- В режиме копирования обеспечена поддержка поиска без учёта регистра символов;
- В команды attach-session и switch-client добавлена опция '-t' для выбора используемого окна или панели;
- Добавлена поддержка 256 цветов при запуске в терминале fbterm.
URL: http://sourceforge.net/mailarchive/message.php?msg_id=32005405
Новость: http://www.opennet.me/opennews/art.shtml?num=39152
>коду screen 20 летНе знаю что там думают BSD-шники, но я рассматриваю возраст кода как положительную характеристику: если 20 лет программа не требует обслуживания, то код идеален, а программа офигенна.
Таково мнение прикладного программиста.
Или она просто умерла.
За 20 лет уж кто-то бы точно залез туда, если бы была необходимость.
Скорее всего программу просто хорошо написали.
И добавить особо нечего.Тем более что у BSDшников есть "бзик" по поводу замены всего GPL-ного на BSD-шное.
Предполагаю, что именно это является причиной переписывания, а вовсе не отсутствие какого-то функционала или наличие глюков.
> За 20 лет уж кто-то бы точно залез туда, если бы была необходимость.Для этого есть апстримные "разработчики" - они пресекают такие попытки.
> Скорее всего программу просто хорошо написали.
Если человек не шевелится уже три недели и уже начал пованивать - "скорее всего, он просто достиг просветления"?
>> Скорее всего программу просто хорошо написали.
> Если человек не шевелится уже три недели и уже начал пованивать - "скорее всего, он просто достиг просветления"?Утилиту cp тоже собираешься переписывать, анон?
> Утилиту cp тоже собираешься переписывать, анон?Да нет, там переписывать особо нечего. Практически весь актуальный код, отвечающий за копирование файлов - в драйверах файловых систем.
Уверен? В код-то давно заглядывал?
Системные вызовы отменили?
Ну сходил бы уже 10 раз почитал чем спорить-то.
> не шевелится уже три неделиhttp://git.savannah.gnu.org/gitweb/?p=coreutils.git
11 days ago Pádraig Brady cp: with --link always use linkat() if available
Предполагать -- это круто, конечно, но советую таки попробовать.
Под БЗД я использую исключительно screen.
tmux достал своими нереальными глюками.
tmux неработоспособен.
> Под БЗД я использую исключительно screen.
> tmux достал своими нереальными глюками.
> tmux неработоспособен.Что за ерунда.
В скрине, чтобы нормально включить ряд функциональности, особенно касающейся цветов ряда терминалов и поддержки в них utf-8, надо копипастить малопонятную абракадабру из самых темных и забытых уголков интернетов, и в документации этого нет. В tmux же это работает либо из коробки, либо спустя две директивы в конфиге. Вообще tmux многократно удобнее: начиная от panes и чистого, понятного конфига и заканчивая нормальной реализацией копирования.
> В скрине, чтобы нормально включить ряд функциональности, особенно касающейся цветов ряда терминалов и поддержки в них utf-8, надо копипастить малопонятную абракадабру из самых темных и забытых уголков интернетов, и в документации этого нет.Где вы такие терминалы берете, если не секрет?
Сколько лет в screen работаю - проблем с UTF-8 не было. За цвета не скажу, нафига они в консоли, кроме как в nethack играть?
>> В скрине, чтобы нормально включить ряд функциональности, особенно касающейся цветов ряда терминалов и поддержки в них utf-8, надо копипастить малопонятную абракадабру из самых темных и забытых уголков интернетов, и в документации этого нет.
> Где вы такие терминалы берете, если не секрет?
> Сколько лет в screen работаю - проблем с UTF-8 не было. За
> цвета не скажу, нафига они в консоли, кроме как в nethack
> играть?Я в VIM разрабатываю, и приятнее работать с 256-color терминалом.
Обычно разрабатываю на удаленных серверах, если есть интернет, подключаюсь через ssh, делаю tmux attach и вуаля - полностью готовое рабочее окружение уже доступно.
А со скрином оно какое-то неполное?Кстати, Emacs для таких вещей куда как удобней. http://www.emacswiki.org/emacs/TrampMode
В нем нет редактора, а виме есть.
> В нем нет редактора, а виме есть.Можно поставить systemd, в нем-то точно должен быть!
> В скрине, чтобы нормально включить ряд функциональности, … и поддержки в них utf-8Это чё, бзди-прикол такой?
Опять же, в бзде в консоли уже таки уникод запилили? О-о-о!
>> В скрине, чтобы нормально включить ряд функциональности, … и поддержки в них utf-8
> Это чё, бзди-прикол такой?
> Опять же, в бзде в консоли уже таки уникод запилили? О-о-о!Я вообще-то использую GNU/Linux.
И да, в screen 256-colorscheme в vim зачастую некорректно отображает цвета.
> … поддержки в них utf-8
> … некорректно отображает цвета.Догадайтесь в каком месте вы сбрехали.
Про 256-цветов — делаем так (последний шаг от root, поэтому лучше cd /root):
# infocmp -L xterm-256color > temp.terminfo
infocmp идёт в ncurses (не libncurses), termutils-devel или подобных, зависит от дистра)
вместо xterm-256color можете xterm-color (если она есть, см. /usr/share/terminfo/x/, и если устраивает. Тогда ничего не надо делать, а просто прописать в .screenrc)
# vim temp.terminfo
Тут меняем название терминала в 1-й строке как-то так
xterm-256color-my|xterm-my with 256 colors,
Во второй (или третьей) строке удаляем «back_color_erase,» (вместе с запятой)
# mkdir .terminfo
# tic -o .terminfo/ temp.terminfo
# cp .terminfo/x/xterm-256color-my /usr/share/terminfo/x/всё (файл temp.terminfo и какталог .terminfo можно удалить)
а, ну да, в .screenrc прописываем term xterm-256color-my
>> В скрине, чтобы нормально включить ряд функциональности, … и поддержки в них utf-8
> Это чё, бзди-прикол такой?
> Опять же, в бзде в консоли уже таки уникод запилили? О-о-о!Сначала узнайте разницу между текстовой консолью и эмулятором терминала, а? Или вы uxterm/Terminal/Konsole/Yakuake/пр. никогда не видели?
Ну дык ~типичный линуксоид~
> Под БЗД я использую исключительно screen.
> tmux достал своими нереальными глюками.
> tmux неработоспособен.А если по факту, а не голословно?
> За 20 лет уж кто-то бы точно залез туда, если бы была
> необходимость.
> Скорее всего программу просто хорошо написали.
> И добавить особо нечего.Увы, конкретно это - не тот случай. Хотя пользу она, конечно, приносит, но...
> Тем более что у BSDшников есть "бзик" по поводу замены всего GPL-ного
> на BSD-шное.
> Предполагаю, что именно это является причиной переписывания, а вовсе не отсутствие какого-то
> функционала или наличие глюков.А вы не предполагайте. Вы интервью с автором почитайте, например. Как он начинал пользоваться screen, и как ему это быстро надоело. Был бы автор GPL-фанбоем - был бы tmux под GPL.
> А вы не предполагайте. Вы интервью с автором почитайте, например. Как он
> начинал пользоваться screen, и как ему это быстро надоело.Я нашёл интервью, где он говорит, что не осилил пропатчить screen, поэтому написал свой велосипед. Но я не буду предполагеть, да? Не дадите ссылочку на правильное интервью?
емнип, в миднайт очень долго никто не хотел залезать, несмотря на залюбивший всех баг "оболочка всё ещё активна".
TeX
> TeXXeTeX
Сейчас в 90% случаев какая-то серьезная функциональность tmux не нужна, и куда проще пользоваться более простым screen. В итоге, по моим впечатлениям, до смерти screen еще очень и очень далеко.
Я бы не сказал, что screen так уж проще.
А строчка „term xterm-256color-my“ в .screenrc решает все остальные проблемы.
> А строчка „term xterm-256color-my“ в .screenrc решает все остальные проблемы.если нет xterm-color
> Я бы не сказал, что screen так уж проще.
> А строчка „term xterm-256color-my“ в .screenrc решает все остальные проблемы.Проще то, что раньше удалось освоить.
Windows имеет строки, которые и постарше двадцати лет, и пока не умерла. И очень даже здравствует.
> Не знаю что там думают BSD-шники, но я рассматриваю возраст кода как положительную характеристику: если 20 лет программа не требует обслуживанияЕсли чего-то _нет_ - это не значит, что это _не требуется_.
Скорее, это просто фимозность апстрима (например, дебианщики уже много лет тащат out-of-tree патч для вертикального разделения в screen).
8-о и какой комбинацией бьёт по вертикали? 7.3 если что
ctrl + a, потом shift + \ (то бишь |). Проверил на своем 6.0.9 - работает.
Век живи - ...
7.4 и Screen version 4.01.00devel (GNU) 2-May-06
... действительно работает! Спасибо :)
>апстрима (например, дебианщики уже много лет тащат out-of-tree
> патч для вертикального разделения в screen).Вообще-то, уже не тащат. После squeeze-а (да, пора обновиться уже, я тоже тяну) там то ли апстрим ожил, то ли ментенеры сменились, то ли и то, и это, но 01CVS.dpatch (split -v в нём) был выкинут при импорте нового апстрим-сорса. Добавлен был в пакете от 28 Jul 2009, выкинут в 20 Mar 2012. Три года чего-то не так было... Хорошо, что Debian никуда не торопится. Но и к wheezy они чего-то ещё там допиливали (подключение к сесcии, запущенной со старой версией из новой, уже обновлйнной версии [бинарника] screen -- поминается в release-notes-ах).
мы за вас рады, продолжайте пользоваться screen
>>коду screen 20 лет
> Не знаю что там думают BSD-шники, но я рассматриваю возраст кода как
> положительную характеристику: если 20 лет программа не требует обслуживания, то код
> идеален, а программа офигенна.
> Таково мнение прикладного программиста.Вы, видимо, никогда не пробовали пользоваться screen. Я не видел ещё ни одного человека, который бы ушёл с tmux на screen. А вот обратных примеров десятки только среди знакомых.
> Вы, видимо, никогда не пробовали пользоваться screen. Я не видел ещё ни
> одного человека, который бы ушёл с tmux на screen. А вот
> обратных примеров десятки только среди знакомых.Лично я, когда слышу про "миллионы лично ушедших с screen на tmux", достаю вилку, чтобы снимать лапшу с ушей. Меня не впечатлило, например. Существенных (для меня) киллeр-фич никаких, а переучиваться надо. Лишний набор шорткатов в голове держать - бессмысленно, оно того не оправдывает.
>> Вы, видимо, никогда не пробовали пользоваться screen. Я не видел ещё ни
>> одного человека, который бы ушёл с tmux на screen. А вот
>> обратных примеров десятки только среди знакомых.
> Лично я, когда слышу про "миллионы лично ушедших с screen на tmux",
> достаю вилку, чтобы снимать лапшу с ушей. Меня не впечатлило, например.
> Существенных (для меня) киллeр-фич никаких, а переучиваться надо. Лишний набор шорткатов
> в голове держать - бессмысленно, оно того не оправдывает.Не миллионы. И речи не было о том, что "все дружно побежали", а только о том, что не было замечено обратного движения. Так-то да, кто-то как пользовался screen, так и продолжает.
да свалили все 7 админов в которых отлично знаю, в возрасте от 26-50 свалили на tmux кто то раньше кто то позже. И все довольны каждый нашел себе фичи по вкусу, да и конфиги удобные.
А я не видел ни одного ушедшего с мако-буков на что угодно другое.
И что?
Это, во-первых, многое говорит о тех кто перешел на маки, а во-вторых совершенно не отменяет их угребищности - начиная с глянцевых экранов, отвратительной клавиатуры (7-рядная Thinkpad'овская передаёт ей привет) и заканчивая ненастраиваемым жирным шрифторазмытием, которое там называется рендерингом, от которого у меня глаза начинают болеть на третьей минуте.
> и заканчивая ненастраиваемым
> жирным шрифторазмытием, которое там называется рендерингом, от которого у меня глаза
> начинают болеть на третьей минуте.Тебе кто-то мешает сменить ось?
>> и заканчивая ненастраиваемым
>> жирным шрифторазмытием, которое там называется рендерингом, от которого у меня глаза
>> начинают болеть на третьей минуте.
> Тебе кто-то мешает сменить ось?А при чем тут это? Мы сейчас о миллионах мух, кажется.
>>> и заканчивая ненастраиваемым
>>> жирным шрифторазмытием, которое там называется рендерингом, от которого у меня глаза
>>> начинают болеть на третьей минуте.
>> Тебе кто-то мешает сменить ось?
> А при чем тут это? Мы сейчас о миллионах мух, кажется.А. Ну я только о шрифторазмытии, извините. Слишком много отквотировал.
От смены оси на макбуках сразу появляется трекпойнт и экран становится матовым?
Я уж не говорю о сменном аккумуляторе и добавлении RAM.
> От смены оси на макбуках сразу появляется трекпойнт и экран становится матовым?
> Я уж не говорю о сменном аккумуляторе и добавлении RAM.Да я слишком много отквотирвал. Я о шрифторазмытии размышлял.
Ну у меня макбук с матовым экраном, добавленной RAM, купленной в Юлмарте. Еще я поставил туда нештатный SSD, а штатный HDD поставил на место DVD-ROM. Менять аккумулятор не вижу необходимости. Дальше что?
> Ну у меня макбук с матовым экраном, добавленной RAM, купленной в Юлмарте.
> Еще я поставил туда нештатный SSD, а штатный HDD поставил на
> место DVD-ROM. Менять аккумулятор не вижу необходимости. Дальше что?А какой это макбук с матовым экраном? Я видел преимущественно глянец везде.
Неужели конец 2008?
И да, трекпоинта там нет, зато тачпад заруливает в минуса все, что я когда-либо видел. А видел я немало.
Огласите, пожалуйста, модели трэкболов, которые Вы использовали сколько-нибудь продолжительное время.
Ну так, для начала разговора.
> А я не видел ни одного ушедшего с мако-буков на что угодно
> другое.
> И что?
> Это, во-первых, многое говорит о тех кто перешел на маки, а во-вторых
> совершенно не отменяет их угребищности - начиная с глянцевых экранов, отвратительной
> клавиатуры (7-рядная Thinkpad'овская передаёт ей привет) и заканчивая ненастраиваемым
> жирным шрифторазмытием, которое там называется рендерингом, от которого у меня глаза
> начинают болеть на третьей минуте.откладывай с обедов или попроси маму купить тебе макбук про.
> код идеаленЭто же миф, недостижимый идеал.
Нормальную поддержку мыши бы. Почему в vim и выделение текста и изменение размера окон работает, а в tmux какой-то костыль через shift.
Потому что вы пишете запрос не в багтрекер, а на опеннет.
> Потому что вы пишете запрос не в багтрекер, а на опеннет.WONTFIX же.
> Нормальную поддержку мыши бы. Почему в vim и выделение текста и изменение
> размера окон работает, а в tmux какой-то костыль через shift.tmux - это как бы совсем не то же, что xterm.
> tmux - это как бы совсем не то же, что xterm.vim - тем более не xterm. Но все это должно корректно работать вместе, не ограничивая пользователя. А кто ограничивает - тот слабое звено.
Видимо, чтобы не мешать vim, работающему в tmux?
Кто-нибудь подскажет - там вообще скроллинг возможен? Ну т.е. чтобы оно запоминало в буффере, скажем 5000 строк, и можно было бы в xterm проскролить вверх?
Ctrl+b [и скрольте, сколько хотите
> Ctrl+b [
> и скрольте, сколько хотитеУточнение:
set -g history-limit 50000
в .tmux.conf, и скрольте. А по дефолту там буфер меньше - кажется, 2к строк.
Вопрос знатокам:
1. Как сделать двух-трёх-строчный статус в tmux?
2. Как сделать так, чтобы при подключении с двух компов с разным разрешением консоли, не было этих |... по бокам и внизу?
> Вопрос знатокам:
> 1. Как сделать двух-трёх-строчный статус в tmux?
> 2. Как сделать так, чтобы при подключении с двух компов с разным
> разрешением консоли, не было этих |... по бокам и внизу?Не знаю по поводу 1, но вот про 2: а как тогда, по-Вашему, должна обрабатываться такая ситуация? Очевидно, что при разном разрешении консоли или на одном, или на другом мониторе будет невозможно увидеть всю консоль целиком. Сейчас разрешение фактически сокращается до минимального из двух. Как должно быть?
>2. Как сделать так, чтобы при подключении с двух компов с разным разрешением консоли, не >было этих |... по бокам и внизу?tmux attach -d
> Вопрос знатокам:
> 1. Как сделать двух-трёх-строчный статус в tmux?Никак. А зачем, если не секрет?
Не юзал, но ее потребление ресурсов настараживает. На шеллбоксах, в топе стабильно висит tmux, в то время как screen потребляет на два порядка меньше процессорного времени при том же времени, проведенном за консолью.
> Не юзал, но ее потребление ресурсов настараживает. На шеллбоксах, в топе стабильно
> висит tmux, в то время как screen потребляет на два порядка
> меньше процессорного времени при том же времени, проведенном за консолью.Странно, у меня всегда было наоборот.
Покажите свой .tmux.conf или /etc/tmux.conf
Помоему они dwm насмотрелись, а так как у них там с X11 все сложно, вот и написали что могли
> Помоему они dwm насмотрелись, а так как у них там с X11
> все сложно, вот и написали что моглиЧто это было?
Подскажите есть ли аналог screen -xR флагам для tmux?
У меня screen иногда зависает, ищу замену.
Подскажите есть ли аналог screen -xR флагам для tmux?-R attempts to resume the first detached screen session it finds.
-x Attach to a not detached screen session. (Multi display mode).
tmux at ?
> Подскажите есть ли аналог screen -xR флагам для tmux?
> -R attempts
> to resume the first detached screen session it finds.
> -x Attach to
> a not detached screen session. (Multi display mode).Нет. tmux изначально позволяет подключаться к одной сессии "вмногером", без лишних проблем. Но если надо, можно эти опции реализовать - думаю, любой человек с лёгким знанием C с этим справится. Апстрим адекватный.