Ubah pintasan TTY Default

8

Saya ingin mengubah pintasan default untuk beralih bolak-balik ke tty. Secara default itu adalah ctrl + alt + F #. Saya telah mencoba membuat pintasan khusus menggunakan pengaturan keyboard Ubuntu tetapi hanya berfungsi saat menggunakan antarmuka grafis ketika saya beralih kembali ke tty tidak bekerja. Jadi saya perlu mencari cara untuk mengubah pengikatan default pintas ctrl + alt + F # untuk membuat satu tombol beralih bolak-balik antara dua TTY.

era878
sumber
2
Apakah Anda yakin ini bukan duplikat dari askubuntu.com/questions/77982/…
Jacob Tomlinson
Apa yang Anda maksud dengan "satu tombol beralih bolak-balik antara dua TTY?"
ish
@ jacob agak tapi mungkin tidak sepenuhnya :)
Rinzwind
Ah ya saya mengerti, ini meminta satu kunci yang beralih daripada satu set kunci yang berbeda.
Jacob Tomlinson

Jawaban:

10

Anda dapat menggunakan binduntuk mengikat kunci ke beberapa fungsi. Inilah yang saya lakukan:

bind '"\ea": ". ~/newScript.sh\n" '

Berikut newScript.shadalah file yang mengubah tty dan \eaberarti bahwa setiap kali Alt+Aditekan, skrip dijalankan.

Isinya newScript.shadalah:

#! /bin/bash
ttyNum="$(tty)"
ttyNum=$(echo ${ttyNum##*y})
ttyNum=$(( (ttyNum +1) % 7))
chvt $ttyNum

Perhatikan bahwa jika Anda ingin menyimpan binding kunci secara permanen, Anda dapat menyimpannya dalam file `~ / .inputrc 'Anda. Untuk informasi lebih lanjut, Anda dapat mengunjungi tautan ini: http://www.techrepublic.com/article/find-and-bind-key- berikutnyaences-in-bash / 5683375

Pembaruan: Anda dapat menyimpan bindbaris dalam ~/.bashrcfile Anda sehingga Anda tidak perlu melakukannya lagi.

hijau
sumber
Perhatikan bahwa ini tidak akan berfungsi jika Anda tidak masuk atau jika Anda tidak menjalankan bash. Solusi menggunakan remap.inc (lihat jawaban saya di bawah) akan berfungsi baik Anda masuk atau tidak.
Januari
7

Ada perintah untuk itu chvt.

chvtperintah singkatan dari CHange Virtual Terminal. Dibutuhkan satu opsi yang merupakan nomor yang memberitahu terminal virtual untuk beralih.

Misalnya, jika Anda login di terminal virtual pertama dan Anda ingin beralih ke 7 di mana xserver biasanya menampilkan GUI, maka jalankan chvtsebagai berikut:

chvt 7

Dan untuk kembali ke terminal virtual 1, ketik:

chvt 1

Jadi yang perlu Anda lakukan adalah menambahkan perintah itu ke 7 cara pintas dan Anda dapat beralih.

Rinzwind
sumber
1
Bagaimana Anda melakukan itu ketika Anda menekan tombol ketika di, katakanlah, tty1?
John S Gruber
@ John: ikat itu. green7 sudah menjelaskan itu.
Rinzwind
5

EDIT: konyol saya! Lihat saja file /etc/console-setup/remap.inc

Anda akan menemukan semua yang Anda butuhkan di file itu. Bagaimanapun, penjelasan diberikan di bawah ini.

Sayangnya, "bind" hanya akan berfungsi dengan sesi shell.

Yang perlu Anda lakukan adalah mengubah pemetaan konsol. Anda dapat melakukannya menggunakan program "loadkeys" (man loadkeys). Pertama, buang pemetaan saat ini untuk melihat seperti apa format file tersebut:

dumpkeys > default_keys.txt

Perhatikan bahwa Anda perlu melakukannya dari konsol teks dan bukan X, jadi tekan Ctrl-Alt-F1 terlebih dahulu untuk beralih ke konsol!

Ini adalah contoh baris dari file itu:

alt keycode  59 = Console_1

Itu berarti bahwa kunci yang menghasilkan kode 59, ditekan dengan pengubah "alt" (didefinisikan di tempat lain dalam file itu) akan menghasilkan peristiwa "Console_1" - beralih ke konsol virtual 1.

Bagaimana cara mengetahui kunci mana yang menghasilkan kode mana? Gunakan program showkey untuk itu. Saya memulai program dan menekan "F1":

komp $ showkey
keycode  59 press
keycode  59 release

Satu-satunya cara untuk keluar dari program ini adalah dengan menutup mata dan merenungkan sifat Open Source selama sepuluh detik. Atau hanya untuk menahan diri menyentuh keyboard selama sepuluh detik, itu juga berfungsi. Gunakan metode ini untuk mencari tahu baris apa dalam file keymap yang Anda perlukan untuk mengubah pemetaan kunci.

Katakanlah, Anda ingin beralih ke konsol 1 menggunakan "ctrl 1". Anda akan mengetahui bahwa kode kunci untuk 1 adalah 2. Simpan baris berikut ke file yang disebut "myownkeys.txt":

control keycode 2 = Console_1

Beralih ke konsol teks (jika Anda belum melakukannya) dan jalankan

sudo loadkeys myownkeys.txt

Presto, Ctrl-1 seharusnya memindahkan Anda sekarang ke konsol 1. Tambahkan lebih banyak baris ke file Anda untuk pintasan Anda. Jika Anda ingin menjadikannya permanen, Anda dapat [EDIT] memodifikasi file /etc/console-setup/remap.inc

By the way, selain dari Console_n Anda juga memiliki "Decr_console" dan "Incr_Console" - beralih ke konsol di sebelah kiri dan konsol di sebelah kanan, masing-masing. Secara default mereka terikat ke alt-kiri dan alt-kanan.

Januari
sumber