Mikołaj Napisano Grudzień 18, 2010 Zgłoszenie Share Napisano Grudzień 18, 2010 od jakiegoś czasu męczy mnie brak dodatkowych przycisków na skróty dla aplikacji (tak wiem, mogę używać kombinacji klawiszowych, ale nie chcę ;p) mam laptopa lenovo y550, wśród wielu migających diódek ma on na górze slider. Producent dostarcza aplikację do jego obsługi ale tylko pod windowsa. oczywiście manager skrótów w kde nie wykrywa tych klawiszy, xev też nie zgłasza zdarzeń gdy używam slidera. Jednak /dev/input/by-path/platform-i8042-serio-0-event-kbd wyrzuca różne "śmieci". Więc dostęp jest. Mapowanie tych przycisków przy użyciu różnych "sztuczek" raczej odpada, bo po przejechaniu palcem po pasku uruchomiłoby mi się wszystko co na nim ustawiłem, a chodzi o trafienie i zatwierdzenie (jeszcze nie wiem jak zatwierdzenie ma wyglądać, może odpowiedni czas, jeszcze zobaczę jak to na windzie rozwiązali). Teraz moje pytanie, jak napisać taki slider? Chodzi mi głownie o to, czy czytać bezpośrednio z /dev/input/by-path/platform-i8042-serio-0-event-kbd (co wymaga praw roota, a tego raczej bym chciał uniknąć) czy jest może jakaś biblioteka do obsługi klawiatury. Chcę to zrobić "ładnie", a nie po partyzancku ;] Jak mi się uda to może jeszcze komuś się przyda ;] Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Grudzień 18, 2010 Zgłoszenie Share Napisano Grudzień 18, 2010 Trochę Ci zazdroszczę rodziewiczania terenu. Nigdy się jeszcze tym nie bawiłem, ale z ciekawości poszukałem to i owo. * znalazłem (oby aktualne) artykuły o "input subsystem": http://www.linuxjour...com/user/801145 * bardziej "mięsne" będzie na początek trochę partyzantki: http://stackoverflow...4225290#4225290 * po drodze zgarnąłem jeszcze jakieś linki, nie wiem czy coś wnoszą do tematu ale zapodam: http://stackoverflow...d-device-linuxc http://stackoverflow...keyboard-format http://www.kernel.or...2005/mochel.pdf i jeszcze dwa proste keyloggery http://forum.ubuntu....ad.php?p=772073 http://code.google.com/p/logkeys/ Powodzenia Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Grudzień 19, 2010 Autor Zgłoszenie Share Napisano Grudzień 19, 2010 dzięki za informację, jeszcze popatrzę czy może samo QT nie daje bezpośredniego (chodzi tylko o to, bym miał dostęp do zdarzeń slidera, nie ważne skąd i jak, byle kulturalny ;]) dostępu do klawiatury z poziomu zwykłego użyszkodnika, bo jak mi to będzie na roocie tylko działało to wątpię czy ktoś poza mną będzie tego chciał używać, nawet mi się takie rozwiązanie nie podoba ;] póki co muszę trochę czasu na to znaleźć i ogarnąć trochę QT i materiały które mi podałeś, bo na razie je pobieżnie przejrzałem ;] Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
borzole Napisano Grudzień 19, 2010 Zgłoszenie Share Napisano Grudzień 19, 2010 problem "root" to nie problem, wystarczy że "serwer" chodzi jako root, a "client" jako user. Najprostrza komunikacja to man 3 mkfifo albo jakoś tak. Qt Ci nie wiele da. Z tego co pobieżnie przejrzałem to musisz napisać moduł dla kernela (sterownik) do obsługi ów slidera, bo kernel wprawdzie coś odczytuje, ale nie potrafi interpretować. No a potem to już może być Qt. Przydała by się dokumentacja do tego slidera. Nie wiem, pogrzeb w sieci, rozkręć obudowę i wpisz numerki seryjne w google Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Grudzień 19, 2010 Autor Zgłoszenie Share Napisano Grudzień 19, 2010 czy ja wiem, planowalem odczytywac to co wypluwa event po macaniu slidera i zinterpretowac to po swojemu, tylko jeszcze nie testowalem i nie wiem czy bedzie sie dalo prosto odróznic wybrane "przyciski", jak sie nie bedzie dalo to poszukam dokumentacji ;] Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Grudzień 31, 2010 Autor Zgłoszenie Share Napisano Grudzień 31, 2010 mam pewien problem z kompilacją NetBeansProjects/slider/main.cpp:24: undefined reference to `GetKeyboardEvents(_EventList*, _DeviceIntRec*, int, int)' collect2: ld returned 1 exit status jest to funkcja z #include <xorg/input.h> ale nie wiem w jakiej bibliotece jest ta funkcja .... a na google na razie nic nie znalazłem ... Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
jpc Napisano Grudzień 31, 2010 Zgłoszenie Share Napisano Grudzień 31, 2010 Tez mam Lenovo y550 i czekam co wyniknie z Twoich dzialan. Ale szczerze mówiac na windowsie 7 ten slider dziala zalosnie (ciezko wtrafic w dany program który ma sie uruchomic. moze da sie cos ustawic, ale nie bawilem sie tym za dlugo bo jednak siedze na linuksie). Lenovo mialo fajny pomysl, ale cos poszlo nie tak. Jak dla mnie ten slider by sie przydal do sterowania multimediami (przejechanie w lewo przez kilka punktów - poprzednia piosenka, w prawo - nastepna, klikniecie w jeden punkt - pauza/graj). Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Grudzień 31, 2010 Autor Zgłoszenie Share Napisano Grudzień 31, 2010 na razie zmagam się z uzyskaniem "ładnego" dostępu do klawiatury, jak się to oprogramuje to już inna kwestia ;] Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
esail Napisano Grudzień 31, 2010 Zgłoszenie Share Napisano Grudzień 31, 2010 mam pewien problem z kompilacja NetBeansProjects/slider/main.cpp:24: undefined reference to `GetKeyboardEvents(_EventList*, _DeviceIntRec*, int, int)' collect2: ld returned 1 exit status jest to funkcja z #include <xorg/input.h> ale nie wiem w jakiej bibliotece jest ta funkcja .... a na google na razie nic nie znalazlem ... Nie masz liba w linkerze dodanego, mimo ze naglówki masz includowane to potrzebujesz jeszcze podlinkowac odpowiednia biblioteke. Zobacz w sklad jakiej biblioteki wchodzi input/h a pózniej dodaj do parametrów kompilera odpowiednia opcje w stylu -lcostam. Pewnie musisz jakies xorg-costam zobaczyc. Lib to chyba cos z xorg-server, zobacz czy masz odpowiedniego devela. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Grudzień 31, 2010 Autor Zgłoszenie Share Napisano Grudzień 31, 2010 [mag@mag-lap ~]$ rpm -qa |grep x11-serverxorg-x11-server-devel-1.9.3-3.fc14.i686xorg-x11-server-utils-7.4-19.fc14.i686xorg-x11-server-common-1.9.3-3.fc14.i686xorg-x11-server-source-1.9.3-3.fc14.noarchxorg-x11-server-Xorg-1.9.3-3.fc14.i686[\code] No tak, tylko właśnie jakiego liba? bo do tego nie umiem dojść od wczoraj ;p Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
esail Napisano Grudzień 31, 2010 Zgłoszenie Share Napisano Grudzień 31, 2010 Wez jako root odpal ldconfig -v i zobacz te liby z x'ami. Pozniej nazwe bez rozszerzenia dodaj do -lnazwa do opcji kompilacji. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
morsik Napisano Styczeń 1, 2011 Zgłoszenie Share Napisano Styczeń 1, 2011 Dokładnie to jest: xorg-x11-server-devel Ale Ty musisz zlinkować swój projekt z xorg aby on wiedział, że takie funkcje istnieją. -lX11 powinno zadziałać, choć nie mam pewności, że to o to chodzi [-; (tam jest minus i litera L małe) Musisz dodać to do paramentrów linkera w Twoim projekcie. Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Styczeń 1, 2011 Autor Zgłoszenie Share Napisano Styczeń 1, 2011 no właśnie X11 nie rozwiązuje problemu. Biblioteki wiem jak dołączać ;p Jak czegoś nie będę wiedział to napiszę ;] ########################### Najlepszego w nowym roku ;] ########################### Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Mikołaj Napisano Styczeń 7, 2011 Autor Zgłoszenie Share Napisano Styczeń 7, 2011 pojawił się problem który zburzył moje dotychczasowe mniemanie o wszech otaczającym mnie jakże nie do końca zrozumiałym świecie linuksa, który swymi brakami motywuje mnie do zgłębiania tajników mistycznej wiedzy o sposobie jego działania, możliwościach rozbudowy, konfiguracji i poprawienia działania dla dobra całej społeczności zaangażowanej w rozwój tegoż systemu: /* skrajna lewa diodka na sliderze */ Input_event: time(1294441553 868313), type: EV_MSC, code: 3, value: e0 Input_event: time(1294441553 870876), type: EV_MSC, code: 3, value: 3b Input_event: time(1294441553 870884), type: EV_MSC, code: 4, value: bb Input_event: time(1294441553 940553), type: EV_MSC, code: 3, value: e0 Input_event: time(1294441553 944955), type: EV_MSC, code: 3, value: bb Input_event: time(1294441553 944965), type: EV_MSC, code: 4, value: bb /* skrajna prawa diodka na sliderze */ Input_event: time(1294441561 751317), type: EV_MSC, code: 3, value: e0 Input_event: time(1294441561 753985), type: EV_MSC, code: 3, value: 3b Input_event: time(1294441561 753992), type: EV_MSC, code: 4, value: bb Input_event: time(1294441561 809092), type: EV_MSC, code: 3, value: e0 Input_event: time(1294441561 814230), type: EV_MSC, code: 3, value: bb Input_event: time(1294441561 814239), type: EV_MSC, code: 4, value: bb (program pozyskuje dane z /dev/input/event4 - moja klawiatura, na razie brzydko ale to najmniejszy problem ....) to są scancody (czy jak to się tam zwie) generowane przez klawiaturę po naciśnięciu danych "klawiszy". Wydaje mi się, że takie same sekwencje mogą trochę utrudnić rozróżnienie klawiszy ... czy jest na sali jasnowidz?? Czytałem trochę: http://gunnarwrobel.de/wiki/Linux-and-the-keyboard.html http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html (tutaj zawiodła mnie strona powyżej) powyższe materiały wydają się być ciekawe, tylko wymaga to ode mnie rozgryzienia dodatkowo zasady komunikacji z klawiaturą ... czego póki co nie umiem. po znalezieniu tych materiałów, wpadłem na pomysł czy by nie dało się podejrzeć procesu komunikacji softu od Lenovo z klawiaturą na windowsie. Napisać jakiś program który by sprawdzał co leci z i do klawiatury, bo możliwe że trzeba coć do klawiatury przesłać żeby slider działał poprawnie (takie sytuacje są opisane w drugim linku) Może ktoś jest zainteresowany przyłączeniem się do poszukiwań i "badań" nad komunikacją z klawiaturą? Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się