これは重複ではありませんX /コンソールに拘束されないようにコンソール(tty)とXのキーボードレイアウト/マッピングを変更しますか?、の一つシステム全体 /etc/default/keyboard
議論中。
使用しようとしていますユーザー別X(例:+ LXDE)および(カーネル)仮想コンソール(VT / TTY)で設定が使用される~/.keyboard
ファイル。xkb
ここに示すように、実行時にユーザーエクスペリエンスが保存されると、cat $(which setupcon)
仮想コンソールはユーザー固有のファイル(またはそのいずれか)を選択できます。~/.keyboard
VARIANT
setupcon
sudo -E setupcon
これはsetupcon
(やや)xkbベースの~/.keyboard
設定(XKBMODEL
など)XKBLAYOUT
をXKBOPTIONS
コンソールキーマップタイプ(pass ckbcomp
)に変換し、loadkeys
結果をコンソールに変換します。利用者の環境が保存されない場合、
sudo setupcon
それから/etc/default/keyboard
ピックアップされました。
しかし、私が知っている限り、Xはsetxkbmap
システム全体の/etc/default/keyboard
ファイルのみを取得します。ユーザー固有の情報は~/.keyboard
収集されません。setxkbmap
。しかし、それが私に必要なものです。つまり、~/.keyboard
餌を与えようとするのだsetxkbmap
。こんなときにできたら~/.xsessionrc
いいな~/.keyboard
setxkbmap
sudo
setxkbmap -option
ユーザー固有のxkbディレクトリ階層を手動で作成することによってxkbcomp -I
。~/.keyboard
これまで私が見た唯一のアプローチはハッキングです。手動で解析して抽出し、各メソッド~/.keyboard
に対して同等のメソッドを作成します。私はこのハッキングが唯一の方法だとは信じていません。XKBOPTIONS
setxkbmap -option
https://who-t.blogspot.com/2020/02/user-特異的-xkb-configuration-part-1.htmlこの信仰に疑問を持たせます。
現在私はDebianとX(+ LXDE)を使用しています。私はこれがウェイランドに何の影響も与えないと思いますが、もしそうなら、説明してください。
答え1
他の人にも効果がある場合、上記の方法のうち私が今使用するようになる方法は次のとおりです。
~/bin/setxkbmap.sh
解析し~/.keyboard
、xkb設定を抽出し、Xから適切なsetxkbmapコマンドを実行します。
~/bin/setxkbmap.sh
Xが次の行で始まるときに手動で呼び出すことも、自動的に呼び出すこともできます
~/.xsessionrc
。
~/bin/setxkbmap.sh
:
#!/bin/bash
# Parse ~/.keyboard, extracting the xkb settings, and run equivalent
# setxkbmap command(s) in X.
source ~/.keyboard
setxkbmap_cmd=(setxkbmap -model "${XKBMODEL}")
setxkbmap_cmd+=(-layout "${XKBLAYOUT}")
# Clear previously-set options first; otherwise, these will be
# appended to whatever is already there.
setxkbmap_cmd+=(-option)
# -r : do not allow backslashes to escape any characters
# -a array: assign the words read to sequential indices of the array
# variable ARRAY, starting at zero
IFS=',' read -r -a xkbopts <<< "${XKBOPTIONS}"
for opt in "${xkbopts[@]}"; do
setxkbmap_cmd+=(-option "${opt}")
done
"${setxkbmap_cmd[@]}"
~/.keyboard
:
XKBMODEL="pc105"
XKBLAYOUT="us"
# ctrl: specifies options coming from /usr/share/X11/xkb/symbols/ctrl
# file.
XKBOPTIONS="ctrl:menu_rctrl,ctrl:nocaps,ctrl:swap_rwin_rctl,terminate:ctrl_alt_bksp"
~/.xsessionrc
:
# ~/.xsessionrc is sourced by Xsession (a sh script), everytime an X
# session is started. See 'man xsession' for details.
# Explicitly use bash, as ~/.xsessionrc is called by sh (dash in
# Debian 9 GNU/Linux).
bash ~/bin/setxkbmap.sh