Nie mogę uruchomić Xmodmap podczas logowania w Ubuntu 13.04. Szukałem w okolicy, w tym w askubuntu i wszystkie znalezione odpowiedzi nie działają.
Mam plik o nazwie .Xmodmap w moim katalogu domowym, który zawiera pożądane mapowania. Jeśli uruchomię go ręcznie, działa dobrze, więc nie ma tam błędu. Aby uruchomić go przy starcie, próbowałem:
Korzystanie z różnych
.xinitrc
zawierających jedno z następujących poleceń:xmodmap .Xmodmap
xmodmap ~/.Xmodmap
/usr/bin/xmodmap /home/NAME/.Xmodmap
if [ -s ~/.Xmodmap ]; then
xmodmap ~/.Xmodmap
fi
Używanie
.Xresources
zamiast.xinitrc
z tymi samymi odmianami.Ustawienie go jako aplikacji startowej.
Żadne z powyższych nie działa w Ubuntu 13.04 (64-bit). Widziałem także kilka pomysłów na temat globalnej zmiany mapowań klawiatury, ale większość z nich nie miała zastosowania w Ubuntu 13.04 (tj. Odpowiednie pliki nie istniały tam, gdzie określono) i wolę nie dotykać ustawień globalnych.
unmodified
shift
altgr*
shift+altgr
. Ale coleft alt
isuper key
?xkb
. Poza tym, że jest tajemniczy, ma to problem polegający na tym, że niestandardowe mapy są usuwane poxkb
aktualizacji.Dla mnie konfiguracja xkb jest zbyt skomplikowana, jeśli chcesz ponownie mapować 1 lub 2 klucze w sposób niedostępny w Ustawieniach systemu. Ponadto rozwiązanie powinno pozostać po stronie użytkownika, bez edycji „/ usr / share / X11 / xkb / symbols /” itd. Wymuś ładowanie „xmodmap ~ / .Xmodmap” przy użyciu aplikacji startowych działa tylko do zawieszenia, zmiany użytkowników lub zmień układ klawiatury. Tak więc, jak sugeruje holocronweaver, przy pomocy fragmentów kodu, które znalazłem, stworzyłem skrypt Pythona do załadowania przy uruchamianiu sesji, który w razie potrzeby ponownie ładuje „~ / .Xmodmap”.
Sprawdź raport o błędzie # 1243642 (komentarz # 6) i pobierz go tutaj .
źródło
Miałem ten problem w Ubuntu 14.04 i znalazłem rozwiązanie tutaj . Najwyraźniej Ubuntu nie jest w stanie skonfigurować klawiatury od razu po zalogowaniu, ale jest to trochę później. Więc jeśli dodasz polecenie
do
~/.bash_profile
tego powinien działać (działa dla mnie).EDYCJA: Wydaje się, że działa to tylko po zalogowaniu, a nie po uruchomieniu. Będę musiał to zbadać później.
źródło
xmodmap ~/.Xmodmap
Przekształć Caps Lockw Escdo
vim
użyciaOto mój wariant skryptu uruchamiania mapowania kluczy. Przekształca Caps Locksię Escw dowolną klawiaturę do użytku z
vi
,vim
lubgvim
.W przeciwieństwie do odpowiedzi z q4w56 , ta odpowiedź nie używa żadnej nieskończonej
while; do
pętli. W przeciwnym razie jeden rdzeń mojego dwurdzeniowego procesora uderzyłby o 42% co 5 sekund, znacznie zmniejszając ładowanie baterii laptopa.Zapisz go jako skrypt. Udostępnij plik za pomocą
chmod +x
. Dodaj nazwę skryptu i lokalizację doSession and Startup → Application Autostart
(w Xubuntu).Zachowanie klawiatury dla tego użytkownika pozostanie trwałe po ponownym uruchomieniu i wylogowaniu, ale nie zostanie zawieszone. Trwałość poprzez zawieszenie można osiągnąć , ale niestety tylko na poziomie systemu, a nie na poziomie użytkownika.
Uzasadnienie zmiany mapowania klawiatury
W dzisiejszym świecie komputerów Caps Lockklucz jest bardzo mało przydatny . Ogólnie rzecz biorąc, należy powstrzymywać się od używania WSZYSTKICH CZASÓW z powodu zarówno netykiety, jak i oddzielenia prezentacji i treści . Co więcej, przypadkowe naciśnięcie Caps Lockklawisza podczas edytowania tekstu
vim
nie zawsze jest od razu zauważane, ale niezmiennie skutkuje raczej irytującymvim
zachowaniem . Całkowite wyłączenie Caps Lockklucza i zmiana jego przeznaczenia na Escklucz łatwy do osiągnięcia skutkuje podwójną wygraną wvim
użyciu.źródło
Caps Lock
klucza może być prawdziwą oszczędnością dlavim
użytkowników komputerów Apple MacBook bezEsc
klucza .capslock
doctrl
. To rozwiązuje wiele innych problemów, więc w Vimie możesz użyćcapslock
+[
dlaEsc
Przepraszam za wtrącanie się, ale czułem się zobowiązany do zasugerowania tego.How do you use vim after you close the lid on your laptop?
otwierając pokrywę!Miałem też problem na Ubuntu 16.04 z fcitx i miałem rozwiązanie na wiki fcitx , ale potrzebuje fcitx w wersji 4.2.7 lub nowszej
touch ~/.Xmodmap
Istnieje również wyjaśnienie przyczyny.
źródło
Odpowiedź Daniela wskazała mi właściwą drogę, ale chciałbym ją rozwinąć.
Działa dla mnie na Linux Mint 17.2 i Ubuntu 16.04.
Próbowałem wszystkich zwrotów, o których mogłem nadal myśleć
xmodmap
, ale wszystkie zawodzą, gdy system przechodzi w tryb uśpienia. To samo dotyczy nawet skryptów uruchamiania aplikacji, które są używanesetxkbmap
w przypadkach, gdy * demon ustawień (dla mnie jest to xfce4) działa później niż skrypt --- i tak naprawdę nie można wpływać na kolejność.To, co w końcu wymyśliłem, zawiera następujące składniki:
1) Napisz minimalny plik mapowania klawiatury dla
/usr/share/X11/xkb/symbols
. Nazwijmy plikmylayout
Może to być tak proste, jakbasic
to tylko nazwa, spotkamy się później.name[Group1]
Podobnie jest tylko nazwa wydaje, ale to nie odgrywają żadnej roli później.include "us"
zawiera zwykłą klawiaturę amerykańską. Właściwieus
to inny plik w tym samym katalogu. Dostosowujemy układ klawiatury. Wybierz inny w razie potrzeby. Uwaga: brak średnika do zakończenia tego wiersza.key
Linia jest adaptacja klawiaturze, bardziej może obserwować.<AE03>
Można znaleźć w plikach poniżej/usr/share/X11/xkb/keycodes
. Skorzystaj zxev
programu, aby dowiedzieć się, że klawisz „3” ma kod 12 i w pliku kodówXfree86
jest mapowany<AE03>
.include
dyrektywa aktywująca inną opcję klawiatury, w tym przypadku chcę mieć prawy klawisz Alt, który będzie klawiszem zmiany poziomu 3, tj. Klawiszem, który daje dostęp dosterling
znaku, który zdefiniowałem powyżej.level3
to po prostu nazwa pliku w tym samym folderze zralt_switch
jedną jego częścią. Rozejrzyj się i wybierz, co musisz uwzględnić.2) Ja nie nie umieścić
mylayout
w folderze systemowym. Zamiast tego utworzyłem tylko miękkie łącze z folderu systemowego do folderu, który mi się podoba, aby natychmiast zobaczyć, że nie jest to oprogramowanie podstawowe.3) Ponadto nie naprawiłem
evdev.xml
, ponownie, aby zapobiec problemom z aktualizacją. Ale byłoby to konieczne, aby znaleźć mylayout w edytorze konfiguracji klawiatury (w przypadku Xfce4xfce4-keyboard-settings
). Zamiast tego użyłemxfce4-settings-editor
i zmieniłemkeyboard-layout->XkbLayout
namylayout
(nazwa pliku) iXkbVariant
nabasic
(patrz wyżej). Następniemylayout/basic
wyświetla się również w edytorze ustawień klawiatury. Wpisevdev.xml
wydaje się być niezbędny, aby móc wybrać układ.W ten sposób ustawienia klawiatury przetrwają teraz w trybie uśpienia i uruchomią się ponownie.
Więcej informacji można znaleźć tutaj: http://www.charvolant.org/~doug/xkb/html/node5.html .
Inne podejście do rozwiązania problemu z trybem uśpienia (sam nie próbowałem) można znaleźć tutaj: https://www.vinc17.net/unix/xkb.en.html .
AKTUALIZACJA: pracowałem z Mint 18.3 w tym samym momencie zmieniłem ustawienia w edytorze ustawień xfce4, jak opisano powyżej.
AKTUALIZACJA: Z 18.04, gdm3 jako menedżer wyświetlania i XFCE4 jako menedżer okien, wygląda na to, że ~ / .Xmodmap jest ponownie odczytywany i ustawienia wydają się przetrwać zawieszenie. (Rzadko używam zawieszenia i nigdy nie jestem pewien, w którym trybie jest naprawdę laptop).
źródło
REWIZJA
Aktualizacja na początku 2018 roku przerwała trwałość - automatyczne ponowne ładowanie mapy klawiszy po zawieszeniu lub hibernacji. Ponieważ metody wykorzystujące skrypty /etc/pm/sleep.d przestały działać (przestarzałe?), Pozostało tylko nowe podejście, używając / lib / systemd / system-sleep i nieco innych skryptów (które zaczęły działać na mapach klawiszy!).
Dlatego ten post został zaktualizowany do nowszej metody utrwalania i obejmuje normalne początkowe ładowanie mapy klawiszy, które również zaczęło działać. Procedura konwertowania pliku .Xmodmap na .xkbmap pozostaje niezmieniona.
Uwaga: jest to rozwiązanie dla użytkownika. Aby uzyskać odpowiedź na urządzenie, zobacz, jak zastosować mapę klawiszy do pojedynczego urządzenia . Metodę tę można dostosować do zastosowania tutaj.
Najpierw zmodyfikuj plik .Xmodmap zgodnie z potrzebami. Są one łatwiejsze do edycji bezpośrednio niż pliki .xkbmap. Po załadowaniu:
następnie przekonwertuj na plik .xkb:
Aby automatycznie załadować podczas uruchamiania, otwórz aplikacje startowe, kliknij Dodaj, aw wierszu polecenia wprowadź:
(„użytkownik” zastępuje się rzeczywistą nazwą użytkownika.) W polu Nazwa wpisz prawdopodobnie Załaduj mapę klawiatury. W razie potrzeby dodaj komentarz i naciśnij Zapisz.
Mapa klawiszy będzie się teraz ładować przy każdym uruchomieniu systemu, ale nie przetrwa zawieszenia ani hibernacji. W tym celu utwórz nowy plik w / lib / systemd / system-sleep, prawdopodobnie o nazwie 60_xkbmap, który zawiera:
( Patrz. ) Jak wyżej, zastąp „użytkownik” rzeczywistą nazwą użytkownika.
Mapa klawiszy powinna się teraz automatycznie ładować i pozostać trwała. Uwaga:
źródło
To mnie też potknęło, kiedy zaktualizowałem system Ubuntu 12.04 do 13.04.
Na szczęście to ustawienie jest teraz (a może zawsze było) łatwo dostępne w preferencjach klawiatury i można je zmienić kilkoma kliknięciami myszy.
Proszę bardzo: Lewy Control i Caps Lock zmieniły pozycje.
Nie zapomnij usunąć
~/.Xmodmap
po dokonaniu zmiany.źródło
XKBOPTIONS="ctrl:swapcaps"
w/etc/default/keyboard
.Uważam, że dodanie tego skryptu do uruchamiania jest satysfakcjonujące:
Próbowałem użyć
xmodmap ./Xmodmap
, ale za każdym razem, gdy jest wykonywana, wystąpi zauważalne opóźnienie.źródło
while; do
Należy unikać używania dowolnej nieskończonej pętli. Spowodowało to, że jeden rdzeń mojego dwurdzeniowego procesora uderzał o 42% co 5 sekund, znacznie zmniejszając ładowanie baterii laptopa!