Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't see underscores on Ubuntu 20.04 #2502

Closed
bristow opened this issue May 12, 2020 · 45 comments
Closed

Can't see underscores on Ubuntu 20.04 #2502

bristow opened this issue May 12, 2020 · 45 comments
Labels
duplicate This has already been reported linux Issues when Geany is run on GNU/Linux or related operating systems.

Comments

@bristow
Copy link

bristow commented May 12, 2020

Hello everyone,

Since the migration to Ubuntu 20.04, Geany no longer displays underscores.
I have to zoom in considerably to see them.

Any ideas on how to solve this annoying problem? Thanks for this fabulous software !

@elextr
Copy link
Member

elextr commented May 12, 2020

Duplicate of #2466 and #1387 and others

@elextr elextr closed this as completed May 12, 2020
@codebrainz
Copy link
Member

I guess we can expect a flood of new duplicates as people upgrade to Ubuntu 20.04 (and derivatives) and encounter this issue. I can confirm it happens here too, but it's not limited to Geany, for example it happens in HexChat too.

@elextr
Copy link
Member

elextr commented May 13, 2020

And not just Ubuntu, Neil at Scintilla had it on Fedora too. Discussions on that ML seemed to suggest that the font may be sensitive to rounding when converting measurements to integer pixels. There was a change to the rounding on Scintilla which may help, but rounding still occurs and setting extra line descent may always be necessary with some fonts.

@codebrainz
Copy link
Member

I saw that thread but didn't really understand what it's about. Can we just change the default in Geany to fix the issue once and for all without noticeable impact on other fonts? Is it just a matter of adding 0.5f to clamp it to the next nearest pixel as is often required in Cairo drawing?

@elextr
Copy link
Member

elextr commented May 13, 2020

I didn't look at the change Neil made, but I think he might have changed a truncation to a rounding, but not sure if that was round up/down/nearest. But of course that may just change the perturbation surface to numbers near x.5 not numbers near x.0. It depends on screen resolutions, the font measurements etc so there is no simple universal solution like "add 0.5" sadly.

@codebrainz
Copy link
Member

For reference, I was referring to this:
https://www.cairographics.org/FAQ/#sharp_lines

@elextr
Copy link
Member

elextr commented May 13, 2020

I would expect that underscore isn't a simple line, but a filled shape like all other characters, so its probably not so simple. And the issue isn't so much drawing the underscore as the next line drawing over it because the line height is too small (or the underscore drop is too large).

