Bagaimana cara memetakan kembali menu konteks ke kunci lain di linux?

19

Saya baru saja membeli Lenovo Thinkpad dan saya sangat bangga dengan semua yang ada di dalamnya. Rasanya sama kokohnya dengan kernel Linux: P.

Masalahnya adalah bahwa Lenovo memutuskan untuk menghapus tombol menu konteks yang merupakan kunci yang melakukan hal-hal klik kanan. Mereka menggantinya dengan tombol layar cetak. Keyboard saya memiliki bagian numeriknya dengan beberapa tombol di atasnya. Ada tombol kaca pembesar yang ingin saya remap untuk membuka menu konteks atau menjadi tombol klik kanan. Apakah mungkin melakukan ini?

Saya sudah mencoba mencari pertanyaan terkait lainnya tetapi saya hanya menemukan Tanya Jawab tentang cara menambahkan opsi ke menu konteks Nautilus. Saya ingin memetakan kunci fisik keyboard saya untuk membuka menu ini. Sama seperti sebelumnya. Tampaknya juga Dell menjatuhkan kunci ini di keyboard inspiron mereka. Saya tidak tahu apa yang terjadi karena saya menggunakan keyboard lebih dari mouse.

Terima kasih sebelumnya.

Jhonnytunes
sumber
3
Silakan instal xbindkeys dengan sudo apt-get install xbindkeys. Kemudian dalam terminal run xbindkeys -kdan ketik kunci yang ingin Anda ubah. Bisakah Anda menambahkan output ke pertanyaan Anda?
Seth
"NoCommand" m: 0x50 + c: 46 Mod2 + Mod4 + l
Jhonnytunes
Siapa yang ingin kunci Layar Cetak di mana mereka mengharapkan tombol Menu? Saya benar-benar ingin tahu seberapa mabuk Anda diizinkan muncul untuk bekerja di Lenovo. Pokoknya, perhatikan bahwa Anda tidak perlu .Xmodmapdihasilkan oleh xmodmap -pkeuntuk memulai dengan, Anda bisa juga hanya menempatkan Anda mengikat dalam file kosong. Juga, lihat apa yang ditemukan oleh @Baha_hi di bawah ini.
J. Katzwinkel

Jawaban:

13

Ini sedikit rumit tetapi Anda bisa melakukannya. Ikuti langkah ini:

Deteksi kode kunci

  1. Jalankan xevuntuk mendeteksi kode kunci:

    xev | grep keycode
    
            state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
            state 0x0, keycode 107 (keysym 0xff67, Menu), same_screen YES,
            state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    
  2. Tekan tombol yang ingin Anda konfigurasi ulang. Output di terminal akan menunjukkan kepada Anda keycode(hati-hati, mungkin ada beberapa).

Tes pemetaan

  1. Tetapkan pemetaan baru untuk sementara, bagi saya itu keycode 107:

    xmodmap -e "keycode  107 = Return NoSymbol Return"
    

Jika kunci berperilaku seperti yang diharapkan, Anda dapat menyimpan konfigurasi.

Simpan konfigurasi Anda

  1. Simpan tabel keymap Anda saat ini ke $HOME, untuk mengganti defau:

    xmodmap -pke > ~/.Xmodmap
    
  2. Buat atau edit ~/.xinitrcuntuk memuat konfigurasi Anda:

    $EDITOR ~/.xinitrc
    
  3. Tambahkan baris berikut

    if [ -f $HOME/.Xmodmap ]; then
            /usr/bin/xmodmap $HOME/.Xmodmap
    fi
    

Nikmati

Sebagian besar informasi di atas berasal dari artikel ArchWiki .

Ed Villegas
sumber
Ada masalah. Ketika saya menekan tombol 'l' ditandai. Saya memeriksanya di xev dan memberi saya 46 kode kunci yang ditugaskan untuk huruf L. Mungkin tidak ada kode kunci yang bisa diambil.
Jhonnytunes
@Jhonnytunes. Pastikan tata letak keyboard Anda benar. Anda dapat mengubah model dengan mengetikkan `sudo dpkg-reconfigure keyboard-configuration`.
Ed Villegas
Masih behaivor yang sama. Saya mencoba model thinkpad yang berbeda dan tidak ada.
Jhonnytunes
BTW thinkpad saya adalah E530c dan tidak muncul dalam daftar keyboard.
Jhonnytunes
Jika ini adalah tata letak papan ketik Anda, mungkin tombol di sebelah «Hapus» sebenarnya adalah «Menu konteks» (fungsi yang Anda cari). Jika tidak, konfigurasi ulang tombol lain atau tanyakan langsung meja Lenovo tata letak mana yang harus Anda pilih.
Ed Villegas
12

