Эмулятор терминала xterm определяет некоторые управляющие последовательности для отслеживания мыши. Подробнее о них вы можете узнать в разделе Отслеживание мыши в документе ctlseqs для распространения xterm.Если у вас установлен xterm, вы, вероятно, будете иметь копию на /usr/share/doc/xterm/ctlseqs.txt.gz
или похожем пути.
Большинство эмуляторов терминалов, работающих в системе X Window (например: Konsole, gnome-terminal, eterm, ...) понять, по крайней мере, некоторые из этих контрольных последовательностей.Если вы хотите использовать их непосредственно на одном из виртуальных терминалов Linux, вам, вероятно, придется запустить gpm(8)
.
. Существует несколько последовательностей управления для включения и отключения отчетов о перемещении мыши:
- 9 -> Отчеты мыши X10, для совместимости с xterm X10, отчеты о нажатии кнопок.
- 1000 -> Отчеты мыши X11, отчеты о нажатии и отпускании кнопок.
- 1001 ->отчет о выделении, полезен для создания отчетов об основных моментах мыши.
- 1002 -> отчет о движении кнопки, сообщает о движении при нажатии кнопки.
- 1003 -> отчет обо всех движениях, сообщает обо всех движениях.
Последовательность управления: CSI ? number h
для включения и CSI ? number l
для отключения.CSI является либо ESC [
, либо символом 0x9b
.Таким образом, вы можете использовать их следующим образом:
echo -e "\e[?1000h"
Затем вы получите несколько символов при нажатии кнопки, подробности см. ctlseqs или console_codes(4)
.Затем вы можете отключить отслеживание мыши с помощью:
echo -e "\e[?1000l"
К сожалению, предыдущие режимы создания отчетов с мышью могут обрабатывать координаты только до 223 (255–32) или в некоторых ситуациях 95 (127–32).Итак, есть несколько новых переключателей для изменения формата сообщения координат мыши:
- 1006 -> сообщать в виде десятичных значений (xterm, многие другие эмуляторы терминала, но не urxvt)
- 1015 -> сообщать в виде десятичных значений (urxvt, xterm, другие эмуляторы терминала, некоторые приложения находят его сложным для анализа)
- 1005 -> сообщать обратно в кодировке utf-8 (xterm, urxvt, с пробелом внесколько способов)
Хорошей стратегией для приложения будет включение отчетов с помощью мыши, а затем (опционально запрос режима urxvt 1015 и затем) запрос режима SGR 1006.Приложение должно обрабатывать как новые, так и устаревшие ответы на отчеты мыши, чтобы продолжить работу на эмуляторах терминала без поддержки новых режимов.
Дополнительную информацию о новых режимах отчетов можно получить по адресу: