English

Problem

How can I type czech characters, in particular characters with a tick on them, such as f.ex. ‘š’?

Solutions

The solutions below should be working under Gnome and Xfce. Both solutions can be combined if desired.

Solution 1 - using the compose key

This solution uses the “compose key”. You press a special key. After that you press two or more other keys. And the keyboard subsystem will try to combine the presses keys into a character.

So f.ex. pressing “compose key” and then ‘v’ and then ‘c’ will produce a ‘č’. Pressing “compose key” and then ‘,’ and then Shift-‘c’ will produce a ‘Ç’.

I have chosen the left “Windows” key as a compose key. Add the following to your ~/.xinitrc:

setxkbmap -option compose:lwin

The same command can be executed directly from the shell or be integrated into a script.

Solution 2 - temporarily switching keyboard layouts

This solution is based on the idea that you have various keyboard layouts that have different sets of characters on them. By holding down a defined special key you temporarily switch to a different keyboard layout, which provides you with the character you need. When you releasing the special key you’re back to your default layout.

Old version

This solution stopped working under Gnome3. See the new version below, which achieves the same.

  • add a czech keyboard layout through: System->Settings->Keyboard->Layouots->Add
  • then add a key to switch between the layouts: Layout Options->Layout Switching
  • I chose “Caps-key switches layout while pressed”

That way, while typing away, I can press the Caps-key, which temporarily switches to the czech keyboard layout, plus the Shift key and the carret (’^’) key, thus accessing the czech ‘ˇ’ sigil. When I now press any of the keys ’s’, ‘z’, ‘c’ etc. X11 will combine the czech ‘ˇ’ sigil with the corresponding character and produce f.ex. a ‘č’.

New version

Add the following to your ~/.xinitrc:

setxkbmap -layout "ch, cz" -option "grp:caps_switch"

The same command can be executed directly from the shell or be integrated into a script.

Thanks

Many, many, many kudos to all the people who put up designing and implementing this elegant solution to a non-trivial problem. You deserve my deepest respect!

Many thanks to the very helpful and knowledgeable people on the #xfce channel

Deutsch

Problem

Wie kann ich tschechische Zeichen, insbesondere Zeichen mit dem tschechischen Häkchen ‘?’ eintippen?

Lösungen

Die Lösungen unten sollten sowohl unter Gnome als auch unter Xfce funktionieren. Die beiden Lösungen können kombiniert werden.

Lösung 1 - Einsatz der “Compose” Taste

Diese Lösung basiert auf der Verwendung der “Compose” Taste. Man drückt eine Spezial-Taste. Danach drückt man zwei oder mehrere andere Tasten. Nun versucht das Tastatur-Subsystem diese Tasten zu einem Zeichen zu kombinieren.

Beispiele:

  • “Compose” Taste drücken, dann ‘v’ und dann ‘c’ drücken -> das ‘č’ Zeichen wird ausgegeben/angezeigt.
  • “Compose” Taste drücken, dann ‘,’ und dann Shift-‘c’ drücken -> das ‘Ç’ Zeichen wird ausgegeben.

Ich habe die linke “Windows” Taste als “Compose” Taste ausgewählt. Füge das folgende Deiner ~/.xinitrc Datei hinzu:

setxkbmap -option compose:lwin

Das gleiche Kommando kann auch direkt von der Kommandozeile aus eingegeben werden oder in ein Skript integriert werden.

Lösung 2 - temporär zwischen verschiedenen Tastaturen umschalten

Diese Lösung basiert auf der Idee, dass man verschiedene Tastaturen hat, von denen jede eine andere Menge von Zeichen anbietet. Während man eine spezial-Taste gedrückt hält wechselt die Tastatur und während man Tippt werden die auf dieser Tastatur vorhandenen Zeichen ausgegeben.

Alte Version

