Utworzyłem następujący ~/.Xmodmap
plik zgodnie z tą odpowiedzią .
keysym Delete = Menu
keysym Menu = Delete
clear Lock
keycode 0x42 = Escape
Innymi słowy, swap Delete
i Menu
i uczynić Caps Lock
dodatkowy Escape
.
Podczas następnego logowania Ubuntu zapytał mnie, czy chcę załadować ~/.Xmodmap
zgodnie z oczekiwaniami. Załadowałem go, ale nic się nie wydarzyło (ani wtedy, ani przy kolejnych logowaniach). Jeśli uruchomię ręcznie xmodmap ~/.Xmodmap
, działa zgodnie z oczekiwaniami.
Wiem, że działało to na początku wersji 10.10 beta, ale nie działa w mojej nowej instalacji 10.10. Nie próbowałem niczego wcześniej niż 10.10. Jakieś pomysły?
Edycja: Wstawiłem kilka instrukcji debugowania, /etc/gdm/Xsession
aby upewnić się, że się ~/.Xmodmap
ładuje i wszystko magicznie zaczęło działać. Nie zmieniłem niczego oprócz dodania kilku echa, i wciąż działa teraz, kiedy cofnąłem moje zmiany i uruchomiłem ponownie. Najdziwniejsza rzecz, jaką kiedykolwiek widziałem.
Zrozumiałem, że część Xmodmap „remap Caps Lock to Escape” zawsze działała. Nie powiodła się tylko zamiana Usuń / menu. Na razie pozostawię to pytanie otwarte, na wypadek gdyby ktoś miał ten sam problem, ponieważ tak naprawdę nie wiem, dlaczego problem się zatrzymał.
Odpowiedzi:
Wiem, że to głupie, ale jako obejście można po prostu uruchomić się automatycznie
xmodmap ~/.Xmodmap
.Możesz także sprawdzić
/etc/gdm/Xsession
linięusermodmap="$HOME/.Xmodmap"
i jeśli jej nie ma, po prostu dodaj ją na końcu pliku. Jeśli jesteś jedynym użytkownikiem systemu, po prostu wprowadź zmiany/etc/X11/Xmodmap
.źródło
Settings->Session and Startup
lub coś w tym stylu.Późno na imprezę, ale to również doprowadzało mnie do szału; i uparty jak ja, poddanie się nie było opcją.
Zasadniczo to właśnie próbowałem (jako mój użytkownik lub root, jeśli to konieczne)
(Właściwie dodanie
xmodmap
polecenia~/.bashrc
działało, ale wymaga uruchomienia terminala za każdym razem po zalogowaniu)Kilka lat temu (?)
xkb
Został wybrany do obsługi mapowania i konfiguracji kluczy (interfejs z X), alexmodmap
może również poprosić o zmiany związane z kluczami w X, poxkb
tym jak wykonał swoją pracę podczas inicjowania sesji X.Problem polega na tym, kiedy powinny się pojawić te ustawienia xmodmap? Wygląda na
to, że powyższe pliki są przetwarzane zbyt wcześnie, a albo X nie był gotowy na zaakceptowanie zmian xmodmap, albo xkb je nadpisze.
Uwaga: Dodałem trochę „śledzenia” do tych plików, aby mieć pewność, że faktycznie zostały uruchomione w pewnym momencie!
Rozwiązanie, które wydaje się działać
.desktop
Początkowo nie chciałem dodawać pliku (wystarczył prosty skrypt w jednym wierszu), ale to działa, więc oto jest.Rozwiązanie pochodzi z Jak zmienić przypisanie lub zamianę specjalnych klawiszy klawiatury w systemie Linux? „rozwiązanie 1”
Zasadniczo utwórz
~/.config/autostart/my-xmodmap.desktop
plik i umieść w nim:zastąp
me
swoją nazwą użytkownika (pamiętaj, że nie zadałem sobie trudu, aby spróbować~/
lub$HOME
że może równie dobrze działać zamiast/home/me
, a pełna ścieżka xmodmap prawdopodobnie nie jest konieczna ...) i dodaj bit execW
~/.Xmodmap
tym przypadku polecenia xmodmap muszą znajdować się w pliku (lub skorzystać z-e
opcji lub wybrać inną nazwę pliku!). Wyloguj się i zaloguj ponownie.Pamiętaj, że możesz utworzyć program startowy z „Aplikacji startowych”.
Innym rozwiązaniem byłoby zapomnienie xmodmap i naucz się konfigurować
xkb
!Edytuj (ponownie)
Czasami, może 25% logowania,
xmodmap
nadal wydaje się nie działać - podczas gdy polecenie jest faktycznie uruchomione (tracker to potwierdza). Jedynym wnioskiem, do jakiego mogę teraz dojść, jest to, żexkb
proces działa późno w procesie logowania i może zakończyć się po jegoxmodmap
uruchomieniu. Wygląda jak warunek wyścigu ... W końcu zmieniłemexec
linię pliku z autostartem pulpitu na(zwróć uwagę
&
)mystart
to skrypt w nowym katalogu,bin
który utworzyłemi
Skrypt śpi 5 sekund przed uruchomieniem Xmodmap i śledzi, kiedy się uruchomił (w pliku
/tmp/xmodmap-has-run
).Mam nadzieję, że to wszystko!
źródło
Oto być może lepsza odpowiedź: http://cweiske.de/howto/xmodmap/ar01s06.html
Być może będziesz musiał trochę go ulepszyć, aby działał dla ciebie, ale instrukcje są już dostępne.
źródło
/etc/gdm/Xsession
), linie, które link mówi, aby dodać, już tam są.Być może w
~/.Xmodmap
pliku występuje błąd składniowy ?Spróbuj uruchomić:
To powinno wywołać błąd, jeśli taki istnieje.
źródło
Miałem ten sam dziwny problem, próbując uruchomić Xmodmap podczas logowania do sesji (ubuntu 13.04). W końcu udało mi się pracować z plikiem .xinitrc w folderze domowym, w którym umieściłem polecenie, ale z bezwzględnymi ścieżkami do niego, to znaczy:
/ usr / bin / xmodmap /home/MYNAME/.Xmodmap
Następnie musiałem zrestartować komputer (nie tylko ponownie go zalogować), aby został wykonany.
źródło