Anyway the thing is to wait for the Scintilla change to ripple through Scintilla LTS branch and into Geany and see if its better (and if other fonts are worse :(

@codebrainz
Copy link
Member

codebrainz commented May 13, 2020

Since I went spelunking a bit, I shall leave some links - which may or not be related - for those who wish to investigate this further:
https://bugs.freedesktop.org/show_bug.cgi?id=43760
https://bugs.freedesktop.org/show_bug.cgi?id=10693
https://bugs.freedesktop.org/show_bug.cgi?id=44624
https://bugs.freedesktop.org/show_bug.cgi?id=96893
https://bugs.freedesktop.org/show_bug.cgi?id=9029
https://bugs.freedesktop.org/show_bug.cgi?id=7223

Also the "others" @elextr referred to above, for auto-linking purposes: #2386, #2353, #2287

@codebrainz codebrainz added the duplicate This has already been reported label May 13, 2020
@codebrainz codebrainz pinned this issue May 13, 2020
@bristow
Copy link
Author

bristow commented May 13, 2020

Thanks and sorry for duplicate, I didn't search the closed issues :(

Changing Tools > Configuration Files > filetypes.common to include

[styling]
line_height=0;2;

solved this bug !

@eht16
Copy link
Member

eht16 commented May 15, 2020

Anyway the thing is to wait for the Scintilla change to ripple through Scintilla LTS branch and into Geany and see if its better (and if other fonts are worse :(

This already happened, the change is in the Scintilla 3.20.0 release and it works on my system, i.e. I do see underscores again.

So, we just need to update Scintilla and get this resolved (at least for some or ideally most users).
I'll give it a shot.

@eht16
Copy link
Member

eht16 commented May 15, 2020

Sorry, my last comment is wrong. The underscore fix in Scintilla is not in the 3.20.0 release.
Since I noticed it only after updating our Scintilla copy, we got #2506 anyway :).

@codinghedgehog-python
Copy link

The workaround works but makes the font size super large. I can read my code from 5 metres away XD. So if I'm getting this right the only way to have it working normally like it used to, is to either go back to Ubuntu 18.04 or to install previous release of Geany. Correct ?

@elextr
Copy link
Member

elextr commented Jul 19, 2020

@codinghedgehog-python what did you change? The recommended fix above doesn't change font sizes, just adds a few pixels to the spacing to fit the underscores.

@masterneko
Copy link

I had the same issue. I fixed it by changing the fonts: View->Change Font

eht16 added a commit to eht16/www.geany.org that referenced this issue Aug 9, 2020
This makes the issue in geany/geany#2502
more transparent and offers workarounds.
eht16 added a commit to eht16/www.geany.org that referenced this issue Aug 23, 2020
This makes the issue in geany/geany#2502
more transparent and offers workarounds.
eht16 added a commit to geany/www.geany.org that referenced this issue Aug 23, 2020
This makes the issue in geany/geany#2502
more transparent and offers workarounds.
@eht16
Copy link
Member

eht16 commented Aug 23, 2020

@eht16
Copy link
Member

eht16 commented Oct 31, 2020

This been fixed in Geany 1.37.
The workaround to set line_height in filetypes.common is no longer necessary.

@techee techee unpinned this issue Dec 3, 2020
@Lo0is
Copy link

Lo0is commented Dec 6, 2020

I find myself today, that I can no longer display the underscores.
Someone who solved, could give me some indication.

I don't feel like changing compiler.

@elextr
Copy link
Member

elextr commented Dec 6, 2020

@Lo0is the solution is in a comment above

note [styling]

@elextr
Copy link
Member

elextr commented Dec 7, 2020

@Lo0is post your filetypes.common in your favourite pastebin and post a link here.

@b4n
Copy link
Member

b4n commented Dec 7, 2020

@Lo0is wait, I think I know the issue: is that setting properly in a [styling] section? By default the section itself is commented (on line 2), which then doesn't work.

@elextr
Copy link
Member

elextr commented Dec 7, 2020

@b4n thats why I asked for it to be posted so we can check :)

See also my edit 6 comments above :)

@Lo0is
Copy link

Lo0is commented Dec 7, 2020

This is my file, I hope it can help you to understand what is happening to me. @elextr @b4n

#~ # For complete documentation of this file, please see Geany's main documentation
#~ [styling]
#~ # use foreground;background;bold;italic or named_style,bold,italic

#~ # used for filetype All/None
#~ default=default

#~ # 3rd selection argument is true to override default foreground
#~ # 4th selection argument is true to override default background
#~ selection=selection

#~ # style for a matching brace
#~ brace_good=brace_good
#~ # style for a non-matching brace (a brace without a counterpart)
#~ brace_bad=brace_bad

#~ # the following settings define the colours of the margins on the left side
#~ margin_linenumber=margin_line_number
#~ margin_folding=margin_folding
#~ fold_symbol_highlight=fold_symbol_highlight

#~ # background colour of the current line, only the second and third argument is interpreted
#~ # use the third argument to enable or disable the highlighting of the current line (has to be true/false)
#~ current_line=current_line

#~ # translucency for the current line(first argument) and the selection (second argument)
#~ # values between 0 and 256 are accepted. Note for Windows 95, 98 and ME users:
#~ # keep this value at 256 to disable translucency otherwise Geany might crash
#~ translucency=256;256

#~ # style for a highlighted line (e.g when using Goto line or goto tag)
#~ marker_line=marker_line

#~ # style for a marked search results (when using "Mark" in Search dialogs)
#~ # the second argument sets the background colour for the drawn rectangle
#~ # only the second argument is interpreted
#~ marker_search=marker_search

#~ # style for a marked line (e.g when using the "Toggle Marker" keybinding (Ctrl-M))
#~ marker_mark=marker_mark

#~ # translucency for the line marker(first argument) and the search marker (second argument)
#~ marker_translucency=256;256

#~ # colour of the caret(the blinking cursor), only first and third argument is interpreted
#~ # set the third argument to true to change the caret into a block caret
#~ caret=caret

#~ # width of the caret(the blinking cursor)
#~ # width in pixels, use 0 to make it invisible, maximum width is 3
#~ caret_width=1

#~ # set foreground and background colour of indentation guides
#~ indent_guide=indent_guide

#~ # third argument: if true, use this foreground color. If false, use the default value defined by the filetypes.
#~ # fourth argument: if true, use this background color. If false, use the default value defined by the filetypes.
#~ white_space=white_space

#~ # style of folding icons, valid values are:
#~ # first argument:  1 for boxes, 2 for circles, 3 for arrows, 4 for +/-
#~ # second argument: 1 for straight lines, 2 for curved lines or 0 for none
#~ folding_style=1;1;

#~ # should an horizontal line be drawn at the line where text is folded
#~ # 0 to disable
#~ # 1 to draw the line above folded text
#~ # 2 to draw the line below folded text
#~ folding_horiz_line=2

#~ # first argument: drawing of visual flags to indicate a line is wrapped. This is a bitmask of the
#~ # values: 0 - No visual flags, 1 - Visual flag at end of subline of a wrapped line, 2 - Visual flag
#~ # at begin of subline of a wrapped line, Subline is indented by at least 1 to make room for the flag.
#~ # second argument: whether the visual flags to indicate a line is wrapped are drawn near the border
#~ # or near the text. This is a bitmask of the values: 0 - Visual flags drawn near border,
#~ # 1 - Visual flag at end of subline drawn near text, 2 - Visual flag at begin of subline drawn near text
#~ line_wrap_visuals=1;0;

#~ # first argument: sets the size of indentation of sublines for wrapped lines in terms of
#~ # the width of a space, only used when the second argument is 0
#~ # second argument: wrapped sublines can be indented to the position of their first subline or
#~ # one more indent level, possible values:
#~ # 0 - Wrapped sublines aligned to left of window plus amount set by the first argument
#~ # 1 - Wrapped sublines are aligned to first subline indent (use the same indentation)
#~ # 2 - Wrapped sublines are aligned to first subline indent plus one more level of indentation
#~ line_wrap_indent=0;1;

#~ # first argument: amount of space to be drawn above the line's baseline
#~ # second argument: amount of space to be drawn below the line's baseline
#~ line_height=0;0;

#~ # 3rd argument is true to override default foreground of calltips
#~ # 4th argument is true to override default background of calltips
#~ calltips=call_tips

#~ # error indicator color
#~ indicator_error=0xff0000

#~ [settings]
#~ # which characters should be skipped when moving (or included when deleting) to word boundaries
#~ # should always include space and tab (\s\t)
#~ whitespace_chars=\s\t!\"#$%&'()*+,-./:;<=>?@[\\]^`{|}~
#~ #wordchars=_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

#~ [named_styles]
#~ # This is the Default "built-in" color scheme
#~ default=0x000000;0xffffff;false;false
#~ error=0xff0000;0xBFBFBF;false;italic

#~ selection=0x000000;0xc0c0c0;false;true
#~ current_line=0x000000;0xf0f0f0;true;
#~ brace_good=0x0000ff;0xFFFFFF;true;false
#~ brace_bad=0xff0000;0xFFFFFF;true;false
#~ margin_line_number=0x000000;0xd0d0d0;
#~ margin_folding=0x000000;0xdfdfdf;
#~ fold_symbol_highlight=0xffffff
#~ indent_guide=0xc0c0c0;;
#~ caret=0x000000;0x000000;false;
#~ marker_line=0x000000;0xffff00;
#~ marker_search=0x000000;0x0000f0;
#~ marker_mark=0x000000;0xb8f4b8;
#~ call_tips=0xc0c0c0;0xffffff;false;false
#~ white_space=0xc0c0c0;0xffffff;true;false

#~ comment=0xd00000
#~ comment_doc=0x3f5fbf
#~ comment_line=comment
#~ comment_line_doc=comment_doc
#~ comment_doc_keyword=comment_doc,bold
#~ comment_doc_keyword_error=comment_doc,italic

#~ number=0x007f00
#~ number_1=number
#~ number_2=number_1

#~ type=0x0000d0;;true;false
#~ class=type
#~ function=0x000080
#~ parameter=function

#~ keyword=0x00007f;;true;false
#~ keyword_1=keyword
#~ keyword_2=0x991111;;true;false
#~ keyword_3=keyword_1
#~ keyword_4=keyword_1

#~ identifier=default
#~ identifier_1=identifier
#~ identifier_2=identifier_1
#~ identifier_3=identifier_1
#~ identifier_4=identifier_1

#~ string=0xff8000
#~ string_1=string
#~ string_2=0x008000
#~ string_eol=0x000000;0xe0c0e0;false;false
#~ character=string_1
#~ backticks=string_2
#~ here_doc=string_2

#~ label=default,bold
#~ preprocessor=0x007f7f
#~ regex=number_1
#~ operator=0x301010
#~ decorator=string_1,bold
#~ other=0x404080

#~ tag=type
#~ tag_unknown=tag,bold
#~ tag_end=tag,bold
#~ attribute=keyword_1
#~ attribute_unknown=attribute,bold
#~ value=string_1
#~ entity=default

#~ line_added=0x34b034;0xffffff;false;false
#~ line_removed=0xff2727;0xffffff;false;false
#~ line_changed=0x7f007f;0xffffff;false;false

@b4n
Copy link
Member

b4n commented Dec 7, 2020

@Lo0is lines starting with # are comment lines, they are not used. You need to comment-out line 2 so it reads [styling], and the line that has line_height so it reads line_height=1;1;.

@elextr
Copy link
Member

elextr commented Dec 7, 2020

@Lo0is next time please paste to a pastebin and only paste a link here instead of spamming every watcher of this repository with your whole file ... twice.

And to emphasise what @b4n is saying remove the #~ from the [styling] line and the line_height=... line.

@Lo0is
Copy link

Lo0is commented Dec 7, 2020

@elextr @b4n Correct me, yes I have now rebooted and everything works great, thank you guys.

@codebrainz codebrainz added the linux Issues when Geany is run on GNU/Linux or related operating systems. label Dec 7, 2020
@AdamDanischewski
Copy link

What worked for me is changing the font, View->Change Font to Nimbus Mono PS Regular

@elextr
Copy link
Member

elextr commented Dec 15, 2020

@AdamDanischewski yes, the problem seems to mostly be dejavu fonts, which unfortunately Ubuntu made default.

@crazyBaboon
Copy link

crazyBaboon commented Jan 10, 2021

This issue should not be closed until it is resolved.

I mean it is great to have a workaround, but the solution needs to be implemented by default IMHO

@elextr
Copy link
Member

elextr commented Jan 10, 2021

The issue is in the deja-vu fonts which at some font sizes at some screen resolutions specify a line height that is too small to contain the underscore once it is rounded to an integral number of pixels. A quick google will show that it affects both vscode and eclipse and in both cases the same workaround is used, manually increase the line height.

A change has been made in Scintilla to reduce the situations this occurs, but it may not be a full fix. That change will bubble through Geany in due course and hopefully will improve things, but there is not going to be a total fix at the client end. So the issue is closed with a workaround because its not something we can independently fix.

Whilst its tempting to yell at Ubuntu to "fix your [expletive deleted] font" since that is the underlying problem a) I doubt that would have any effect, and b) its difficult for them to do so given they don't know the resolution of the screen being used, and the font size chosen, and therefore which way the rounding is going to go. If they adjust the line height too far it will result in complaints of excessive space between lines on some systems.

