Mam standardową klawiaturę z klawiszami numerycznymi po prawej stronie (chyba nazywa się to klawiaturą 104-klawiszową). Chcę używać klawiszy numerycznych tylko jako klawiszy numerycznych. Oznacza to, że nie chcę NumLockwłączać i wyłączać klawiszy numerycznych.
Czasami jednak zdarza się (nie wiem jak, być może przeze mnie przypadkowo uderzyłem w NumLockklawisz), że numlock jest wyłączony i muszę go ponownie nacisnąć. To jest bardzo denerwujące.
Czy można wyłączyć wyłączenie numlock?
Innymi słowy: chcę, aby moje klawisze numeryczne zawsze działały jak klawisze numeryczne i aby wyłączały przełącznik numlock .
Używam Debiana i LXDE (Openbox).
~/.config/openbox/autostart
i~/.config/openbox/rc.xml
?xmodmap
. Pozostaje tylko pytanie, jak zdobyć to wydarzenie ......?Odpowiedzi:
Po przeczytaniu wszystkich odpowiedzi tutaj byłem zaskoczony, widząc, że możesz wykonać następujące czynności.
Więc za każdym razem, gdy naciskasz Num, co dezaktywuje numlock. Wykona się
numlockx on
, co reaktywuje numlock.Nazwa pochodzi od moich danych wyjściowych,
xev
które dały mi kod klucza 77 i nazwęNum_Lock
W przypadku @MartinVegters musiał poczekać kilka sekund, aby na
numlockx on
pewno został wykonany po zakończeniu zdarzenia Num. Ponieważ istnieje warunek wyścigu między obsługą numlocka w jądrze a wykonywaniemnumlockx
.W tym przypadku można napisać mały skrypt,
denumlock.sh
jaki użyj go w powiązaniu klucza
To jest brudne, ale działa.
Polecam następujące, których sam nie mogłem przetestować. Lepiej postępuj zgodnie z pierwszymi odpowiedziami, które sugerują użycie
Ale w przypadku LXDE musisz użyć mechanizmu autostartu LXDE, który różni się od sposobu edycji Openbox
~/.config/openbox/autostart
.W LXDE najwyraźniej musisz edytować
~/.config/lxsession/LXDE/autostart
lub w Lubuntu~/.config/lxsession/Lubuntu/autostart
, który przechowuje polecenia do uruchomienia. (Zobacz Dokumenty Arch i Dokumenty LXDE ) Może być konieczne utworzenie tego pliku i dodanie tej linii.Niestety, jak powiedziałem, nie mogę przetestować, czy to działa, ponieważ mam tylko maszynę wirtualną działającą z LXDE.
źródło
<keybind key="Num_Lock">
ale niestety nie działa. Podczas wykonywania polecenianumlockx on
<kbd> NumLock </kbd> nadal zmienia funkcję na numlock. Więc nadal mogę włączać / wyłączać numlock.xmodmap
, kiedy wypróbowałem rozwiązanie sugerowane przez Risto Salminena, polecenie zadziałało, ale straciłem wszystkie moje powiązania klawiszy.sleep 3; numlockx on
powiązania klawiszy. W przypadku drugiego rozwiązania wypróbowałeś to z autostartem?sleep 3; /usr/bin/numlockx on
nie działa.NumLock
nadal działa jak włącznik / wyłącznik./usr/bin/numlockx on
działa w twoim systemie?Jeśli klawiatura jest twoja (a nie na przykład pracodawca), po prostu wyjmij ją fizycznie z klawiatury .
Nadal możesz naciskać go spiczastą rzeczą, jeśli naprawdę potrzebujesz.
źródło
Na klawiaturze laptopa (Ubuntu 10.04) blokada klawiatury jest obecnie włączona.
Voila! Numlock jest teraz wyłączony.
Odkłada to z powrotem. (Może lepszym pomysłem byłoby Num_lock, ale masz sens).
Odpowiedz na komentarz @Martin Vegter.
Ok , w odpowiedzi na twój komentarz, xmodmap rujnuje twoje powiązania, zrozumiałe.
Właśnie sprawdziłem dokumentację Openbox
Zajrzyj do ~ / .config / openbox / lxde-rc.xml
ls -l lxde-rc.xml
(czy masz także plik rc.xml ?, sprawdź).weź kopię jako kopię zapasową
(użyj edytora) wyszukaj numlock (może nmlk).
Czy widzisz coś takiego?
Skomentuj lub LUB Zmień Klucz-wartość klucza na alternatywną, np. Alt-Numlock, aby przełączyć
Na przykład
Aby skomentować
lub
Zmień na Alt + Numlock
zapisz zmiany i wyloguj się / zaloguj lub uruchom ponownie.
źródło
xmodmap
polecenie (tj.xmodmap -e 'keycode 77 = Escape'
) Niszczy moje istniejące powiązania klawiszy, które są zdefiniowane w.config/openbox/lxde-rc.xml
.config/openbox/lxde-rc.xml
nie ma linii zawierającejNumlock
lubNum_Lock
. Kiedy go utworzę, nie działa: <keybind key = "Num_Lock"> <action name = "Execute"> <command> / bin / true </command> </action> </keybind>Znajdź swój kod numeryczny za pomocą
xev
. Na przykład tutaj Num_Lock to 77.Użyj xmodmap, aby ponownie przypisać kod klucza:
xmodmap -e 'keycode 77 = '
.Do wszystkich przyszłych sesji X, na
~/.xprofile
miejscuxmodmap -e 'keycode 77 = '
.EDYCJA: Uwaga: Nie działa, jeśli oprogramowanie zmienia stan Num Lock.
źródło
xmodmap -e 'keycode 77 = '
działa, ale powoduje poważny problem: wszystkie mojexmodmap -e 'keycode 77 = Escape'
(YMMV, ESC wydaje mi się bezpieczny). Czy masz plik ~ / .Xmodmap? Jeśli tak, zamiast~/.xprofile
umieśćkeycode 77 = Escape
na końcu tego pliku.xmodmap
polecenie (tj.xmodmap -e 'keycode 77 = Escape'
) Niszczy moje istniejące powiązania klawiszy, które są zdefiniowane w.config/openbox/lxde-rc.xml
Po prostu usuń mapowanie klawisza NumLock, mapując go na nic: najpierw uruchom
xev
i naciśnij Num Lock (prawdopodobnie wydrukuje 77), a następnie uruchom polecenie:gdzie # to kod klawiszy NumLock.
Ustawiłbyś to również,
~/.xprofile
aby wyłączyć NumLock w sesjach x.źródło
xmodmap -e "remove Lock = Num_Lock"
z LinuxMint 17.2 i wyobrażam sobie inne wersje Ubuntu, możesz przejść do ustawień KLAWIATURY, a następnie UKŁADY na tej stronie znajdziesz mały przycisk „opcji”.
Następnie przejdź do „różnych opcji zgodności” i zaznacz „Klawisze numeryczne zawsze wprowadzają cyfry”
To dla mnie ratownik. Wkurza mnie to, że wpisuję liczbę i przenoszę się gdzie indziej na stronie. Twoje zdrowie! ;)
źródło
setxkbmap -option numpad:mac
lub poprzez ustawienieOption "XkbOptions" "numpad:mac"
wxorg.conf
.Inne odpowiedzi tutaj sugerowały użycie
numlockx on
zxmodmap -e 'keycode 77 ='
, alenumlockx on
nie działałyby w moim systemie razem z tymxmodmap
poleceniem, pokazując mi komunikat o błędzie:Również ustawienie
xmodmap -e 'keycode 77 ='
z jakiegoś powodu usunie wszystkie moje skróty klawiszowe wykonanexbindkeys
.Ta odpowiedź na podobne pytanie pomogła mi jednak. Część moich
~/.xinitrc
:W ten sposób NumLock sam nic nie robi, ale po naciśnięciu Shift służy swojemu pierwotnemu (przeważnie bezużytecznemu) celowi, a co najważniejsze, nie przeszkadza w
numlockx on
pracy w moim systemie ani nie psuje moichxbindkeys
klawiszy.źródło
Innym sposobem jest numlocktrwałe wyłączenie klawisza. Możesz to zrobić, modyfikując bieżący plik mapy klawiszy, modyfikując kod 77.
Ustaw tę wartość na „none”, aby przypadkowe naciśnięcie klawisza nic nie zrobiło.
Użyj
numlockx
podczas uruchamiania, aby go uruchomić i użyj zmodyfikowanego pliku mapy klawiszy w jednym ze skryptów startowych np.~/.bashrc
Lub w/etc/profile
.UWAGA: Nie testowałem tego, ale powinno działać.
źródło
Na OpenSuse 13.x z KDE, to zadziałało dla mnie:
Jeśli NumLock musi być włączony, ponieważ jest wyłączony, po prostu użyj
% numlockx on
.źródło
Raczej hackerskim obejściem jest dodanie
cron
zadania, które uruchamia następujące polecenieco 30 sekund, aby włączyć NumLock.
Zobacz też
źródło
To może nie być najlepsze rozwiązanie, ale to zadziałało dla mnie:
Gdzie 11 to identyfikator twojej klawiatury. Zrób
xinput
listę, aby określić swój identyfikator klawiatury (w moim przypadku jest to 11):Oczywiście,
numlockx
aby to działało , musi być zainstalowane.Wyjaśnienie:
stdbuf -oL
modyfikuje operacje buforowania strumienia wyjściowego na buforowane liniowoxinput test 11
wypisuje wciśnięte klawisze na standardowe wyjściemawk -W interactive '$3==77 {printf "/usr/bin/numlockx on\n"}'
dla każdej linii, która jest drukowana i zawiera 77 (klawisz numlock), zbuduj polecenie/usr/bin/numlockx on
...| bash
... i potokuj go, aby go uruchomić.Możesz wstawić ten oneliner do jednego ze skryptów początkowych środowiska graficznego lub uruchomić go w tle.
źródło
Chcę również, aby klawisze numeryczne zawsze były cyframi, a żadna z KP _... rzeczy.
Moje rozwiązanie jest częścią mojej Ponownej klawiatury Apple do użytku z repozytorium Linux .
Zasadniczo po prostu odwzorowuje Num_Lock na F20, a same liczby na siebie.
To rozwiązanie zawsze zapewnia pożądany wynik i dodatkowy klawisz funkcyjny jako dodatkową korzyść.
źródło
Utwórz następujący skrypt i wykonaj go za pomocą
chmod +x <filename>
Umieść ścieżkę do pliku
.config/openbox/autostart
Lub umieść go jako zadanie crona, które sprawdza co kilka minut i uruchamia skrypt, jeśli numlocks jest wyłączony.
Lub po prostu uruchom skrypt w pętli.
Jeśli nie masz numlockxa, powinieneś być w stanie go zdobyć
sudo apt-get install numlockx
źródło