Programátorské znaky z české klávesnice v XWindows, xkb

apurkrt

Kdysi dávno, v roce 1996, jsem používal Slackware Linux 3.0. Česká klávesnice v Xwindows byla řešená pomocí Xmodmap. Nevím už přesně jak bylo nastaveno trvalé přepnutí rozložení (myslím, že přes PrtScr/SysRq), ovšem rozhodně fungovalo následující: bylo možné se dočasně přepnout z české klávesnice do anglické (a též z anglické do české) pomocí pravého altu. Toto jsem často využíval při psaní českých textů v TeXu - pravýAlt+shift+ú dával například {. Podobně pravýAlt+shift+š dávalo # (nutné pro parametry maker a při psaní tabulek). S tímto jsem byl docela spokojen.

Pak někdy v roce 1999 přišel xkb a s ním jsem toto praktické přepínání ztratil.

Dnes se mi podařilo opět dosáhnout podobného stavu:

1) je potřeba zakomentovat řádek 68 v /usr/share/X11/xkb/symbols/cz - změnit ho na
Kód: [Vybrat]
//    include "level3(ralt_switch)"
2) klávesnici nastavit pomocí
Kód: [Vybrat]
setxkbmap us,cz -option grp:win_space_toggle -option grp:switch
Po tomto nastavení: winkey+mezerník trvale přepíná anglickou/českou klávesnici a hlavně: pravý alt dočasně přepíná do opačné klávesnice - z anglické do české, z české do anglické. Má to jediný nedostatek - záleží na pořadí, v jakém se klávesy mačkají - dříve (s xmodmap) shift+pravýAlt fungovalo stejně jako pravýAlt+shift, teď když jsem v české klávesnici a chci napsat složenou závorku, musím si dát pozor, abych první zmáčknul pravýAlt a pak teprve Shift (a pak "ú", resp. ")").

Pro ty co by to chtěli vyzkoušet: je potřeba dát pozor, aby desktopové prostředí (gnome např.) nekolidovalo se setxkbmap. Já používám XFCE, v Settings/Keyboard/Layout mám nastaveno "Use system defaults" a klávesnici nastavuji v .xinitrc příkazem 2)

Jinak vím, že i z defaultní české xkb klávesnice, tj. bez komentáře 1), lze psát #&{} pomocí pravýAlt+x,7,b,n. Jenže kdo si to má pamatovat? Při mém přepnutí pomocí pravého Altu si nemusím pamatovat nic nového - držím zkrátka pravý alt a rázem píšu jakoby na anglické.

Jak píšete např. v TeXu vy?


Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #1 kdy: 19. 10. 2019, 16:36:53 »
Citace
Jak píšete např. v TeXu vy?

anglicky ;-)

Ale v zapisech, kde pouzivam cestinu a zaroven potrebuju "neceske" znaky, tak proste prepnu cz/en. Nepripada mi, ze by me to zdrzovalo.

A na to, co potrebuju casto, mam ve vimu zkratky.

_Jenda

  • *****
  • 1 603
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #2 kdy: 19. 10. 2019, 17:08:10 »
Jak píšete např. v TeXu vy?

Nepíšu v TeXu kromě těch dvou případů kdy mě v tom donutili psát bakalářku a diplomku. Ale programuju. Mám českou klávesnici (setxkbmap cz) a pro programování tam vlastně nemám žádné změny. # je RAlt+3, {} je RAlt+b/n. Největší problém je s | a \, protože na klávesnicích, co nemají <|> key (zkrácený levý shift a tato klávesa je mezi ním a y), se to dělá přes nepohodlný hmat Ralt+Shift+¨ (a že člověk píše | v Linuxu furt). Naštěstí klávesnice s <|> key jsou poměrně dostupné a notebooky to mají taky (kupodivu včetně HPčka dovezeného z Německa).

Další zajímavá věc je, že chci mít „velký enter“, což už moc v módě není. Ale do enteru se zakusuje právě ta klávesa ¨. Tak jsem ji přemapoval aby byla enter :-).