Its just unfortunate that Ubuntu chose that font as the monospace default so the issue shows up in lots of places.

@cyberfox1
Copy link

Whats the workaround? I tired line_height=0;2; and it didnt worked.

@cyberfox1
Copy link

Thanks and sorry for duplicate, I didn't search the closed issues :(

Changing Tools > Configuration Files > filetypes.common to include

[styling]
line_height=0;2;

solved this bug !

This does not work for me.

@elextr
Copy link
Member

elextr commented Mar 23, 2021

@cyberfox1 without any further information its not possible to help you. Paste your filetypes.common to a pastebin and put a link here, plus the usual version of Geany and system you are on from the top of Help->Debug Messages

@cyberfox1
Copy link

@cyberfox1 without any further information its not possible to help you. Paste your filetypes.common to a pastebin and put a link here, plus the usual version of Geany and system you are on from the top of Help->Debug Messages

It doesn't sound like you have been able to help anyone.

Whilst its tempting to yell at Ubuntu to "fix your [expletive deleted] font"

You need to get it into your head it is ALL fonts and Geany is currently an unusable product.

@elextr
Copy link
Member

elextr commented Mar 24, 2021

@cyberfox1 all people who work on Geany are volunteers, they do what they want to work on. Of course its annoying to you, but being abusive or grouchy at them won't get you anywhere, they will just ignore you.

