web-dev-qa-db-ja.com

ウィンドウマネージャの起動時にxorg.confキーボードレイアウトが失われる

ディスプレイマネージャーとしてxdmを使用してUbuntu 15.04を実行し、xorg.confで定義されたカスタムマルチモニターとキーボードのセットアップを実行しています。

xdmは、キーボードの構成を正しく選択し、レイアウトを「gb」に設定し、Capsキーとctrlキーを交換します。

ただし、Window Makerまたは他のディスプレイマネージャーを起動すると、キーボードレイアウトが米国に戻ることがわかりました。ただし、ctrl/capsキーは交換されたままです。

xorg.conf:

Section "Monitor"
        Identifier   "DP1"
EndSection

Section "Monitor"
        Identifier   "HDMI2"
        Option       "LeftOf" "DP1"
        Option       "Rotate" "left"
EndSection

Section "Device"
        Identifier "intel"
        Driver     "intel"
#       Option     "TearFree" "true"
        Option     "Monitor-DP1" "DP1"
        Option     "Monitor-HDMI2" "HDMI2"
EndSection

Section "InputClass"
        Identifier      "caps as ctrl Sun gb keyboard"
        Driver          "evdev"
        MatchIsKeyboard "yes"
        Option          "XkbLayout" "gb"
        Option          "XkbModel" "Sun_type7_usb"
        Option          "XkbRules" "xorg"
        Option          "XkbOptions" "ctrl:swapcaps"
EndSection
2
retrodev

あなたのコメントから他の回答まで、私はあなたが設定デーモンを実行していないかもしれないことがわかります。ほとんどのDesktopEnvironments(Gnome、KDEなど)は、あらゆる小さな設定を追跡するためのサービスを実行します!ただし、WindowManager(WindowMaker、i3、awesomeなど)には通常、この機能はありません。

~/.xsessionまたはその他の自家製スクリプトからWindowManagerを起動する場合は、その特定のセッションのキーボード設定を設定する必要があります。 Xsessionスクリプトのsetxkbmapを使用して、キーボードレイアウトを設定できますWindowManagerを起動する行の前

setxkbmap -model Sun_type7_usb -layout gb -option ctrl:swapcaps

ボーナス情報として、利用可能なすべてのモデル、レイアウトなどをこれらのコマンドから取得できます。

localectl list-x11-keymap-models
localectl list-x11-keymap-layouts
localectl list-x11-keymap-variants [layout]
localectl list-x11-keymap-options

これらの情報は主に ArchWiki で見つかりました。Ubuntuとは少し異なるかもしれませんが、キーボードに関する一般的な情報がいくつかあります。

2
LassePoulsen
  1. 編集してみてください/etc/default/keyboard

    XKBMODEL="Sun_type7_usb"
    XKBLAYOUT="gb"
    XKBOPTIONS="ctrl:swapcaps"
    
  2. 適用するには、再起動または実行します:

    Sudo udevadm trigger --subsystem-match=input --action=change
    

参照:man keyboard

1
user.dz
  • Unityには、レイアウト設定を処理する独自の設定デーモンがあり、以前のXorg設定をリセットします。

    1. 現在の設定を確認します。

      gsettings get org.gnome.desktop.input-sources xkb-options
      
    2. それから加えて ctrl:swapcapsに設定し、元に戻します。

      gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:swapcaps']"
      
    3. レイアウトをgbに設定します

      gsettings set org.gnome.desktop.input-sources sources [('xkb', 'gb')]
      
  • 動作しない場合は、設定デーモンのキーボードプラグインを無効にします

    gsettings set org.gnome.settings-daemon.plugins.keyboard active false
    

    参考:gnome/unityのsetxkbmapでキーボードレイアウトオプションを永続的に設定

ところで、必要に応じてコマンドラインの代わりにGUIツールを使用できます。dconf-editor

0
user.dz

これを試してみてください:

    gsettings set org.gnome.setting-daemon.keyboard.layout KEY=active VALUE=true

この方法でうまくいくかもしれません。

0
Michael