Bir anahtarın iki unicode kod noktası oluşturduğu özel xkb düzeni


14

Xorg için yeni bir özel klavye düzeni yazıyorum, ancak Unicode'da bulunmayan belirli bir glif var. Bununla birlikte, standart bir harf artı bir birleştirici aksan işareti kullanarak bunu oluşturmak kolaydır.

Örneğin, vaşağıdaki bir makroyu içeren mektubu istiyorsanız , sıra U0073+U0331istediğim karakteri oluşturur.

Benim xkb düzen tanımında, tek bir Unicode noktası belirtebilirim (burada altgr+dḏ ve altgr+shift+dḎ'ye bağlıdır):

key <AC03>  { [         d,          D,        U1E0F,        U1E0E ] }; // d with macron below

Ancak tek bir anahtar için 'birleşik' Unicode glif belirleyemiyorum:

key <AB04>  { [         v,          V,  U0076+U0331,  U0056+U0331 ] }; // v with macron below

Bunun gibi sistem çapında bir xkb tanımı oluşturmak mümkün müdür?

Yanıtlar:


11

DÜZENLE:

Hala deniyorum ...

Testler tuş haritasının SADECE her konumda tek bir anahtar alacağını gösterir.

AMA, keymap tanımında nadir / hiç kullanılmamış bir keysym kullanırsanız, o zaman THM keysym'in ihtiyacınız olan çeşitli unicode karakterlerini çıkarması için global bir Xmodmap, bu işe yarayacaktır.

Tuş haritasında:

key <AB04>  { [ v, V, XF86LaunchA, XF86LaunchB ] };

Küresel bir Xmodmap'ta: (belki /etc/profile.d? Adresinden yüklenmiş olabilir.)

keysym XF86LaunchA = U0056 U0331
keysym XF86LaunchB = U0076 U0331

Kullanılmayan / özel kullanımlı birkaç anahtar kelime var, örnek olarak LaunchA / B'yi seçtim.


Cevap için teşekkürler. Bir dezavantajı, bunun kullanım başına bir ayar olması değil mi? Xkb ile yapmak onu sistem çapında yapar ve tek bir dosyada dağıtılabileceği anlamına gelir. Tabii ki, bu koşullar benim asıl sorumdu!
SigueSigueBen

2
Kaynak kodunu kazdım, tuş haritasının tuş tanımlarına birden fazla tuş vuruşu dahil etmek için herhangi bir destek yok gibi görünüyor. Tabii ki, bu yeteneği uygulamak için kendiniz yeniden yazabilirsiniz!
lornix

İstediğim cevap değil ama yine de cevap bu. Kaynak kodunu kendim anlatacağım ve önerdiğiniz seçeneklere bakacağım. Teşekkürler.
SigueSigueBen

4

Öte yandan, diactityics karakterini birleştiren belirli bir anahtara unicode ekleyebilir ve daha sonra başka herhangi bir karakterin arkasına yazabilirsiniz. Gerçekten de, unicode karakterleri birleştiren bu şekilde çalışmak gerekiyordu.

X11'de ölü anahtarlar var, ölü anahtarlar başka şekilde çalışıyor: önce ölü anahtar, sonra temel harf. Bir <dead_belowmacron>, bazı anahtarlara ekleyebilirsiniz.

Daha sonra, yerel ayarınız için Compose dosyasını düzenlemeniz gerekir (eğer kullanıcı takdir edeceğim kullanıcı tanımlı bir yerden dosya oluştur tanımlarını nasıl ekleyeceğini bilirse) ve aşağıdaki gibi satırlar eklemeniz gerekir:

# when the output is a single unicode char, you put also the corresponding
# X11 symbol name
# <symbol> <symbol> : "one-char-string" <symbol>
<dead_belowmacron> <d> : "ḏ" U1E0F
<dead_tilde> <n> : "ñ" <ntilde>
# when the output is a multicharacter string, you put just the string
# <symbol> <symbol> : "string"
<dead_belowmacron> <v> : "v̱"

Kullanılacak oluşturma dosyası /usr/share/X11/locale/compose.dir dosyasındaki yerel ayarla tanımlanır (yol değişebilir).

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.