it is ALL fonts and Geany is currently an unusable product.

This is quite clearly incorrect, you may have a problem with all fonts, but lots of people use Geany on Ubuntu and its many derivatives quite happily. None of them have reported problems on anything other than Deja Vu fonts (which Ubuntu uses as generic monospace as well) but as you would understand if you read the explanation above, it is possible other fonts could have the issue, but many don't.

So there is something different about your system, but if you do not provide any information about it nobody can help you, and as I said, if you are grumpy or abusive nobody will want to help you.

@Mauricho
Copy link

#2796 (comment)

@kkadhith
Copy link

I'm using Ubuntu 20.04 and I still have this problem. I attached my filetypes.common here. I uncommented styling and added line_height=1;1;, but I still have this issue. I am using DejaVu Sans Mono with a font size of 11. I noticed that zooming in or increasing the size of the font resolves the issue, but I would like to stick to 11pt font.

Someone suggested changing the font to Nimbus Mono PS Regular, but I really dislike that font. If there are any alternative fonts that don't have issues, let me know.

@elextr
Copy link
Member

elextr commented May 20, 2021

@kkadhith your pasted filetypes.common has not only the [styling] line and the line_height line uncommented but all the comment lines are also uncommented. Thats going to totally confuse the conf file reader so no surprise it doesn't work.

@kkadhith
Copy link

@elextr Weird, my file came like that. I was confused why some of the lines were uncommented as well. After commenting it out I can now see the underscores. Thank you!

@Dawoodoz
Copy link

I have underscores working on Manjaro, but instead I get Swedish characters cropped at the top so that "ÅÄÖ" looks like "AAO" while smaller "åäö" works.

@elextr
Copy link
Member

elextr commented Jun 17, 2021

@Dawoodoz adjust the line height setting to add more space at the top.

@elextr
Copy link
Member

elextr commented Aug 7, 2021 via email

@elextr elextr mentioned this issue Sep 12, 2021
44 tasks
@jarnos
Copy link

jarnos commented Oct 10, 2021

The bug is fixed in Scintilla 5.1.2:

On GTK, fix the line spacing so that underscores and accents are visible for some fonts such as DejaVu Sans Mono 10.

https://www.scintilla.org/ScintillaHistory.html

No Ubuntu release seem to have a version of libqscintilla* near that great.

@techee techee unpinned this issue Nov 17, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
duplicate This has already been reported linux Issues when Geany is run on GNU/Linux or related operating systems.
Projects
None yet
Development

No branches or pull requests

16 participants