GNOME Bugzilla – Bug 774510
Emoji unicode character width is not detected correctly
Last modified: 2016-11-17 09:18:27 UTC
I'm using Google's Noto emoji font in my fish shell prompt and it appears vte incorrectly detects the width for these emojis. The behaviour is bizarre because at first (opening a new terminal) it all appears fine, the issue only seems to surface when typing a command and the columns are recalculated, part of my command gets offset -1 column. I've included links to 3 screenshots of each emulator displaying the exact same tmux session. I'm fairly positive it's an issue with vte as gnome-terminal and QTerminal (both using libvte) exhibit the issue but in slightly different ways wheras st (which doesn't use libvte) renders the emoji characters correctly. Gnome-terminal: http://imgur.com/6oy4Q6J You can see my prompt is being shifted -1 column at the point of the tilde (~) QTerminal: http://imgur.com/svJ27In You can see my prompt is being shifted -1 column at the space between cd and the tilde (~) st: http://imgur.com/Cp1pGcA I'm running: libvte-2_91-0 (0.46.1-1.1) gnome-terminal (3.22.1-1.1) qterminal (0.7.0-1.1) On x64 OpenSUSE Tumbleweed w/ Gnome 3.22
I was incorrect in assuming QTerminal uses vte, but I've had the same issue in other vte emulators like Termite and Sakura (which render it the same as gnome-terminal). This explains why QTerminal behaved slightly different, but it appears their underlying QTermWidget also has the same bug as vte ;)
Possible dup of bug 772812. What's that character in your prompt? What's your glib and glibc version?
glibc (2.24-2.2) The characters I'm using are: \U1F3E0
I tried including the actual unicode character itself after the code point but BugZilla cut my comment off at that point, I've just included their names. \U1F4BB - "Computer" \U1F3E0 - "House"
Yup, it's indeed a dup. See also bug 772890 for the core issue. *** This bug has been marked as a duplicate of bug 772812 ***