데비안의 미국 국제 키보드 레이아웃이 다른 이유는 무엇입니까?


11

편집 : 나는 "문제"가 우분투뿐만 아니라 데비안 자체에 있다는 것을 깨달았고 우분투는 그것을 물려 받았으므로 우분투 Ask에서 마이그레이션했습니다.


나는 10 년 동안 리눅스를 켜고 끌었다. 그리고 최근에는 OSX와 더 많은 시간을 보냈다.

그러나 처음에는 미국의 국제 키보드 레이아웃을 선택했으며 Windows 키보드 레이아웃과 가장 동일한 출력 (그리고 가장 최근에는 OSX US 국제 레이아웃)을 사용한다는 것을 여전히 기억합니다.

그러나 몇 년 전에 우분투를 설치했을 때 나는 cedilla가 더 이상 인쇄되지 않는 것을 알았습니다 (ç 또는 Ç). 다음 키의 조합입니다. '+ c. 대신 내가 얻는 것은 ć 편지입니다.

언제 발생했고 다른 OS의 동작과 다른가? 나를 더욱 괴롭히는 것은 정확히 같은 키를 인쇄하는 "미국 국제 대안"키보드 레이아웃도 있다는 것입니다! 대체 대안은 무엇입니까?

이것은 Canonical의 버그로보고되었지만 (지금 링크를 찾을 수 없음) 키보드 레이아웃은 내가 기대했던대로 다시 변경되지 않았습니다. 필요한 것을 고칠 수있는 해결 방법을 알고 있지만 왜 / 왜 달라 졌는지 알고 싶습니다.


2
AltGr+를 사용하여 c-cedilla를 입력 할 수 있습니다 ,. 그러나 언제 / 언제 / 왜 바뀌 었는지 모르겠습니다.
Mikel

의견 주셔서 감사합니다. 질문을 여기에 이동 / 병합 할 수 있도록 플래그를 지정했습니다. 나는 여전히 그 행동이 데비안에서 물려받은 것처럼 여기가 옳다고 믿는다.
Pablo

답변:


17

요약

  1. Ubuntu를 사용하는 경우 기본 문자 집합이 ISO 8859-1에서 UTF-8로 변경된 2005 년 경에 변경되었을 수 있습니다.
  2. 미국 얼터너티브 인터내셔날은 몇 가지 죽은 열쇠를 추가합니다.

데드 키 설정은 로캘 및 문자 집합에 따라 다릅니다.

예를 들면 다음과 같습니다.

  • 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 logs (( en_US.UTF-8 ) ( iso8859-1 ))는 2004 년 이후이 방법으로 사용되었음을 보여줍니다.


US International과 US Alternative International의 차이점은에 정의되어 /usr/share/X11/xkb/symbols/us있습니다.

즉, 미국 대체 국제 레이아웃은 이러한 추가 AltGr 데드 키를 추가합니다.

  • dead_macron : AltGr- 빼기
  • dead_breve : AltGr-parenleft에서
  • dead_abovedot : AltGr 기간
  • dead_abovering : AltGr-0에서
  • dead_doubleacute : AltGr과 동일 (quotdbl이 이미 사용 된 상태)
  • dead_caron : AltGr-less (AltGr-shift- 쉼표)
  • dead_cedilla : AltGr- 쉼표
  • dead_ogonek : AltGr- 세미콜론
  • dead_belowdot : AltGr 밑줄 (AltGr-shift- 빼기)
  • dead_hook : AltGr- 질문
  • dead_horn : AltGr-plus (AltGr-shift- 같음)
  • dead_diaeresis : AltGr- 콜론 (Alt-shift-semicolon)

예를 들면 다음과 같습니다.

  • 미국 국제 : AltGr+ -=¥
  • 미국 대안 국제 : AltGr+ -, a=ā

UTF-8이 기본 인코딩이되었습니다.

  • 년 9 월 (30)를 발표 레드햇 8.0 "프시케", 2002 참조
  • 4월 8일 출시 된 우분투 5.04 "회백색", 2005 참조
  • 데비안 4.0 "etch", "stable"로 출시 2007 년 4 월 8 일 참조 1 참조 2

이 답변에 대해 둘 이상의 투표권을 부여했으면합니다.
penguin359

그것은 그가 주목할 가치가있다 <dead_acute> <c>로 다시 매핑 ç(대신 ć로케일이 PT_BR 경우). 참조 :/usr/share/X11/locale/pt_BR.UTF-8/Compose
데닐손 Sá 마이 아에게

4

Vítor Souza 답변 보완

영어 로 된 OS 언어와 함께 미국 국제 키보드 레이아웃 을 사용 하고 아름다운 cedilla를 갖습니다 .

작성 파일을 변경하기 위해 영어를 ç/Ç아름답게 ( '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는 문제를 해결하는 방법을 묻지 않고 처음에는 왜 그런지 묻습니다. 그렇지 않으면 나는 이것을 공표했다.
strugee

@strugge, 당신 말이 맞아요. 그러나 후속작은 OP와 관련하여 그렇게하고 있으며 Mikel은 훌륭하게 대답했습니다.
Geyslan G. Bem

이 답변이 도움이된다고 생각되면 설정하십시오.
Geyslan G. Bem

3

에서 http://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10-10-maverick-meerkat/http://disi.unitn.it/~vitorsouza/linux/ubuntu-linux-10- 04- 명쾌한 살 lyn이 / :

세 딜라 문제 :

어떤 멋진 동료는 악센트 c (“ć”)가 cedilla (“ç”)가있는 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


데비안 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/ 파일을 루트로 편집하여 ć의 모든 인스턴스와 ç의 모든 인스턴스와 Ć의 모든 인스턴스를 Ç으로 변경하고 변경하십시오.

시스템을 업그레이드하고 구성 파일을 원래 내용으로 되돌릴 때 때때로 하나 또는 두 작업을 반복해야 할 수도 있습니다.


패키지 관리자가 변경 사항을 밟지 않도록 루트로 실행할 수 있습니다 dpkg-divert /usr/lib/gtk-2.0/2.10.0/gtk.immodules. 그러면 패키지 시스템이 gtk.immodules.distrib대신 쓰게 됩니다. 이를 취소하려면 --remove동일한 명령에 플래그를 추가 하고 .distrib 파일을 원본 위에 복사하십시오. 자세한 내용은을 (를) 참조하십시오 man dpkg-divert.
Jander

우분투 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ítor Souza의 답변을 보완하는 입니다.

Xfce Quantal (Xubuntu 12.10, Mint 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

( 여기에 대한 내 소스는 여기에 있습니다 .)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.