Przekształć normalny klucz w klawisz modyfikujący

11

Mam klawiaturę, która z jakiegoś niewytłumaczalnego powodu zawiera klawisz, który wysyła symbol dolara duńskiego do OS X - §. Z przesunięciem wysyła symbol plus / minus - ±.

Czy w Emacsie można zobaczyć §klucz i przekonwertować go na Hyper lub Super? Więc jeśli przytrzymam ten §klawisz i nacisnę f, aktywuje się on H-fw Emacsie.

Próbowałem następujących czynności, które nie działają:

(define-key key-translation-map (kbd "§") (kbd "<Hyper>"))

Mówi tylko <Hyper> is undefinedpo naciśnięciu klawisza i wcale nie działa jako modyfikator.

To również nie działa:

(define-key key-translation-map (kbd "§") "<Hyper>")

to po prostu zamienia §klucz w <klucz.

Matt Darling
źródło
2
Powinieneś być w stanie to zrobić na poziomie systemu operacyjnego, ale nie w emacs.
Malabarba

Odpowiedzi:

4

Krótka wersja : w kategoriach Emacsa tak naprawdę potrzebowałem akordów klawiszowych .


@Malabarba i @XinUmbralis wydają się mieć rację - Emacs nie pozwala normalnie zmienić normalnego klawisza w klawisz modyfikujący. Nie podoba mi się pomysł łączenia każdego klawisza modyfikatora na klawiaturze i nazywania go „Hyper”, ponieważ może on w przyszłości powodować konflikty z innymi rzeczami.

Już korzystam z Karabinera i najwyraźniej możesz za jego pomocą tworzyć niestandardowe modyfikatory . Ale to wymaga mapowania każdej kombinacji na poziomie systemu operacyjnego, aby, powiedzmy, §-awysłać coś, co Emacs wie, jak sobie z tym poradzić.

Potem przypomniałem sobie bibliotekę akordów klawiszowych i zdałem sobie sprawę, że to była prawdziwa terminologia Emacsa do tego, czego chciałem. Przykładowa konfiguracja:

(require 'key-chord)
(key-chord-mode 1)
(key-chord-define-global "§a" 'other-frame)

Jedyny problem, jaki mam z akordem klawiszowym, polega na tym, że semantyka akordu kluczowego różni się nieco od modyfikatora + klawisza - powtórzenie jest niedozwolone, a cały akord musi być wprowadzony bardzo szybko.

Jeśli znajdę rozwiązanie tych problemów, napiszę o tym gdzieś i podam link do edycji tej odpowiedzi.

Matt Darling
źródło
3

Ponowne powiązanie klawisza znaku sekcji (klawisz §) może być niemożliwe, aby wysłać polecenie hyper, ale można ponownie powiązać klawisz Caps-Lock, aby wysłać Hyper, używając Seil PCKeyboardHack .

Aby ponownie powiązać klawisz Caps-Lock w Seil, wykonaj następujące czynności:

  1. Otwórz Seil i kliknij „Zmień klucz Caps Lock”.
  2. Zaznacz pole wyboru obok „Zmień klucz Caps Lock”.
  3. Kliknij dwukrotnie kod dostępu i wprowadź kod dostępu 80.
graycodes
źródło
1
Ta odpowiedź byłaby prawdopodobnie lepsza jako komentarz. Zasadniczo odpowiedzi nie powinny zawierać linków, po części dlatego, że linki mogą zniknąć w dowolnym momencie. Czy możesz edytować swoją odpowiedź, aby była bardziej samodzielna?
Dan
Niestety, przynajmniej dla mnie ustawienie kodu kluczowego na 80 nic nie robi.
Marcin