Вы уже решили все сложные части головоломки: -)
Вам нужно либо запустить специальную программу, которая реагирует на команду переключения, либо использовать существующую программу который все равно работает и может реагировать на клавиши. Некоторые оконные менеджеры можно очень гибко настроить для реакции на клавиши, например, я использую fvwm
для клавиш яркости и громкости на моем ноутбуке. Итак, узнайте, какой оконный менеджер вы используете и как его настроить.
Вы можете узнать код клавиши X вместо кода клавиши ядра, запустив xev
, сфокусировав его и нажав Fn + F6.
Вторая проблема заключается в том, что для выполнения операции переключения вам необходимо знать текущее состояние. Самый простой способ - это, вероятно, написать небольшой сценарий оболочки для чтения свойства Device Enabled
с помощью xinput
, а затем либо включить, либо отключить его с помощью xinput set-prop
. Запускайте этот сценарий оболочки из оконного менеджера (если можете) всякий раз, когда вы получаете обнаруженный код X even.
Решение состоит в том, чтобы изменить файл /etc/udev/hwdb.d/10-yoga.hwdb
на:
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnLENOVO:pn*80UE*:pvr*YOGA*900-13ISK2*
KEYBOARD_KEY_bf=f21
@dirkt предоставил информацию о файле / usr / share / X11 / xkb / symbols / inet
. При чтении этого файла ясно, что X11 сопоставляет клавишу F21 с XF86TouchpadToggle:
key <FK21> { [ XF86TouchpadToggle ] };
Поэтому вместо сопоставления скан-кода с touchpad_toggle
я просто сопоставляю его с функциональной клавишей F21.
Никаких скриптов не требуется.
Этот портативный компьютер отправляет это событие, когда вы переводите его в режим планшета. Но при возврате в режим ноутбука он не отправляет его снова, поэтому тачпад остается отключенным.
Кроме того, если вы отключите тачпад в режиме ноутбука, переход в режим планшета активирует его.
Это сжатый файл gzip . Вы можете узнать это, выполнив команду file
, которая определяет формат файла по магическим числам в данных (именно так программы, такие как Text Wrangler, определяют, что файл является также сжат):
file output.html
wget -O - … | file -
Сервер (я догадался по показанному вами контенту) отправляет сжатые данные и правильно устанавливает заголовок
Content-Encoding: gzip
, но wget этого не поддерживает. В последних версиях wget отправляет Accept-encoding: identity
, чтобы указать серверу не сжимать или иным образом кодировать данные. В более старых версиях вы можете отправить заголовок вручную:
wget --header 'Accept-encoding: identity' …
Однако этот конкретный сервер, похоже, не работает: он отправляет сжатые данные, даже если им сказано не кодировать данные каким-либо образом. Поэтому вам придется распаковывать данные вручную.
wget -O output.html.gz … && gunzip output.html.gz