追加して実現しました。
setxkbmap xxx
X サーバーでキーボードのレイアウトを変更できます。ログアウト/再起動後も維持されないため、$HOME/.profile
以下のようにログイン時に使用できるようにこの行を追加できます。この問題説明する。
ただし、これを行うと、ログインするまでキーボードレイアウトを使用できなくなります。この段階で使用するにはどうすればよいですか? Centos7でGDMを使用しています。
私が試したこと:
新しいキーボードレイアウトを定義し、名前をとして指定して
symmetri
から下に配置します/usr/share/X11/xkb/symbols/
。テスト用にダウンロードできます。ここ。注:仮想コンソールのレイアウトではなく、X11サーバーのレイアウトのみを定義しました。たぶん私はそれをリストすることはできませんしlocatectl list-keymaps
、loadkeys
触れることもできません/etc/vconsole.conf
。setxkbmap symmetri
それを書いてください。変更が適用されました。/etc/profile.d/symmetri.sh
それを使用するには、ユーザープロファイルに入れてください。ログアウトしてログインしようとすると、動作が停止し、QWERTYと表示されます。
QWERTYを使用してログインし、成功したログイン後にスクリプトをインポートするため、Symmetriを使用しています。
端末を開き、
us
byに戻りましたsetxkbmap us
。
その後、
localectl set-x11-keymap symmetri
今回はレイアウトが変わりませんでした。localectl set-keymap symmetri
どちらもありません。
答え1
あなたはそれを使用することができます
localectl set-x11-keymap ***
これはコンソールとデスクトップに完全に適用され、詳細な設定はマニュアルページで確認できます。https://www.unix.com/man-page/centos/1/LOCALECTL/
答え2
@terdon あなたのソリューションは動作しませんでしたが、助けてくれてありがとう。最初はそれがGnomeと関係があるかどうか疑っていましたが、X11にすぎないことがわかりました。 @TimBrandrick、あなたのソリューションはほとんどの場合動作しますが、私の場合はキーボードレイアウトを追加する前ではありません。.../X11/xkb/rules/evdev.xml
(.../X11/xkb/rules/evdev.lst
一部のソースによるとlst
、ファイルはコンパイルされたバージョンであるxml
ため、すべてのプロセスがこのファイルはxml
ファイルを読み取るだけであるため、xml
実際にはより多くの情報が含まれていますが、lst
理解lst
しやすく両方のファイルを追加しました。
それで私がすることは次のとおりです。
1. を開きます.../X11/xkb/rules/evdev.xml
。
(配布版によって異なるため、最初の部分は省略しました。CentOS 7ではアンダーで、Ubuntu <= 8.08では.1 Strange/usr/share/
未満です。)/etc/
2. 子ノードの末尾に<layoutList>
次のセクションを追加します。
(必要に応じて修正してください。これは単なるテンプレートです)
<layout>
<configItem>
<name>symmetri</name>
<shortDescription>symmetri</shortDescription>
<description>Symmetri (CN, EN and ES)</description>
<languageList>
<iso639Id>us</iso639Id>
</languageList>
</configItem>
<variantList>
<variant>
<configItem>
<name>non-prog</name>
<shortDescription>non-prog</shortDescription>
<description>Symmetri for non-programmer (CN, EN and ES)</description>
<languageList>
<iso639Id>us</iso639Id>
</languageList>
</configItem>
</variant>
</variantList>
</layout>
キーボードレイアウトにバリエーションがない場合、<variantList>
セクションは自動的に閉じることができます。例: <variantList />
。
注:iso639Id
ISO 639-1または639-2規格と互換性のある値が必要です。1全体の表は参考文献1にも示されています。また、ロケールと一致する必要があります。English(U.S)
システム言語に設定されているので、us
ここに入力してください。
3.保存して開きます.../X11/xkb/rules/evdev.lst
。
4. 最後に! layout
レイアウト名を追加します。良い:
symmetri Symmetri layout (CN, EN and ES)
5.キーボードレイアウトにバリエーションがある場合は、! variant
最後に追加してください。
non-prog symmetri: non-programmer
バリアント名はxmlファイルの上記の情報と一致する必要があります。 (試してみるとlocalectl list-x11-keymap-variants
わかりますが、ただXMLを読み込むのではなく、このファイルを読むのはバグ/バグです。 )
base.xml
6. andを使用して同じことを実行できますが、base.lst
私は最初に行いましたが機能しませんでした。
7. キーボードレイアウト設定:
setxkbmap symmetri
またはバリアントを設定するには、次を使用します。
setxkbmap symmetri -variant non-prog
localectl
list-x11-keymap-layouts
とを使用できますが、list-x11-keymap-variants
バリアントを設定するためにのみ使用することはできませんsetxkbmap
。
今この設定で再起動後および最初のログイン前、新しいキーボードレイアウト(しかし、このバリエーションは維持されません!必要なのは基本レイアウトだけです!)しかし正常にログインすると、デスクトップ管理者は引き継がれ、$HOME/.bashrc
/ $HOME/.profile
(シングルユーザー用)/ /etc/profile.d/xxx.sh
/(すべてのユーザー用)ファイル/etc/profile
で新しいキーボードレイアウトを設定していない場合いいえ新しいキーボードレイアウトを入手するには、ログアウトしてもう一度ログインしてください。 ! ! !したがって、これらの変更はただ最初のログインに成功する前に続行するには、またはプロファイルスクリプトを使用してXサーバーに次のことを知らせる必要があります.bashrc
。 「ログイン前だけでなくログイン後でも、すべてのユーザーがこの機能を使用できることを願っています!」ログアウトしてユーザーを変更しても、レイアウトは変更されたレイアウトのままですqwerty(us)
。
本当に苦しいですね…もっと簡単な方法があるはずなのに見つかりませんね。
参考資料:(必ずお読みください)