Почему отличается американская международная раскладка клавиатуры на Debian?

Еще одна причина. В былые времена для серьезной работы не было никакого Linux, никакого Windows, но UNIX и VMS (MS-DOS и подобный не были соперники, они испытали недостаток в слишком многих функциях), и возможно небольшое количество менее известные вещи как LISP-компьютеры...

Из тех, только полученные из UNIX пережившие платформы. И Linux был дешевой альтернативой для подобных UNIX Ose: более или менее совместимый, с открытым исходным кодом и свободный. Это позволило снова использовать научное программное обеспечение, которое было записано перед Linux.

11
16.02.2011, 02:59
4 ответа

Сводка

  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 = ć

Мерзавец регистрируется ((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-равном (поскольку quotedbl уже используется),
  • dead_caron: на AltGr-меньше (AltGr-shift-comma)
  • dead_cedilla: на AltGr-запятой
  • dead_ogonek: на AltGr-точке-с-запятой
  • dead_belowdot: на AltGr-подчеркивании (AltGr-shift-minus)
  • dead_hook: по AltGr-вопросу
  • dead_horn: на AltGr-плюс (AltGr-shift-equal)
  • dead_diaeresis: на AltGr-двоеточии (Alt-shift-semicolon)

Например:

  • US International: AltGr +-= ¥
  • US Alternative International: AltGr +-, = ā

UTF-8 стал кодировкой по умолчанию:

  • Red Hat 8.0 "Душ", выпущенных 30 сентября 2002 ссылка
  • Ubuntu 5.04, "древняя", выпущенная 8 апреля 2005 ссылка
  • Debian 4.0 "травление", выпущенное как "стабильный" 8 апреля 2007 ссылка 1 ссылка 2
16
27.01.2020, 19:57
  • 1
    мне жаль, что у меня не было больше чем одного голосования для предоставления для этого ответа. –  penguin359 03.05.2011, 15:01
  • 2
    Стоит отметить это <dead_acute> <c> повторно отображается на ç (вместо ć) если Ваша локаль является pt_BR. См.: /usr/share/X11/locale/pt_BR.UTF-8/Compose –  Denilson Sá Maia 27.05.2014, 00:23

Из 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 in international keyboards with deadkeys is now “ć\”. Так как я бразилец и не румын или что-то, которое определенно беспокоит меня‘. + 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"

И добавьте: en после: wa, таким образом, это похоже на это:

"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 (и вероятно другой материал gtk 3)

Файл, который должен быть отредактирован, теперь

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

gtk20 в строках теперь gtk30 но добавление :en в конце все равно.


Чтобы зафиксировать его также для non-GTK приложений, отредактируйте как корень файл/usr/share/X11/locale/en_US.UTF-8/Compose и изменить все экземпляры ć с ç и все экземпляры Ć с Ç.

Вы, возможно, должны были бы повторить одну или обе операции время от времени, когда Вы обновляете свою систему, и она забирает конфигурационные файлы к их исходному содержанию.

2
27.01.2020, 19:57
  • 1
    Чтобы помешать диспетчеру пакетов ступать на Ваши изменения, можно работать (как корень) dpkg-divert /usr/lib/gtk-2.0/2.10.0/gtk.immodules. Система пакета затем запишет в gtk.immodules.distrib вместо этого. Для отмены этого добавьте --remove отметьте к той же команде и скопируйте .distrib файл по оригиналу. Для большего количества информации, man dpkg-divert. –  Jander 16.02.2011, 05:38
  • 2
    в человечности 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 –   15.04.2013, 17:47

Это стало дополнением к ответу Vítor Souza.

В Xfce Quantal (Xubuntu 12.10, Монетный двор 14 Xfce) не мог решить это методами, уже упомянутыми (см. ниже). То, что работало, устанавливало ibus пакет и его зависимости.

(Источник - более точно здесь.)


Более старое решение не сделало работавший для меня: в 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

(Мой источник для этого здесь.)

0
27.01.2020, 19:57

Дополнение ответ Vítor Souza

Используя американскую международную раскладку клавиатуры с Языком ОС на английском и наличии красивой седили.

Иметь английский Язык с ç/Ç работа красиво ('c-> седиль) не необходима для изменения составить файлы. То, что нужно сделать, должно установить LC_CTYPE с локалью, которая содержит это определение:

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

Как pt_BR.UTF-8 (бразильский португальский / Português Brasileiro).

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
27.01.2020, 19:57
  • 1
    OP не спрашивал, как зафиксировать его, но почему это был тот путь во-первых. Иначе я был бы upvote это. –  strugee 13.09.2013, 06:37
  • 2
    @strugge, Вы правы. Однако продолжения делают его и относительно OP, Mikel ответил на это приятно. –  Geyslan G. Bem 13.09.2013, 14:59
  • 3
    Если кто-либо считает этот ответ полезным, установите его. –  Geyslan G. Bem 19.04.2014, 22:37

Теги

Похожие вопросы