Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2012-05-05 21:20:17

  enether - wiecznie niewyspany

enether
wiecznie niewyspany
Zarejestrowany: 2012-05-01

[Solved] fluxbox, thinkpad i klawisz funkcyjny

Witajcie ;)

Z nudów dopieszczam sobie fluxboxa, środowisko awaryjne do używanego ostatnio nader często G3 z GS.
Jak na doskonale przemyślany i wykonany WM przystało, flux działa pięknie. Klawisze funkcyjne działają out of the box, poza lekką modyfikacją bindingów klawiszy głośności.

Jednakże klawisze takie jak wywołanie blokowania ekranu (Fn + F2) czy wyłączenie tabletu wymagają dorobienia własnego bindingu i tu mam mały problem. Nie potrafię zmusić fluxa do obsługi klawisza Fn.

xev podaje mi o nim takie dane:

Kod:

KeyPress event, serial 31, synthetic NO, window 0x1c00001,
    root 0xb2, subw 0x0, time 16375477, (1013,-165), root:(1014,302),
    state 0x10, keycode 151 (keysym 0x1008ff2b, XF86WakeUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 31, synthetic NO, window 0x1c00001,
    root 0xb2, subw 0x0, time 16375489, (1013,-165), root:(1014,302),
    state 0x10, keycode 151 (keysym 0x1008ff2b, XF86WakeUp), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Jednakże ani podanie keycodu 151 ani XF86WakeUp nie pomaga.

Przykładowy wpis z użyciem tego klawisza wygląda tak:

Kod:

XF86WakeUp F2 :Exec gnome-screensaver-command --lock

Sprzęt to Lenovo ThinkPad T61

Z góry dzięki.

Ostatnio edytowany przez enether (2012-05-05 22:39:11)

Offline

 

#2  2012-05-05 22:16:29

  Minio - Użyszkodnik

Minio
Użyszkodnik
Skąd: Brno, Česko
Zarejestrowany: 2007-12-22
Serwis

Re: [Solved] fluxbox, thinkpad i klawisz funkcyjny

Klawisz funkcyjny działa na poziomie sprzętu i jego wciśnięcie nigdy nie dochodzi do oprogramowania (w tym wypadku — X, a dalej do Fluxboksa). Czy samo wciśnięcie klawisza funkcyjnego przy aktywnym okienku xev powoduje jakąś reakcję? Nie powinno.

Dopiero klawisz funkcyjny wciśnięty z jakimś innym klawiszem powoduje wysłanie do programu (X, Fluxboksa) odpowiedniego kodu klawisza. Jak rozumiem, ten fragment z xev który wkleiłeś pojawia się po wciśnięciu zarówno klawisza funkcyjnego, jak i F2. Jeśli mam rację, to wpis z ~/.fluxbox/keys, który podałeś, zostałby wywołany przy jednoczesnym wciśnięciu klawisza funkcyjnego i F2 (razem produkują XF86WakeUp) oraz F2 — co jest niemożliwe, przynajmniej nie bez zmodyfikowania układu klawiatury.

Słowem — podpisanie akcji pod samo XF86WakeUp powinno działać. Dopisz sobie tam najpierw jakiegoś xterma czy coś innego, żeby zobaczyć, czy mam rację.


Spinnen Essen: [url=http://fluxboxpl.org/portal/]FluxboxPL[/url] [url=http://przepis-na-lo.pl/]Przepis na LibreOffice[/url]

Offline

 

#3  2012-05-05 22:38:37

  enether - wiecznie niewyspany

enether
wiecznie niewyspany
Zarejestrowany: 2012-05-01

Re: [Solved] fluxbox, thinkpad i klawisz funkcyjny

Bingo, miałeś rację. Nie sprawdzałem co w xev'ie dają kombinacje, badałem tylko kod podstawowego klawisza. I tak, wywołany pojedynczo działa.

Kombinacje okazuje sie mają własne oznaczenia, w wypadku Fn + F2 jest to XF86ScreenSaver

Teraz pójdzie z górki. Dzięki za pomoc ;)

Offline

 

#4  2012-05-05 23:03:57

  leszcz137 - Użytkownik

leszcz137
Użytkownik
Zarejestrowany: 2012-05-05

Re: [Solved] fluxbox, thinkpad i klawisz funkcyjny

Szanowny kolego :)
  Po pierwsze primo: klawisze volup, voldown, mute w  t61  nie działają na poziomie biosu - nie generują zdarzeń acpi. Są obsługiwane na poziomie softowym.
  Możesz wywalić sobie pliki: /etc/acpi/events/thinkpad-volume-* oraz /etc/acpi/events/thinkpad-mute, a także /etc/acpi/vol* i /etc/acpi/mutebtn.sh

Co z tym zrobić?

Kod:

mkdir -p /usr/local/share/kbd/keymaps
vim /usr/local/share/kbd/keymaps/personal.map
loadkeys /usr/local/share/kbd/keymaps/personal.map

reszta w google:p
albo pytaj:)

Po drugie primo Fn+F2 działa (że tego nie widzisz to inna sprawa), Skrobnij sobie odpowiedni skrypt w  /etc/acpi/ i będzie spoko

Po trzecie primo - wiem co znaczy primo:)

PS:
Minio to czym piszesz to proteza a nie działające klawisze funkcyjne. We wszystkich ibm/thinkpadach klawisze funkcyjne są obsługiwane na poziomie acpi a a nie aplikacji. Miedzy innymi dlatego jest zgrzyt z klawiszami głośności bo to jedyne klawisze, które nie są obsługiwane na poziomie acpi (pierwszy taki model thinkpada jaki miałem w rękach)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)

[ Generated in 0.008 seconds, 12 queries executed ]

Informacje debugowania

Time (s) Query
0.00010 SET CHARSET latin2
0.00006 SET NAMES latin2
0.00100 SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.227.49.73' WHERE u.id=1
0.00067 REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.227.49.73', 1732823199)
0.00040 SELECT * FROM punbb_online WHERE logged<1732822899
0.00063 DELETE FROM punbb_online WHERE ident='18.219.47.239'
0.00057 SELECT topic_id FROM punbb_posts WHERE id=201341
0.00071 SELECT id FROM punbb_posts WHERE topic_id=21208 ORDER BY posted
0.00080 SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=21208 AND t.moved_to IS NULL
0.00005 SELECT search_for, replace_with FROM punbb_censoring
0.00079 SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=21208 ORDER BY p.id LIMIT 0,25
0.00076 UPDATE punbb_topics SET num_views=num_views+1 WHERE id=21208
Total query time: 0.00654 s