Różnica w lewo / w prawo super przycisk

10

Kiedy naciskam lewy Superklawisz, pojawia się skorupa gnoma, a kiedy naciskam prawy Superklawisz, nie pojawia się. Co więcej, naciśnięcie klawisza right Super+ Tpowoduje natychmiastowe otwarcie terminala, ale gdy używasz lewego super, muszę nacisnąć Tdwa razy, kiedy naciskam Ttylko raz, jest to podobne do zwykłego naciśnięcia klawisza Tbez przytrzymywania Superlewego. Ten ostatni punkt występuje również w przypadku innych skrótów, które zdefiniowałem (takich jak Super+ L, Super+ E), ale nie w przypadku Super+ Up/Down/Left/Right.

Chcę nacisnąć dowolny Superklawisz, aby uzyskać powłokę gnome i użyć dowolnego Superklawisza w połączeniu z, Taby natychmiast otworzyć terminal (i podobnie z innymi skrótami). Używam Ubuntu 12.04 LTS i powłoki gnome 3.

Erik
źródło
W Settings Manager -> Keyboard, czy jest jak opcja exo-open --launch TerminalEmulator? Jeśli tak, co mówi druga kolumna, skrót?
DaimyoKirby,
1) Czy masz na myśli sekcję Klawiatura w ustawieniach systemu? Jeśli tak, nie mogę go tam znaleźć. 2) Jeśli masz na myśli menedżera ustawień compiz, nie mogę go tam również znaleźć. Niezależnie od tego, wypróbowałem twoje polecenie w terminalu i mówi, że exo-open nie jest zainstalowany, więc bardzo wątpię, że ta opcja będzie dostępna. Istnieje jednak niestandardowy terminal uruchamiania skrótów z poleceniem x-terminal-emulator. Tego używam, ponieważ domyślny terminal uruchamiania nie działa.
Erik,

Odpowiedzi:

4

rozwiązanie xmodmap

Myślę, że możesz to zrobić za pomocą xmodmap , narzędzia do modyfikacji map klawiszy. Ponieważ moja klawiatura nie ma odpowiedniego Superklawisza, nie mogę potwierdzić tego rozwiązania, więc proszę zostawić komentarz, jeśli nie działa.
Wszystkie kroki są wykonywane w terminalu

Wydrukuj aktualną mapę modyfikatora
Uruchom

xmodmap

Powinno to wydrukować aktualną mapę modyfikatora, która powinna polubić coś takiego

xmodmap:  up to 4 keys per modifier, (keycodes in parentheses):

shift       Shift_L (0x32),  Shift_R (0x3e)
lock      
control     Control_L (0x25),  Control_R (0x69)
mod1        Alt_L (0x40),  Meta_L (0xcd)
mod2        Num_Lock (0x4d)
mod3      
mod4        Super_L (0x85),  Super_R (0x86),  Super_L (0xce),  Hyper_L (0xcf)
mod5        ISO_Level3_Shift (0x5c),  Mode_switch (0xcb)

Ważną linią jest mod4linia, ta linia pokazuje, które kody kluczy są mapowane na symbole kluczy Super_L i Super_R.

Utwórz
kopię zapasową mapy kluczy Zanim cokolwiek zmienimy, dobrym pomysłem jest wykonanie kopii zapasowej bieżącej mapy kluczy, możemy to zrobić za pomocą

xmodmap -pke > ~/.xmodmap.orig

Teraz, jeśli coś pójdzie nie tak, możesz po prostu pisać

xmodmap ~/.xmodmap.orig

aby przywrócić oryginalną mapę kluczy. (Jeśli popełniłeś poważne błędy i nie możesz już poprawnie pisać, działa również restart)

Sprawdź aktualną mapę kluczy dla Super kluczy
Zakładając, że Superklucze mają kolejne kody kluczy (w tym przypadku 0x85 i 0x86), możemy sprawdzić bieżące mapowanie, uruchamiając

xmodmap -pke | grep -wA1 $((0x85))

oczywiście, że powinieneś zmienić 0x85 za pomocą kodu klucza z mapy modyfikatora. To powinno ci dać

keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_R NoSymbol Super_R

( $((0x85))konwertuje liczbę szesnastkową na dziesiętną)

Skopiuj zachowanie lewej Super do prawej Super
Jak widać z poprzedniego kroku po prawejSuper klawisz ma kod klucza 134, ale chcemy, aby zachowywał się tak, jak lewy Superklawisz, który ma kod 133. Możemy to zrobić poprzez ponowne przypisanie klucza za pomocą

xmodmap -e "keycode 134 = Super_L NoSymbol Super_L"

Sprawdzanie, czy to działa
Jeśli teraz robisz

xmodmap -pke | grep -wA1 $((0x85))

powinieneś zobaczyć

keycode 133 = Super_L NoSymbol Super_L
keycode 134 = Super_L NoSymbol Super_L

co oznacza, że ​​oba klucze mają teraz takie samo zachowanie. Również mapa modyfikatora powinna się zmienić na linii zmod4 , możemy to sprawdzić, uruchamiając

xmodmap | grep 'mod4'

co powinno dać

mod4        Super_L (0x85),  Super_L (0x86),  Super_L (0xce),  Hyper_L (0xcf)

I oczywiście skróty, o których wspomniałeś, powinny również działać!

Zachowaj trwałe mapowanie
Jeśli to działa, możesz upewnić się, że ustawienia te zostaną automatycznie zastosowane podczas uruchamiania. Biegać

echo 'keycode 134 = Super_L NoSymbol Super_L' >> ~/.xmodmaprc

aby zapisać niestandardowe mapowanie kluczy w pliku ~/.xmodmaprc. Biegać

echo 'xmodmap ~/.xmodmaprc' >> ~/.xsessionrc

aby upewnić się, że niestandardowa mapa kluczy jest wykonywana podczas ładowania menedżera okien.

Gerhard Burger
źródło
1
Przede wszystkim dziękuję za odpowiedź. Zrobiłem wszystko, aby mapowanie było trwałe. Wyjście w terminalu było dokładnie takie, jak wspomniano, jednak moje problemy pozostają takie same: lewy super pokazuje powłokę gnome, a prawy nie. I podobnie w przypadku skrótów, z lewym super, będziesz musiał nacisnąć t dwa razy, aby otworzyć terminal, a z prawym super raz wystarczy.
Erik,
1
hmm, więc jestem też nieświadomy: PI sądzę, że te skróty są obsługiwane na głębszym poziomie.
Gerhard Burger
1
Ach, znalazłem raport o błędzie, znacznie więcej osób ma ten sam problem :) bugzilla.gnome.org/show_bug.cgi?id=659899
Gerhard Burger