私は最近Debian 9をインストールし、普段使っていた~/.Xmodmap
ファイルをリンクしてからそれを私xmodmap ~/.Xmodmap
の.xsession
.
ちなみにDMなしi3
で走っていますstartx
。
コマンドが正常に実行されたかどうかをテストするために私のコマンドを.xsession
。touch ~/prior && xmodmap ~/.Xmodmap && touch ~/post
xmodmap
setxkbmap
解決策を検索しましたが、答えがない質問、私には役に立たない古い回答がある質問、実際の解決策が含まれていない質問のみを見つけました。
ベストアンサー1
この動作の理由は、以下で間接的に文書化されていますman keyboard
。
説明する
キーボードファイルはキーボードのプロパティを記述します。その読者はセットコーン(1)コンソールでキーボードを設定するには。 Debianシステムでは、デフォルトのキーボードレイアウトは/etc/default/keyboardで説明されています。Xとコンソール間で共有されます。
/etc/default/keyboard
システムがインストールされ、実際の問題が発生したときの内容が生成されました(ctrl:nocaps
後でオプションを追加しました)。
XKBMODEL="pc105"
XKBLAYOUT="se"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps"
上記は、Xが起動中の特定の時点(おそらくその後など)にxkbオプションを設定し、その間に設定されたすべての設定が失われることを示しています.xsession
。xmodmap
.xsession
これは理由が出て解決策は次のとおりですman setupcon
。
キーボード構成は ~/.keyboard または /etc/default/keyboard で指定されます。これフォント構成 ~/.console-setup に指定するか、/etc/default/コンソール設定。
収量の確認man console-setup
:
console-setupファイルは、setupcon(1)がコンソールを設定するために使用するエンコーディングとフォントを指定します。 キーボードレイアウトの指定にも使用できます。これはお勧めできません。代わりにキーボード(5)を使用してください。
したがって、/etc/default/keyboard
TTYとXを設定するためのキーボード設定です。 Whileは、/etc/default/console-setup
コンソールのキーボード(実際にはお勧めできませんが動作します)とフォントを設定するために使用できます。
だから私はこれをすべて行うために以下を/etc/default/keyboard
追加しました。/etc/default/console-setup
.xsession
#!/bin/bash
# The below assumes bash features, rewrite if you use other shells.
source /etc/default/console-setup
XKBPARMS=""
if [[ "$XKBLAYOUT" ]]; then
XKBPARMS="-layout $XKBLAYOUT"
fi
if [[ "$XKBMODEL" ]]; then
XKBPARMS+=" -model $XKBMODEL"
fi
if [[ "$XKBVARIANT" ]]; then
XKBPARMS+=" -variant $XKBVARIANT"
fi
if [[ "$XKBOPTIONS" ]]; then
XKBPARMS+=" -option $XKBOPTIONS"
fi
if [[ "$XKBPARMS" ]]; then
setxkbmap $XKBPARMS
fi
xmodmap ~/.Xmodmap
これでうまくいきますxmodmap
。 TTYとXの両方に正しいキーマップとオプションがあります。