Post by @gumnos@bsd.cafe

R.L. Dane :Debian: :FreeBSD: :OpenBSD: :NetBSD:🍵 :MiraLovesYou:
@rl_dane @polymaths.social

Minor quibble, but for the life of me, I cannot figure out why I cannot produce a valid em dash ("—", a.k.a. 0xe28094 or U+2014) on #NetBSD, except with mate-terminal. I've tried (u)xterm, alacritty, and lxterminal, and they all either give me a junk character, or an en-dash followed by a hyphen. When I press the compose key and hit the hyphen three times, it immediately attempts to produce an en-dash after the first two hyphen presses, and then gives me a plain hyphen on top of it.

I've checked the Compose file, and it's set up correctly (as far as I can tell).

I think #OpenBSD has the exact same problem, but I haven't tried installing mate-terminal to find out.

cc: @gumnos

nia
@washbear @mastodon.sdf.org

@rl_dane @gumnos Cannot reproduce. What's your locale?

R.L. Dane :Debian: :FreeBSD: :OpenBSD: :NetBSD:🍵 :MiraLovesYou:
@rl_dane @polymaths.social

@washbear @gumnos

en.US.UTF-8. I'm not on that box right now, but I can troubleshoot more later. I might try spinning up a new account just to see if it's something with my config/env/profile that's causing a problem.

R.L. Dane :Debian: :FreeBSD: :OpenBSD: :NetBSD:🍵 :MiraLovesYou:
@rl_dane @polymaths.social

@washbear @gumnos

Ok, I created a brand new user and logged into it, stock everything.

I set up the compose key with setxkbmap -option caps:swapescape -option compose:sclk

The command I'm typing into each terminal is printf '<scroll lock>,<minus>,<minus>,<minus>' |hexdump -C

uxterm displays the em dash just fine
Alacritty displays \U+00C2\U+00AD-, and hexdump -C reports c2 ad 2d instead of e2 80 94
lxterminal just displays ?, and hexdump -C reports 3f
mate-terminal shows \U+00E2\U+0080\U+0094, but hexdump -C reports e2 80 94 (correct)

locale on this stock/default account:

LANG=""
LC_CTYPE="en_US.UTF-8"
LC_COLLATE="C"
LC_TIME="C"
LC_NUMERIC="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_ALL=""

locale on my regular account:

LANG="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_COLLATE="C"
LC_TIME="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_ALL=""

On my regular account, uxterm gives me 0xad2d when I press compose,minus,minus,minus,
Alacritty gives me 0xc2ad2d
lxterminal just gives me 0x3f
and mate-terminal gives me the correct 0xe28094

Tim Chase
@gumnos @bsd.cafe

@rl_dane

If you launch your problem-terminals with the xim env-vars (I'm not certain which they'd respect, so I'd set both):

$ export QT_IM_MODULE=xim
$ export GTK_IM_MODULE=xim
$ alacritty &
$ lxterminal &

does the behavior change inside them?

@washbear

Replying to @gumnos@bsd.cafe
R.L. Dane :Debian: :FreeBSD: :OpenBSD: :NetBSD:🍵 :MiraLovesYou:
@rl_dane @polymaths.social

@gumnos @washbear

I'll test it tomorrow when I'm back at my office, thanks!