シングルユーザーモードの固定キー

シングルユーザーモードの固定キー

シングルユーザーモードで固定キーを有効にする方法を見つけようとしましたが、見つけることができる唯一の方法はデスクトップウィンドウ環境です。

ロードする必要があるモジュールやアイテムはありますか?

片手でしか入力できないかどうかを尋ねる人は、時にはシングルユーザーモードで作業する必要があります。

答え1

確認してみてくださいどのように。キー記号を理解することは、コンソールキーマップに入れることができる粘着性のようなものloadkeysです。SShift, SCtrl, SAlt

これアーチLinuxページ何をすべきかを教えてください。デフォルトでは、Shiftなどのキーを固定された対応するキーで上書きするキーマップファイルを作成します。以下は、必要なキーコードセットを提供できます。

dumpkeys |
awk 'NR==1{print}
     $4~"Shift|Control|Alt"{printf "%s %s %s S%s\n",$1,$2,$3,$4}'

出力例:

keymaps 0-255
keycode 29 = SControl
keycode 42 = SShift
keycode 54 = SShift
keycode 56 = SAlt
keycode 97 = SControl
keycode 100 = SAlt
keycode 125 = SAlt
keycode 126 = SAlt

このデータをファイルに入れてstickyKeysロードします。

sudo loadkeys stickyKeys

Archlinuxページは、起動時にロードするための適切なシステムデバイスを提供します。問題が発生した場合は、showkey入力時に各キーストロークのコードを表示できます。


これは試していませんが、カーネルを構築すると、主キーマップがコンパイルされます。このキーマップを必要なキーマップに置き換えることができます。私たちが見るとドライバ/tty/vt/Makefile、私達は規則を見ますdefkeymap.o

$(obj)/defkeymap.o:  $(obj)/defkeymap.c

ただし、ディレクトリにファイルがありませんdefkeymap.c。しかし、ファイルがあるdefkeymap.c_shippedようです。BuildKBuild_shipped内蔵サフィックスは削除されます。 Makefileの後半にはコメントとオプションのルールがあります。

# Uncomment if you're changing the keymap and have an appropriate
# loadkeys version for the map. By default, we'll use the shipped
# versions.
# GENERATE_KEYMAP := 1
ifdef GENERATE_KEYMAP
$(obj)/defkeymap.c: $(obj)/%.c: $(src)/%.map
        loadkeys --mktable $< > $@
endif

したがって、以下を実行して、defkeymap.c現在のキーマップから独自のファイルを生成する方法を確認できます。

dumpkeys | loadkeys --mktable >defkeymap.c

含まれているファイルを削除してカーネルを構築してみてください。を使用すると、デフォルトdumpkeysよりもはるかに大きいテーブルが提供されますが、理由はわかりません。圧縮されていない、または類似したものなどの現在のキーマップのソースを見つけ、固定変更で編集してから、/usr/lib/kbd/keymaps/xkb/gb-intl.map.gzこのファイルをloadkeys --mktable

起動すると、この組み込みキーマップは、オペレーティングシステムがいくつかの標準設定キーマップを設定するために使用するメカニズムによっては早期に無視される可能性があります。

関連情報