Meniru klik mouse dengan keyboard

13

Saya ingin membuat tombol pada keyboard untuk bertindak seperti klik mouse, lebih disukai menggunakan xmodmap. Bagaimana saya melakukannya?

Menjalankan Ubuntu 10.10.

Zona
sumber
setxkbmap -option keypad:pointerkeysakan melakukan apa yang Anda inginkan. Kemudian shift-numlock.
peterh

Jawaban:

6

Langkah-langkah berikut akan membantu Anda mengubah kunci keyboard menjadi tombol mouse.

  1. Identifikasi tombol keyboard menggunakan xevutilitas.

    Menjalankan utilitas xev dan menekan tombol keyboard yang akan diputar ulang akan menampilkan sesuatu seperti ini

    KeyPress event, serial 37, synthetic NO, window 0x3e00001,
    root 0x82, subw 0x0, time 28977858, (-419,294), root:(175,613),
    state 0x0, keycode 38 (keysym 0x61, a), same_screen YES,
    XLookupString gives 1 bytes: (61) "a"
    XmbLookupString gives 1 bytes: (61) "a"
    XFilterEvent returns: False

    Perhatikan kode kunci yang akan disusun ulang.

  2. Jalankan utilitas xkbset

    xkbset m

  3. Remap menggunakan utilitas xmodmap.

    Dalam kasus di bawah ini, tombol menu dipetakan kembali ke tombol kanan mouse.

    xmodmap -e "keycode 135 = Pointer_Button3"

ramasamyz
sumber
lihat skrip saya superuser.com/questions/313926/... Gunakan tombol untuk tombol mouse di linux. Alternatif untuk AHK?
Russo
4

Saya membayangkan Anda bisa melakukan ini menggunakan xmodmap dan keymap Pointer_Button1.

Lihat di file /usr/include/X11/keysymdef.h untuk mengetahui ejaan dan kapitalisasi yang tepat, tetapi harus dimungkinkan untuk memetakan tombol keyboard ke tombol mouse (1,2,3, dll), bahkan dengan mengklik dua kali ( lihat file header, dekat baris 460 atau lebih)

keysym W = Pointer_Button1

MUNGKIN berfungsi, menyebabkan kunci W untuk bertindak sebagai tombol kiri mouse. Saya akan merekomendasikan menggunakan kunci yang berbeda, kecuali jika Anda tidak menggunakan huruf W, tetapi apa pun yang berfungsi untuk Anda. (tidak, aku tidak akan mencobanya sendiri, aku butuh huruf W!)

Lihat juga halaman manual untuk xmodmap, dan tentu saja isi dari /usr/include/X11/keysymdef.h untuk mendapatkan ejaan yang benar. Jatuhkan awalan XK_ untuk menggunakan nama keysym untuk xmodmap.

Sepertinya itu (keysymdef.h) dalam paket x11-proto-core-dev untuk sistem Debian saya ... Anda mungkin ingin mencari file dan isinya secara online, ragu Anda ingin menginstal semua file -dev yang terkait dengan dapatkan itu saja. GIYF.

Sesuatu menggelitik di belakang kepala saya tentang cara lain untuk melakukan ini, tetapi tidak ada yang datang kepada saya sekarang.

OH! Tergantung pada kebutuhan Anda, Anda mungkin melihat Emulasi Mouse Keyboard, dengan mengubah keypad numerik menjadi mouse dua tombol berfitur lengkap (tanpa roda gulir!).

lornix
sumber
1
Untuk info pembaca, tentang "Emulasi Mouse Keyboard": en.linuxreviews.org/... Kombinasi tombol untuk mengaktifkan ini telah dinonaktifkan secara default sejak beberapa waktu yang lalu dan sekarang dibutuhkan Option XkbOptions "keypad:pointerkeys". Menekan kunci bukan satu-satunya cara untuk mengaktifkan ini: xkbset mapakah ini sesuai dengan crunchbang.org/forums/viewtopic.php?id=27937 , dan dapat mengontrol batas waktu yang tidak menyenangkan dan juga mematikannya dari cmdline.
imz - Ivan Zakharyaschev
3

Mode "Emulasi Mouse Keyboard" internal dapat melakukan ini dan / tetapi memiliki kombinasi tombol yang telah dikonfigurasi sebelumnya untuk meniru berbagai klik dan penekanan mouse (untuk menyeret).

(FYI: Kombinasi tombol untuk mengaktifkan ini telah dihapus dari keymap default sejak beberapa waktu yang lalu dan sekarang perlu Option XkbOptions "keypad:pointerkeys".)

Menekan tombol bukan satu-satunya cara untuk mengaktifkan mode ini:

xkbset m

melakukan ini sesuai http://crunchbang.org/forums/viewtopic.php?id=27937 , dan dapat mengontrol batas waktu yang tidak menyenangkan dan juga mematikannya dari cmdline. Untuk mematikan batas waktu buruk:

xkbset exp =m

Jadi, xkbsetini benar-benar lebih praktis (daripada memiliki kunci hanya untuk mengaktifkan mode ini), karena xkbsetmemberi lebih banyak kontrol atas batas waktu yang diinginkan dll.

Numpad digunakan. Beberapa kombinasi dasar (selengkapnya di http://en.linuxreviews.org/HOWTO_use_the_numeric_keyboard_keys_as_mouse_in_XOrg :

  • /, *, -Adalah untuk memilih kiri, tombol tengah atau kanan;
  • 5untuk mengklik dengan tombol yang dipilih ;
  • 0dan .untuk menekan dan melepaskan tombol yang dipilih (untuk menyeret dll.)

Catatan tentang masalah mendapatkan "Emulasi Mouse Keyboard" selalu diaktifkan

  1. Saya tidak bisa mendapatkan "Emulasi Mouse Keyboard" selalu diaktifkan. Jadi saya mengandalkan kunci khusus (seperti dalam keypad:pointerkeys) untuk melakukan ini.

  2. Saya menemukan bahwa Xfce juga mengacaukan pengaturan ini, saat startup, jadi jika xkbset mdijalankan sebelum Xfce, maka pengaturannya tidak aktif. Karena itu, saya harus mengubah pengaturan dalam konfigurasi Xfce agar sesuai dengan keinginan saya secara keseluruhan, yaitu: Pengaturan Xfce: Aksesibilitas: Mouse: aktifkan emulasi . (Sumber bagi saya belajar tentang keberadaan opsi Xfce tersebut adalah: https://bugzilla.xfce.org/show_bug.cgi?id=3860 .) Ini sepertinya telah membantu. (Saya juga menonaktifkan touchpad saya xinput float ...; ini berantakan dengan beralih di antara konsol Linux, tetapi dapat dikerjakan lagi dengan menonaktifkan perangkat ini setidaknya dalam pengaturan Xfce.)

imz - Ivan Zakharyaschev
sumber