web-dev-qa-db-ja.com

Debianで第1レベルのデッドキーを使用して安定したInternationalDvorakを取得するにはどうすればよいですか?

スレッドなどの不安定で危険な方法がいくつかあります buntu 16.04のDvorakでドットを使用してAを取得する方法? 機能を取得しますが、多くの環境で実行できません。示されているように、ドイツ人は自分自身(ドット付きのa/e/u/o)が必要です ここ 一方、北欧(フィンランド、スウェーデン、ノルウェー、デンマークなど)の人々は同様のキー(a/oとドット)。 1レベルのキーボードアプローチは2レベルのキーボードアプローチよりも優れていると思います。オプション

  1. Debianでデフォルトでそのようなキーボードレイアウトを取得するのは素晴らしいことです。
  2. そのようなキーボード用にaptでパッケージを入手するのは良いことです。
  3. 多分他の方法...
  4. 最初のスレッドのようにこれらの変更を手動で行うことは、さまざまな環境でのリスクがあるため、オプションではありません。

OS X International Dvorakにはデフォルトでそのような機能があり、ベンチマークとして使用できますが、最初のスレッドの回答で行われた手動のアプローチも使用できます。スレッド内のそのような機能のChromium開発で開かれているチケットがあります デッドキーを使用したInternational Dvorak Chromebookでターゲットにされています。

Debianでclearkimuraの答えをテストする

  1. 出力

    masi@masi:~/Downloads$ Sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl
    
    masi@masi:~/Downloads$ setxkbmap -verbose dvorak_intl
    
    masi@masi:~/Downloads$ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY
    Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
                  Ignoring extra symbols
    Warning:          Key <OUTP> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <KITG> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <KIDN> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <KIUP> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <RO> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <I192> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <I193> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <I194> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <I195> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <I196> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          Key <I255> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
    Warning:          No symbols defined for <AB11> (keycode 97)
    Warning:          No symbols defined for <JPCM> (keycode 103)
    Warning:          No symbols defined for <I120> (keycode 120)
    Warning:          No symbols defined for <AE13> (keycode 132)
    Warning:          No symbols defined for <I149> (keycode 149)
    Warning:          No symbols defined for <I154> (keycode 154)
    Warning:          No symbols defined for <I168> (keycode 168)
    Warning:          No symbols defined for <I178> (keycode 178)
    Warning:          No symbols defined for <I183> (keycode 183)
    Warning:          No symbols defined for <I184> (keycode 184)
    Warning:          No symbols defined for <FK19> (keycode 197)
    Warning:          No symbols defined for <FK24> (keycode 202)
    Warning:          No symbols defined for <I217> (keycode 217)
    Warning:          No symbols defined for <I219> (keycode 219)
    Warning:          No symbols defined for <I221> (keycode 221)
    Warning:          No symbols defined for <I222> (keycode 222)
    Warning:          No symbols defined for <I230> (keycode 230)
    Warning:          No symbols defined for <I247> (keycode 247)
    Warning:          No symbols defined for <I248> (keycode 248)
    Warning:          No symbols defined for <I249> (keycode 249)
    Warning:          No symbols defined for <I250> (keycode 250)
    Warning:          No symbols defined for <I251> (keycode 251)
    Warning:          No symbols defined for <I252> (keycode 252)
    Warning:          No symbols defined for <I253> (keycode 253)
    
  2. 再起動

  3. 出力:キーボードレイアウトはもうアクティブではありません
  4. Region & Languageに移動>選択> Dvorakを検索>図1のデッドキーでDvorakを選択
  5. 出力:期待されるキーボードレイアウトがアクティブになり、トップバーで選択可能になりました
  6. Regien&Languageで、プライマリキーボードレイアウトを図2の上部に配置します。つまり、以前のキーボードレイアウトを上部から削除します。このようにして、デッドキーのあるDvorakインターナショナルをプライマリキーボードとして配置し、再起動後もそこにとどまることができます。

図1変更後の地域と言語の設定、図2主なキーボードレイアウトとしてデッドキーを使用したDvorakインターナショナルの場合の地域と言語の設定

enter image description hereenter image description here

