Linux'ta Windows'un davranışını taklit eden bir ABD Uluslararası klavye düzeni var mı?


13

Klavye düzenim olarak US International'ı kullanmaya alışkınım. Ancak, uygulama Windows ve Linux arasında büyük farklılıklar gösteriyor gibi görünüyor (Gnome, benim durumumda - GTK, Windows'ta aynı şekilde davrandığından GTK sorunu olabilir).

Düzeni gibi şifreler örneğin, ölü anahtarları kullanan ', ", ^, ve c. aksanlarla karakterlerin kolay girilmesini sağlar. Windows'ta bir ölü tuşa ve ardından çiftle ilişkili olmayan bir tuşa basmak, ölü tuşun karakterine (boşlukla eşleştirildiğinde) ve ikinci tuşun karakterine neden olur. Örnek: basılması ", apresleme, ancak verimi, “a” ', sbir eşleştirme için orada olduğu gibi, verimler “'” s 've s.

Şimdi, tam olarak bu iki karakteri sıkça kullanan İngilizce bir dil var ve bunları her zamanki gibi yazmak için Windows üzerinde çalıştığı için şimdi benim için kas hafızası. Bu da beni sorunuma getiriyor:

(Windows ve GTK) Linux'ta, orada olduğu için bir eşleştirme 've s(arasında birçok sonuçlanan diğerleri) ś(ki, sırayla, bana açar sıkça “itś” yazarak). Yazarak Yani “o en” yazmak açmamı ',         , ssonunda.

İşe yaramadığım birkaç kombinasyon daha var. Bunların arasında, var olmayan çiftler için sonuçta hiçbir şey yoktur . “I” kelimesinin yazılması “I” ile sonuçlanır. Bu tuşlardan birine iki kez vurmak, her iki tırnak işaretini yazarak (şimdi boşluk bırakmayan akut aksan veya makro ile sonuçlanır) dizeleri yazma alışkanlığımı bozan aralıksız bir aksan ile sonuçlanır.

Uzun lafın kısası: fonksiyonu Windows'ta gibi verilen ABD International'ın düzenleri göründüğünü Hiçbiri - olduğu herhangi yapmak aynı işi? Veya bu şekilde yapılandırma şansınız var mı? Akut aksanlı veya aralıksız aksanlara sahip bir s yazmak güzel olsa da, bunlar benim için tam olarak ortak ihtiyaçlar değildir.


1
Başka bir şey yerine neden ABD Uluslararası kullandığımı merak eden herkes için: Almanya'lıyım ve bazen ä, ö, ü, ß gibi şeyler yazmam gerekiyor. Ancak çoğu programlama dili tasarımcısı dillerini tam olarak bir düzen için tasarlar, böylece insanlar kıvırcık parantez veya ters eğik çizgi gibi karakterleri girmek için parmak kırma tuş kombinasyonlarına başvurmak zorundadır.
Joey

İşlemdeki dizeyi hotscripting yoluyla dönüştürmek için her zaman AHK veya benzeri bir çözüm kullanabilirsiniz? Linux ile ne kadar iyi oynadığından emin değilim, işte bununla ilgili bir konu.
Arctiic

Yanıtlar:


6

Bir olasılık, ölü tuşlara sahip olmaktan kaçınmak ve bunun yerine Compose tuşuyla aksanlı harfler yazmaktır. Örneğin, Compose " agirmek için yazın ä. ComposeAnahtar içeren bir klavye düzeni seçeneği seçmeniz gerekir ; ortak bir seçim, sağ Ctrltuşun solundaki anahtardır (bence Windows aramaktadır Menu). Avantajı, Composeana düzeninizi değiştirmeden birçok süslü karakter yazabilmenizdir. Dezavantajı, aksanlı bir harf için iki yerine üç kez basmasıdır.

Alternatif olarak, .XComposeana dizininizde (CApitalization notu) adlı bir dosya oluşturarak ve istediğiniz kombinasyonları listeleyerek ölü tuşların etkisini yapılandırabilirsiniz . Gibi bir şey:

"/usr/share/X11/locale/en_US.UTF-8/Compose" ifadesini dahil et

<dead_acute> <boşluk>: "'" kesme işareti
<dead_acute> <exclam>: "'!"
<dead_acute> <quotedbl>: "'\" "
# vb...
<dead_acute> <a>: "á"
<dead_acute> <b>: "'b"
# vb...

Sözdizimi oldukça basittir: simgesinin solundaki anahtar dizisi, :öğesinin ""sağındaki dizgeye dönüştürülür :. Sağdaki fazladan kelime, bu tuş dizisine karşılık gelen tuş takımıdır (yani tuşun adı); bu çok önemli değil. #Satırın sonuna kadar olan her şey yok sayılır.

Dağıtımınız farklı bir yere koyarsa, ilk satırı sistem dosyasını gösterecek şekilde değiştirin. Daha fazla sözdizimi örneği için bu dosyaya bakabilirsiniz. anahtarın <Multi_key>başka bir adıdır Compose.

