General Computing
fedora emacs gnome-terminal
Updated Fri, 07 Oct 2022 00:15:01 GMT

What is ctrl-; doing in Gnome Terminal and Emacs?


When I type ctrl-; in Gnome Terminal, it prints an underlined letter e. If I type a bunch of letters, they're also underlined. When I hit enter, the underline goes away, and the first e also goes away. What is it doing?

(graphical) Emacs does almost the same thing. When I type ctrl-;, Emacs shows a graphical overlay (that doesn't look like Emacs) with the letter e. Typing letters adds to this overlay, and when I hit enter, the letters (except the e) get put into the Emacs buffer.

This doesn't happen on my other laptop that's running Ubuntu. This one is running Fedora 36.

If I try the above with xterm, I get the overlay like I do in Emacs. If I change focus to another window without hitting enter, whatever was underlined disappears.




Solution

The underlined input overlay (the "preedit" field) is the mechanism used by various Input Methods to compose characters before they get sent to the app. For example, when typing Japanese you compose whole words at a time with help of the Japanese IME. In GNOME the same mechanism is used by the 'Compose' key and by the Ctrl+Shift+U 'Unicode' input.

The specific shortcut that you've found is apparently the "emoji input" hotkey. I'm not sure if it's the one built into GTK3, or if it's provided by the IBus IME framework (they try to remain consistent with each other but things keep changing and I've lost track). It is supposed to accept emoji names while showing an "autocomplete" popup, as well as accepting Unicode hex codepoints like Ctrl+Shift+U does.

See a similar previous post (where the shortcut was a little different): What is my X11 doing with Ctrl-Period and how can I disable it?





Comments (1)

  • +0 – This is it. Thanks! Running gsettings get org.freedesktop.ibus.panel.emoji hotkey shows ['<Control>period', '<Control>semicolon']. — Jul 10, 2022 at 12:15  


Linked Articles

Local articles referenced by this article: