web-dev-qa-db-ja.com

デフォルトのTTYショートカットを変更する

デフォルトのショートカットを変更して、ttyを切り替えます。デフォルトでは、ctrl + alt + F#です。 Ubuntuのキーボード設定を使用してカスタムショートカットを作成しようとしましたが、ttyに戻ったときにグラフィカルインターフェイスを使用している間のみ機能しませんでした。したがって、Ctrl + Alt + F#ショートカットのデフォルトのバインディングを変更して、2つのTTYの間で単一のキーを前後に切り替える方法を理解する必要があります。

8
era878

bindを使用して、キーを何らかの機能にバインドできます。これが私がしたことです:

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

ここで、newScript.shはttyを変更するファイルであり、\eaAlt+Aが押されるたびにスクリプトが実行されることを意味します。

newScript.shの内容は次のとおりです。

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

キーバインディングを永続的に保存したい場合、 `〜/ .inputrc 'ファイルに保存できることに注意してください。詳細については、次のリンクをご覧ください。 http://www.techrepublic.com/article/find-and-bind-key-sequences-in-bash/5683375

Update:~/.bashrcファイルにbind行を保存すると、再度実行する必要がなくなります。

10
green

そのためのコマンドがありますchvt

chvtコマンドは、CHange Virtual Terminalの略です。切り替え先の仮想端末に通知する番号であるオプションが1つ必要です。

たとえば、最初の仮想端末でログインしていて、xserverが通常GUIを表示する7番目に切り替える場合は、次のようにchvtを実行します。

chvt 7

そして、最初の仮想端末に戻るには、次のように入力します:

chvt 1

そのため、必要なのはそのコマンドを7つのショートカットに追加するだけで、切り替えることができます。

7
Rinzwind

編集:愚かな私!ファイル/etc/console-setup/remap.incを調べるだけです

そのファイルには必要なものがすべて揃っています。いずれにせよ、説明を以下に示します。

残念ながら、「バインド」はシェルセッションでのみ機能します。

あなたがする必要があるのは、コンソールマッピングを変更することです。プログラム "loadkeys"(man loadkeys)を使用してそれを行うことができます。まず、現在のマッピングをダンプして、ファイルの形式がどのように見えるかを確認します。

dumpkeys > default_keys.txt

Xではなくテキストコンソールから行う必要があるので、最初にCtrl-Alt-F1を押して切り替えてください。

そのファイルからの例の行は次のとおりです。

alt keycode  59 = Console_1

つまり、コード59を生成するキーは、修飾子「alt」(そのファイルのどこかで定義されている)で押されると、「Console_1」イベントが生成され、仮想コンソール1に切り替わります。

どのキーがどのコードを生成するかを調べる方法は?そのためにプログラムshowkeyを使用します。プログラムを起動して「F1」を押します。

komp $ showkey
keycode  59 press
keycode  59 release

このプログラムを終了する唯一の方法は、目を閉じて、オープンソースの性質を10秒間熟考することです。または、キーボードに10秒間触れないようにするだけでも機能します。このメソッドを使用して、キーマッピングを変更する必要があるキーマップファイルの行を見つけます。

たとえば、「ctrl 1」を使用してコンソール1に切り替えたいとします。 1のキーコードは2であることがわかります。次の行を「myownkeys.txt」というファイルに保存します。

control keycode 2 = Console_1

テキストコンソールに切り替えて(まだ実行していない場合)、実行します

Sudo loadkeys myownkeys.txt

Presto、Ctrl-1でコンソール1に移動します。ショートカット用のファイルに行を追加します。永続的にしたい場合は、[編集]ファイル/etc/console-setup/remap.incを変更できます。

ちなみに、Console_nの他に、「Decr_console」と「Incr_Console」もあります。それぞれ左側のコンソールと右側のコンソールに切り替えます。デフォルトでは、alt-leftとalt-rightにバインドされています。

5
January