Solda, <açılı ayraçlar arasındaki adlar >anahtar sözcüklerdir. Keysyms listesini /usr/include/X11/keysymdef.h(bu dosya bir geliştirme paketinde, örneğin x11proto-core-devUbuntu'da) bulabilirsiniz.

Evet, bu çok fazla yazıyor, ancak yığınlarını kopyalayıp yapıştırarak keysymdef.hve birkaç akıllı kitle değiştirme yaparak bunların çoğunu otomatikleştirebilmelisiniz . Yardımcı olacak bir şey, "\ x dd " sözdizimi sayesinde sağdaki dizeyi yapmak için sağdaki onaltılı kodu yeniden kullanabilmenizdir :

#define XK_exclam 0x0021 / * U + 0021 AÇIKLAMA İŞARETİ * /

içine

<dead_acute> <exclam>: "'\ x21"

Son olarak, ölü tuşlar ve bir Composetuşla bir klavye düzeni ayarlayabilirsiniz . Alman olarak, sadece "ölü bir anahtar olarak ayarlayabilirsiniz . Bu rotaya gidiyorsanız, en basit seçenek GUI'yi ölü anahtarsız bir klavye ve ölü anahtar .Xmodmapiçin bir dosya gibi bir şey içeren ayarlamak için kullanmaktır.

keysym kesme işareti = kesme işareti dead_quotedbl

1
Tamam, içine bakacağım (şu anda diğer makineye değil). Compose'u kullanmak bir seçenek değil çünkü kas belleğini yeniden öğrenmem gerekecek ve Linux zaten benim ana sistemim değil. Ve Alman olduğum için umlaut'ların ötesinde hiçbir şeye ihtiyacım olmayacağını varsaymayın ;-). Mezar veya akut aksan kullanan diğer dillerden ithal edilen birçok kelime var.
Joey

Muhtemelen sorun yaşadığınız kombinasyonları geçersiz <dead_acute> <s> : "'s"
kılmakla

Ayrıca GTK yerleşiklerini (!) Değil, GTK_IM_MODULE=ximiçinde tanımlanan oluşturma dizilerini kullanmak için ayarlamanız gerekebilir ~/.XCompose.
RolKau

3

Bu sorunun bir süredir "çözüldüğünün" farkındayım. Ancak, bu sayfadaki bulguları bir çok test ve deneme ile birleştiren çözümümü sunmak istiyorum.

Linux için Win US Intl , OP'nin yazdığı gibi Linux'un yerel US Intl klavye düzeninde sorun yaşama sorununu çözmek için yazdığım bir dizi komut dosyasıdır. Esas olarak anadilim İspanyolca olduğu için kullanıyorum ve hala birçok İngilizce forum, metin, sohbet vb. Kullanıyorum (bu site gibi).

Not: Bu aslında Windows XP US - International klavye düzeninin davranışına benzer (tamamen eşit değildir).

Kontrol etmek için http://tamh.info/tr/win-us-intl-4-linux/ adresine gidebilirsiniz . Diğer değişikliklerin yanı sıra, diğer birkaç sınırda durum için daha fazla XCompose girişi ekleyerek bunu daha iyi hale getirme sürecindeyim.


3
Bağlantı çalışmıyor.
tink


1

Yani bir çözüm var, burada yayınlanan biri bu işi yapabilen bir github repo var: https://github.com/raelgc/win_us_intl İşte ne yapmak istiyorsunuz:

  1. zip dosyasını indir

  2. istediğiniz yerde ayıklayın, odak XCompose dosyasında olmalıdır.

  3. XCompose dosyasını tercih ettiğiniz metin düzenleyicisiyle açın ve sonra "/usr/share/X11/locale/en_US.UTF-8/Compose" ifadesini şöyle ekleyin : "% L" ekleyin

  4. XCompose dosyasını ~ / dizinine taşıyın

  5. DÜZENLE:

    • Bu adım artık gerekli değildir, linux'un tüm yeni sürümlerinde onsuz çalışacaktır, eğer sizin için işe yaramazsa, bu adımı sadece XIM'in bilinen bazı sorunları olduğu için ne yaptığınızı biliyorsanız yapın.
    • ~ / .Profile dosyanızı düzenleyin ve dışa aktarma GTK_IM_MODULE = "xim" dosyasını dosyanın sonuna yerleştirin.
  6. DÜZENLE:

    • GNOME kullanıyorsanız: IBus bu ortamla önceden yüklenmiş olarak gelir ve başka bir giriş yöntemine geçmenin herhangi bir etkisi olmaz, çünkü GNOME yine de başlatır ve önemli değişkenleri yapılandırır.
    • IBus'u kullanmak istemiyorsanız, terminalde şu komutu yazın: im-config -n uim
  7. Yeniden Başlatma

Not: Benim için bu çözüm adım 5 olmadan çalışmaz, bu yüzden bana ve benimle aynı durumda başkalarına nasıl yardım edeceğinizi biliyorsanız, bu benim gündeme getirdiğim diğer sorunun bağlantısıdır: Sistemim okumuyor. XCompose dosyası

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.