web-dev-qa-db-ja.com

Debianで米国の国際キーボードレイアウトが異なるのはなぜですか?

編集:「問題」はUbuntuだけでなく、Debian自体にもあり、Ubuntuがそれを継承しただけであることを認識したので、Ask Ubuntuから移行しました


私は10年間Linuxのオンとオフを使用していますが、最近ではOSXに多くの時間を費やしています。

しかし、最初は米国の国際キーボードレイアウトを選択し、Windowsのキーボードレイアウト(および最近ではOSX USの国際レイアウト)とまったく同じ出力になることを覚えています。

しかし、数年前にUbuntuをインストールしたとき、セディーユがもう印刷されていないことに気付きました(çまたはÇ)。これは次のキーの組み合わせです: '+ c。代わりに、私はćの手紙を受け取ります。

それはいつ発生し始めましたか、そしてなぜ他のOSでの動作に違いがあるのですか?私をさらに困惑させるのは、まったく同じキーを印刷する「US International代替」キーボードレイアウトさえあるということです!それで、それに代わるものは何ですか?

これはバグとしてCanonicalに報告されていますが(リンクが見つかりません)、キーボードのレイアウトが予想どおりに変更されたことはありません。私はそれを必要なものに修正するための回避策を知っていますが、なぜ/いつそれが変わったのか知りたいだけです。

11
Pablo

まとめ

  1. Ubuntuを使用している場合、おそらく2005年頃に変更され、デフォルトの文字セットがISO 8859-1からUTF-8に変更されました。
  2. US Alternative Internationalはいくつかのデッドキーを追加しています。

デッドキー設定は、ロケールと文字セットによって異なります。

例えば:

  • en_US.UTF-8/usr/share/X11/locale/en_US.UTF-8/Composeで定義されています
  • ISO 8859-1/usr/share/X11/locale/iso8859-1/Composeで定義されています

grepを使用してそれらを見ると、違いがあることがわかります。

$ grep '<dead_acute> <c>' /usr/share/X11/locale/en_US.UTF-8/Compose 
<dead_acute> <c>                    : "ć"   U0107 # LATIN SMALL LETTER C WITH ACUTE

$ grep '<dead_acute> <c>' /usr/share/X11/locale/iso8859-1/Compose
<dead_acute> <c>            : "\347"    ccedilla

すなわち:

  • Latin1エンコーディング: '、 c = ç
  • UTF-8エンコーディング: '、 c = ć

Gitのログ(( en_US.UTF-8 )( iso8859-1 ))は、少なくとも2004年以来このようになっていることを示しています。


US InternationalとUS Alternative Internationalの違いは/usr/share/X11/xkb/symbols/usで定義されています。

つまり、US Alternative Internationalのレイアウトでは、次のAltGrデッドキーが追加されます。

  • dead_macron:AltGrマイナス
  • dead_breve:AltGr-parenleft
  • dead_abovedot:AltGr期間
  • dead_abovering:AltGr-0
  • dead_doubleacute:AltGr-equal(quotedblはすでに使用されているため)
  • dead_caron:AltGrなし(AltGr-shift-comma)
  • dead_cedilla:AltGr-comma
  • dead_ogonek:AltGr-セミコロン
  • dead_belowdot:AltGr-underscore(AltGr-shift-minus)
  • dead_hook:AltGr-question上
  • dead_horn:AltGr-plus(AltGr-shift-equal)
  • dead_diaeresis:AltGr-colon(Alt-shift-semicolon)

例えば:

  • 米国国際: AltGr+- = ¥
  • USオルタナティブインターナショナル: AltGr+-、 a = ā

UTF-8がデフォルトのエンコーディングになりました。

  • Red Hat 8.0 "Psyche"、2002年9月30日リリース 参照
  • Ubuntu 5.04「hoary」、2005年4月8日リリース 参照
  • 2007年4月8日、「安定版」としてリリースされたDebian 4.0「etch」 参照1参照2
17
Mikel

補完的なVítorSouzaの回答

を使用して 米国の国際キーボードレイアウト OS言語で 英語 そして美しい セディーユ

ç/Çを使用して英語を美しく機能させる( 'c -> cedilla)作成ファイルを変更する必要はありません。 LC_CTYPEに、この定義を含むロケールを設定する必要があります。

<dead_acute> <c>            : "\347"    ccedilla.

Pt_BR.UTF-8(ブラジルポルトガル語/ポルトガル語のブラジレイロ)のように。

Xキーボードマップ:

# setxkbmap -layout us -variant intl

/ etc/locale.conf

# nano /etc/locale.conf
LANG=en_US.UTF-8
LANGUAGE="en_US"
LC_CTYPE=pt_BR.UTF-8

ロケールの更新

# source /etc/profile

Ttyの場合:

正しいキーマップ、フォント、フォントマップを設定します。

# nano /etc/vconsole.conf
KEYMAP=us-acentos
FONT=ter-114n
FONT_MAP=8859-1
4
Geyslan G. Bem

http://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10-10-maverick-meerkat/ および http://disi.unitn.it/から〜vitorsouza/linux/ubuntu-linux-10-04-lucid-lynx /

セディーユの問題:

ナイスフェローの中には、アクセント付きのc(「ć」)がセディーユ付きのc(「ç」)よりも重要であると判断したため、デッドキーのある国際キーボードで ‘+ cを押すデフォルトの動作は「is」になりました。私はルーマニア語などではなくブラジル人なので、間違いなく私を悩ませています。 ‘+ cは、一度に「ç」を出力するために使用されていました。

これを修正するには、ルートとしてファイル/ usr/lib/gtk-2.0/2.10.0/gtk.immodulesを編集し、次の行を見つけます。

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

:waの後に:enを追加すると、次のようになります。

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa:en"

Ubuntu 12.10用に編集( ソース ):

編集するgtk.immodulesファイルは次の場所にあります。

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodulesまたは/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules


Debian Wheezy用の編集(そしておそらく他のgtk 3のもの)

編集が必要なファイルは

/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules.cache

行のgtk20gtk30になりましたが、最後に:enを追加しても同じです。


GTK以外のアプリケーションでもこれを修正するには、ルートとしてファイル/ usr/share/X11/locale/en_US.UTF-8/Composeを編集し、ćのすべてのインスタンスをç、およびĆのすべてのインスタンス。

システムをアップグレードし、構成ファイルを元の内容に戻すときに、1つまたは両方の操作をときどき繰り返す必要がある場合があります。

3
Vítor Souza

これは Voutor Souzaの回答 を補完するものです。

Xfce Quantal(Xubuntu 12.10、Mint 14 Xfce)では、すでに述べた方法(下記参照)ではこれを解決できませんでした。うまくいったのは、ibusパッケージとその依存関係をインストールすることでした。

ソース -より正確には ここ 。)


古いソリューションではうまくいきませんでした。Ubuntu12.10では、ファイルgtk.immodulesの場所が異なります:

/usr/lib/x86_64-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

または

/usr/lib/i386-linux-gnu/gtk-2.0/2.10.0/gtk.immodules

(これの私のソース ここ 。)

0
user32012