Linux настройка мыши в консоли

Обновлено: 03.07.2024

Существуют два основных типа мышей — подключаемые через последовательный порт (serial mice) и подключаемые к шине (bus mice). Большинство компьютеров оборудуются в настоящее время мышами второго типа. Дальнейший текст относится к bus-мышам и основан на Busmouse HOWTO Криса Багвелла (Chris Bagwell), версии 1.91 от 15 июня 1998 г.

9.4.1. Определение типа мыши

Вы должны знать две важных характеристики своей мыши: какой у нее интерфейс и какой она использует протокол.

Интерфейс — это совокупность аппаратных параметров мыши, включающая такие параметры, как используемые мышью прерывания, порты ввода-вывода и количество контактов в разъеме. Ядро Linux поддерживает 4 типа интерфейсов bus-мыши: Inport (Microsoft), Logitech, PS/2 и ATI-XL. Не существует однозначного алгоритма определения типа интерфейса мыши.

Мыши типа Inport обычно подключаются к интерфейсной карте на материнской плате. Если разъем, который подключается к интерфейсной карте, круглый, имеет 9 контактов и желобок (направляющую выемку) с одной стороны, то вполне возможно, что у вас мышь типа Inport. Если только не Logitech, поскольку эти мыши внешне имеют те же характеристики. Различить их можно только если у вас сохранилась упаковка или руководство, в котором указан тип мыши.

Мыши типа PS/2 подключаются не к плате расширения, а к специальному разъему (PS/2 Auxiliary Device port) на контроллере клавиатуры. Этот разъем имеет 6-контактов (6-pin mini DIN connector), и похож на разъем для подключения клавиатуры.

Мыши типа ATI-XL — это вариант мышей типа Inport. Они подключаются к комбинированной карте, являющейся видео-адаптером и контроллером мыши. Если только вы не знаете точно, что у вас видеоадаптер ATI-XL (и следовательно мышь ATI-XL), то, скорее всего, у вас мышь другого типа.

Протокол — это чисто программная характеристика мыши. Большинство мышей Inport, Logitech и ATI-XL используют протокол ''BusMouse'', а мыши типа PS/2 используют протокол ''PS/2''.

9.4.2. Конфликты по прерываниям

Сначала надо определить, какое прерывание использует ваша мышь, и убедиться, что она не конфликтует с каким-нибудь другим устройством. Этот момент очень важен, потому что под Linux мышь не может использовать одно и то же прерывание с каким-либо другим устройством, даже если все прекрасно работает под управлением другой ОС. Так что проверьте документацию на все подключенные у вас периферийные устройства, чтобы знать, какие прерывания они используют!

Список занятых (используемых) на данный момент прерываний можно получить, выполнив команду

[user]$ cat /proc/interrupts

или просмотрев файл /proc/interrupts.

В большинстве случаев IRQ4 используется первым последовательным портом (/dev/ttyS0), IRQ3 — вторым последовательным портом (/dev/ttyS1, предполагается, что у вас есть такие устройства, если нет — вы можете использовать их IRQ). IRQ5 используется некоторыми SCSI-устройствами, а IRQ12 — некоторыми сетевыми картами. Если ваша сетевая карта использует IRQ12, а ваша мышь — типа PS/2, то у вас будут проблемы, поскольку вы вынуждены будете использовать IRQ12 только для порта PS/2. Для мышей ATI-XL, Inport и Logitech ядро по умолчанию использует прерывание IRQ5, так что если вы не хотите перекомпилировать ядро, вам придется использовать для мыши именно это прерывание. Впрочем, последние версии ядра позволяют задать опции командной строки, определяющие прерывание, которое будут использовать мыши типа Inport и Logitech. Мыши типа PS/2 всегда используют прерывание IRQ12, и не существует способа изменить это, так что в случае конфликтов надо перенастраивать другие периферийные устройства.

9.4.3. Настройка мыши

Далее необходимо проверить настройки в некоторых конфигурационных файлах. Вначале убедитесь, что существует файл /etc/sysconfig/mouse, и что в нем записано что-то вроде:

Естественно, что тип мыши должен соответствовать вашей мыши, у меня, например, это "PS/2".

Чтобы вырезать и вставлять куски текста в консоли, должен быть установлен сервер мыши gpm .

Проверьте, что сервер мыши gpm запущен, для чего дайте команду:

[user]$ ps -A | grep gpm

