Rebinding / penonaktifan CTRL + ALT + F # Virtual Terminal / Console Switching

21

Saya memiliki aplikasi yang mengikat CTRL+ ALT+ F7, tetapi mesin linux saya tampaknya menangkap penekanan tombol.

Apakah ada cara untuk memutar ulang / menonaktifkan kunci ini? Kompilasi ulang kernel adalah jawaban yang dapat diterima.

Distribusi yang dimaksud adalah Fedora 16 dan Ubuntu 11.10.

Jes
sumber
Saya tidak punya saran khusus, tapi saya pikir, karena CTRL + ALT + Fn hanya terikat di bawah Sistem X-Windows, bahwa kernel tidak akan terkait dengannya dengan cara apa pun, dan bahwa Anda mungkin akan lebih beruntung mencoba untuk men-tweak konfigurasi X11.
njsg
@ njsg Anda dapat menggunakan tombol yang sama untuk beralih dari X11 ke vt, dan untuk beralih kembali (juga antara vt) - jadi mereka harus terikat sama pada vt.
Volker Siegel

Jawaban:

10

Tempatkan ini di /etc/X11/xorg.conffile Anda untuk menonaktifkan pemindahan VT dengan Ctrl+ Alt+ Fn:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Anda juga perlu yang berikut ini untuk menyebabkan acara dilewatkan ke klien yang terhubung ke layar:

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

(Bit terakhir itu belum teruji, lihat sumbernya .)

Sam Morris
sumber
Ini tidak meneruskan kombinasi ke jendela, X masih menangkapnya.
Jes
2
Setelah beberapa bulan harus menjalankan Windows saya akhirnya menguji ini di Lubuntu 12.04, di mana jendela IntelliJ IDEA masih tidak menangkap penekanan tombol.
Jes
2
Menggunakan kedua pengaturan itu diperlukan untuk saya, dan bekerja untuk saya. (pada centos). ctrl-alt-f7 sekarang menunjukkan penggunaan inline di intellij :).
Rob Dawson
3
Jika Anda menggunakan Intellij dan ingin digunakan CTL+ALT+F7untuk "Tampilkan penggunaan", di Lubuntu 15.04, pintasan default adalah secara akut CTL+ALT+7. Anda perlu mengubahnya kembali CTL+ALT+F7jika Anda ingin tetap konsisten dengan OS lain.
Xiao Peng - ZenUML.com
1
Hanya untuk mengonfirmasi ini berfungsi pada FreeBSD 11 juga.
gsl
15

Doa berikut dari setxkbmapperintah X11 menonaktifkan Ctrl-Alt-Fn konsol / switching terminal virtual:

setxkbmap -option srvrkeys:none

Untuk kembali ke perilaku sebelumnya dari tombol ctrl-alt-Fn, dan juga menghapus semua opsi lain, seperti caps:ctrl_modifier:

setxkbmap -option ''

Untuk mencetak permintaan pengaturan saat ini setxkbmap -print.

Untuk memohon per pengguna, masukkan perintah di file ~ / .xinitrc.

Untuk memohon ketika Xsession dimulai, buat file dalam

/etc/X11/Xsession.d

seperti

/etc/X11/Xsession.d/65srvrkeys-none

mengandung setxkbmapperintah di atas , dan membuatnya dapat dieksekusi dengan sudo chmod +x /etc/X11/Xsession.d/65srvrkeys-none.

Untuk jenis informasi lebih lanjut man setxkbmapdi prompt shell Anda atau lihat halaman manual Xorg setxkbmap .

Saya menguji ini dengan KDE di Ubuntu 14.04 LTS (Trusty). Pengaturan ini juga tersedia di Pengaturan Sistem> Perangkat Input> Keyboard> Lanjutan. Jika Anda mengubah srvrkeysdalam Pengaturan GUI, itu muncul segera di setxkbmapdan sebaliknya.

Saya lebih suka memodifikasi sistem X window melalui antarmuka baris perintah X11. Jika itu tidak berhasil, maka saya mencoba lingkungan desktop. Sebagai upaya terakhir saya akan memodifikasi file konfigurasi sistem. Implementasi dan format file berubah, tetapi antarmuka baris perintah hidup hampir selamanya dalam tradisi Unix / Linux.

RobertL
sumber
Terima kasih, @RobertL. Harapan saya tinggi, tetapi tidak, ini tampaknya tidak berpengaruh pada instalasi Debian jessie dan Ubuntu 14.04 saya. Ctrl-Alt-F7 dan Ctrl-Alt-F8 masih bolak-balik ke dan dari terminal virtual. Saya juga tidak memiliki entri menu Pengaturan Sistem> Perangkat Input> ... Mungkin itu hal KDE? Saya menggunakan GNOME atau apa pun standar Ubuntu.
glts
Saya telah mencoba beberapa cara dan ini adalah satu-satunya yang berfungsi di Lubuntu 16.04, berfungsi ketika saya masuk. Apakah Anda tahu cara membuatnya bekerja di layar penyapa lxdm? (di ubuntu dengan karya-karya lightdm).
J.Serra
1
Ini bekerja di Linux Mint 18. Terima kasih.
Hoang Tran
1
Ini bekerja untuk saya di Debian 8 (Jessie). CATATAN: Saya hanya menguji baris perintah setxkbmap -option srvrkeys:none. Saya memasukkan entri ke dalam file /etc/X11/Xsession.d/65srvrkeys-none. Dan sementara saya belum keluar dan masuk lagi, saya kira itu akan berfungsi dengan baik.
MikeyE
1
Bekerja dengan baik untuk saya di Debian Buster; seperti @MikeyE Saya belum keluar (dan mungkin tidak akan melakukannya dalam beberapa minggu / bulan ;-) tetapi setxkbmappendekatannya berhasil. Sangat dihargai!
Per Lundberg
1

Anda dapat menonaktifkan ini dengan masuk ke pengaturan Sistem -> tata letak keyboard -> opsi. di bawah aneka pilihan kompatibilitas periksa "kunci khusus Ctrl+ Alt+ <key>ditangani di server".

Saya memeriksa ini dan Ubuntu tidak menangkap kombinasi Ctrl+ Alt+ .... tapi tetap saja ide tidak menangkap Ctrl+ Alt+ F7dan masalahnya masih keluar !!!.

rezamda
sumber
Anda benar, Ubuntu tidak menangkapnya, tapi saya curiga X server melakukannya.
Jes
3
Yay! Mengetahui bahwa secara default di Ubuntu IDEA menangani Ctrl + Alt + 7 bukannya F7 !
o_nix
0

Di Ubuntu 18.04 Anda harus membuat file berikut:

/usr/share/X11/xorg.conf.d/65-setxkbmap

dengan konten ini:

Section "ServerFlags"
    Option "DontVTSwitch" "on"
EndSection

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"
    Option "XKbOptions" "srvrkeys:none"
EndSection

kemudian reboot sistem Anda.

vort2020
sumber
Kecuali untuk nama file, ini telah disarankan dalam jawaban yang diterima.
RalfFriedl