Pak mám ještě české „“ uvozovky místo capslocku a výpustku … místo § (ten mám pak místo jednoho ze dvou Ł, což je asi v češtině fakt důležité písmenko, když ho na klávesnici dali hned dvakrát) No a pak mám ještě že mi horní řada píše se shiftem ĚŠČŘŽÝÁÍÉ místo čísel, protože čísla stejně nedokážu zadávat „lineárně“ a potřebuju numblock (na notebooku emulovaný jako Fn+mjkluioýáí).

Na Asus EEE jsem měl navíc ScrollLock a Pause přemapované na PgUp/PgDown protože tam Pg klávesy nebyly. Ale teď už mám normální větší notebook kde jsou.

Celý Xmodmap skript:
Kód: [Vybrat]
!! nepamatuji si, kdy jsem naposledy použil ÚMYSLNĚ caps, akorát si ho vždycky omylem zapnu při netrefení se do TABu (nejpoužívanější klávesa ;-) ;-)
clear lock

!! trojtečka … místo §
keycode 48 = ellipsis exclam NoSymbol NoSymbol apostrophe ssharp
!! § přesuneme o dvě klávesy doleva
keycode 46 = l L NoSymbol NoSymbol Lstroke section
!! spojovník – na klávese vedle backspace
!!keycode 51 = dead_diaeresis endash NoSymbol NoSymbol backslash bar
keycode 51 = Return dead_diaeresis NoSymbol NoSymbol backslash bar
!! když už je na Q Ω, tak se hodí i μ
keycode 24 = q Q NoSymbol NoSymbol Greek_omega Greek_OMEGA
keycode 25 = w W NoSymbol NoSymbol Greek_mu Greek_MU

!! z capslocku uděláme „typo“ klávesu pro kůůl češtinu!
keycode 66 = doublelowquotemark leftdoublequotemark

keycode 135 = Mode_switch

keycode 0xb = ecaron Ecaron 2 NoSymbol at dead_caron
keycode 0xc = scaron Scaron 3 NoSymbol numbersign dead_circumflex
keycode 0xd = ccaron Ccaron 4 NoSymbol dollar dead_breve
keycode 0xe = rcaron Rcaron 5 NoSymbol percent dead_abovering
keycode 0xf = zcaron Zcaron 6 NoSymbol asciicircum dead_ogonek
keycode 0x10 = yacute Yacute 7 NoSymbol ampersand dead_grave
keycode 0x11 = aacute Aacute 8 NoSymbol asterisk dead_abovedot
keycode 0x12 = iacute Iacute 9 NoSymbol braceleft dead_acute
keycode 0x13 = eacute Eacute 0 NoSymbol braceright dead_doubleacute

!!keycode 107 = Next
!!keycode 127 = F12
!!keycode 96 = Pause

keycode 90 = 0
keycode 87 = 1
keycode 88 = 2
keycode 89 = 3
keycode 83 = 4
keycode 84 = 5
keycode 85 = 6
keycode 79 = 7
keycode 80 = 8
keycode 81 = 9
keycode 63 = asterisk
keycode 86 = plus

!! keycode 173 = Home
!! keycode 171 = End

Kit

  • *****
  • 707
    • Zobrazit profil
    • E-mail
Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #3 kdy: 19. 10. 2019, 18:26:13 »
Jak píšete např. v TeXu vy?

Nepíši v TeXu, ale pro TeX. Píši ve Vimu, s českou klávesnicí, speciální znaky přes R-Alt. Na znaky, které nejsou ani na anglické, používám digraphs, případně vlastní makra.

Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #4 kdy: 20. 10. 2019, 10:47:49 »
Největší problém je s | a \, protože na klávesnicích, co nemají <|> key (zkrácený levý shift a tato klávesa je mezi ním a y), se to dělá přes nepohodlný hmat Ralt+Shift+¨ (a že člověk píše | v Linuxu furt).

RAlt+w, respektive RAlt+q nefunguje?


