Ubuntu 16.04でキーを永続的に再マップするにはどうすればよいですか?


23

これは現在のセッションで機能しています:

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$ 

しかし、再起動後に機能しません。リマップを強制的に再起動に耐えさせるにはどうすればよいですか?


askubuntu.com/a/960097/554991を使用xkbしてこれに答えました
ダンワイルド

回答:


15

私は少しの間16.04を使用していますが、デスクトップマネージャーとしてsddmを使用しているようです。以前はLightDMとGDMでした。その前任者は両方とも~/.Xmodmap自動的にロードするように文書化されていますが、sddmが明示的に言っていることを見つけることができません。

そのため、新しいスクリプトを強制的にロードすることをお勧めします。実行するだけxmodmap ~/.Xmodmapで、さまざまな方法で実行できます。

これを管理する方法はおそらく他にも数十あり、基本的に同じことを行います。


2
ヒントをありがとう!起動時の追加は機能せず、〜/ .xinitrcは終了しません。ただし、「xmodmap〜/ .Xmodmap」を〜/ .bashrcに追加するとうまくいきました!:)
コスタレス

1
グラフィカルな起動ツール(で新しいエントリを作成する~/.config/autostart)を介して追加すると、約半分の時間で機能します。今では約10回リブートし、5回はコマンドが実行され、残りの5回は実行されていません。:-(
アレクサンダーレヒシュタイナー

1
@Alexander Rechsteiner:これはUbuntu 16.04の問題のようです。私は起動コマンドとキーの再マッピングをいじっていましたが、動作は非常に一貫していないようです。...私は事のこのタイプの専門家でないんだけど、それが起きてすることは全くばかげているようだ
nicorellius

6

/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

これは毎回機能します。


動作しているように見えますが、これは.xsessions-errors:.Xmodmap:1:remove modifier list in remove modifier list 'Caps_Lock'、no対応するキーコードはこれです.Xmodmap:$ cat .Xmodmap remove Lock = Caps_Lock keycode 9 =エスケープキーコード66 =エスケープ
-MaikoID

4

gnome-session-propertiesを開きます。コマンドと名前を追加します。デスクトップファイルは〜/ .config / autostartに作成されます。

注意:/home/xxx/.Xmodmapなどの絶対パスを使用してください。ホームディレクトリとして「〜」を使用しないでください。


2

Ubuntuの中でキーを再マッピングして、私の長年の経験では、恒久的な解決策と呼ばれるファイルを変更することがあるevdevでは/usr/share/X11/xkb/keycodes

コマンドプロンプトでこのコマンドを実行します。

sudo gedit /usr/share/X11/xkb/keycodes/evdev

geditはUbuntuテキストエディターであるため、geditの代わりにnanoまたはvimを使用できます。

ファイルの形式は、エイリアス:コードです。異なるキーのコードを交換することにより、ボタンを交換できます。たとえば、RCONTROLとRETURNを交換するには、evdevの2行を次のように編集します。

<RTRN> = 105;

<RCTL> = 36;

ボタンの番号コードを知るにはxev、ターミナルで実行します。

詳細については、ドキュメントを参照してください。https://buildmedia.readthedocs.org/media/pdf/python-evdev/latest/python-evdev.pdf


1

案内する

/usr/share/X11/xkb/symbols

sudo特権を使用して、エディターで、編集するレイアウトを開きます。値を置き換えます。

再起動後、変更が適用されます。


キーボードハードウェアの問題のためにキーパッドを再マップするために使用する例を次に示します。

キーパッドの再マップの例


2
これらの編集は、次にそれらのファイルを所有するパッケージがアップグレードされるときに上書きされます。
ムル

それは本当かもしれませんが、これらは特に頻繁に更新されるとは思いません。この問題を解決してから数か月間、このソリューションに満足しており、一度も追加の作業を行う必要はありませんでした。これを防ぐには、ファイルを保存して、そのようなイベントの場合に置き換えるか、(より安全だと思われる)プロセスを再作成します。
quaeched

1

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/*
    
  • リブート。


この手法を使用して、壊れた(カーソル)矢印キーを別のキーに再マップしました。単純に(xev)で新しいキーを押してスキャンコードを取得し、次に/ usr / share / X11 / xkb / keycodes / evdevを編集して矢印キーの元のキーコードを新しいキーコードに置き換え、新しい矢印キーの行を元の行から削除しますスキャンコード。変更を加えた場所にコメントを付け、ファイルのバックアップを保管しました。再起動後、新しい矢印キーを使用したshift / ctrl / altの組み合わせなど、完全に機能します。また、パッケージおよびOSバージョンのアップグレードをアップグレードする場合でも、変更はそのままにしておく必要があります。
マシュー

1

グラフィカルエディター

gnome-tweaks >キーボードとマウス>追加のレイアウトオプション

キーマップ


0

.Xmodmapファイルはxkbよりも編集がはるかに簡単なので、 「ソース」ファイルとして使用し、それをxkb(現在の標準)に変換し、.bashrcメソッドを使用してブート時に自動ロードします。

投稿されたいくつかの簡単な手順です ここにです

完全に機能し、.Xmodmapのサポートが廃止されたときに対するxkbの将来の保証を使用します。

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