web-dev-qa-db-ja.com

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

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

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$ 

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

21
Costales

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

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

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

13
Oli

次の内容のファイル/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

これは毎回機能します。

6
Stuart K. Smith

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

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

4
utopic eexpress

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

1
Sanalgorithm

Ubuntuでのキーの再マッピングの長年の経験では、永続的な解決策は、/usr/share/X11/xkb/keycodesevdevというファイルを変更することです。

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

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

1
GilbertS

案内する

/usr/share/X11/xkb/symbols

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

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


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

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

1
quaeched

グラフィカルエディター

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

Key Maps

0
Jonathan

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

投稿されたいくつかの簡単なステップです here

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

0
u2n