[Megoldva] grafikus felület - ékezetes karakter

Fórumok

Sziasztok!

Mostanában egyre gyakrabban bróbálgatom a freebsd-t. Igaz túlnyomó részben virtualbox-ban. Ami nagyon zavar, hogy nem tudom elérni, hogy bármilyen grafikus felületen (annak termináljában) ékezetes karakterek legyenek. Ez szerint is "póbálkoztam", de mégsem tudok terminaban ékezetes karaktereket mégcsak beilleszteni sem... A kérdésem, hogy mit rontok el, azaz mit nézek be? Előre is köszönöm a segítséget!

megoldás:
shellcsere. az /bin/sh nem kezelte az ékezetes betűket.

Hozzászólások

1. Kicsit pontosabban, mi a hibajelenség? Mondjuk lenyomod az 'é' feliratú billentyűt, és ekkor mi történik?

2. 'locale' parancs kimenete micsoda?

Ha mondjuk lenyomom az 'é'-t akkor nem csinál semmit. Ha a 'z'-t akkor ír egy z-t. De ezt csak a grafikus felület termináljában produkálja, kivéve ha su-val rootra váltok, mert akkor 'é' lenyomására é-t ír.

locale:
LANG=hu_HU.UTF-8
LC_CTYPE="hu_HU.UTF-8"
LC_COLLATE="hu_HU.UTF-8"
LC_TIME="hu_HU.UTF-8"
LC_NUMERIC="hu_HU.UTF-8"
LC_MONETARY="hu_HU.UTF-8"
LC_MESSAGES="hu_HU.UTF-8"
LC_ALL=

szerk.
nem root usernél a szöveges terminálon sem jelenik meg ékezetes betű, de pl. mceditben igen.

Betűtípusok telepítve? Csak terminálban nem mennek az ékezetes karakterek vagy más programokban (szövegszerkesztő, böngésző, stb.) sem?

Grafikus felületen mate terminált. UTF-8 be van állítva. Ha su-val rootra váltok, akkor szépen lehet bele ékezetesen írni, de ha sima felhasználóként próbálok, akkot semmilyen ékezetes karakter nem jelenik meg. Ha pl. bemásolom az alábbi szöveget a terminálba: 'asdéálkj', akkor ez jelenik meg benne: 'asdlkj'.

Annyit tettem vele, hogy a default rész végére odaírtam:
:charset=UTF-8:\
:lang=hu_HU.UTF-8:

utána futattam: cap_mkdb /etc/login.conf

Aztán mivel nem voltak a sima usernek ékezetes betűi, a user home könyvtárában lévő .login.conf-ba is beleírtam:
me:\
:charset=UTF-8:\
:lang=hu_HU.UTF-8:

Mondjuk ez utóbbira nem futattam a cap_mkdb-t. Nem tudom, hogy ez hiba-e.

Nem, a ~/.login_conf-hoz nem kell cap_mkdb.

Nálam a következő van:
- csináltam egy hungarian loginclass-t, azaz ez van a /etc/login.conf-ban:


#
# Hungarian Users Accounts. Setup proper environment variables.
#
hungarian|Hungarian Users Accounts|magyar:\
:charset=UTF-8:\
:lang=hu_HU.UTF-8:\
:timezone=Europe/Budapest:\
:setenv=ENV=~/.shrc,CHARSET=UTF-8:\
:coredumpsize=0:\
:tc=default:

- lefuttattam a cap_mkdb-t
- a megfelelő felhasználót betettem a hungarian loginclass-ba

# vipw
# fgrep én /etc/master.passwd
én:kriksz-kraksz:aaaaaa:bbbbbb:hungarian:0:0:Zahemszky Gabor:/home/én:/bin/sh

És ezek után XFCE alatt megy xterm-ben, Terminal-ban, Mousepad-ben, és í. t.

(Amúgy a bevezetőben hivatkozol valamilyen doksira, oldalra, ami alapján csináltad, de én azt nem tudom, hogy mire hivatkozol :-) )

Álljon meg a gyászmenet! Amikor terminálban gépelsz, azt hol teszed? shell-promptnál? Csak mert a FreeBSD gyári /bin/sh-ja nem kezeli az ékezetes karaktereket, míg a /bin/csh (ez ugyebár a root shellje), vagy épp a bash igen. Szóval nézd már meg lécci, hogy shell-promptnál elindítasz egy "cat" -ot, és ott nézed azokat az ékezetes karaktereket. Szerintem ott már működni fognak.

Ha pedig mindenképpen akarsz még shell-promptból is ékezetes karaktereket gépelni (mondjuk ékezetes fájlnév, amit személy szeritn nem nagyon preferálok), akkor válts shell-t. A pdksh, a ksh93, a bash, ezek mind kezelik az ékezetes karaktereket. (Lehet, hogy a natív /bin/sh-t is rá lehet veni, sose éreztem igényét a dolognak.)

Lehet örülni. Olvasgatom a 11-es verzió kiadási megjegyzését(*), és mit ad isten ez szerepel az userland ágban:

"The libedit library has been updated to include UTF-8 support, adding UTF-8 support to the sh(1) shell."

Azt egyelőre nem tudom, hogy ez visszaportol[tj]ák-e a 10-es ágba, de legkésőbb akkor a kb 2016 augusztusában megjelenő 11.0-ban már menni fog az ékezetes karakter a /bin/sh-ban is.

(*) még nem jelent meg, de ezt a doksit szokták frissítgetni, így időnként lehet látni, hogy mi várható.