Ubah kunci normal menjadi kunci pengubah

11

Saya memiliki keyboard yang, untuk beberapa alasan yang tidak dapat dijelaskan, menampilkan tombol yang mengirimkan simbol Dolar Denmark ke OS X - §. Dengan shift, ia mengirim simbol plus / minus - ±.

Apakah mungkin dalam Emacs untuk melihat §kunci dan mengubahnya menjadi Hyper atau Super? Jadi jika saya tahan §tombol itu dan tekan f, itu akan aktif H-fdi Emacs.

Saya sudah mencoba yang berikut ini, yang tidak berfungsi:

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

Itu hanya mengatakan <Hyper> is undefinedsaat menekan tombol, dan tidak bertindak sebagai pengubah sama sekali.

Ini juga tidak berfungsi:

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

yang baru saja mengubah §kunci menjadi <kunci.

Matt Darling
sumber
2
Anda harus dapat melakukan ini di level OS, tetapi tidak di emacs.
Malabarba

Jawaban:

4

Versi singkat : dalam istilah Emacs, yang benar-benar saya butuhkan adalah kunci-kunci .


@Malabarba dan @XinUmbralis tampaknya benar - Emacs tidak membiarkan Anda mengubah kunci normal menjadi kunci pengubah secara normal. Saya tidak terlalu suka ide menggabungkan setiap tombol pengubah pada keyboard dan menyebut itu "Hyper", karena itu bisa bertentangan dengan hal-hal lain di masa depan.

Saya sudah menggunakan Karabiner, dan ternyata Anda bisa membuat pengubah khusus dengannya. Tapi itu membutuhkan pemetaan setiap kombinasi pada level OS sehingga, katakanlah, §-amengirimkan sesuatu yang Emacs tahu bagaimana mengatasinya.

Lalu aku ingat perpustakaan kunci-kunci , dan menyadari itu adalah terminologi Emacs yang sebenarnya untuk apa yang aku inginkan. Contoh konfigurasi:

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

Satu masalah yang saya miliki dengan kunci-akor adalah bahwa semantik kunci-kunci sedikit berbeda dari kunci pengubah + - tidak ada pengulangan yang diizinkan, dan seluruh akor harus dimasukkan dengan sangat cepat.

Jika saya menemukan solusi untuk masalah-masalah itu, saya akan menulis tentangnya di suatu tempat dan memberikan tautan dalam edit untuk jawaban ini.

Matt Darling
sumber
3

Anda mungkin juga mungkin tidak dapat memutar kembali kunci tanda bagian (kunci §) untuk mengirim perintah hyper, namun Anda dapat memutar kembali tombol caps-lock untuk mengirim Hyper, menggunakan Seil PCKeyboardHack .

Untuk memutar kembali caps-lock key di Seil, lakukan saja hal berikut:

  1. Buka Seil dan klik 'Ubah tombol caps lock'.
  2. Pilih kotak centang di sebelah 'Ubah kunci huruf besar'.
  3. Klik dua kali pada kode kunci, dan masukkan kode kunci 80.
kode abu-abu
sumber
1
Jawaban ini mungkin akan lebih baik sebagai komentar. Secara umum, jawaban harus lebih dari sekadar menyediakan tautan, sebagian karena tautan itu bisa hilang kapan saja. Bisakah Anda mengedit jawaban Anda agar lebih mandiri?
Dan
Sayangnya, setidaknya bagi saya, mengatur kode kunci ke 80 tidak melakukan apa-apa.
Marcin