Kadang-kadang, ketika saya menggunakan sinergi antara mesin saya ketika seseorang menggunakan tamu VirtualBox layar penuh saya terjebak dengan beberapa pengubah kunci aneh dihidupkan. Jika ada di keyboard saya (seperti Shift_L) saya bisa mengetuknya dan statusnya diatur ulang dan saya bisa terus mengetik huruf kecil. Tetapi beberapa dari mereka tidak dipetakan ke keyboard saya sama sekali (seperti ISO_Level3_Shift), jadi saya tidak punya cara untuk mematikannya sama sekali!
Bagaimana cara meresetnya? Saat ini, yang bisa saya lakukan adalah me-reboot komputer, tetapi itu solusi yang agak memalukan.
Yang saya inginkan adalah beberapa program yang secara artifisial dapat "mengetuk" semua pengubah keyboard yang mungkin, sehingga statusnya akan diatur ulang. Bisakah itu dilakukan?
Saya menggunakan Mint 14 (tiruan dari Ubuntu 12.10 Quantal).
sumber
xdotool keyup 204
.DISAPLAY=:1 xmodmap -pk | grep -iP 'alt|meta|super|hyper'
. Anda harus mengubah nomor tampilan menjadi nomor tampilan VNC Anda yang rusak.DISPLAY=:1
dalam komentar di atas.xdotool
mendukung--clearmodifiers
opsi untukkey
/keydown
/keyup
- mungkin tidak ketika jawaban ini ditulis? Saya berharap ituxdotool keyup --clearmodifiers space
akan berhasil. (xdotool keyup
memerlukan kunci yang harus ditentukan; "spasi" adalah arbitrer.)Saya menemukan bahwa untuk sistem saya, solusi yang diposting
xdotool
sering melibatkan tidak mencakup kunci yang macet, dan menjalankansetxkbmap
tampaknya tidak mencapai apa pun pada sistem saya.Solusi yang saya temukan, yang sejauh ini bekerja tanpa gagal, adalah menggunakan
x11vnc
. Secara khusus, saya menggunakan perintah berikut:-clear_keys
adalah bagian kuncinya, di sini. Ini memerintahkanx11vnc
untuk menghapus semua tombol yang ditekan saat keluar.-timeout 1
memberitahux11vnc
untuk berhenti setelah 1 detik tanpa koneksi, dan-deny_all
memastikan tidak ada yang dapat terhubung selama jendela itu.Terkadang kunci yang macet mencegah interaksi yang berarti dengan desktop, dalam hal ini saya akan menjalankan yang berikut melalui ssh:
sumber
Saya menggunakan "setxkbmap" tanpa argumen. Tampaknya untuk mereset keyboard. Saya memiliki "pintasan" di panel saya yang dapat saya gunakan dengan mouse ketika keyboard benar-benar tidak bisa dioperasikan.
sumber
The
x11vnc
Jawabannya adalah cerdik, tetapi jika menginstalx11vnc
hanya untuk pengubah kliring sepertinya berlebihan, inilah solusi Bash yang menggunakanxmodmap -pm
keluaran 's untuk mengeluarkan keyup untuk semua pengubah dikenal. Konversi dari hex keycode desimal bergantung pada ekspansi aritmatika Bash.Jika Anda menjalankannya dari pintasan keyboard, menambahkan
sleep 1
di awal (untuk memberikan waktu agar tombol fisik dilepaskan) akan disarankan. Theecho
ke stderr tidak diperlukan, tentu saja; Saya hanya ingin dapat memeriksa~/.xsession-errors
file saya untuk output seperti ini.sumber