Terminalde bir Oluşturma Anahtarı nasıl tanımlanır (masaüstü ortamı yok)?


18

composeSistemimde bir anahtar tanımlamak istiyorum (Debian Sid "Wheezy"). Xorg'um yok (ve herhangi bir masaüstü ortamı istemiyorum). Sadece terminalde.

Alt-GrAnahtarımda ayarlamak istiyorum (sağda Alt). Bir süre denedim ama nasıl ayarlayacağımı anlayamıyorum.

Araştırıyorum ve bazı talimatlar buldum:

  • $ showkeyAlt-Granahtarımın kodunu veriyor (# 100)

  • $ dumpkeysve sayfaya göre $ dumpkeys --compose-only"klavyenin sürücüsünün geçerli içeriğini" olarak belirtilen biçimde çıktılarkeymapsman

  • $ loadkeys klavye çeviri tablosu yükle

Eminim o kadar da zor değil ama bununla nasıl başa çıkacağımı özlüyorum ...


Hm,% 100'ü takip etmiyorum, Alt-Gr'a vurduğunuzda ne yapmasını isterdiniz?
Emanuel Berg

Oluşturma Anahtarı olmasını istiyorum . Aslında, bir yerde bir Oluşturma Anahtarı tanımlamak istiyorum ve Alt-Gr'ımda kullanmaya alıştığım için, orada tanımlamak istiyorum. Bir GUI ile kurmak çok kolay , ancak yüklü X sistemim olmadığı için onu saf konsol modunda tanımlayabilmeliyim (bu bir seçenek değil). Nasıl olduğunu anlayamıyorum.
cedbeu

Yanıtlar:


11

Daha yeni Debian ve Ubuntu sistemlerinde, klavye ayarlarınız /etc/default/keyboardX ile konsol arasında yerleştirilir ve paylaşılır. Sadece koş

sudo dpkg-reconfigure keyboard-configuration

seçin Compose key: Right Alt (AltGr)ve uygun ekranda seçin .

Ayrıca koyabilirsiniz XKBOPTIONS=compose:raltiçinde /etc/default/keyboardve kaçak

sudo dpkg-reconfigure console-setup

Eski sistemlerde varsayılan olarak konsolda bir Oluştur tuşu bulunur. In usdüzen, pres hem Alt birlikte anahtarları gibi davranır Compose. 1

Örneğin: Alt+ AltGr, ", A=> Yeni bir

AltGrSadece olmayı tercih ediyorsanız Compose, değiştirmeniz gerekir

alt keycode 100 = Compose

etkin klavye haritanızda

keycode 100 = Compose

Bunu yapmanın en kolay yolu yukarıdaki değişiklikleri yapmaktır /lib/kbd/keymaps/i386/include/linux-with-alt-and-altgr.inc.

Daha iyi bir yol, /lib/kbd/keymaps/i386/include/altgr-is-compose.incyukarıdaki satırla adlandırılan yeni bir dosya oluşturmak, onu içeren yeni bir anahtar haritası oluşturmak ve bunu varsayılan anahtar haritanıza ayarlamaktır.

  1. PrtScnayrıca Composevarsayılan olarak davranır .

Bunu işe almıyorum. dpkg-reconfigureSihirbaz gerçekten oluşturma anahtarı hakkında sorar, ama buna "Unicode modunda" işi değil diyor (?). Ayrıca, bu modda değilken, Control + periyodunun bir oluşturma anahtarı olarak çalıştığını söyler. Ama ben de işe yaramıyorum.
Emanuel Berg

Uyarı mesajının atıfta bulunduğunu düşünüyorum unicode_start. Benim için hala çalışıyor, ben çalıştırmak sağladı setupconolarak dpkg-reconfiguresöylüyor.
Mikel

Ben çalıştırdığınızda setupconbenim X terminali (içinde urxvt), bu "konsol yapılandırılmamış bırakılır, biz konsolda değiliz." Diyor Ayrıca, showkey"Konsola dosya tanıtıcısı alınamadı" diye şikayet ediyor. Gelen tty, hem bu işler ama showkeydiyor (ilk şey) o neden çalışmadığını gerçekten de o kadar, belki de "kb modu UNICODE oldu". Ancak, Control + dönemi çalışır tty. Tamam, şimdi mantıklı.
Emanuel Berg

Sorunuz yok Xmu dedi ? setupconLinux sanal konsolunda çalıştırmanız gerekir , örn. Ctrl + Alt + F1.
Mikel

1
Görünüşe console-setupgöre varsayılan olarak çok fazla oluşturma dizisi desteklemiyor. dumpkeys --compose-onlyHangilerini görmek için koşabilirsiniz . console-setupInit betiğini, çalıştığı yere ek oluşturma kuralları eklemek için değiştirebilmeniz gerekir loadkeys.
Mikel

2

Konsoldaki "oluştur", iki karakter girmenize izin verir, ancak üçüncü karakter çıktısı verir.

sorun, oluşturma tanımlarının bayt kullanmasıdır , hem iki girdi (yani, oluşturmayı yazılan anahtarlar açısından değil, yalnızca yazılan semboller açısından) hem de çıktı için tanımlayabilirsiniz.

çok baytlı (en azından 1 ila 4 bayt) olan UTF-8'de çalışmasını sağlamak için konsol girişinin işlenme biçiminde büyük değişiklikler gerektirir ve şu anda daha karmaşık bir şey tarafından kullanılan basit karakter dizisinin yerini alır. Öyle görünüyor ki böyle bir plan yok (çekirdek devlopers arasındaki fikir birliği, konsolun sadece son ressort için kullanılan bir konsol, basit bir şey olarak kalması gerektiğidir; gerçekten unicode ihtiyacınız varsa, muhtemelen bidi, şekillendirme vb. grafik bir terminal çalıştırmak daha iyidir (X11'de tam ekran xterm; ancak başka olasılıklar da vardır).