OS:Debian 8.7
ハードウェア:Asus Zenbook UX303UB、HP2002ラップトップ
ウィンドウマネージャー:Gnome 3.14

この回答では、 Arjen van Kolによるこの記事 にあるDvorak国際拡張キーボードレイアウトのインストール方法について説明します。 XKBを使用すると、インストールとセットアップはかなり簡単でした。

新しいレイアウトをインストールする

リンク先の記事からレイアウトファイルdvorak_intlをダウンロードします。次に、ファイルをスーパーユーザーとして同じファイル名の/usr/share/X11/xkb/symbols/にコピーします。

Sudo cp dvorak_intl /usr/share/X11/xkb/symbols/dvorak_intl

さらに権限を変更する必要はありません。好奇心旺盛なユーザーの場合は、statコマンドを使用して権限を確認してください。権限はデフォルトで644です。

$ ls -l /usr/share/X11/xkb/symbols/dvorak_intl 
-rw-r--r-- 1 root root 2989 May 14 17:32 /usr/share/X11/xkb/symbols/dvorak_intl

$ stat -c '%a %n' /usr/share/X11/xkb/symbols/dvorak_intl 
644 /usr/share/X11/xkb/symbols/dvorak_intl

新しいレイアウトを適用する

変更を加える前に、後で変更を元に戻したい場合に備えて、setxkbmap -queryを実行して現在のレイアウトを確認してください。レイアウトはデフォルトでusです。

$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     us   <-- current layout

次に、setxkbmapコマンドを実行して、新しいキーボードレイアウトを設定します。 -verboseオプションが追加され、出力が表示されます。それ以外の場合は何も表示されません。

$ setxkbmap -verbose dvorak_intl
Warning! Multiple definitions of keyboard layout
         Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+dvorak_intl+inet(evdev)
geometry:   pc(pc105)

ユーザーは再度setxkbmap -queryを実行して、行われ、現在レイアウト列に表示されている変更を確認できます。

$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     dvorak_intl   <-- new layout

新しいレイアウトをテストする

変更はすぐに有効になります。 Xサーバーをログアウトしたりリロードしたりする必要はまったくありません。テキストエディタを開き、キーボードの4行の各キーを押して出力を確認します。

第1レベルと第2レベルのキー(なしとあり Shift):