Если в результате вы получите непустую строку, то драйвер работает. Если же процесс gpm не найден, надо проверить наличие скрипта /etc/rc.d/init.d/gpm, в котором должна найтись строка вызова демона gpm . Эта строка может иметь примерно такой вид:

(смысл параметров см. на странице man gpm ).

Если сервер gpm работает, то выделять и вставлять куски текста можно следующим образом. Нажмите левую кнопку и выделяйте текст. Когда дойдете до конца нужного куска текста, отпустите кнопку. Потом нажмите правую кнопку в том месте, где вы хотите осуществить вставку. Можно даже в другой виртуальной консоли. То же самое можно проделать в X Window, но для вставки нужно нажимать среднюю клавишу, или обе, если у вас двухкнопочная мышь.

Большинство графических сред (и Cinnamon тут не исключение) устроены так, что в принципе позволяют обходиться без мыши: все (или все основные) действия в них могут выполняться с клавиатуры. Однако мышь добавляет комфорта в работе. А в консоли она в некоторых случаях оказывается просто незаменимой.

Тем не менее, в большинстве современных настольных дистрибутивов консольная мышь не поддерживается, что называется, «искапропки» — для её включения требуются некоторые действия. Правда, очень не сложные. Они сводятся к установке пакета gpm , отвечающего за службу консольной мыши, и обеспечения её автоматического запуска при старте системы.

Проще всего служба контрольной мыши включается в любых deb-системах, в том числе и в Linux Mint. Для этого достаточно установить указанный выше пакет:

$ sudo systemctl start gpm.service

$ sudo systemctl enable gpm.service

делает службу консольной мыши доступной после перезагрузки системы.

Мышь в консоли не является указательно-позиционирующим устройством — положение обычного курсора, отмечающего точку ввода, на его перемещение не реагирует. Но зато она служит вдля выделения фрагмента экрана и вставки его в позицию обычного курсора. Для чего требуется:

  • выделить фрагмент экрана мышью обычным образом, при зажатой левой кнопке — он автоматически скопируется в буфер памяти; нужно только помнить, что копируется при этом аккурат то, что видно на дисплее — выходящие за границы экрана строки в буфер не попадут;
  • подвести текстовый курсор к нужному месту стрелками управления оным;
  • щелчком средней кнопки мыши вставить содержимое буфера в позицию курсора.

Описанный способ — единственный способ обмена данными между виртуальными консолями. Необходимость чего иллюстрируется примером такой ситуации, ныне достаточно редкой, но временами встречающейся. Предположим, что в силу каких-либо причин графическая среда кгрузиться отказывается — в распоряжении пользователя лишь шесть виртуальных консолей. Для исправления ситуации требуется правка каких-либо конфигурационных файлов. Каковые и открываются в консольном текстовом редакторе, например, в nano . А на параллельной виртуальной консоли открывается соответствующая man-страница, из которой и таскаются нужные для исправления фрагменты.

В современных скроллирующих мышах функцию средней кнопки выполняет колёсико. Если нет ни колёсика, ни средней кнопки (как на большинстве тачпадов и трекболов — она эмулируется одновременным нажатием двух имеющихся. А вот с новомодными «многопальцевыми» бескнопочными тачпадами этот номер не прокатывает: настройки его, выполняемые обычно средствами рабочей среды, в консоли силы не имеют — хотя работают в Иксах.

Во-вторых, мышь сохраняет своё «консольное» свойство помещения выделенного фрагмента в собственный «мышиный» буфер, откуда он также может быть вставлен (без всякого копирования) в текущую позицию курсора щелчком средней кнопки.

Такое поведение мыши очень упрощает жизнь в некоторых (не таких уж редких) ситуациях). Например, требуется скопировать в браузере некую ссылку и вставить её в текстовый редактор вместе с текстом, к которому эта ссылка относится. И эту процедуру можно выполнить в «полтора» шага. Сначала курсор мыши наводится на ссылку, и из контекстного меню по правому клику выбирается пункт типа Скопировать адрес ссылки. Затем текст ссылки выделяется и вставляется куда надо щелчком средней кнопки. Псоле чего адрес ссылки вставляется в нужное место комбинацией клавиш Control+V. Этот нехитрый приём экономит массу времени и усилий при составлении оглавлений или каталогов ссылок.

GPM (General Purpose Mouse) — демон, позволяющий использовать мышь в виртуальных терминалах Linux.

Contents

Установка

Важно: Активная разработка xf86-input-synaptics больше не ведётся. По возможности используйте libinput.

