Binding Super ke Ctrl
Bagaimana dengan mengikat Windows/Logo/Super
kunci kiri Anda untuk bertindak sebagai Ctrl
kunci lain ?
Anda dapat mencapainya dengan perintah xmodmap berikut:
remove mod4 = Super_L
keysym Super_L = Control_L
add Control = Control_L
Dengan asumsi Anda menyimpan baris di atas karena super_as_ctrl.xmodmap
Anda dapat menguji efeknya dengan mengeksekusi
xmodmap super_as_ctrl.xmodmap
Untuk membuat perubahan permanen (tetap masuk kembali / reboot) ubah nama file ke .Xmodmap
dalam folder rumah Anda.
(Di atas diuji pada sistem live Ubuntu 11.10, tetapi harus sama untuk distribusi Linux lainnya)
Menyesuaikan pintasan Salin / Tempel untuk program terminal Anda
Setelah terikat Super
dengan Ctrl
Anda sekarang dapat digunakan Super-C
untuk menyalin hampir di mana-mana. Satu-satunya pengecualian yang umum adalah program terminal Anda. Namun Anda dapat mendefinisikan ulang pintasan di sana.
Saya menemukan bahwa bahkan gnome-terminal
memiliki opsi ini sekarang (saya tidak punya sampai saya terbiasa Ctrl-Shift-C
). Jika Anda menggunakan yang itu, buka Edit / Keyboard Shortcuts...
di menu dan tetapkan Ctrl-C
untuk menyalin dan Ctrl-V
menempel. Harus serupa untuk konsole
dll.
Dan jangan khawatir, Anda tidak akan kehilangan kemampuan untuk menghentikan program menggunakan jalan pintas. Setelah membatalkan pintasan salinan untuk terminal, Anda bisa menggunakan Ctrl-Shift-C
seperti yang Anda gunakan Ctrl-C
sebelumnya. Terminal tidak membedakan di sini jika Shift ditekan atau tidak. Dan jalan pintas tidak tertangkap lagi untuk salinan. Alternatif lain, ulangi terminasi ke pintasan lain, seperti yang disarankan MountainX dalam jawabannya.
XF86Copy dll. Tidak berfungsi
Mengenai simbol kunci untuk salin dan tempel: Rupanya mereka tidak memiliki efek. Saya mengujinya dengan cepat dengan menetapkan tindakan salin ke Shift-ScrollLock (itu tidak digunakan dan saya ingin menguji dengan kunci non modifier):
xmodmap -e 'keycode 78 = Scroll_Lock XF86Copy Scroll_Lock'
Menekannya tidak berpengaruh, juga dengan XF86AudioMute. Namun itu berhasil ketika menetapkan huruf 'a'. Jadi saya kira ada masalah khusus dengan simbol kunci khusus XF86 ini.
Jika Anda ingin mengikat hanya beberapa urutan dari bentuk Super + x, Super + c, Super + v ke urutan lain seperti Ctrl + x, Ctrl + c, Ctrl + v, misalnya sehingga (seperti OP yang diinginkan) ini urutan Super-key tertentu umumnya akan memetakan untuk memotong & menempel tanpa mempengaruhi penggunaan lain dari kunci Super pada sistem Anda, dimungkinkan hanya menggunakan ekstensi XKB. Prosedur di bawah ini menguraikan langkah-langkah dan memberikan dua contoh berbeda dari detail untuk dua pengaturan keyboard awal yang berbeda; semoga itu akan memberikan informasi yang cukup untuk beradaptasi dengan sistem Anda. Ini mengasumsikan Anda merasa nyaman dengan membuat dan mengedit file di sistem Anda, termasuk yang ada di lokasi sistem seperti
/usr/share/X11/xkb
.Putuskan di mana Anda ingin pohon konfigurasi XKB Anda berada. Pertama temukan satu sistem. Biasanya di / usr / share / X11 / xkb, dan saya tidak yakin bagaimana menemukannya jika tidak ada; Anda bisa mencari direktori di sistem Anda dengan nama "xkb". Bagaimanapun, setelah Anda menemukannya, Anda dapat memodifikasi sistem satu di tempat, atau Anda dapat menggunakan direktori pilihan Anda. Keuntungan menggunakan direktori sistem adalah Anda dapat lebih mudah melakukan perubahan, tetapi kekurangannya adalah bahwa pembaruan sistem di masa depan mungkin akan menimpa perubahan Anda (Anda telah diperingatkan). Bagaimanapun, semua nama file yang disebutkan selanjutnya adalah relatif terhadap direktori ini, yang akan saya rujuk ketika dibutuhkan sebagai $ XKBLOCAL $, dan semua perintah menganggap itu adalah direktori Anda saat ini.
Tentukan "tipe" XKB apa dari kunci x, c, v saat ini. Cara termudah untuk melakukan ini adalah melalui perintah
xkbcomp -a $DISPLAY - | grep -C 6 c,
(perhatikan koma sengaja dimasukkan dalam pola). Dalam pengaturan contoh pertama saya, ini menghasilkan:sedangkan dalam contoh setup saya yang lain ini menghasilkan
Hasilnya adalah bahwa dalam contoh pertama, kunci yang relevan bertipe "ALPHABETIC" sedangkan dalam contoh kedua mereka bertipe "FOUR_LEVEL". Bergantung pada pengaturan keyboard Anda, Anda mungkin menemukan bahwa mereka semua dari jenis lain. Dalam apa yang berikut, tipe akan disebut sebagai $ TYPE $, yang harus Anda ganti dengan string ALPHABETIC yang sebenarnya atau apa pun dalam perintah di bawah ini.
Temukan definisi $ TYPE $ dan salin ke file baru di direktori $ / types $ XKBLOCAL. Berikut adalah perintah yang tidak hanya itu:
xkbcomp -a $DISPLAY - | grep -z -o 'type "$TYPE$" {[^}]*};' > types/cutpaste
. Nama file "cutpaste" yang saya pilih adalah sewenang-wenang, gunakan nama apa pun yang Anda suka, tetapi perhatikan bahwa Anda harus merujuk file ini secara konsisten pada langkah-langkah selanjutnya. Pada pengaturan pertama, file ini mendapatkan kontendan dalam contoh lain ia mendapatkan isinya
Edit tipe file / cutpaste untuk melakukan dua hal: tambahkan mukadimah dan mukadimah yang membuatnya menjadi klausa XKB yang tepat, dan ubah nama tipe dan definisi tipe untuk menambahkan satu tingkat lagi yang dihasilkan oleh pengubah yang sesuai dengan Super. Anda harus memeriksa apa yang pengubah pada sistem Anda, kemungkinan Mod4 seperti yang digunakan di bawah ini. Modifikasi yang diperlukan harus jelas dari dua contoh versi final dari tipe / cutpaste, yaitu:
dan
Salin definisi simbol kunci yang dihasilkan oleh grep pada langkah kedua menjadi simbol file / cutpaste baru kedua, dan tambahkan basa-basi dan postamble yang serupa, dan modifikasi definisi untuk menggunakan tipe baru dan tambahkan tindakan ke definisi untuk menangani kunci yang diinginkan diproduksi oleh versi Super. Hasil dari ini dalam dua contoh kami adalah:
dan
Perhatikan bahwa dalam contoh kedua saya memeras beberapa spasi putih (tidak signifikan) juga untuk menjaga panjang garis di bawah sedikit kontrol.
Temukan nama aturan yang ditetapkan bahwa XKB sedang menggunakan. Itu mudah, ini ditunjukkan pada hasil
setxkbmap -query
. Dalam kasus saya, itu "evdev".Salin versi sistem aturan / evdev (atau apa pun nama aturan Anda set) adalah $ XKBLOCAL $ / rules / evdev dan tambahkan aturan yang menunjuk ke opsi yang telah kami buat. Anda memiliki dua pilihan di sini: Anda dapat menyalin semua evdev atau hanya bagian-bagian yang menyebutkan model keyboard, tata letak, varian, dan opsi yang sebenarnya Anda gunakan. Tentu saja, jika Anda memodifikasi file sistem di tempat, Anda tidak perlu melakukan penyalinan, cukup mengedit.
Dalam hal ini, apa yang ditambahkan adalah identik terlepas dari pengaturan keyboard awal, jadi hanya ada satu contoh. Anda menemukan bagian dari file aturan yang dimulai dengan
! option = symbols
dan menambahkan bariscutpaste:super = +cutpaste
ke bagian itu, dan Anda juga menemukan bagian dari file aturan yang dimulai dengan! option = types
dan bariscutpaste:super = +cutpaste
ke bagian itu juga.Salin versi sistem dari evdev.lst dan tambahkan baris untuk opsi baru Anda. Perhatikan bahwa nama file ini hanya sesuai dengan nama file aturan dengan .lst ditambahkan. Seperti pada langkah sebelumnya, Anda bisa menyalin seluruh file atau hanya bagian yang dirujuk oleh model, tata letak, varian, dan opsi yang Anda gunakan. Anda hanya perlu menemukan bagian dari file ini yang dimulai dengan
! option
dan menambahkan baris seperti ini:cutpaste:super Add super equivalents of cut and paste operations
ke bagian itu.OK, sekarang semua file konfigurasi sudah ada. Jika Anda memodifikasi file sistem, sekarang Anda dapat memanggil opsi baru dengan
setxkbmap -option cutpaste:super
. Di sisi lain, jika tidak, Anda harus membiarkan setxkbmap tahu di mana direktori $ XKBLOCAL $ Anda. Yang lebih parah, server tidak tahu di mana direktori itu berada, dan setxkbmap tidak (atau mungkin tidak bisa, karena pada akhirnya server mungkin berjalan di komputer lain) mengatakannya. Jadi, Anda harus mem-pipe output dari setxkbmap ke xkbcomp, dan juga memberi tahu perintah itu di mana direktori $ XKBLOCAL Anda berada. Oleh karena itu, baris perintah penuhsetxkbmap -I$XKBLOCAL$ -option cutpaste:super -print | xkbcomp -I$XKBLOCAL - $DISPLAY
.Semoga ini membantu / menarik bagi seseorang, karena dokumentasi / referensi XKB definitif yang baik jarang. Satu referensi yang sangat membantu adalah http://madduck.net/docs/extending-xkb/ .
sumber
setxkbmap -option
. Setup lokal saya hampir identik dengan contoh FOUR_LEVEL dengan pengecualian beberapa simbol Group2, Group3 yang saya tinggalkan dari file simbol parsial sehingga file saya terlihat sama seperti contoh.Inilah yang saya lakukan. Ini bukan solusi akhir, tetapi saya mencoba untuk mencapai solusi akhir dan tidak bisa sampai di sana setelah banyak usaha. Jadi saya memilih sesuatu yang sederhana dan bekerja lebih dari 90% dari apa yang saya butuhkan. Saya dapat mengimplementasikannya di komputer mana pun yang saya kunjungi (atau instal Linux baru) dalam hitungan menit. Sederhana sekali.
Dalam aplikasi terminal X, atur preferensi pintasan. Saya telah melakukan ini di Gnome dan KDE. Di Konsole, misalnya, buka Menu> Pengaturan> Konfigurasikan Pintasan. Ada menu serupa di terminal Gnome X. Cukup pilih pintasan (misalnya, "salin") dan masukkan urutan kunci yang diinginkan.
Jika terminal salin & tempel pintasan bertentangan dengan perintah terminal, ada juga perbaikan yang mudah. Sebagai contoh, bagaimana jika seseorang ingin menggunakan CTRL-C untuk salinan (sehingga terminal X sesuai dengan standar CUA)?
Dalam hal ini, Anda dapat mengubah binding kunci stty dengan mudah (dalam .bashrc). Melanjutkan CTRL-C untuk menyalin contoh, katakan Anda ingin kunci interrupt sekarang menjadi CTRL-b (untuk "istirahat"). Ini mencapai itu:
Kemudian sumber .bashrc.
Seluruh solusi sesederhana menggunakan pengaturan terminal X untuk mengubah pintasan dan kemudian, secara opsional, menyelesaikan konflik dengan stty dengan perintah gema satu baris. Mati sederhana dan mencakup hampir semua yang saya butuhkan.
sumber
Mungkin kunci Windows adalah kunci pengubah. jalankan ini dan coba lagi:
sumber
xmodmap -e 'remove Mod1 = Meta_L'
dan mencoba perintah Anda setelah) bekerja dengan baik untuk saya.Saya telah mengambil sebagian dari apa yang dikatakan Glen Whitney dan berhasil menggunakan pengetahuan itu untuk memetakan perilaku kata-buruk atau manipulasi teks dari MacOS ke dalam custom keymap.
Saya sudah memecahkan masalah Ctrl vs Super copy dan paste tanpa melibatkan solusi spesifik itu, tapi seperti saya katakan itu sangat membantu untuk hal-hal lain. Saya juga menghindari hal-hal seperti xmodmap karena saya bertujuan untuk sepenuhnya mendukung Wayland di beberapa titik. Kinto menggunakan xkb asli dan menghormati MacOS yang diharapkan seperti perilaku terminal.
https://github.com/rbreaves/kinto
https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0
Ini intinya juga, jika Anda hanya ingin melihat apa yang menjadi inti dari semuanya, itu tidak akan mengganti keymap Anda saat dibutuhkan. Gist juga tidak termasuk file keymap xkb khusus yang mengatur kursor macOS style / manipulasi kata-bijaksana yang menggunakan Cmd dan tombol panah.
https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb
konten inti
sumber