Saya mencoba menggunakan kembali tombol Caps lock yang tidak berguna untuk sesuatu yang bermanfaat pada 16,04 MATE. Saya telah menemukan
setxkbmap -option ctrl:nocaps
untuk menonaktifkannya, tetapi bisakah itu dipetakan ulang untuk memutar / menghentikan VLC misalnya? Terima kasih atas jawaban Anda!
vlc --key-play-pause <key-string>
, tapi saya belum menemukan string yang diterima VLC sebagai capslock ...dconf-editor
mencoba beberapa hal, diinstalxdotool
mencoba beberapa hal dan akhirnyaxbindkeys
dan mencoba beberapa hal. Di akhir latihan yang sia-sia ini tombol jeda / putar keyboard saya rusak DAN tombol putar / jeda layar saya diklik dan musik tidak mau diputar. Saya melakukan ini pada 16,04 sehingga reboot pada 18,04 untuk mengkonfirmasi semuanya masih berfungsi dan itu adalah peretas perangkat lunak yang melakukannya. Satu-satunya rahmat yang menyelamatkan adalah saya hanya memutar musik melalui ponsel Android dan bukan PC. Hanya kepala bagi orang lain untuk berhati-hati dan mendokumentasikan apa yang Anda lakukan untuk mesin Anda lebih baik daripada saya.Jawaban:
evtest dan dbus
Ini adalah versi yang melibatkan skrip kecil yang berjalan di latar belakang. Beberapa langkah mudah perlu diambil:
Instal evtest Program:
sudo apt install evtest
. Program ini dapat memecahkan kode dan mencetak peristiwa mentah dari/dev/input/
hierarki perangkat.Tambahkan akun pengguna Anda ke grup
input
. Logout dan login lagi. (Ini diperlukan karena kita akan membaca dari beberapa perangkat di bawah/dev/input/
, yang biasanya hanya dapat dilakukan oleh root atau pengguna dalam grupinput
. Kita dapat menjalankan skrip sebagai root, tetapi kemudian kita harus menemukan cara untuk memberi tahu pengguna mana yang Misalnya dbus perlu diajak bicara.)Nonaktifkan tombol capslock seperti yang Anda lakukan atau gunakan preferensi Mate yang sesuai. Ini juga akan berfungsi jika Anda memetakan tombol capslock ke ctrl, seperti yang dilakukan banyak orang.
Simpan skrip berikut di suatu tempat, mis
$HOME/bin/capshack
dan buatlah itu dapat dieksekusi:Script di atas akan mendengarkan acara keyboard Anda dan menjalankan perintah ketika tombol capslock ditekan. Perintah yang dijalankan menggunakan dbus untuk mengirim acara play / pause ke instance VLC yang sedang berjalan. Anda mungkin harus mengubah
KEYBOARD
variabel untuk menunjuk ke keyboard Anda yang sebenarnya, tetapi kemungkinan nilai di atas akan berfungsi.Jika Anda lebih suka fungsi toggleVLC () dipanggil ketika Anda melepaskan tombol capslock, Anda dapat mengubah
EVENT
variabel dalam skrip sehingga berakhir denganvalue 0
alih - alihvalue 1
.Selain itu, mungkin bagi Anda kode kunci tombol capslock berbeda dari 58. Anda dapat memeriksanya dengan menjalankan
evtest
, lihat output ketika Anda menekan capslock, dan sesuaikan variabel ACARA. Anda bahkan tidak perlu mencocokkan dengan kode kunci dan mengatur ACARA hanya untuk(KEY_CAPSLOCK), value 1
.Alih-alih menggunakan skrip evtest dan di atas, Anda dapat menggunakan thd dari paket triggerhappy (sesuatu seperti
thd --dump /dev/input/*
akan memberikan output yang serupa) tetapi saya menemukan bahwa sedikit kurang mendidik.Sekarang kami membuat unit systemd pengguna untuk memulai skrip secara otomatis di latar belakang:
Buat hierarki systemd pengguna:
mkdir -p $HOME/.config/systemd/user
Tambahkan teks berikut ke file
$HOME/.config/systemd/user/capshack.service
Aktifkan unit layanan yang baru saja Anda buat:
systemctl --user enable capshack
Mulai layanan:
systemctl --user start capshack
Mulai sekarang Anda harus dapat beralih bermain / jeda di VLC menggunakan tombol capslock. Skrip latar belakang harus dimulai secara otomatis saat Anda masuk.
memicu bahagia
Seperti yang sudah disebutkan, Anda juga bisa menggunakan paket triggerhappy untuk melakukan ini. Ini adalah metode yang disukai untuk orang-orang yang ingin bermain-main kurang dengan sistem dan lebih suka solusi yang lebih solid.
Tambahkan pengguna ke
input
grup seperti di atasInstal paket:
sudo apt install triggerhappy
Tambahkan konfigurasi untuk triggerhappy ke
~/.config/thd/capslock.conf
:Jalankan thd seperti ini:
thd --triggers ~/.config/thd/capslock.conf /dev/input/event*
Jadikan thd berjalan untuk pengguna Anda dengan cara yang sama seperti yang dijelaskan untuk capshack.
Pastikan Anda hanya menjalankan salah satu dari metode yang disebutkan (capshack atau thd), untuk tidak menggandakan toggle yang ditekan setiap tombol.
Saya menguji semua ini pada 18,04 di bawah sesi standar dan 16,04 pasangan. Tetapi secara teoritis harus juga bekerja di bawah wayland atau dengan lingkungan desktop lainnya.
sumber
[[ test ]] && \
dan baris kedua menjorok empat spasi dengan<command>
untuk menjalankan tes positif. Saya setuju dengan sepenuh hati tentang keterbacaan karena rekomendasi saya asing bagi kebanyakan bahasa pemrograman.triggerhappy
harus menjadi cara untuk pergi, karenaevtest
sebenarnya ini adalah program debugging :)m
, jadi skrip itu tidak berfungsi. Saya sarankan memeriksaxmodmap -pke | grep Caps_Lock
sebelum menggunakan skrip ini untuk memastikan kode kunci sudah benar.Di Ubuntu 16,04 setelah menghabiskan berjam-jam googling & mengutak-atik
dconf-editor
danxbindkeys
saya menemukan solusi yang sangat mudah:Jika Anda membutuhkan
XF86AudioPlay
dukungan Gnome yang Anda butuhkanxdotool
(tidak diperlukan untuk VLC seperti yang ditentukan OP):Sekarang inilah bagian yang sulit. Setiap kali Anda menekan Caps LocKtombol untuk beralih musik antara Putar dan Jeda, huruf kapital juga matikan dan hidupkan.
Gunakan metode ini untuk mematikan sakelar Caps Lock sambil tetap mengaktifkan kunci:
Pemutar musik yang mematuhi Gnome
Kemudian di Ubuntu 16.04 buka Pengaturan >> Keyboard >> Pintasan >> Pintasan Khusus :
Audio Play
xdotool key XF86AudioPlay
Setelah menambahkan opsi baru, tombol pintasan yang ditetapkan akan membaca Dinonaktifkan . Klik Dinonaktifkan dan ketika diminta untuk menetapkan tombol tekan Caps LocKtombol.
Pemutar musik seperti VLC
Ikuti langkah-langkah untuk Gnome di bagian sebelumnya tetapi untuk perintah gunakan ini sebagai gantinya:
VLC tidak akan mengenali kunci media: Bagaimana cara membuat tombol media keyboard untuk bekerja dengan VLC secara global? bahkan ketika dimasukkan ke dalam keyboard. Karenanya pintasan keyboard khusus untuk XF86AudioPlay tidak berguna dengan
xdotool
.Mengatur pintasan keyboard khusus dari baris perintah
T&J ini membahas cara mengatur pintasan keyboard khusus dari baris perintah: Bagaimana mengatur pintasan keyboard khusus dari terminal?
Nonaktifkan caps lock secara permanen
Langkah selanjutnya adalah membuat ini
setxkbmap -option caps:none
persisten di seluruh reboot. Googling menghasilkan jawaban ini oleh Terdon: Simpan pengaturan setxkbdmap :Cara mudah adalah menambahkan perintah ke
$HOME/.profile
file Anda (Anda dapat membuatnya jika tidak ada):Itu harus membuatnya berjalan setiap kali Anda masuk.
Perhatikan bahwa Anda harus menggunakan
$HOME/.profile
daripada$HOME/.bash_profile
,$HOME/.bashrc
atau file serupa lainnya. Ini karena pengaturan ini harus dibaca oleh manajer login Anda.sumber
setxkbmap -option caps:none
. Program utilitas diinstal namun Wayland terus berganti-ganti antara huruf besar dan huruf kecil. Anda dapat memposting pertanyaan terpisah tentang bagaimana cara agar Wayland dihormatisetxkbmap
.Jawaban ini telah diuji pada Ubuntu MATE 16.04.4 LTS dalam sebuah VM (tetapi keyboardnya adalah keyboard USB pada passthrough, sehingga seharusnya tidak membuat perbedaan). Ini juga tidak memerlukan perangkat lunak tambahan, dan dapat dilakukan pada instalasi vanilla tanpa menginstal paket apa pun, dan itu tetap ada di antara boot.
Remap Caps Lock
Edit file
/usr/share/X11/xkb/symbols/pc
sebagai root. Berhati-hatilah untuk tidak membuat kesalahan di sini (seperti melupakan koma) karena Anda mungkin tidak dapat menggunakan keyboard lagi jika melakukannya. (Coba tebak apa yang saya pelajari dengan cara yang sulit?;)Berikan komentar
dengan menempatkan dua garis miring ke depan (
//
) di awal.Tambahkan di bawahnya baris berikut:
Berikan komentar
dengan cara yang sama seperti di atas.
Mulai ulang.
Catatan: (dikreditkan ke danzel karena menunjukkan ini) Pembaruan paket
xkb-data
dapat menimpa file ini. Metode yang cukup aman untuk mencegah hal ini adalah mengalihkan jalur menggunakandpkg-divert
. (Saya katakan "cukup aman" karena sumber hulu untuk file ini belum dimodifikasi dalam tiga tahun.)Metode Alternatif
Nonaktifkan tombol Caps Lock secara manual di pengaturan tata letak keyboard Anda, lalu gunakan pendekatan dalam jawaban ini untuk menambahkan pemetaan ulang kunci Anda sendiri.
Masalah?
Kunci caps lock Anda tidak lagi mengunci caps, dan telah dipetakan ulang untuk Putar / Jeda pada saat ini. Anda harus dapat memutar dan menjeda musik di VLC sekarang. Jika berhasil pada saat ini, Anda dapat melewati sisa instruksi ini.
Namun, ketika saya mencobanya, VLC tidak menanggapi kunci Play / Pause.
Pastikan pintasan keyboard diatur dengan benar
Buka Pintasan Keyboard (Sistem → Preferensi → Perangkat Keras → Pintasan Keyboard)
Pastikan bahwa "Mainkan (atau Mainkan / Jeda)" diatur ke "XF86AudioPlay"
Jika tidak, klik pada bagian "Pintasan" dan tekan tombol Mainkan / Jeda baru Anda untuk mengatur pintasan.
Jika masih tidak berhasil, reboot beberapa kali untuk ukuran yang baik. (Sebenarnya itulah yang memperbaikinya bagi saya.)
sumber
xkb
opsi, terutama opsicaps:...
. Juga, itu bisa ditimpa oleh pembaruan sistem.Instal
xbindkeys
, xcape dan playerctl . Pastikanxcape
(pemetaanCapsLock
ke kunci cadangan sepertiAlt+F12
olehxcape -e 'Caps_Lock=Alt_L|F12
) dan diplayerctl
-autostart pada saat masuk, dan tambahkan ke file~/.xbindkeysrc
dua barissumber
Jadikan tombol capslock Anda tombol putar / jeda
Solusi ini akan memetakan ulang scancode kunci capslock Anda ke kode kunci yang berbeda pada driver input kernel, dalam hal ini play / pause.
Keuntungan
xkb
konfigurasiKekurangan
Prasyarat
sudo apt-get install evtest
)Prosedur
Di terminal, jalankan
sudo evtest
dan pilih keyboard Anda. Jika tidak ada output saat Anda menekan tombol, tekan Ctrl+ Cdan coba perangkat lain. Ingat nomor acara perangkat yang Anda pilih, kami akan membutuhkannya nanti. Tekan tombol capslock. Beberapa baris seperti berikut ini akan muncul:Kami membutuhkan nilai dari
MSC_SCAN
garis sebelumKEY_CAPSLOCK
garis. Pada contoh di atas, ini akan menjadi 70039, tetapi scancode pada keyboard Anda mungkin berbeda.Sekarang jalankan perintah berikut, tetapi ganti X dengan nomor acara perangkat yang Anda gunakan untuk
evtest
perintah:... ini akan menampilkan
bustype
,product
,vendor
danversion
keyboard.Buat sebuah file bernama
65-keyboard-custom.hwdb
dalam/etc/udev/hwdb.d/
(akses root diperlukan) dengan konten berikut:...dimana
evdev:...
garis memiliki tidak ada ruang sebelumnyaKEYBOARD_KEY...
garis memiliki tepat satu ruang sebelumnyaSebagai contoh:
Terakhir, kompilasi konfigurasi baru ke basis data perangkat keras:
Jika Anda ingin segera menerapkan perubahan, informasikan udev:
Jika Anda ingin mengembalikan perubahan, hapus saja file yang Anda buat dan reboot.
Anda dapat menemukan informasi lebih rinci dalam jawaban asli saya tentang topik ini.
sumber
Mungkin menggunakan
xbindkeys
atauXTE
Anda bisa melakukannya. Tapi pertama-tama pastikan apa yang dimaksud dengan Kode Kunci, Anda dapat melihat kode untuk tombol capslock menggunakan perintahxev
di terminal dan menekannya (Anda dapat melihat kode kunci dari setiap tombol keu atau mouse, termasuk mouse Gaming). Dengan capslock dan play keycode tombol di tangan Anda dapat mengedit file confi xbindkeys dan meletakkan perubahan Anda di sana. gunakantouch ~/.xbindkeysrc
untuk membuat file konfigurasi (jika sistem tidak membuatnya secara otomatis) dannano ~/.xbindkeysrc
untuk mengeditnya. Saya sudah menggunakannya bulan lalu dan ini sebuah contoh. Lihatlah tautan-tautan ini yang mungkin sangat membantu Anda.https://help.ubuntu.com/community/MultimediaKeys
https://gist.github.com/jbonney/5743509
Remap tombol dari mouse gaming saya ke tombol keyboard
https://matmunn.me/post/binding-volume-control-mouse-buttons-ubuntu/
sumber