Zmapowanie CapsLock na Return

Tylko tematy nie mieszczące się powyżej.
groovy354
Piegowaty Guziec
Piegowaty Guziec
Posty: 5
Rejestracja: 27 wrz 2010, 19:36
Płeć: Mężczyzna
Wersja Ubuntu: 13.04
Środowisko graficzne: Unity
Architektura: x86_64

Zmapowanie CapsLock na Return

Post autor: groovy354 »

Siema!
Jestem świeżo nawrócony na Ubuntu 13.04, po długich i bolesnych mękach Windowsowych.
O ile Ubuntu przywitał mnie (w pewnej mierze) całkiem uprzejmie, o tyle jednej z kustomizacji, do której bardzo przywykłem w Windowsie nie mogę osiągnąć na Ubuntu: jako, że nie korzystam z CapsLocka (rzadko krzyczę w Internecie), postanowiłem, że uczynię sobie z niego "lewy enter" (co IMO zwiększyło mocno moją produktywność, gdy prawą reką jem owsiankę, a lewą nawiguję Chrome'a). Wystarczyło pobrać program SharpKeys, zresetować maszynę i wszystko śmigało.
Historia moich prób uzyskania tego efektu na Ubuntu:
1. Najpierw spróbowałem domyślnych Ubuntowych narzędzi, ale nie okazały się bardzo pomocne. O ile ktoś przewidział, że mógłbym chcieć zrezygnować z CapsLocka i dał wiele opcji podmiany jego funkcji na funkcję innego klawisza (np jako dodatkowy Ctrl, albo Shift, albo Esc), to nie przewidział uczynienia z niego dodatkowego Entera/Returna. Bummer.
2. Udałem się po pomoc do Internetów i znalazłem tutorial o xmodmap. Szybko ogarnąłem kilka przykładów i stworzyłem linijkę kodu

Kod: Zaznacz cały

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Return'
. Wklepuję w Terminal, potwierdzam... i wszytsko śmiga! CapsLock działa jak enter, a mi się buzia cieszy, że sam to zrobiłem i co nie tylko. Dopisałem tą linijkę kodu do autostartu i uznałem sprawę za zamkniętą. Niestety rzeczywistość uderzyła mnie w twarz po pierwszym restarcie - otóż owszem, CapsLock działał, jak Enter, ale także działał jako... CapsLock. At the same time. Potwierdzam w terminalu komendę CapsLockiem, ok wbija komendę, ale także zmienia stan CapsLocka (a tak nie było, gdy wpisywałem tą linijkę xmodmapa bezpośrednio do Terminala).
Aha! - pomyślałem - dodam delay do tej komendy, bo może jest wykonywana jak się wszystko jeszcze nie załadowało, to będzie śmigać. Więc do autostartu wpisałem:

Kod: Zaznacz cały

/bin/bash -c "sleep 20;/usr/bin/xmodmap /home/kuba/mods/caps"
, gdzie plik "caps" zawierał

Kod: Zaznacz cały

clear Lock
keycode 0x42 = Return'
- to samo, CapsLock działał jako Return+CapsLock zamiast po prostu Return.
The Takeaway: Ta sama komenda daje różne rezultaty, zależnie od tego, czy jest wpisana przy autostarcie, czy ręcznie w Teriminalu, a moja młoda Linuxowa intuicja nie jest mi w stanie powiedzieć, dlaczego. Help!
ODPOWIEDZ

Wróć do „Inne”

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 9 gości