Yani, konsoldaki çok baytlı karakterlerle gerçekten işe yaramaz ve çalışmaz. AMA, oluşturma tanımlarını düz ASCII ile kısıtlarsanız yine de çalışır.

Ve ayrıca çıktı iso-8859-1 (0x00ff kadar unicode değerlerine karşılık gelir) ise çalışır öğrendim; bunun için bazı başlangıç ​​komut dosyalarına bir satır koyabilirsiniz:

    loadkeys / somepath / somefile

ve bu dosyaya istediğiniz oluşturma tanımlarını koyun (dosyayı ISO-8859-1 kodlamasına kaydedin ve yalnızca çıktı olarak 0x7f'den büyük karakterleri kullanın) böyle bir dosyanın sözdizimi çok basittir, şöyle:

    'istenen çıkış' için 'somechar' 'somotherchar' oluşturun

Örneğin:

    'a' ya da 'å'
    'æ' için 'a' 'e' yaz

kesme işareti kaçmalıdır.

ölü aksan anahtarlarının etkisi de bu dosyada tanımlanır; dead_acute + a için şöyle bir satır tanımlarsınız:

    '\' 'a' dan 'á'

dead_grave backtick (`), dead_diaeresis çift tırnak (") kullanır, dead_circumflex circumflex (^) kullanır ve dead_tilde tilde (~) kullanır.


Teşekkürler, işe yaradı. Sadece, ben değişime zorunda compose 'a' 'a' to 'å'içine compose 'o' 'a' to U+00E5aksi takdirde loadkeysbir söz dizimi hata hakkında şikayet etti.
Emanuel Berg

'å' kullandığınızda, dosyayı iso-8859-1 (utf-8 değil) yazdınız mı?
Pablo Saratxaga

Bilmiyorum. Bunu nasıl kontrol ederim?
Emanuel Berg

bir dosyanın utf-8'de iconv -f utf-8 -t utf-8 filename olup olmadığını test etmek için: hata yoksa, utf-8'de
Pablo Saratxaga

Bu dosya cat gibi görünüyor, ama hayır, echo $?en azından hiçbir hata ve çıktı yok stderr. Ayrıca, fileUTF-8 olduğunu söylüyor, bu yüzden mantıklı.
Emanuel Berg
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.