編集:「問題」はUbuntuだけでなく、Debian自体にもあり、Ubuntuがそれを継承しただけであることを認識したので、Ask Ubuntuから移行しました
私は10年間Linuxのオンとオフを使用していますが、最近ではOSXに多くの時間を費やしています。
しかし、最初は米国の国際キーボードレイアウトを選択し、Windowsのキーボードレイアウト(および最近ではOSX USの国際レイアウト)とまったく同じ出力になることを覚えています。
しかし、数年前にUbuntuをインストールしたとき、セディーユがもう印刷されていないことに気付きました(çまたはÇ)。これは次のキーの組み合わせです: '+ c。代わりに、私はćの手紙を受け取ります。
それはいつ発生し始めましたか、そしてなぜ他のOSでの動作に違いがあるのですか?私をさらに困惑させるのは、まったく同じキーを印刷する「US International代替」キーボードレイアウトさえあるということです!それで、それに代わるものは何ですか?
これはバグとしてCanonicalに報告されていますが(リンクが見つかりません)、キーボードのレイアウトが予想どおりに変更されたことはありません。私はそれを必要なものに修正するための回避策を知っていますが、なぜ/いつそれが変わったのか知りたいだけです。
まとめ
デッドキー設定は、ロケールと文字セットによって異なります。
例えば:
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
すなわち:
ç
ć
Gitのログ(( en_US.UTF-8 )( iso8859-1 ))は、少なくとも2004年以来このようになっていることを示しています。
US InternationalとUS Alternative Internationalの違いは/usr/share/X11/xkb/symbols/us
で定義されています。
つまり、US Alternative Internationalのレイアウトでは、次のAltGrデッドキーが追加されます。
例えば:
¥
ā
UTF-8がデフォルトのエンコーディングになりました。
補完的な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
正しいキーマップ、フォント、フォントマップを設定します。
# nano /etc/vconsole.conf
KEYMAP=us-acentos
FONT=ter-114n
FONT_MAP=8859-1
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
行のgtk20
はgtk30
になりましたが、最後に:en
を追加しても同じです。
GTK以外のアプリケーションでもこれを修正するには、ルートとしてファイル/ usr/share/X11/locale/en_US.UTF-8/Composeを編集し、ćのすべてのインスタンスをç、およびĆのすべてのインスタンス。
システムをアップグレードし、構成ファイルを元の内容に戻すときに、1つまたは両方の操作をときどき繰り返す必要がある場合があります。
これは 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
(これの私のソース ここ 。)