Swissgerman / -french: AltGr problems

This is not about running with X, just plain console. Since I've mostly used FreeBSD systems from a remote system, a weird keyboard on the local console wasn't an issue though I've realized that there were some oddities with the Swiss[german|french] keyboards. I didn't bother until I had to use one local console. This particular systems is on 10.1-RELEASE.

Some symbols need to be typed with [Altgr] + [Key] such as the pipe symbol "|" ([AltGr] + 7). However this this only returns a scancode (for instance: "\246"). Also all umlauts (ä, ö, ü) result in a scancode. However some [AltGr] combinations work, such as [AltGr] + 2 = @, so it's not all that fail.

Swiss German and Swiss French only differ with the inversion of ä, ö, ü and à, é, è by shift, so I tried the following combinations in rc.conf:
Code:
keymap="swissgerman.iso.kbd"
or
Code:
keymap="swissfrench.iso.kbd"
 
Are you using the new vt(4) console? It was merged in 10.1-RELEASE and requires new keymaps. If it is the case you should find a warning during the last stage of the booting process hinting at the new required keymap. For example
Code:
keymap="fr.iso.acc.kbd"
changes to
Code:
keymap="fr.acc"
Also, the font has to support those special characters. With syscons(4) I have to set, for example, font8x16=iso15-thin-8x16.fnt. You can test them with vidfont(1) or vidcontrol(1).

Finally, I guess you have set charset and lang in ~/.login_conf, haven’t you?
 
Hi

Thanks, and sorry for the delay - no, I didn't consider vt(4) until yet (previously known as newcons a search says - aha!). I've just stumbled over a German thread with someone having issues with umlaut and other special characters on a (Germany-)German keyboard. This doesn't seem such a rare issue and vt(4) has landed coming to 10.1 (but is not enabled by default as per the release notes). For your reference: FreeBSD 10: Umlaute in der Console.

dmesg.boot doesn't show any errors pointing in that direction. I only tried in rc.conf:
Code:
allscreens_flags="MODE_[321|327]"
The result without this parameter, with 321 nor 327 doesn't seem to differ. In order to exclude anything weird because of my own fault (vidcontrol) or the recent upgrade from 10.0 to 10.1 I took a fresh VirtualBox VM this time and ran the keyboard tester within the installer of 10.1-RELEASE. At that stage the layout swissgerman.850.kbd made "|" work, umlauts still didn't. However after the Installation guess what: AltGr+7 = \335.

I switched to vt in /boot/loader.conf, rebooted and - using kbdmap(1) - set both ch.kbd and ch.acc.kbd. Unfortunately no improvement over syscons. For these tries I didn't try different fonts, however is it really necessary to set the charset for every single user in his/her ~/.login_conf?

I've had so many cool new experiences with FreeBSD, but it seems in 2014 the installer can't set up (this layout) ending up with a properly-set-up keymap at first boot. But I'd really like to hunt this down. :)
 
I didn't investigate further for some time, but there are at least 2-3 things that I found out:

In short: As of writing on 10.1-RELEASE Altgr+1 on a Swiss keyboard, without additional changes than the keymap (no font or console changes) gets you a pipe symbol. FreeBSD's keymaps currently produce ¦ on syscons(4)) or | vt(4) (why is there this difference?!)

Longer story: In all these years of using Swiss computer keyboards I always used Altgr+7 to get the "pipe" symbol and never paid attention to "|" vs. "¦". It doesn't seem every OS out there handles the input and display of these 2 characters the same. Worse: Some keyboard swap the labeling ... (I compared with 2 keyboards and asked a friend to confirm to confirm I was in sober state)

Coming from Linux I had to bump my head against syscons being ASCII-only, that is what is causing me problems.
  • syscons(4)'s default font can't display non-ASCII character, that's why you have to switch them.
  • vt(4) is Unicode UTF-8. It so should support i.e. German Umlaute like "ä".
    Just switching to vt by adding to loader.conf doesn't yet allow to use such characters. (hope to update once I'm more certain).
The thing I currently see is that UTF-8 keymap seem not yet fully implemented as per https://wiki.freebsd.org/Newcons.

I'll try to update this post with more correct information in the future - at least I hope so. :)
 
Dear msi,
I have configured my locale to de_DE.UTF-8. The plain console running sh does not support entering Umlaute from the keyboard. But in csh I can enter Umlaute using the keyboard. May be this is an option which suits your needs in the meantime. BTW: nvi launched from sh allows input of Umlaute from the keyboard.
 
Back
Top