`1234567890[]
~!@#$%^&*(){}

´,.pyfgcrl/=\
¨<>PYFGCRL?+|

aoeuidhtns-
AOEUIDHTNS_

;qjkxbmwvz
:QJKXBMWVZ

第3および第4レベルのキー( AltGr そして Shift+AltGr):

 ¡ ♯         
         []{}

´¸…    č     
 «»¶     ¿ 

å°əŭ     ß—
Å  Ŭ      ¯

   ĸ×     

キーボードレイアウトdvorak_intlの3番目と4番目のレベルでの入力に慣れていないため、これらのレベルで不足しているキーがあるかどうかはわかりません。

レイアウトを永続化する

setxkbmapコマンド自体は、現在のセッションでのみ有効です。ただし、それぞれのデスクトップ環境のスタートアップアプリケーションに次のコマンドを追加することは可能です。

setxkbmap LAYOUTNAME

そのため、ユーザーがシステムにログインしてデスクトップセッションが開始されるたびに、LAYOUTNAMEが設定されます。ログアウトして再度ログインし、ターミナルを開いてsetxkbmap -queryを実行し、すべてのセッションに新しいキーボードレイアウトが適用されていることを確認します。

Debian以外のシステム用に設定する

システムのアップグレードによって/usr/share/X11/xkb/symbolsの構成ファイルが上書きされた場合、ユーザーはレイアウト構成ファイルを別の場所(おそらくホームディレクトリ)に再配置し、システムディレクトリから確実に削除することができます。

$ mkdir -p ~/.xkb/symbols  
$ cp /usr/share/X11/xkb/symbols/dvorak_intl ~/.xkb/symbols  
$ Sudo rm -i /usr/share/X11/xkb/symbols/dvorak_intl  

次に、-Iオプションを指定したコマンドを使用して、そこからレイアウト構成をロードします。同様に機能します。

$ setxkbmap -I ~/.xkb dvorak_intl
$ setxkbmap -query
rules:      evdev
model:      pc105
layout:     dvorak_intl

したがって、setxkbmap LAYOUTNAMEの代わりに、それぞれのデスクトップ環境のスタートアップアプリケーションにsetxkbmap -I ~/.xkb LAYOUTNAMEを追加して、すべてのセッションのキーボード構成をロードします。

Debianの不一致

コマンドが「新しいキーボードの説明の読み込み中にエラーが発生しました」というメッセージを返す場合( nix.SEのこの古い投稿 で説明されているように)、代わりに次のコマンドを使用します。

$ setxkbmap -I ~/.xkb dvorak_intl -print | xkbcomp -I$HOME/.xkb - $DISPLAY
Warning:          Type "ONE_LEVEL" has 1 levels, but <RALT> has 2 symbols
                  Ignoring extra symbols
Warning:          Key <OUTP> not found in evdev+aliases(qwerty) keycodes
                  Symbols ignored
...
Warning:          No symbols defined for <I253> (keycode 253)

不思議なことに、最後のコマンドは、私の外国のキーボードモデル(日本のOADG 109Aキーボードレイアウトバリアント)に関連している可能性のある多くの警告メッセージを返します。また、変更はsetxkbmap -queryに反映されませんが、入力すると期待どおりに機能します。

Xubuntu 14.04(Xfce 4.10)、Debian Xfce 8(Xfce 4.10)、Debian 8.7 Gnome3.14でsetxkbmap1.3.0を使用してテスト済み。

免責事項:この回答は、XKBを使用して新しいキーボードレイアウトをインストールおよび設定する方法を示すことを目的としています。元の命令は workman/xorgリポジトリ から見つかりました。これはレガシーパスと現在のパスの両方に言及していました(Ubuntu 10.04、当時のGNOME 2.30の場合)。ただし、この命令は、GNOME以外の環境(Xfceなど)でも有効であることがテストされています。

dvorak_intlファイルで提供されている日付の付いた手順は、おそらくGNOMEの古いリリースを対象としており、現在使用している最新のディストリビューションでは無効になっています。レガシーパスは/etc/X11/xkb/symbols/にありますが、現在のパスは/usr/share/X11/xkb/symbols/にあります。

ザ・ AltGr keyはcomposeキーを指します。デフォルト(少なくともXfceでは)または通常はRightに割り当てられていません Alt キー、使用中のLinuxディストリビューションによって異なります。 3番目と4番目のレベルのキーを示すためにコンポーズキーを有効にしましたが、コンポーズキーの設定は上記のではありません

3
clearkimura

私はずっと前にカスタムキーボードレイアウトのパッケージを作成しようとしました。ここに私がその時に見つけることができたオプション:

  1. 元のレイアウトを変更します(例:/usr/share/X11/xkb/symbols/us

    問題:

    • xkb-dataアップデートで上書きされました。パッケージ名は、配布ごとに異なる場合があります。
    • 別のパッケージファイルを上書きするdebianパッケージを作成するのは悪い考えです。
  2. この投稿 のように異なる名前xyで新しいレイアウトを追加します

    問題:

    • 前のメソッドと同じ問題ですが、レイアウト宣言ファイルがあります:/usr/share/X11/xkb/rules/evdev.xml変更する必要があります。 AFAIK、Xorgサーバーは新しいレイアウトの動的ロードをサポートしていません。

上記の方法は、レガシーシステムであるXIM(標準X入力方法)を中継します。 IBusやSCIMなどのプラグイン(モジュラーデザイン)をサポートする最新の入力方式を使用することをお勧めします。

私はそれを試しませんでしたが、 この投稿 で説明されているようにibus-tableが最も簡単な方法だと思います。追加されたファイルは、ほとんどのIBusエンジンおよびレイアウトと同様に、個別にパッケージ化およびインストールできます。IBusはそれらのロードに注意を払います。

更新:

さて、 この回答 AskUbuntuで、アップストリームパッケージを変更するためのよりクリーンな方法について言及しています。パッケージを再構築するための最小限の手順は次のとおりです

  1. リポジトリのソースコードを有効にする
  2. ビルドの依存関係をダウンロードする

    Sudo apt build-dep  xkb-data
    
  3. ソースをダウンロードする

    mkdir sandbox
    cd sandbox
    apt source xkb-data
    
  4. 次のように新しいキルトパッチを作成します buntuパッケージガイド

    cd xkeyboard-config*/
    quilt new username_custom_layout.diff
    quilt add symbols/us
    

    symbols/usで必要な変更を加えてから

    quilt refresh
    
  5. 署名されていないソースとバイナリパッケージをビルドする

    debuild -us -uc 
    
2
user.dz

Dvorak International Extendedと呼ばれるカスタムDvorakキーボードレイアウトの例。これは、ここで要求され、WindowsおよびLinux用に完了した機能を備えています(コード ここ )投稿 Dvorak国際拡張キーボードレイアウト-追加Dvorak Simplified Keyboardの国際サポート

図1Dvorak International Extendedキーボードレイアウトの設計、図2セクションの変更後のDebianキーボード設定でのDvorakの検索Debian8.7でのインストール試行、図3検索extended.。

enter image description hereenter image description hereenter image description here

Debian8.7でのインストールの試み

インストール手順で最初の2つの手順を完了することができましたが、そこにキーボードレイアウトを追加した場合の効果がわかりませんでした。

  1. [完了]このファイルを/etc/X11/xkb/symbols/pcディレクトリにコピーします。これを行うには、root権限が必要になる場合があります。

    Sudo mkdir -p /etc/X11/xkb/symbols/pc
    Sudo cp dvorak_int /etc/X11/xkb/symbols/pc/
    
  2. /etc/X11/xkb/rules/xfree86.lstに次の行を追加します。dvorak_intl Dvorak international extended

     Sudo touch /etc/X11/xkb/rules/xfree86.lst
     Sudo echo `dvorak_intl Dvorak international extended` >> /etc/X11/xkb/rules/xfree86.lst
    
  3. しかし、私は3番目のステップを完了できません

    // In order to make the keyboard layout available in GNOME,
    // you should also modify /etc/X11/xkb/rules/xfree86.xml
    // accordingly (this is an XML file and the format is mostly
    // self-explanatory).
    

    私のシステムにはファイルapt search XF86Configがないため、コマンド/etc/X11/xkb/rules/xfree86.xmlは何も返しません。説明書にタイプミスがあります(ありがとう、clearkimura)!ファイル名を検索し、次のように編集しますが、正確に何を入力すればよいかわかりません-ファイルのファイル名またはdvorak-intl-extended(私のカスタム名)

    masi@masi:~$ dpkg --search xfree86.xml
    xkb-data: /usr/share/X11/xkb/rules/xfree86.xml
    
    masi@masi:~$ Sudo vim /usr/share/X11/xkb/rules/xfree86.xml 
    

    /usr/share/X11/xkb/rules/xfree86.xmlでの追加

        <variant>
          <configItem>
            <name>dvorak-intl-extended</name>
            <description>English (Dvorak, international extended with dead keys)</description>
          </configItem>
        </variant>
        <variant>
    

    システムを再起動しましたが、図2と図3の言語キーボードメニューで出力に失敗しました。

    たぶん、私の許可に何か問題があります

     masi@masi:~$ Sudo ls -la /etc/X11/xkb/symbols/pc/
     total 12
     drwxr-xr-x 2 root root 4096 May 13 20:35 .
     drwxr-xr-x 3 root root 4096 May 12 16:25 ..
     -rw-r--r-- 1 root root 2989 May 12 16:26 dvorak_intl
    

    ディレクトリ権限は問題ないはずです

    masi@masi:~$ ls -la /etc/ | grep X11
    drwxr-xr-x  10 root root     4096 Sep  8  2016 X11
    masi@masi:~$ ls -la /etc/X11/ | grep xkb
    drwxr-xr-x   4 root root  4096 May 12 16:25 xkb
    masi@masi:~$ ls -la /etc/X11/xkb/ | grep symbols
    drwxr-xr-x  3 root root 4096 May 12 16:25 symbols
    masi@masi:~$ ls -la /etc/X11/xkb/symbols/ | grep pc
    drwxr-xr-x 2 root root 4096 May 13 20:35 pc
    

新しいキーボードレイアウトの許可はどうあるべきですか?

OS:Debian 8.7