Відключення clickpad - а на x220; трохи детектива

  1. Як вимкнути праву кнопку на ClickPad'е
  2. Що таке сніппети для X-сервера
  3. Трохи лірики про те, як в Лінуксі шукають рішення проблем.

вступ

X-сервер щодо заліза у мене зазвичай викликає неприязнь. Тому що з одного боку це щось моторошно консьюмерской і покрите нескінченними тонкощами підтримки елітних ноутбуків чергового мегазасранца (Linus Loves Nvidia), який і під вінди нормальних дров не може зробити, а з іншого боку, це те, що хочеться, щоб працювало гладенько і саме собою, бо лагодити зламався X-сервер неприємно, особливо, якщо це єдиний робочий комп'ютер під рукою.

Втім, від лірики до хардкору.

На x220 є така чудова річ:

Посеред клавіатури фірмовий IBM'овскій клітор (трекпоінт), під клавіатурою (над точпадом) кнопки від Трекпоінт. Сам точпад другого комплекту кнопок не має і є ClickPad'ом - під ним розташована одна кнопка, натиснувши яку транслюється або в ліву, або в праву кнопки в залежності від того, де було зафіксовано натискання. Обробка ця софтовая (драйвер).

2.6.30) в Лінуксі підтримку цієї штуки зробили кривими Хакамі, потім викинули (

2.6.38). В результаті багато ноутбуки (наприклад, потворний HP, який у мене на роботі) залишилися взагалі без правої кнопки мишки.

Нещодавно привалили апдейти, які «включили» це. HP таку річ, напевно, зрадіє, однак, на X220, де є апаратні кнопки клітора з правого (і середньої) кнопками, мене на 100% влаштовувало, що клікпад працює тільки як ліва кнопка.

Після апдейта я тиждень помучився, але так і не звик. Як же цей багфикс вимкнути нафіг і повернути на місце баг? Я весь час кликав справа, чекаючи, що це буде лівий клік (бо палець справа і ще його ворушити кудись не хочеться).

(Замість похмурого howto я краще покажу процес пошуку варіанту рішення, який не тільки вирішив проблему, але вкачає мені кілька малих рівнів в linux).

Отже, вихідні дані: ми знаємо, що це називається 'ClickPad' (нетривіальне знання, до речі, без нього нічого до ладу не знайти), ми знаємо, що це пов'язано з драйверами точпада, які називаються psmouse.

Перша ітерація в гугль привела до думки, що psmouse тут ні причому (з нього випиляли підтримку Clickpad'а і більше не впілівалі).

Другий був пошук по ClickPad Linux, який показав по-перше хвилю любові користувачів Лінукса до вендорам, а по-друге навів на третє ключове слово - synaptics (драйвер до точпада і контора, яка до цих драйверів виробляє точпада).

Процитую знайдений розділ цілком:

здається, воно, сумно подумав я.

Чому сумно? Тому що це все називається xorg.conf, а його існування в системі добре описали xkcd'шнікі:

Якщо у вас є xorg.conf, значить щось у вашому житті не склалося ...

З іншого боку, в ході гугленія, мені кілька разів зустрілося слово xorg.conf.d.

[Довідка: каталоги виду «імяконфіга.d» зазвичай використовуються для поділу файлу конфігурації на безліч дрібних, що дозволяє кожен логічний шматок зберігати в окремому файлі, спрощуючи спільне управління конфігурацією користувачем і додатками].

... Ще трохи гугля, і, раптово, набираю:

Джигіт може пропатчити файл /usr/share/X11/xorg.conf.d/50-synaptics, але ми не джигіти і підемо іншим шляхом.

Мабуть, ми можемо зробити файл таким же чином, але в /etc/X11/xorg.conf.d/ (створивши директорію спочатку).

Але як його писати?

Cніппети xorg.conf

Виявляється, в XXI столітті людство не тільки розучилося ходити по Місяцю, але ще і придумало сніппети для конфіга xorg.conf. Які можна мати і використовувати навіть без самого конфіга. Читай - трохи більше щастя в цьому житті.

Кожен сниппет дозволяє змінити поведінку X-сервера в конкретному випадку, не вигадуючи конфіга цілком. Кожен сниппет зберігає в собі секцію і вказівка ​​на те, до чого секція відноситься. Робиться це купою опцій, серед яких нас цікавить MatchDriver і MatchName. Наша конструкція буде виглядати приблизно так:

Ми хочемо зафільтрованних тільки точпад конкретної марки (хіба мало що і де).

Що нам потрібно знати?

MatchDriver - «synaptics», ок. Що в MatchProduct? Читаємо man xorg.conf:

How to know device name

Явно негусто. lspci не котить, lsusb не котить. Interface PS / 2 ...

У man'е до xorg.conf згадувався Matchpnpid. Як подивитися pnp ідентифікатори пристроїв в системі? Упс. Не знаю. dmidecode точно не показує. Як? Що? Де?

Після деякого пошуку, знайшлася чудова утиліта lspnp.

На жаль, у нашого точпада невиразний pnpid, який явно не можна використовувати.

Наступна спроба - udev.


udev info --query = name --path = / dev / input / event0

Чи не знає такого.

Розгрібати дамп бази udev'а? (Udevadm info --export-db). Те ще задоволення.

... А якщо нам запитати сам X-сервер? Адже у нього ну дуууже докладні логи. Шукаємо. Знаходимо.

Все прямо текстом і написано.

Назва SynPS / 2 Synaptics TouchPad.

Пишемо свій конфіг:

Перезапускаємо x-сервер (перезавантажуємося) - і, вуаля, все работае ... тобто неработает як треба.