xterm (Русский)
xterm — стандартный эмулятор терминала для системы окон X. Он широко настраиваемый и имеет множество полезных и необычных функций.
Установка
Установите пакет xterm.
Настройка
Настройка файла ресурсов
Есть несколько опций, которые вы можете задать в файле Ресурсы Х, они помогут сделать этот эмулятор терминала гораздо проще в использовании. Смотрите полный список xterm(1).
Переменная окружения TERM
Разрешите xterm правильно сообщать о переменной TERM. Не устанавливайте переменную TERM из ~/.bashrc или ~/.bash_profile или похожего файла. Сам терминал должен сообщить правильную TERM в систему, чтобы использовать надлежащий terminfo. Два используемых имени terminfo - xterm and xterm-256color. Чтобы установить имя, используйте ресурс
XTerm.termName: xterm-256color
Вы можете проверить результат в xterm с помощью любой из следующих команд:
$ echo $TERM $ tset -q
UTF-8
Убедитесь, что ваша локаль настроена на UTF-8. Если вы не используете UTF-8, вам может понадобиться заставить xterm более строго следовать вашей локале, установив
XTerm.vt100.locale: true
Клавиша «Alt» ведет себя как на других эмуляторах терминала
Поведение клавиши Alt
по умолчанию в xterm является модификатором для отправки восьмибитных входных символов, например для вставки æ
нажмите клавиши Alt+f
. Чтобы вместо Alt
отправить команду ^[
(escape) (как в gnome-terminal и konsole), установите
XTerm.vt100.metaSendsEscape: true
Исправление клавиши 'Backspace'
На Arch Linux xterm отправляет ^H
при нажатии клавиши 'Backspace'. Это разрывает комбинацию кнопок Ctrl+H
на Emacs.
Обходной путь заключается в том, чтобы отправить ^?
, когда нажата клавиша backspace, задав ресурсы
XTerm.vt100.backarrowKey: false XTerm.ttyModes: erase ^?
Привязка клавиш
xterm определяет целый набор "действий" для управления терминалом, например copy-selection()
, hard-reset()
, scroll-back()
и т.д. Эти действия могут быть сопоставлены с мышкой/сочетаниями клавиш с помощью translations
ресурса. Например, можно сопоставить клавиши Ctrl+M
и Ctrl+R
для развертывания/восстановления окна:
XTerm.vt100.translations: #override \n\ Ctrl <Key>M: maximize() \n\ Ctrl <Key>R: restore()
#override
указывает на то, что эти привязки клавиш должны переопределить любые существующие (вы почти всегда хотите этого для пользовательских сочетаний клавиш). Каждая привязка должна быть отделена escape-последовательностью \n
. Если вы хотите вставить литеральную новую строку, она также должна быть escaped (следовательно \n\
). Смотрите раздел KEY BINDINGS xterm(1) для полного списка действий и множество примеров.
keymap()
на man-странице.Прокрутка
Когда новые строки записываются в нижней части окна xterm, старые строки исчезают сверху. Для прокрутки вверх и вниз по строкам можно использовать колёсико мыши, комбинации клавиш Shift+PageUp
и Shift+PageDown
, или полосу прокрутки.
По умолчанию сохраняется 1024 строки. Вы можете изменить сохраняемое количество строк ресурсом saveLines
,
XTerm.vt100.saveLines: 4096
Другие ресурсы X, влияющие на прокрутку — jumpScroll
, multiScroll
и fastScroll
(все в XTerm.vt100
, см. xterm(1)). Для прокрутки внутри #альтернативного экрана установите параметру alternateScroll
значение true
.
Полоса прокрутки
Полоса прокрутки по умолчанию не отображается. Она может быть включена, а её внешний вид изменён настройками ресурсов (обратите внимание на различную капитализацию "полосы прокрутки"!)
XTerm.vt100.scrollBar: true XTerm.vt100.scrollbar.width: 8
Смотрите xterm(1) для получения информации о других ресурсах прокрутки.
Полоса прокрутки управляется иначе, от того что вы может быть привыкли использовать
- Для прокрутки вниз:
- – Нажмите на полосу прокрутки левой кнопкой мыши или
- – Нажмите на полосу прокрутки внизу средней кнопкой мыши.
- Для прокрутки вверх:
- – Нажмите на полосу прокрутки правой кнопкой мыши или
- – Нажмите на полосу прокрутки вверху средней кнопкой мыши.
- Чтобы разместить текст, двигаясь в любом направлении:
- – Наведите на край и используйте «щелчок и перетаскивание» с помощью средней кнопки мыши
Меню
xterm компилируется с отключённым toolbar, или menubar. Меню по-прежнему доступно как всплывающие окна при нажатии сочетания клавиш Ctrl+MouseButton
в окне xterm. Действия, вызываемые элементами меню, часто могут выполняться с использованием параметров командной строки или путем задания значений ресурсов.
XTerm*geometry: 80x32
, в вашем файле ресурсов. Это запускает основное окно xterm с размерами 80 столбцов и 32 строками каждый из них, но также заставляет окно меню составлять 80 пикселей на 32 пикселя! Вот почему вы должны полностью указать ресурс: XTerm.vt100.geometry: 80x32
Некоторые из опций меню обсуждаются ниже.
Главные опции меню
Ctrl + LeftMouse
-
Secure Keyboard
пытается обеспечить, чтобы только окно xterm получало ваши нажатия, а никакие другие приложения. Дисплей переключается на обратное видео при его вызове. Если на дисплее нет обратного видео, режим Secure Keyboard не действует. Пожалуйста, прочитайте раздел "БЕЗОПАСНОСТЬ" man-страницы xterm для ограничений этого параметра.
-
Allow SendEvents
позволяет другим процессам отправлять нажатия клавиш и события мыши в окно xterm. Из-за угрозы безопасности не включайте его, если вы не уверены, что знаете с этим параметром делать.
-
Log to File
– Файл журнала будет иметь имяXterm.log.hostname.yyyy.mm.dd.hh.mm.ss.XXXXXX
. Этот файл будет содержать весь напечатанный вывод и все перемещения курсора. Ведение журнала может иметь риск для безопасности.
- Шесть пунктов меню
Send *** Signal
не всегда полезны, за исключением, когда ваша клавиатура неисправна.HUP
,TERM
иKILL
закроют окно xterm.KILL
следует избегать, так как он не позволяет запускать код очистки.
- Пункт меню
Quit
также закроет окно xterm - это то же самое, что и отправка сигналаHUP
. Большинство пользователей будут использовать комбинацию клавишCtrl+d
или наберутexit
, чтобы закрыть экземпляр xterm.
Опции меню VT
Ctrl + MiddleMouse
-
Select to Clipboard
– обычно выбранный текст сохраняется в PRIMARY, который должен быть вставлен с помощьюShift+Insert
или с помощью средней кнопки мыши. Переключив эту опцию в on, выбранный текст будет использовать CLIPBOARD, позволяющий вставлять текст, выбранный в окне xterm, в приложение GUI с помощьюCtrl+v
. Соответствующим ресурсом являетсяXTerm.vt100.selectToClipboard
.
-
Show Alternate Screen
– когда вы используете приложение терминала, такое как vim, или less, открывается альтернативный экран. Главное окно VT, которое сейчас скрыто, остается в памяти. Вы можете просмотреть это главное окно, но не вызывать никаких команд в нем, переключив этот пункт меню. Вы можете выбрать и скопировать текст из этого главного окна.
Show Alternate Screen
. С оболочкой bash нажатие Ctrl+z
приостанавливает процесс; затем выдает команду fg
и возобновляет ее.-
Show Tek Window
иSwitch to Tek Mode
– Tektronix 4014 был графическим терминалом 1970-х годов, используемым для САПР и построения приложений. Программа командной строкиgraph
из plotutils и приложение gnuplot могут быть использованы для использования эмуляции Tek; большинство людей предпочтут более современные варианты отображения данных. Смотрите демонстрацию Tek 4014 ниже.
Шрифты меню VT
Ctrl + RightMouse
- При использовании XLFD-шрифтов первые семь пунктов меню будут изменять шрифт и его размер, который используется в текущем окне xterm. Если вы используете шрифт Xft, изменится только размер шрифта, начертания шрифт не изменится с разными вариантами выбора.
Unreadable
и Tiny
полезны, если вы хотите следить за процессом, но не хотите выделять большое количество пространства экрана в окно терминала. Пример использования может быть длительным процессом компиляции, когда вы хотите только увидеть, что операция завершена.-
Selection
при использовании имен шрифтов XLFD позволяет переключиться на имя шрифта, сохраненное в выборе PRIMARY (или CLIPBOARD).
Опции меню Tek
Из окна Tek Window, Ctrl + MiddleMouse
Параметры первого раздела позволяют изменять размер шрифта окна Tek. Второй набор опций используется для перемещения фокуса между окном эмуляции Tek и основным или VT, а также закрытием или скрытием окна Tek.
Копирование и вставка
Выделение текста выполняется с помощью мыши в xterm (или, как альтернатива, в другом приложении), сначала выберите текст для копирования, а затем нажмите среднюю кнопку мыши, чтобы вставить выделенный текст. Также комбинация клавиш Shift+Insert
вставляет выделенный текст, но только внутри xterm
PRIMARY или CLIPBOARD
По умолчанию xterm и многие другие приложения, использующие X, копируют выделенный текст в буфер, называемый PRIMARY-выделением. PRIMARY недолговечен — популярный текст сразу заменяется новым выбором PRIMARY, как только выделяется другой фрагмент текста. Некоторые приложения позволяют вставлять PRIMARY-выделения, используя среднюю кнопку мыши, но не Shift+Insert
, а некоторые другие приложения могут полностью не вставлять содержимое буфера PRIMARY.
Существует ещё один буфер, используемый для скопированного текста, называемый CLIPBOARD выбор. Текст в CLIPBOARD долговечен, оставаясь доступным до тех пор, пока пользователь не перезапишет его. Приложения, использующие Ctrl+c
и Ctrl+x
для операций копирования и вырезания текста и Ctrl+v
для вставки, используют CLIPBOARD.
Мимолетный характер PRIMARY выбора, где скопированный текст теряется, как только выделяется другой, раздражает некоторых пользователей. Xterm позволяет пользователю переключаться между использованием PRIMARY и CLIPBOARD с помощью Select to Clipboard
в меню VT или с ресурсом XTerm.vt100.selectToClipboard
.
PRIMARY и CLIPBOARD
С приведенной выше настройкой вы можете выбрать, хотите ли вы использовать PRIMARY или CLIPBOARD, но вы также можете взломать его, чтобы добавить выделение в оба. Просто отмените привязку клавиш для отпускания левой кнопки мыши:
<Btn1Up>: select-end(PRIMARY, CLIPBOARD, CUT_BUFFER0)
Вы можете добавить привязки клавиш похожие на поведение копирования/вставки других терминалов (например, терминал gnome):
Ctrl Shift <Key>C: copy-selection(CLIPBOARD) \n\ Ctrl Shift <Key>V: insert-selection(CLIPBOARD)
Выбор текста
Новый пользователь обычно обнаруживает, что текст может быть выбран с помощью "щелчка мышью и перетаскивания" левой кнопки мыши. Двойным щелчком выбирается слово, в котором слово определяется как последовательные буквенные символы плюс символ подчеркивания или основное регулярное выражение (BRE) [A-Za-z_]
. Трехкратное нажатие выбирает строку с символом "tab", который обычно копируется как несколько "пробельных" символов.
Другой способ выбора текста, особенно полезный при копировании более одного полного экрана, заключается в следующем:
- Щелкните левой кнопкой мыши в начале предполагаемого выбора.
- Прокрутите список до тех пор, пока не будет выделен конец выделения.
- Щелкните правой кнопкой мыши в конце выделения.
Вы не обязаны сразу попасть в нужное вам место щелчком правой кнопки мыши - любой выделенный фрагмент может быть расширен или сокращен с помощью правой кнопки мыши.
Вы можете удалить любой выделенный текст, щелкнув левой кнопкой мыши один раз, в любом месте окна xterm.
Когда в xterm запускается приложение на основе символов, ему разрешено принимать события мыши. Это может быть проблемой, если программа не может взаимодействовать с буфером обмена X11. Чтобы передать эти события в основной xterm, они должны сопровождаться клавишей Shift
. Например, в links (не xlinks -g
) можно щелкнуть среднюю кнопкой мыши по URL-адресам и пунктам меню, но при этом ничего не выбирется и не вставится. Чтобы скопировать, нажмите клавишу Shift
, а затем выполните щелчки мыши (клавиша должна быть нажата только во время щелчка, поэтому нет необходимости удерживать ее при перетаскивании мыши, чтобы выбрать, например, текстовый блок).
Цвета
Xterm по умолчанию имеет черный текст, цвет переднего плана, на белом фоне. Цвета переднего плана и фона могут быть отменены путем установки ресурса
XTerm.vt100.reverseVideo: true
Кроме того, вы можете напрямую изменять цвета переднего плана и фона (а также первые шестнадцать цветов терминала) с использованием ресурсов:
XTerm.vt100.foreground: white XTerm.vt100.background: black XTerm.vt100.color0: rgb:28/28/28 ! ... XTerm.vt100.color15: rgb:e4/e4/e4
Некоторые цвета могут быть указаны назначенными именами. Если emacs или vim установлены, вы можете изучить /usr/share/emacs/*/etc/rgb.txt
или /usr/share/vim/*/rgb.txt
чтобы просмотреть список названий цветов с их десятичными значениями RGB. Цвета могут также указываться с использованием шестнадцатеричных значений RGB с форматом rgb:RR/GG/BB
, или более старым и не поощряемым синтаксисом #RRGGBB
.
Цвет PapayaWhip
совпадает с rgb:ff/ef/d5
, который такой же, как и #ffefd5
.
Многие предложения по цветовым схемам можно просмотреть в разделе форума, Terminal Colour Scheme Screenshots.
*foreground: rgb:b2/b2/b2 *background: rgb:08/08/08В приведенном выше примере устанавливаются значения переднего плана и заднего фона для всех приложений Xlib (xclock, xfontsel и другие), которые используют эти ресурсы. Это хороший и простой способ достижения единой цветовой схемы.
Шрифты
Стандартные шрифты
По умолчанию шрифт xterm - это шрифт растрового изображения, названный фиксированным
псевдонимом X Logical Font Description, часто разрешающими
-misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-iso8859-?
Этот шрифт также псевдоним имени 6x13
, имеет очень широкий охват символов Unicode. По умолчанию шрифт TrueType - это 14-точечный шрифт, сопоставляемый именем mono
. С помощью этой команды можно найти шрифт FreeType , который будет использоваться:
$ fc-match mono
Шрифты могут быть указаны в ваших ресурсах в зависимости от шрифта TrueType или нет:
XTerm.vt100.faceName: Liberation Mono:size=10:antialias=false XTerm.vt100.font: 7x13
Чтобы проверить, вы также можете установить шрифт в командной строке: -fa
для faceName
, -fn
для font
. Если вы устанавливаете оба типа шрифтов, вы можете чередовать их между собой двумя способами: TrueType Fonts
из меню VT. Вы также можете выбрать значение по умолчанию со следующим ресурсом
! start with TrueType fonts disabled XTerm.vt100.renderFont: false
Жирные и подчеркнутые шрифты
Курсивные шрифты отображаются как подчеркнутые символы при использовании имен XLFD в xterm. Шрифты TrueType должны использовать наклонный шрифт.
Если вы не укажете жирный шрифт в командной строке -fb
или через ресурс XTerm.vt100.boldFont
, xterm попытается найти жирный шрифт, соответствующий нормальному шрифту. Если соответствующий шрифт не найден, жирный шрифт будет создан путем "чрезмерного" обычного шрифта.
Шрифты CJK
Многие шрифты не содержат глифов для двукратного китайского, японского и корейского языков. Другие эмуляторы терминала, такие как urxvt, могут лучше подходить, если вы часто работаете с этими языками.
Использование растровых XLFD-шрифтов с CJK несёт много ошибок в xterm. Гораздо проще использовать шрифты TrueType для отображения CJK, используя ресурс faceNameDoublesize
. В этом примере используется DejaVu Sans Mono как обычный шрифт и WenQuanYi WenQuanYi Bitmap Song в качестве шрифта двойной ширины:
XTerm.vt100.faceName: DejaVu Sans Mono:style=Book:antialias=false XTerm.vt100.faceNameDoublesize: WenQuanYi WenQuanYi Bitmap Song XTerm.vt100.faceSize: 8
Советы и рекомендации
Автоматическая прозрачность
Установите пакет transset-dfAUR и композитный менеджер, такой как Xcompmgr. Затем добавьте следующую строку в ~/.bashrc
:
[ -n "$XTERM_VERSION" ] && transset-df --id "$WINDOWID" >/dev/null
Теперь, каждый раз, когда вы запускаете оболочку в xterm и запущен композитный менеджер, окно xterm будет прозрачным.
Проверка перед transset-df
запрещает выполнение transet, если параметр XTERM_VERSION
не определен. Обратите внимание, что ваш терминал не будет прозрачным, если вы запускаете программу, отличную от оболочки. Вероятно, это можно обойти, если вы хотите использовать эту функциональность.
Смотрите также прозрачность для каждого приложения.
Включение срочного звонка
Чтобы символ колокола уведомил оконный менеджер срочности, установите:
XTerm.vt100.bellIsUrgent: true
Советы по шрифтам
Использование цвета вместо жирного и курсивного
При использовании небольших размеров шрифта, жирным шрифтом или курсивом возможно будет затруднительно читать. Одно из решений - отключить выделение жирным шрифтом, подчеркивание или курсив и использовать цвет вместо этого. Этот пример делает именно это:
! отключаем жирный шрифт и вместо него делаем текст синим. XTerm.vt100.colorBDMode: true XTerm.vt100.colorBD: rgb:82/a4/d3 ! отключаем подчеркнутый текст и вместо него делаем его белым. XTerm.vt100.colorULMode: true XTerm.vt100.colorUL: rgb:e4/e4/e4 ! аналогично использовать colorIT для курсива
Смотрите цвет для форматирования информации.
Настройка расстояния между строк
Строки текста иногда могут быть слишком близко находиться друг к другу, или они могут оказаться слишком далеко друг от друга. Например, используя DejaVu Sans Mono, низкий символ подчеркивания может приклеиваться к глифам CJK или курсорному блоку в строке ниже. Межстрочный интервал, называемый ведущим по типографам, может быть отрегулирован с помощью следующего ресурса, например, чтобы расширить интервал:
XTerm.scaleHeight: 1.01
Допустимые значения этого диапазона от 0.9
до 1.5
, при этом 1.0
является значением по умолчанию.
Демонстрация Tek 4014
Если у вас установлен plotutils, вы можете использовать эмуляцию Tektronix 4014 для просмотра некоторых тестовых файлов пакета plotutils. Откройте окно Tek из пункта меню VT Switch to Tek Mode
или запустите новый экземпляр xterm, используя следующую команду:
$ xterm -t -tn tek4014
Ваш запрос PS1 не будет отображаться правильно, если он вообще появится. В новом окне введите команду,
cat /usr/share/tek2plot/dmerc.tek
В окне Tek появится карта мира. Вы также можете просмотреть другие файлы *.tek
из того же каталога. Чтобы закрыть окно Tek, вы можете использовать меню xterm.
Защита от отслеживания ввода X11
Возможно неудобно активировать режим Secure Keyboard из главного меню. Вместо этого вы можете вызвать действие secure()
с помощью привязки клавиш:
Ctrl Alt <Key>S: secure()
Решение проблем
Мерцание при прокрутке
Перестройте xterm с использованием ABS и включите флаг --enable-double-buffer
:
./configure --prefix=/usr \ ... --with-utempter \ --enable-double-buffer
Подробнее смотрите в Xterm изменениях.