web-dev-qa-db-ja.com

Windowsの動作を模倣するLinux上のUSInternationalキーボードレイアウトはありますか?

私はキーボードレイアウトとしてUSインターナショナルを使用することに慣れています。ただし、実装はWindowsとLinuxで大きく異なるようです(私の場合、GTKはWindowsでも同じように動作するため、GTKの問題である可能性があります)。

レイアウトでは、たとえば次のようなキーにデッドキーが使用されます。 '、 "、 ^、&​​c。分音記号付きの文字を簡単に入力できます。 Windowsでは、デッドキーを押してからペアが関連付けられていないキーを押すと、デッドキーの文字(スペースとペアになっている場合)と2番目のキーの文字が表示されます。例:を押す "、 a 「ä」が生成されますが、 '、 s のペアリングがないため、「 's」が生成されます ' そして s

さて、英語と呼ばれる言語があり、これら2つの文字を正確に頻繁に使用します。これは、Windowsで通常どおり入力するだけで機能するため、今では筋肉の記憶になっています。それは私の問題に私をもたらします:

Linux(およびWindowsのGTK)では、isのペアリングがあります ' そして s多くその他)、結果としてś(これにより、頻繁に「itś」と入力することになります)。したがって、「it's」と入力するには、入力する必要があります '、         、 s 最後に。

私が慣れている他のいくつかの組み合わせが機能しません。それらの中には、存在しないペアの場合、単純にnothingが結果になります。 「I'd」と入力すると、「I」になります。これらのキーの1つを2回押すと、間隔のない発音区別符号が生成され、最初に両方の引用符を入力して文字列を入力する習慣がなくなります(これにより、間隔のないアキュートアクセントまたはマクロンが生成されます)。

簡単に言うと、提供されているUS InternationalのレイアウトはどれもWindowsと同じように機能していないようです。do同じように機能するものはありますか?または、そのように構成する機会はありますか?アキュートアクセントまたは非スペーシング発音区別符号を使用してsを入力するのは良いことかもしれませんが、それらは私にとって必ずしも一般的なニーズではありません。

13
Joey

1つの可能性は、デッドキーを避け、代わりにComposeキーでアクセント付き文字を入力することです。たとえば、次のように入力します Compose"aäを入力します。以下を含むキーボードレイアウトオプションを選択する必要があります Compose キー;一般的な選択は、右の左側のキーです Ctrl キー(Windowsが呼び出すと思います Menu)。の利点 Compose メインのレイアウトを変更せずに、多くの派手な文字を入力できるようになるということです。欠点は、アクセント付きの文字を2回ではなく3回押す必要があることです。

または、ホームディレクトリに.XCompose(大文字の使用に注意)というファイルを作成し、必要な組み合わせをリストすることで、デッドキーの効果を構成できます。何かのようなもの:

 include "/usr/share/X11/locale/en_US.UTF-8/Compose" 
 
 <dead_acute> <space>: "'"アポストロフィ
 <dead_acute> <exclam>: "'!" 
 <dead_acute> <quotedbl>: "' \" "
#など... 
 <dead_acute> <a>: "á" 
 <dead_acute> <b>: "'b" 
#など... 

構文は非常に単純です。:の左側にあるキーのシーケンスは、""の右側にある:の間の文字列に変換されます。右側の追加の単語は、この一連のキーに対応するkeysym(つまり、キーの名前)です。それはそれほど重要ではありません。 #から行末まではすべて無視されます。

ディストリビューションによってシステムファイルが別の場所に配置されている場合は、最初の行を変更してシステムファイルを指すようにします。その他の構文例については、このファイルを参照してください。 <Multi_key>はの別名です Compose キー。

左側では、<山かっこ>の間の名前はキーシムです。キーシムのリストは/usr/include/X11/keysymdef.hにあります(このファイルは開発パッケージに含まれています。たとえば、Ubuntuのx11proto-core-dev)。

はい、それは多くの入力ですが、keysymdef.hのチャンクをコピーして貼り付け、いくつかの巧妙な一括置換を行うことで、その多くを自動化できるはずです。 「\ x dd」構文のおかげで、右側の16進コードを再利用して、右側の文字列を作成できることが役立ちます。

#define XK_exclam 0x0021/* U +0021感嘆符*/

 <dead_acute> <exclam>: "'\ x21" 

最後に、デッドキーとキーボードレイアウトを設定できます。 Compose キー。ドイツ人なので、あなただけを設定するかもしれません " デッドキーとして。そのルートを使用する場合、最も簡単なオプションは、GUIを使用して、デッドキーのないキーボードとデッドキー用の.Xmodmapファイルを設定することです。

 keysym apostrophe = apostrophe dead_quotedbl 

この質問はしばらくの間「解決」されていることを私は知っています。ただし、このページの結果と多くのテストおよび実験を組み合わせたソリューションを紹介したいと思います。

Win US Intl for Linuxは、OPと同様に、LinuxのネイティブUSIntlキーボードレイアウトに問題があるという問題を解決するために作成した一連のスクリプトです。書きました。私は主に母国語がスペイン語であるためにそれを使用します、そして私はまだたくさんの英語のフォーラム、テキスト、チャットなどを使用しています(このサイトのように)。

注:これは実際にはWindowsの動作と似ています(完全に同じではありません)XP US-国際キーボードレイアウト。

http://tamh.info/en/win-us-intl-4-linux/ にアクセスして確認できます。他のいくつかの境界ケースのXComposeエントリを追加するなど、変更を加えて、改善を進めています。

3
Tamh

現在、この問題を解決する.debファイルを提供するgithubリポジトリがあります。

Windows™US International XCompose for Linux

他の回答が示唆しているように、これはカスタマイズされた.XComposeファイルに基づいています。

3
yms

解決策があります。誰かがここに投稿したように、これを機能させることができるgithubリポジトリがあります: https://github.com/raelgc/win_us_intl ここであなたがしたいこと:

  1. zipファイルをダウンロードする

  2. 必要な場所に抽出する場合は、XComposeファイルに焦点を当てる必要があります。

  3. お好みのテキストエディタでXComposeファイルを開き、次のように入力しますinclude "/usr/share/X11/locale/en_US.UTF-8/Compose"次のような行:include "%L"

  4. XComposeファイルを〜/ディレクトリに移動します

  5. 〜/ .profileを編集し、ファイルの最後にexport GTK_IM_MODULE = "xim"を配置します。

  6. IBusを使用したくない場合は、ターミナルで次のコマンドを入力します:im-config -n uim

  7. リブート

1
Eduardo Moraes