Установите пакет gpm . Для поддержки тачпада на ноутбуке вам, вероятно, понадобится дополнительно установить xf86-input-synaptics .

Настройка

С помощью опции -m определяется файл устройства мыши. Опция -t используется для указания типа мыши. Чтобы отобразить список возможных вариантов для опции -t , запустите gpm с параметром -t help :

Для запуска демона gpm необходимо указать некоторые опции. Их можно прописать в файле /etc/conf.d/gpm , или использовать при прямом запуске gpm. С 2016 года файл gpm.service для systemd содержит опции для USB-мышей.

Конечно, это нужно изменить (желательно как принято в systemd), если используется другой тип мыши и gpm запускается как systemd-служба.

  • Для PS/2 мышей опции такие:
  • И трекпоинта IBM:
Примечание: Если мышь имеет только две кнопки, добавьте опцию -2 в GPM_ARGS , тогда вставка текста будет происходить по нажатию второй кнопки.

После настройки запустите и включите службу gpm.service .

Более подробную информацию вы можете получить на странице справочного руководства gpm (8) .

QEMU или VirtualBox

Со стандартной мышью, которую эмулируют QEMU и VirtualBox, есть некоторые проблемы и в gpm, и в X при позиционировании и кликах. Положение курсора не синхронизировано с хостом, так что в виртуальном экране есть области, в которые трудно попасть. Клики срабатывают не там, где отображается курсор.

И QEMU, и VirtualBox позволяют решить эту проблему с помощью эмуляции USB-планшета, который имеет абсолютное позиционирование. ( libvirt использует это автоматически.)

Однако gpm умеет использовать виртуальную мышь только в относительном режиме, поэтому проблемы остаются. Использование других типов мышей в опции -t тоже не помогает.

Пакет gpm-vm AUR включает в себя старый пулл-реквест, добавляющий поддержку USB-планшетов для VirtualBox (в QEMU тоже работает) и прописывает его использование по умолчанию в gpm.service .

Вам может понадобиться изменить используемое event-устройство (стандартный -m /dev/input/mice не сработает). По умолчанию:

Задам возможно дурацкий вопрос. но я хочу что бы у меня в консольном режиме работала мышь ))) реально ли сие? например я хочу установить GIMP в чистый debian и не хочу что бы у меня была графическая оболочка, но хочу что бы GIMP работал и я мог в нем рисовать. так же предположим virtualbox.. запустил, поработал, закрыл и опять консоль.. или я опять с ума схожу?(((



а я хочу что бы был нативный directX


Мышь в консоли можно. Гимп без иксов не запустится.

Попробуй ratpoison. Это не совсем то, что ты просишь, но то, что скорее всего тебе нужно.


я хочу что бы у меня в консольном режиме работала мышь

Устонови какой-то маленький оконный менеджер.


установить GIMP в чистый debian и не хочу что бы у меня была графическая оболочка, но хочу что бы GIMP работал и я мог в нем рисовать

Скажи где взял такую траву. Ну или отсыпь.

GPM частично решит твою проблему . Но как будет GIMP работать без графики ?

ITT диалог немых и глухих.


кстати, а GTK2 же может в Framebuffer рисовать. или меня глючит?


я хочу что бы у меня в консольном режиме работала мышь

не хочу что бы у меня была графическая оболочка, но хочу что бы GIMP работал

А куда рисовать-то? А как и чем будет нарисован интерфейс GIMP? Нет, Вы, конечно, можете поставить порт X-сервера на aalib, но это будет жутко неудобно. Какая-то графическая подсистема всё равно понадобится, будет ли это directfb, X-сервер или встроенный в GTK+/Qt механизм отрисовки в фреймбуффер.

Никто не мешает запускать иксы на время работы GIMP или VBox.


Графическую оболочку можешь не ставить, если не хочешь, но иксы тебе понадобятся. Запускать так: startx /path/to/binary — :1


Можно запускать X11 без оконного менеджера, GIMP в однооконном режиме и надеяться на то, что диалоговые окна будут всплывать так, как нужно, но зачем?

не хочу что бы у меня была графическая оболочка, но хочу что бы GIMP работал и я мог в нем рисовать. так же предположим virtualbox.. запустил, поработал, закрыл и опять консоль..

$ X :0 & ; DISPLAY=":0" gimp
Возможно после этого понадобится сделать Ctrl+Alt+F7 - не помню.
Как закончишь, сделай Ctrl+Alt+Backspace.

GIMP сам по себе оконный менеджер хоть куда. Вот бы его с емаксом скрестить.

Читайте также: