Esiste un layout di tastiera internazionale statunitense su Linux che imita il comportamento di Windows?


12

Sono abituato a usare US International come layout di tastiera. Tuttavia, l'implementazione sembra differire notevolmente tra Windows e Linux (Gnome, nel mio caso - potrebbe benissimo essere un problema GTK poiché GTK si comporta allo stesso modo su Windows).

Il layout usa chiavi morti, ad esempio per le chiavi quali ', ", ^, ecc. permettendo un facile inserimento di personaggi con segni diacritici. Su Windows premendo un tasto morto e quindi un tasto a cui non è associata alcuna coppia si ottengono il carattere del tasto morto (se associato allo spazio) e il carattere del secondo tasto. Esempio: Premendo ", si aottiene "ä", tuttavia, premendo ', si sottiene "'s", poiché non vi è alcuna associazione per 'e s.

Ora, c'è una lingua chiamata inglese che fa uso frequente esattamente di quei due personaggi e dal momento che funziona su Windows per digitarli come al solito è la memoria muscolare per me ora. Il che mi porta al mio problema:

Su Linux (e GTK su Windows), non v'è un abbinamento per 'e s(fra molti altri), con conseguente ś(che, a sua volta, porta a me spesso digitando “suo”). Quindi digitando “E '” mi richiede di digitare ',         , salla fine.

Ci sono alcune altre combinazioni a cui sono abituato che non funzionano. Tra questi c'è che per le coppie inesistenti non ne risulta semplicemente nulla . Digitando "I" si ottiene "I". Premendo due volte uno di quei tasti si ottiene un diacritico senza spaziatura che rompe la mia abitudine di digitare stringhe digitando prima entrambe le virgolette (che ora si traducono in un accento acuto o macron non spaziato).

Lunga storia breve: Nessuno dei appare US internazionali layout forniti alla funzione lo stesso come in Windows - ci sono quelle che fanno il lavoro in modo identico? O qualche possibilità di configurarlo in quel modo? Mentre può essere bello digitare una s con accento acuto o segni diacritici senza spaziatura, quelli non sono esattamente bisogni comuni per me.


1
Per chiunque si chieda perché uso US International, invece di qualcos'altro: vengo dalla Germania e ho bisogno di digitare cose come ä, ö, ü, ß a volte. Ma la maggior parte dei progettisti di linguaggi di programmazione progetta i loro linguaggi esattamente per un layout in modo che le persone debbano ricorrere a combinazioni di tasti da rompere le dita per inserire caratteri come parentesi graffe o una barra rovesciata.
Joey,

Risposte:


6

Una possibilità è quella di evitare di avere chiavi morte e digitare invece lettere accentate con una chiave Compose. Ad esempio, digitare Compose " aper accedere ä. Dovrai scegliere un'opzione di layout di tastiera che include un Composetasto; una scelta comune è la chiave a sinistra del Ctrltasto destro (che penso che Windows chiami Menu). Il vantaggio Composeè che riesci a digitare molti personaggi fantasiosi senza cambiare il layout principale. Lo svantaggio è che sono necessarie tre presse anziché due per una lettera accentata.

In alternativa, puoi configurare l'effetto delle chiavi morte creando un file chiamato .XCompose(nota CApitalization) nella tua home directory ed elencando le combinazioni che desideri. Qualcosa di simile a:

include "/usr/share/X11/locale/en_US.UTF-8/Compose"

<dead_acute> <space>: "'" apostrofo
<dead_acute> <exclam>: "'!"
<dead_acute> <quotedbl>: "'\" "
# eccetera...
<dead_acute> <a>: "á"
<dead_acute> <b>: "'b"
# eccetera...

La sintassi è abbastanza semplice: la sequenza di chiavi a sinistra di :viene trasformata nella stringa tra ""a destra di :. La parola in più a destra è il keysym (cioè il nome della chiave) corrispondente a questa sequenza di chiavi; non è tremendamente importante. Qualsiasi cosa dalla #a alla fine della linea viene ignorata.

Modificare la prima riga in modo che punti al file di sistema se la distribuzione lo colloca in un posto diverso. È possibile cercare in questo file altri esempi di sintassi. <Multi_key>è un altro nome per la Composechiave.

A sinistra, i nomi tra <parentesi angolari >sono tasti della palestra. È possibile trovare l'elenco dei keyyms in /usr/include/X11/keysymdef.h(questo file si trova in un pacchetto di sviluppo, ad esempio x11proto-core-devsu Ubuntu).

Sì, è un sacco di digitazione, ma dovresti essere in grado di automatizzarne gran parte copiando e incollando pezzi di keysymdef.hmassa e facendo alcune sostituzioni di massa intelligenti. Qualcosa che ti aiuterà è che puoi riutilizzare il codice esadecimale sulla destra per creare la stringa di destra grazie alla sintassi "\ x dd ": gira ad es.

#define XK_exclam 0x0021 / * U + 0021 MARCHIO DI ESCLAMAZIONE * /

in

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

Infine, puoi impostare un layout di tastiera con tasti morti e un Composetasto. Essendo tedesco, potresti impostare solo "come chiave morta. Se stai seguendo quel percorso, l'opzione più semplice è usare la GUI per impostare una tastiera senza chiave morta e un .Xmodmapfile per la chiave morta, contenente qualcosa come

keysym apostrofo = apostrofo dead_quotedbl

1
Ok, ci guarderò dentro (non sull'altra macchina in questo momento). L'uso di Compose non è un'opzione poiché avrei dovuto riapprendere la memoria muscolare e Linux non è comunque il mio sistema principale. E non dare per scontato che solo perché sono tedesco non avrò mai bisogno di nulla oltre alle umlaut ;-). Ci sono molte parole importate da altre lingue che usano anche un accento grave o acuto.
Joey,

Probabilmente sarebbe meglio iniziare con solo ignorare esattamente quelle combinazioni con le quali si hanno problemi, e aggiungere alla tabella quando si scopre cose nuove che bug, vale a dire <dead_acute> <s> : "'s"
RolKau

Potrebbe anche essere necessario impostare GTK_IM_MODULE=ximl'utilizzo delle sequenze di composizione definite in ~/.XCompose, e non degli integrati GTK (!).
RolKau,

3

Sono consapevole che questa domanda è stata "risolta" per un po '. Tuttavia, voglio presentare la mia soluzione, che combina i risultati di questa pagina con molti test e sperimentazioni.

Win US Intl per Linux è una serie di script che ho scritto per risolvere il problema di avere problemi con il layout di tastiera US Intl nativo di Linux, proprio come OP ha scritto. Lo uso principalmente perché la mia lingua madre è lo spagnolo e uso ancora molti forum, testi, chat in inglese e così via (come questo sito).

Nota: questo è in realtà simile (non del tutto uguale) al comportamento di Windows XP US - Layout della tastiera internazionale.

Puoi andare su http://tamh.info/en/win-us-intl-4-linux/ per verificarlo. Sto per migliorarlo, aggiungendo altre voci XCompose per molti altri casi limite, tra le altre modifiche.


2
Il collegamento non funziona.
tink

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.