Жара в Москве

Вторую неделю жара уровня 35 градусов. На улице на велике ещё туда-сюда, а дома находиться просто невыносимо. Во всех окружных магазинах бытовой техники кончились вентиляторы. Говорят, появятся «к зиме». Кончились даже ЮСБ-вентиляторы в местном Ф-Центре.

Креплюсь, сижу под мокрой тряпочкой.

Комментарии

X.org 1.8

Когда-то в X.org добавили поддержку HAL, чтобы сервер мог на ходу подключать и отключать устройства ввода. Через XML-файлики настройки HAL можно было прописать присваивание нужных значений условным параметрам девайса, после чего X-сервер мог этот девайс задействовать в работе:

<match key="info.capabilities" contains="input.keyboard">
  <merge key="input.x11_driver" type="string">evdev</merge>
  …

С версии 1.8 в файлах настройки X.org можно и нужно использовать udev вместо HAL и более читабельный синтаксис для гибкой настройки устройств ввода:

Section "InputClass"
    Identifier "kb"
    MatchIsKeyboard "yes"
    Driver "evdev"
    Option "XkbModel" "evdev"
    Option "XkbLayout" "us,ru"
    Option "XkbVariant" ",winkeys"
    Option "XkbOptions" "grp_led:caps,compose:ralt"
EndSection

Вся магия — в опциях Match…: при их указании настройки данной секции InputClass применяются ко всем устройствам, удовлетворяющим соответствующему условию. MatchIsKeyboard "yes" означает «для любых клавиатур». Далее я просто указываю нужные опции для клавиатуры.

Также теперь можно разносить конфиг иксов по нескольким файлам: при загрузке сервера читается не только /etc/X11/xorg.conf, но и файлы с расширением .conf из директории /etc/X11/xorg.conf.d/.

Как это работает

Начиная с версии 148 в udev содержится код (перенесённый из HAL, кстати), который присваивает устройствам ввода на уровне udev специальные метки типа ID_INPUT_KEY, ID_INPUT_MOUSE или ID_INPUT_TABLET. X.org может читать эти метки, за счёт чего указание в конфигурации иксов секций InputClass с определёнными опциями вроде MatchIsKey или MatchIsPointer позволяет назначать железкам с этими метками нужные настройки.

Ретроспектива

Таким образом, за последние годы X.org прошёл примерно следующий путь:

  • Написание секций InputDevice для каждого устройства ввода вручную. При использовании старого драйвера клавиатуры kbd(4x) минусом было то, что каждая секция привязывалась к одному физическому устройству с помощью опции Device. Не было поддержки подключения на лету, а самое главное — для клавиатур, которым соответствует несколько устройств (например, MS NEK 4000), нельзя было написать одну секцию. В результате приходилось дублировать информацию.

  • Чтобы избавиться от необходимости жёстко прописывать путь к устройству ввода (/dev/input/что-у-вас-там/), в универсальном драйвере evdev(4x) некоторое время была возможность искать устройство по производителю или названию модели прямо с помощью опций самого драйвера: Option "vendor" и Option "name". Смысла в в реальном названии устройства куда больше, чем в пути к файлу из /dev, но реализация этого механизма на уровне конкретного драйвера была сомнительным решением. На данный момент этих фич там уже нет.

  • Появилась возможность работать с HAL. Настройка ввода, по сути, выполнялась полностью средствами HAL через XML-файлы .fdi. Можно было назначать специальные опции, которые потом читались иксами, всем устройствам с нужными свойствами, вроде производителя (<match key="info.vendor" contains="Microsoft">) или «возможностей» (<match key="info.capabilities" contains="input.mouse">). HAL пытался решать сходные с udev задачи и сдох под тяжестью собственного веса.

  • Наконец, появились секции InputClass, стало можно описывать нужное подмножество устройств прямо на уровне X.org.

Комментарии (1)

Врипычка

Последние несколько месяцев наблюдаю у себя глупую привычку переставлять буквы и слоги в словах и словосочетаниях, стараясь сохранить исходные количественные пропорции букв в слове. Метонобешалка, Джитрий Мдус, педивелос и так далее. Буквально слышу что-то и уже непроизвольно выдаю извращённый вариант. Люблю русский!

Комментарии (1)

Про восковые дощечки

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

Комментарии (2)
← с. 86 с. 87