Saya menemukan di sini bahwa menggunakan: shift+ F10membuka menu konteks.

Saya tahu itu bukan solusi terbaik tapi saya pikir ini bisa membantu untuk penggunaan sementara!

PS: Saya punya e530c juga, dan saya coba ini di Debian 7 (Wheezy).

Bahax
sumber
3

Saya akhirnya menemukan cara untuk melakukan ini setelah berjam-jam tes dan gagal: D

Pertama-tama instal xautomation:

sudo apt-get install xautomation

Kemudian buka tab Shortcut pada bagian Keyboard di Pengaturan Sistem Ubuntu. Pertama masuk ke entri Screenshot dan remap tindakan ke tombol lain atau nonaktifkan jika Anda mau. Saya mengganti kunci PrtSc (Print) dengan tombol hitam Thinkpad (Launch1).

Sekarang, masuk ke bagian Pintasan Khusus dan tambahkan pintasan. beri nama apa pun yang Anda suka, misalnya Menu. Di kolom Command, masukkan ini:

xte 'keydown Shift_L' 'key F10' 'keyup Shift_L'

Pekerjaan selesai! Ini bekerja seperti keajaiban;)

Danial Behzadi
sumber
2

Ini berhasil bagi saya. Bagi saya kode kunci untuk tombol "PrtSc" di thinkpad saya adalah 107. Saya menemukan itu dengan alat "xev" di ubuntu.

xmodmap -e "keycode  107 = Menu"

Ini adalah perubahan sementara.

Anda dapat menjadikan ini permanen dengan menambahkan perintah ini ke / etc / profile dan itu akan mengeksekusi setiap kali Anda boot dan itu akan menjadi perubahan permanen.

Null Pointer
sumber
1

Saya baru saja memperoleh Lenovo E550 dan memiliki masalah yang sama, saya menyelesaikannya dengan menggunakan xte(dari xautomation) bersama xmodmap.

Mengapa jawaban lain tidak akan berfungsi sepenuhnya?

  1. Jawaban @Ed Villegas (atau @Null Pointer ) tidak akan berfungsi karena beberapa tombol yang terletak di atas bagian numerik bukanlah kunci unik sendiri ( mis . Kunci kunci terkait dengan kombinasi Super+ L). Ketika xevdigunakan untuk mencoba untuk menemukan kode kunci kunci kunci itu kembali baik Superdan Lkeycodes, Anda hanya perlu menafsirkan xevbaris output dengan line.

  2. Untuk @Bahax dan @John Finegan : Shift+ F10adalah tombol menu konteks, itu tidak berfungsi di semua aplikasi dan tidak menyediakan fungsi yang sama seperti Menu. Jika Anda memilih file di file explorer dan menekan Menumenu konteks untuk file itu sendiri akan muncul, ini tidak terjadi dengan kombinasi Shift+ F10, itu akan menyediakan menu konteks untuk jendela.

  3. @Danial Behzadi mengambil pendekatan yang mirip dengan orang-orang di item ke-2, tetapi menautkan kombinasi keyboard ke satu tombol melalui simulator keystroke, itu akan menautkan kunci ke Shift+ F10dan memberikan hasil yang sama.

Jawabannya berhasil

Penting untuk mempertimbangkan bahwa kunci yang tidak ada di keyboard ThinkPad adalah Menu(itu namanya), ditunjukkan pada gambar berikut:

Tombol menu

Meskipun kuncinya tidak ada, kode kunci itu harus ada di komputer Anda, Anda dapat menemukannya dengan mencetak tabel kode kunci xmodmap -pke | grep Menuyang seharusnya memberi Anda sesuatu seperti:

output xmodmap

Dengan mengingat hal itu, instal xautomation(untuk digunakan xteuntuk simulasi keystroke) seperti pada @Danial Behzadi jawab:

sudo apt-get install xautomation

Dan buat pintasan khusus, di Trigger tekan tombol yang Anda inginkan sebagai pintasan, dan di Actiontempel xte 'key Menu'. Terapkan dan uji.

Hans
sumber