Strona 1 z 1

Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 02:59
autor: capeone
Witam,
Posiadam zepsutą klawiaturę, mianowicie obydwa shifty nie funkcjonują.
Rozwiązaniem mojego problemu w systemie Windows było zmapowanie klawisza Caps Lock do roli Shifta poprzez dodanie jednej linijki do rejestru.
Chciał bym podobną rzecz zrobić w Linuksie, gdyż praca na systemie bez tego klawisza jest niemożliwa.

Mam malutki skrypcik:

Kod: Zaznacz cały

#!/bin/bash
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "add Shift = Caps_Lock"
który uruchamiam ręcznie w razie potrzeby. Wadą jest jednak to, że przy uruchomieniu każdej kolejnej sesji terminala muszę skrypt uruchamiać ponownie. (Dlaczego?)

W związku z tym chciał bym aby skrypt, lub same polecenia xmodmapa uruchamiały się automatycznie po zalogowaniu, i były one aktualne przy każdej nowej sesji terminala.

Próbowałem dodać dwie linijki odpowiedzialne za mapowanie do pliku ~/.bash_profile (który musiałem stworzyć, gdyż nie był obecny w katalogu domowym), jednak nie przyniosło to żadnych efektów. Pomyślałem więc o aliasach, aby krótka komenda "cosik" uruchamiała te dwie linijki, jednak alias dodany do ~/.bash_profile również nie był rozpoznawalny (również po restarcie X).

Gdzie popełniam błąd? Czy jest inny sposób na zmapowanie klawiszy? Wcześniej próbowałem zmieniać bodajże /etc/X11/xkb, jednak te rozwiązanie nie przynosiło efektów..

Re: Problem z .bash_profile - mapowanie klawiszy przy uruchomieniu sesji

: 08 lip 2012, 09:19
autor: UbuJedrzej
Zapisz ten kod w pliku z rozszerzeniem .sh (np. mapowanie.sh)

Kod: Zaznacz cały

#!/bin/bash
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "add Shift = Caps_Lock"
Następnie w konsoli wpisz

Kod: Zaznacz cały

chmod +x /ścieżka/do/pliku/mapowanie.sh
Na koniec wybierz 'Programy startowe' z menu znajdującego się w prawym górnym rogu i tam dodaj ten skrypt.
Od teraz powinien on się uruchamiać przy każdym zalogowaniu.

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 14:25
autor: capeone
Na koniec wybierz 'Programy startowe' z menu znajdującego się w prawym górnym rogu i tam dodaj ten skrypt.
Przepraszam, nie zaznaczyłem że korzystam z fluxboxa.

Poniekąd rozwiązałem ten problem dodając skrót klawiszowy fluxboxa w keys, powodując że pewien klawisz wywołuje skrypt. Jednak wciąż przy każdym uruchomieniu konsoli ustawienia wracają do domyślnych i trzeba wywoływać skrypt na nowo...

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 14:32
autor: UbuJedrzej
W takim razie do pliku ~/.fluxbox/startup dodaj taką linijkę (!! KONIECZNIE PRZED 'exec /usr/bin/fluxbox'!!)

Kod: Zaznacz cały

/ścieżka/do/pliku/mapowanie.sh &

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 14:45
autor: capeone
Próbowałem, zarówno

Kod: Zaznacz cały

/ścieżka/do/pliku/mapowanie.sh &
jak i

Kod: Zaznacz cały

sh /ścieżka/do/pliku/mapowanie.sh &
bez efektów.

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 15:00
autor: UbuJedrzej
To spróbuj wstawić te linijki bezpośrednio do pliku ~/.xinitrc (wklej je na początku)

Kod: Zaznacz cały

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "add Shift = Caps_Lock"

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 15:10
autor: capeone
Również nic. Nie mam pojęcia co źle robię. Jedynie skrót klawiszowy zostaje. Tylko dlaczego przy uruchamianiu każdego nowego okna konsoli ustawienia "wracają do normalnych"? Mimo wszystko dziękuję za pomoc

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 15:39
autor: ethanak
konsoli czy terminala?

Re: Mapowanie klawiszy przy uruchomieniu sesji z użyciem .bash_profile

: 08 lip 2012, 15:46
autor: capeone
W dalszym ciągu chodzi mi oczywiście o terminal