web-dev-qa-db-ja.com

Unity外のキーボードレイアウトの管理

Unityの外部から標準のubuntuキーボードレイアウトを使用する方法があるかどうか知りたいのですが。別のWM(Fluxbox)を使用しています。

総当たり攻撃のアプローチは、xkbを使用することです。できます。しかし、そのルートを進む前に、他のオプションを検討したいと思います。私はibus-daemonを直接実行しようとしましたが、これは機能しているようですが、提供されるキーボードレイアウトは標準のubuntuのものとは異なります(そしてそれらの数ははるかに少ないです)。

ただ走れないことに気づいた

/usr/lib/x86_64-linux-gnu/indicator-keyboard/indicator-keyboard-service &

何か案は?

Ubuntuのバージョンは15.10です。

1
Mali Remorker

それで、私は不可能を止めて、Unityの断片をFluxboxに引き出すことにしました。代わりに、実際にsetxkbmapに依存する、はるかに多くのfluxboxyソリューションがあります。 このUNIXスタック交換の回答 を参照して、米国のキーボードでセルビア語(ラテン)とドイツ語の同様のサブメニュー設定を行いました。

.fluxbox/menuで、

[begin] (fluxbox)
[include] (/etc/X11/fluxbox/fluxbox-menu)
[submenu] (keyboards)
[exec] (us) {setxkbmap us}
[exec] (de) {setxkbmap de qwerty}
[exec] (rs) {setxkbmap rs latinunicodeyz}
[end]

上記のスニペットは、異なるキーボードレイアウトに対応する3つのアイテムを設定します。

物事をより柔軟にするために、.fluxbox/keysにキーボードショートカットも追加しました。

Mod4 Shift 1 :Exec chkb.sh us
Mod4 Shift 2 :Exec chkb.sh rs latinunicodeyz
Mod4 Shift 3 :Exec chkb.sh de qwerty

ここで、chkb.shは、次の内容のスクリプトです。

#!/bin/bash    
langsel="$1"
varant="$2"
setxkbmap "$1" "$2"
xmodmap "/home/user/.Xmodmap"

。私はEmacsユーザーなので、Caps LockをCtrl機能(およびCtrlをCaps Lock)にバインドすることを好みます。キーボードレイアウトを変更するたびに、.Xmodmap定義を読み直してバインドプロセスを繰り返す必要があります。これは、:Execディレクティブによって直接呼び出されるよりも、スクリプトにパックされている方が優れています。

多分誰かがまだ別の解決策を持っています...

0
Mali Remorker