_Jenda

  • *****
  • 1 603
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #5 kdy: 20. 10. 2019, 15:18:33 »
RAlt+w, respektive RAlt+q nefunguje?
Funguje, nějak jsem si na to nikdy nezvykl. Vlastně to můžu zkusit používat a když se to osvědčí, budu mít větší výběr možných klávesnic :)

Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #6 kdy: 20. 10. 2019, 18:41:07 »
Zvykl jsem si na R Alt kombinace a když potřebuji něco naprogramovat ve windows, skřípu zuby, protože tam mi to na české klávesnici nefunguje.

Kit

  • *****
  • 707
    • Zobrazit profil
    • E-mail
Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #7 kdy: 20. 10. 2019, 19:55:43 »
Zvykl jsem si na R Alt kombinace a když potřebuji něco naprogramovat ve windows, skřípu zuby, protože tam mi to na české klávesnici nefunguje.

Funguje, jen ty pozice jsou jinde.

Jose D

  • *****
  • 890
    • Zobrazit profil
Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #8 kdy: 20. 10. 2019, 20:00:09 »
.. R Alt kombinace ..
.. když potřebuji něco naprogramovat ve windows, skřípu zuby ..

jj. Jinak existuje prográmek na přemapování win klávesnice..
R-Alt je pro mě základ a díky němu jsem vlastně nikdy neměl důvod přejít na EN-US rozložení, jako mnozí kolegové.

R-ALT celkem snadno zpřístupňuje i fajn znaky jako ←↓→ které se jinak skládají pomocí compose, se kterým jsem se nedokázal sžít.

mhepp

  • ***
  • 159
    • Zobrazit profil
    • E-mail
Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #9 kdy: 21. 10. 2019, 10:46:51 »
Ahoj,

já jsem před léty objevil na ABClinuxu rozložení klávesnice jménem VOK, kdy primární je jako Anglické, ale přes pravý alt se píší české znaky. Vyhovuje mi to velmi, nemusím přepínat klávesnici a nakonec mi to přijde i rychlejší, protože znaky s diakritikou se dají psát jako klasické, jen s pravým altem -- š = ralt+s, ě = ralt+shit+e, é = ralt+e,...

A kde není k dispozici, tam píšu bez diakritiky...


Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #10 kdy: 21. 10. 2019, 11:14:49 »
Také nedám dopustit na vok.

Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #11 kdy: 21. 10. 2019, 17:01:14 »
Já používám klávesnici odvozenou od amerického layoutu s doplněnými českými znaky a typografickými znaky. Nekde ale o VOK, ale o CShack ve variantě extracs_ralt: http://www.xakru.com/cshack/

(Ano, trošku jsem do toho i přispěl…)

Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #12 kdy: 07. 11. 2019, 20:29:39 »
Já už dlouhá léta používám „Imega Keyboard“ - http://www.imega.cz/keyboard/, něco jako vámi popisovaný VOK (sám jej neznám). V podstatě symboly fungují, jak v anglické klávesnici (dobře se programuje), numerická část bez shiftu má diakritiku (jak česká klávesnice), se shiftem symboly dle anglické klávesnice (dobře se programuje). Pravý alt dodává háčky a čárky znakům, které nejsou v numerické části (tedy např. ň, ď, ó, ů, apod. - popravdě, píší se mi mnohem snáze, než na původní české klávesnici).

Toto je pro mne osobně zatím nejlepší řešení, jak pohodlně programovat i psát česky, aniž bych si musel dávat pozor na to, že v různých rozloženích jsou některé symboly jinde (to jsem prostě nedával). Jedinou nevýhodou je, že psaní čísel v alfanumerické části vyžaduje pravý alt, což je zhoršení pohodlí - jenže na to mám numerickou část klávesnice, takže mne to nijak netrápí.

Edit: a obrovskou výhodou pro mne je, že jsou varianty pro Windows i Linux.

Re:Programátorské znaky z české klávesnice v XWindows, xkb
« Odpověď #13 kdy: 07. 11. 2019, 22:24:16 »
To zní dost podobně CShacku ve variantě extracs_ralt. Ten CShack mi přijde o něco logičtější, u Imega nelze ěščřýáíé psát jinak než přes horní řádek.

Nevýhoda CShacku je, že varianta extracs (tzn. number row má ěšřč místo číslic…) nebyla portována pro Windows. Tam jsou jen varianty s klasickým anglickým number row.