Xの仮想コンソールを増減するためのキーバインディング

Xの仮想コンソールを増減するためのキーバインディング

Ctrl仮想コンソール(または仮想端末、VT)は++(などを表す)を押すことで変更できますAlt。また、実行していないときと矢印キーを押して、VT(仮想端末の減少と増加)を循環させることもできます。FnFnF1F2XAltAltAlt

ただし、VTのいずれかで実行している場合は、通常、矢印キーバインディングが設定されず、別のVTに変更するには++Xに戻る必要があります。CtrlAltFn

私は通常、VTを変更するために矢印バインディングを使用することを好みます。キーバインディングを切り替えたくない場合(++はCtrlVTを持つVTを意味し、矢印はVTを持たないVTを意味します)、VTを減らしたり増やすためにバインドできるコマンドは何ですか?AltFnXAlt←/→X

答えがシステムによって異なる場合、私はdebianを実行し、dwmとopenboxをウィンドウマネージャとして使用しています。

答え1

私はあなたに汚い解決策だけを言うことができます。使用xbindkeys以下に追加されました~/.xbindkeysrc

"sudo chvt $(($XDG_VTNR-1))"
   alt + c:113

"sudo chvt $(($XDG_VTNR+1))"
   alt + c:114

XDG_VTNR変数がない場合は、前/次vtをハードコードする必要があります。

また、以下を行う必要があります/etc/sudoers

USER ALL=NOPASSWD:/bin/chvt

答え2

VTからX11に切り替えてその逆に切り替えるとき、同じままの1つは、「低レベル」の一般的なLinux入力デバイス処理サブシステムです。 Cには例があります。Linux USB入力サブシステムそしてパート2Linuxマガジンから。システムにPythonライブラリがある可能性があります。Python-evdevパッケージを使用すると、これが簡単になります。

可能なことを試すには、特定のevtest入力デバイスの単純なイベントダンプを使用することができ、スクリプトなどをawk使用して興味のあるキーを押した状態を追跡し、chvtコマンドを実行することができます。

答え3

XLATEモードの場合は、Alt +矢印キーを使用できます。それ以外の場合は、次のコマンドを使用して有効にできます。魔法のsysrqキー:Xがロックされているときにカーネルからハッチを逃げます。

まず、次のように点灯していることを確認してください。

cat /proc/sys/kernel/sysrq

出力は数値で、1またはビットマスク0x4が設定されている場合はXLATEに切り替えることができますx == 1 || x & 0x4源泉

どちらも真でない場合は、この番号をrootに変更できます。

echo 1 > /proc/sys/kernel/sysrq

Arch Linuxでは、次のこともできます。

sysctl kernel.sysrq=1

最後に、Alt+SysRq+Rまたはキーを押して次のコマンドを実行します。

echo r > /proc/sysrq-trigger

これで XLATE モードになります。再起動するまでキーバインディングを使用できるほど幸運です!発生する可能性のある副作用についてはこれを見て

誰かがこの機能を永久にオンにできるかどうか教えてください。

関連情報