Tag Archives: linux, debian

Logitech Wireless Presenter R400 и Linux

от Йордан Радунчев
лиценз CC BY

За нуждите на офиса купихме Logitech Wireless Presenter R400 - прекрасна джаджа за презентации, която позволява на презентатора да се разхожда свободно пред публиката и да прелиства слайдове отдалеч. Върши страхотна работа с PowerPoint, а съм чувал, че работи и с Evince под Linux. По същество това си е "орязана" клавиатура (като такава я вижда и Линукс), само с четирите клавиша, които трябват за една презентация.

Logitech Wireless Presenter R400

Имаме бутони напред и назад, бутон за стартиране на презентацията и бутон за изключване на картината (бланк). Има и лазерна показалка. Тъй като си падам по всякакви джаджи, изобщо няма да скрия, че много ми хареса нещото. И естествено реших, че няма начин да не го използвам за презентациите си, понеже, нали, съм един безспорно световно известен и навсякъде канен лектор... И ето тук Logitech ме саботираха. Ако ме следвате някъде по социалките, може и да си спомняте, че преди време си търсех инструмент за презентации. Изискванията ми бяха да работи под Линус, естествено, и слайдовете да се изготвят на markdown. След доста проби, се спрях на Preston. Като допълнителна екстра, за която не се бях замислял първоначално, тук ще посоча и факта, че презентацията се случва в web сървър, тоест аудиторията, ако разполага с лаптопи, таблети и прочие, и ако на мястото на събитието има локална мрежа, може да се закачи с браузъра си за презентацията на адреса на моя лаптоп и да я следи както на сцената, така и директно на екрана на устройството пред себе си. Удобно, спор няма.

Обаче. На Logitech джаджата не може да управлява презентацията на Preston, защото тя е отворена в браузъра ми, и прелистването на слайдовете става със стрелките, докато R400, бидейки направен да работи с PowerPoint на Майкрософт, изпраща към лаптопа ми PageUp и PageDown, а те нищо не говорят на браузъра и съответно той изобщо не реагира на тях. Лошо, а? Не съвсем. Понеже използваме по-добрата операционна система, нищо не ни пречи да "препрограмираме" бутоните на джаджата и да я научим да си говори с Preston (или който и да е друг софтуер за презентиране всъщност). Лесно е.

Като първа стъпка ни трябват scan code-вете, които генерира устройството. Трябва да го подслушаме. Първо го намираме на коя "честота" си говори с лаптопа използвайки stat:

yradunchev:~ $ stat -t /dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd --printf "%N\n"
/dev/input/by-id/usb-Logitech_USB_Receiver-event-kbd' ->../event13'

Сега ще го подслушаме, стартираме специалното разузнавателно средство:

yradunchev:~ $ sudo /lib/udev/keymap -i input/event13

И започваме да натискаме бутоните му:

scan code: 0x7003E key code: f5
scan code: 0x70029 key code: esc
scan code: 0x70037 key code: dot
scan code: 0x7004B key code: pageup
scan code: 0x7004E key code: pagedown

За всеки натиснат бутон виждаме неговия scan code и какво изпраща. Обърнете внимание, че виждаме 5 отговора, генерирани от 4 бутона. Сещате ли се? Бутона за старт генерира два кода - един за старт (f5) и един за стоп (esc). После имаме бутона, който "гаси" екрана - dot. И после двата бутона за напред (pageup) и назад (pagedown).

За да науча R400 да си говори с Preston и браузъра ми, създадох файла /etc/udev/logitech-r400 със следното съдържание:

0x7003E f11
0x70029 f11
0x70037 space
0x7004B left
0x7004E right

Това е моя "преводач". На бутона за стартиране съм задал два пъти F11 - така всяко натискане, ще кара браузъра да влиза и излиза от режим full screen. Просто в моя случай това е достатъчно. Бутона за "гасене" на екрана генерира интервал, просто защото нещо трябва да генерира, не че ми върши някаква работа. Важните бутони за мен са наляво и надясно - с тях сменям слайдовете. Ако вие използвате друг софтуер за презентация, който си има собствени шорткъти, просто заменете в този файл на съответните места с неговите. И Logitech Wireless Presenter R400 ще заработи за вас под Линукс, въпреки че официалния съпорт на Logitech твърди, че не може и толкоз.

За да накарам системата да използва моите клавиши с R400 винаги, създадох още един файл: /etc/udev/rules.d/logitech.rules

ENV{ID_VENDOR}=="Logitech*", ATTRS{idProduct}=="c52d", RUN+="keymap $name /etc/udev/logitech-r400"

И сега вече мога да изнасям презентациите си професионално, докато се разхождам важно напред-назад из аудиторията, като истински гуру :) А Logitech да имат много здраве от мен.