Opened 10 years ago

Closed 2 years ago

#4891 closed bug (fixed)

can't input accented characters using dead keys

Reported by: Kev Owned by: nobody
Priority: normal Milestone: R1
Component: Preferences/Keymap Version: R1/alpha1
Keywords: Cc:
Blocked By: Blocking:
Has a Patch: no Platform: x86

Description

In both the American and Dvorak layouts, in BeOS I press RightCtrl+', then press e, and I get an accented e. In Haiku I just get an e. The dead keys are selected in the menu in the Keymap applet, but they don't seem to do anything. There's no special highlighting like in the BeOS applet, nor does the layout switch after hitting any of the dead keys.

What am I doing wrong? Are they used differently in Haiku or is this just not working yet?

This has been the case on the last few nightlies I've tried, currently hrev33859 gcc2-hybrid.

Change History (20)

comment:1 by Kev, 10 years ago

Still the case on hrev34190 gcc4-hybrid.

comment:2 by korli, 10 years ago

Could you have a look at the keymaps in the keymap preflet ? I don't think there are dead keys defined for the American keymap, only for the US-International one.

comment:3 by Kev, 10 years ago

As far as the "select dead keys" menu goes, all three maps have the appropriate symbols selected for every dead key, but I tried just now the US-International one and it's the same, they seem to have no effect.

Do they actually work for you?

comment:4 by Kev, 9 years ago

On the Alpha 2 RC 1 that I downloaded today from haiku-files.org/raw, I have the opposite problem: the dead keys activate without holding down "right ctrl" or anything special. This is pretty annoying, because you have to press quotation marks and apostrophes twice, but it does mean that typing accented characters is very easy.

Tested on Dvorak and American layouts.

Happy medium around the corner?

comment:5 by korli, 9 years ago

Could you please try again with hrev36400 or superior ?

comment:6 by Kev, 9 years ago

Sure, will do, as soon as a build becomes available.

comment:7 by Kev, 9 years ago

I'm on hrev36423, and it's back to how it was before. So the dead keys don't work at all, but it's easy to type normally again.

Is the goal to work like BeOS did? Where Right Ctrl + 2 gets you a TM symbol, and "Right Ctrl + ', e" gets you an accented 'e'?

comment:8 by Kev, 6 years ago

Dead keys still not working at all on hrev45404 gcc4. Oddly, Right Ctrl + ` (grave accent) brings up the Twitcher with without changing apps like Ctrl + Tab does.

comment:9 by leavengood, 6 years ago

Ctrl-` is purposely set up to switch the windows of the current app, and will also bring up the Twitcher if you hold it long enough.

I'm pretty sure you don't have to hold control for the dead keys to work, you just press the dead key and then the next character you want accented, or the same character again if you actually just want that character.

comment:10 by Kev, 6 years ago

I don't think that's a great idea, as it interferes with the usability of typing normally. Now whenever I want an apostrophe I need to type two? That would drive me crazy. Also if that's what you're aiming for I'm pretty sure it hasn't been working that way for a while.

Why not keep it the BeOS/MacOS way which was handy, interoperable, and intuitive?

comment:11 by leavengood, 6 years ago

I am not as expert on this, as I don't need the dead keys, but I've noticed the annoying behavior in the past which usually causes me to turn off the dead keys in my keymap.

One bit of good news is that I will soon switch the Twitcher to use Cmd/Alt-Tab like every other system, so that will make the window switching also Cmd/Alt-`, therefore freeing up Ctrl to be used for dead keys.

Though someone else who knows how the dead keys work would need to chime in with the expected behavior.

comment:12 by Kev, 6 years ago

The behaviour under BeOS, which I can boot to still if there are further questions, and if this is what is expected in Haiku, is:

1) Press Right Ctrl + dead key 2) (Let go of Ctrl and) press letter/number 3) Symbol appears

comment:13 by axeld, 6 years ago

The dead key behavior is completely keymap dependent. For most keymaps you use the Alt-Gr key to produce them. Some keymaps, however, and that is no different to Windows or Linux, produce dead keys directly, and you have to press twice to create the standard character.

I agree this is annoying, though, and I don't really understand why it now works this way on Windows 8, and Ubuntu with the US-International keymap - it used to work differently at least in older Ubuntu versions.

IMO we should provide two keymaps in this case, one with direct dead keys for those who are already accustomed to it from other platforms, and one that uses Alt-Gr to produce them. There also might be keymaps which uses other keys for them, though, but at least the ones I'm used to don't.

comment:14 by Kev, 6 years ago

Oh, that makes sense. I didn't even know Win/Linux had dead keys. I have to admit my experience is limited to physically US-style keyboards using either "standard" US layout or Dvorak.

That said, the current US (and US-International, which I tried for the first time just now) keymaps on Haiku, though they have a dead key selected for all five types, do not seem to actually use them. I cannot make an accented letter either by pressing [grave],e or RightCtrl+[grave],e.

Last edited 6 years ago by Kev (previous) (diff)

comment:15 by axeld, 6 years ago

Alt-Gr is usually the right Alt key, not right Ctrl.

The standard US keymap should not have dead keys IIRC, only the US International should have those (that's more or less its point). However, Haiku is using the international version by default for some reason we might want to rethink, especially when it's the annoying version of it.

in reply to:  15 comment:16 by leavengood, 6 years ago

Replying to axeld:

The standard US keymap should not have dead keys IIRC, only the US International should have those (that's more or less its point). However, Haiku is using the international version by default for some reason we might want to rethink, especially when it's the annoying version of it.

Yeah I have found that annoying too. I feel like we have discussed changing the default to just US, but it just hasn't been done yet.

in reply to:  15 comment:17 by Kev, 6 years ago

Replying to axeld:

Alt-Gr is usually the right Alt key, not right Ctrl.

The standard US keymap should not have dead keys IIRC, only the US International should have those (that's more or less its point). However, Haiku is using the international version by default for some reason we might want to rethink, especially when it's the annoying version of it.

Okay, it works on US-International. However, on Dvorak, even though dead keys are selected, either Alt+[grave] makes Haiku switch between the last two active workspaces.

comment:18 by pulkomandy, 5 years ago

Hi, I think you are mistaked on what a "dead key" is. As the name implies, pressing a dead key does nothing (the key is "dead"), and you are expected to combine it with another character to get a result.

The behavior you describe in BeOS sounds more like a compose key, which is something different. I don't think we have support for it yet.

I'm not sure what to do with the Alt+` shortcut. It is physically mapped to the key above tab (whatever the symbol is there) but if it conflicts with proper use of that key, it should probably be moved elsewhere.

comment:19 by axeld, 2 years ago

Owner: changed from axeld to nobody
Status: newassigned

comment:20 by pulkomandy, 2 years ago

Resolution: fixed
Status: assignedclosed

Current status: I don't see any issues.

Dead keys are working as expected. In French and Spanish, you have some "direct access" dead keys (for example you press then e to get an ê). You need to press the dead key twice to get the symbol.

In the US-International layout, dead keys are in the "OPT" layer. This means you need to do for example:

  • OPT + '
  • then e

To get an é.

The OPT key is mapped to Alt Gr (right alt) and left "Window" key. This is similar to all other layouts using AltGr in Haiku, and it means right alt can't be used for alt+` (but left alt and right "window" key can be used). This is unexpected when you don't have an actual US-International keyboard and the Alt Gr key is not labelled as such, but it is similar to how things works for all other layouts with an Alt Gr key.

Note: See TracTickets for help on using tickets.