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


11

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


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

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

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

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

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


2
AltGr+ を使用してc-cedillaに入ることができます,。しかし、いつ/どのように/なぜ変化したのかはわかりません。
ミケル

コメントありがとうございます。ここに移動/マージできるように質問にフラグを付けました。この振る舞いはDebianから受け継がれているように見えるので、私はまだここが正しい場所だと信じています。
パブロ

回答:


17

概要

  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 Alternative International:AltGr+ -a=ā

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


私はこの答えに投票するために複数の投票があったことを望みます。
penguin359

ロケールがpt_BRの場合は、(の代わりに)に<dead_acute> <c>再マッピングされることに注意してください。参照:çć/usr/share/X11/locale/pt_BR.UTF-8/Compose
DenilsonSáMaia

4

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

OPはそれを修正する方法を尋ねていませんでしたが、そもそもなぜそれがそのようになっていたのですか?そうでなければ、私はこれに賛成票を投じるでしょう。
ストジー、

@strugge、あなたは正しい。しかし、続編はそれをやっていて、OPに関連して、Mikelはうまく答えました。
Geyslan G. Bem 2013

この回答が役に立ったと思われる場合は、設定してください。
Geyslan G. Bem 14

2

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を押す場合のデフォルトの動作は「ć」になりました。私はルーマニア人ではなくブラジル人なので、それは明らかに私を悩ませます。'+ 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

gtk20行は今ですgtk30:en、最後にを追加することはまったく同じです。


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

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


パッケージマネージャーが変更を実行しないようにするには、(rootとして)を実行しますdpkg-divert /usr/lib/gtk-2.0/2.10.0/gtk.immodules。次に、パッケージシステムがgtk.immodules.distrib代わりに書き込みます。これを元に戻す--removeには、同じコマンドにフラグを追加し、元のファイルに.distribファイルをコピーします。詳細情報については、man dpkg-divert
ジャンダー

ubuntu 12.10では、ファイルの場所が異なります:/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

これはVítorSouzaの回答を補足するものです。

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

(これの私のソースはここにあります。)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.