Diese Version funktioniert nicht mehr unter Gnome3. Siehe unten die neue Version, welche das gleiche erreicht.

  • füge die tschechische Tastaturbelegung hinzu: System->Einstellungen->Tastatur->Belegungen->Hinzufügen
  • belege sodann eine Taste als Umschalter zwischen den Tastaturbelegungen: Belegungseinstellungen->Layout Switching
  • ich hab “Caps-key switches layout while pressed” gewählt

Dadurch kann ich, während ich am Tippen bin, die Feststell-Taste (“Caps Lock”) drücken - welche temporär auf die tschechische Tastaturbelegung umschaltet - dann gleichzeitig die Umschaltetaste (Shift) und das Dächlein ‘^’, wodurch ich das Häkchen ‘ˇ’ auswähle. Wenn ich nun einen der Buchstaben ’s’, ‘z’, ‘c’ etc. tippe, wird X diese mit dem Häkchen kombinieren, z.B. zu einem ‘č’.

Neue Version

Das Folgende zu ~/.xinitrc hinzufügen:

setxkbmap -layout "ch, cz" -option "grp:lwin_switch"

Das gleiche Kommando kann auch direkt in der Kommandozeile/Shell eingegeben werden oder in ein Skript integriert werden.

Danksagung

Vielen, vielen, vielen dank an all die Leute, welche für dieses nicht triviale Problem eine so elegante Lösung gefunden und Implementiert haben. Mein tiefster Respekt gebührt Euch!

Česky

Problém

Jak zadat česká písmena, hlavně ty z háčkem?

Řešení

Řešení dole by mněli fungovat jak pod Gnome tak pod Xfce. Je možno obě řešení zkombinovat.

Řešení 1 - používat klávesu “compose”

Tohle řešení používá klávesu “compose”. Klepni zvláštní klávesu “compose”. Potom klepni dvě nebo více jiných kláves. V tom okamžiku klávesnícký subsistém se pokusí z těch kláves vyrobit zkombinovaný znaménko.

Příklady:

  • klepnout “compose” klávesu, potom ‘v’ a potom ‘c’ vyrobí znaménko ‘č’
  • klepnout “compose” klávesu, potom ‘,’ a potom Shift-‘c’ vyrobí znaménko ‘Ç’

Ja jsem vybral levou “Windows” klávesu pro “combine” klávesu. Přidej tohle do ~/.xinitrc:

setxkbmap -option compose:lwin

Stejné komando se dá zadat přímo do shell a nebo se múže integrovat to skriptu.

Řešení 2 - přechodně zmněnit klávesnici

Tohle řešený spočívá na mýšlence že existujou všeljaké klávesnice, z odličníma znaménkama. Tím že se přitlačí zvlášťní klávesa se přechodně zmnění klávesníce na jinou, čímš jsou dostupné znaménka. Jakmile se zvlášťní klávesa pusti, tak máme zase standartní klávesnici.

Stará verze

Tahle verze přestala fungovat pod Gnome3. Viz novou versi dole.

  • přidej české rozvržení klávesnice: System->Settings->Keyboard->Layouts->Add
  • vyber klávesu na přepínání mezi rozvrženíma: Layout Options->Layout Switching
  • já jsem vybral “Caps-key switches layout while pressed”

Takto múzu, pŕi psaní, zmáčknout Caps Lock-klávesu - která dočasně přepojí na české rozvržení klávesnice - k tomu přepínací klávesu (Shift) a stříšku ‘^’, čím vyberu háček ‘ˇ’ a když teď zmáčknu ’s’, ‘z’, ‘c’ atd., tak my to X zkombinuje k písmenku z háčkem, tedy například k ‘č’.

Nová verze

Přidat tohle k ~/.xinitrc :

setxkbmap -layout "ch, cz" -option "grp:lwin_switch"

Stejné komando se dá zadat přímo do shell a nebo se múže integrovat to skriptu.

Poděkování

Moc, moc, moc bych chtěl poděkovat všem, co na takový ne-triviální problém našli a implementovali tak elegantní řešení. Zasluhujete můj nejhlubší respekt!

– Tomáš Pospíšek