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


8

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



「2つのTTY間で単一のキーを切り替える」とはどういう意味ですか?
ish

@jacobは多少正確ですが、多分正確ではありません:)
Rinzwind

ああそうですね。これは、異なるキーのセットではなく、トグルする単一のキーを要求しているためです。
Jacob Tomlinson

回答:


10

bindキーをいくつかの機能にバインドするために使用できます。これが私がしたことです:

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

newScript.shこれはttyを変更するファイルであり、押さ\eaれるたびAlt+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

更新: あなたが保存することができbind、あなたの行を~/.bashrcあなたは再びそれを行う必要はありませんように、ファイル。


ログインしていない場合、またはbashを実行していない場合、これは機能しません。remap.inc(下記の私の回答を参照)を使用した解決策は、ログインしているかどうかに関係なく機能します。

7

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

chvtコマンドは、CHange Virtual Terminalの略です。これは、仮想端末に切り替えるように指示する番号である1つのオプションを取ります。

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

chvt 7

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

chvt 1

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


1
たとえばtty1の状態でキーを押すとどうなりますか?
John S Gruber

@john:バインドします。green7はすでにそれを説明しました。
Rinzwind 2012

5

編集:ばかげた私!/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にバインドされています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.