これは現在のセッションで機能しています:
costales@dev:~/Desktop$ xmodmap -e "keycode 166 = less"
costales@dev:~/Desktop$ xmodmap -e "keycode 167 = greater"
次に、この構成ファイルを作成しました。
costales@dev:~/Desktop$ cat ~/.Xmodmap
keycode 166 = less
keycode 167 = greater
costales@dev:~/Desktop$
しかし、再起動後に機能しません。リマップを強制的に再起動に耐えさせるにはどうすればよいですか?
私は少しの間16.04を使用していますが、デスクトップマネージャーとしてsddmを使用しているようです。以前はLightDMとGDMでした。両方の前任者は~/.Xmodmap
を自動的にロードするように文書化されていますが、sddmが明示的に言っていることを見つけることができません。
そのため、新しいスクリプトを強制的にロードすることをお勧めします。 xmodmap ~/.Xmodmap
を実行するだけで、さまざまな方法で実行できます。
~/.xinitrc
を編集して実行します。.desktop
に新しい~/.config/autostart/
構成を追加するこれを管理する方法はおそらく他にも数十あり、基本的に同じことを行います。
次の内容のファイル/etc/X11/Xsession.d/80_xmodmap
を追加しました。
#!/bin/sh
# Set custom keycodes
#
# This file is sourced by Xsession(5), not executed.
# The "|| true" is to ensure that the Xsession script does not terminate on error
USRMODMAP="$HOME/.Xmodmap"
if [ -x /usr/bin/xmodmap ]; then
if [ -f "$USRMODMAP" ]; then
/usr/bin/xmodmap "$USRMODMAP" || true
fi
fi
これは毎回機能します。
gnome-session-propertiesを開きます。コマンドと名前を追加します。デスクトップファイルは〜/ .config/autostartに作成されます。
注意:絶対パスを使用してください(例:/home/xxx/.Xmodmap)。ホームディレクトリとして「〜」を使用しないでください。
Googleで検索した後、ラップトップの誤ったキーの再マッピングを解決できました。 Thinkpad T400の不良キーはすべて、再マッピング後に正常に機能しています。また、CPUコアに余分な負荷をかけることなく永続的です。
以下のコマンドを使用して、まずキーボードレイアウトまたはキーコードを見つけます。
xevv -event keyboard
たとえば、Thinkpad T400のキーコードは次のとおりです。
Keycode of "z" key is 52
Keycode of "x" key is 53
Keycode of "c" key is 54
Keycode of "v" key is 55
Keycode of "F6" key is 72
Keycode of "F10" key is 76
Keycode of "F11" key is 95
Keycode of "F12" key is 96
機能キー「F6」「F10」「F11」「F12」を割り当てることにより、文字キー「z」「x」「c」「v」を再マッピングします。
以下のように行を変更します(問題が発生した場合に簡単にロールバックするために変更を行う前にファイルをバックアップします)。
Sudo vi /usr/share/X11/xkb/keycodes/evdev
行を見つけて、以下のように値を変更します。
<AB01> = 72;
<AB02> = 76;
<AB03> = 95;
<AB04> = 96;
これらの行をコメントするか、行を削除します。
// <FK06> = 72;
// <FK10> = 76;
// <FK11> = 95;
// <FK12> = 96;
保存して終了。
特殊キーの再マッピング。
問題が発生した場合、ロールバックに変更を加える前にファイルをバックアップします。
cd /usr/share/X11/xkb/symbols/
Sudo vi pc
関数「xkb_symbols "editing" {」の以下の行を追加または変更します
key [SCLK] { [ Prior ] };
key [PAUS] { [ Next ] };
保存して終了。
キャッシュの消去。
Sudo rm -rf /var/lib/xkb/*
リブート。
Ubuntuでのキーの再マッピングの長年の経験では、永続的な解決策は、/usr/share/X11/xkb/keycodes
のevdev
というファイルを変更することです。
コマンドプロンプトでこのコマンドを実行します。
Sudo gedit /usr/share/X11/xkb/keycodes/evdev
GeditはUbuntuのテキストエディターであるため、geditの代わりにnanoまたはvimを使用できます。
ファイルの形式は次のとおりです。エイリアス:CODE。異なるキーのコードを交換することにより、ボタンを交換できます。たとえば、RCONTROLをRETURNと交換するには、evdevの2行を次のように編集します。
<RTRN> = 105;
<RCTL> = 36;
ボタンの番号コードを知るには、ターミナルでxev
を実行します。
詳細については、ドキュメントを参照してください。 https://buildmedia.readthedocs.org/media/pdf/python-evdev/latest/python-evdev.pdf
案内する
/usr/share/X11/xkb/symbols
Sudo特権を使用して、エディターで、編集するレイアウトを開きます。値を置き換えます。
再起動後、変更が適用されます。
キーボードハードウェアの問題のためにキーパッドを再マップするために使用する例を次に示します。
.Xmodmapファイルはxkbよりも編集がはるかに簡単なので、I.Xmodmapを「ソース」ファイルとして使用し、それをxkb(現在の標準)および.bashrcメソッドを使用してブート時に自動ロードします。
投稿されたいくつかの簡単なステップです here 。
完全に機能し、.Xmodmapのサポートが廃止されたときに対するxkbの将来の保証を使用します。