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 !
Duplicate of #2466 and #1387 and others
Closed #2502.
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.
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.
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?
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.
For reference, I was referring to this: https://www.cairographics.org/FAQ/#sharp_lines
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 :(
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
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 !
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.
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 :).
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 ?
@codinghedgehog-python what did you change? The recommended fix [above](https://github.com/geany/geany/issues/2502#issuecomment-627789435) doesn't change font sizes, just adds a few pixels to the spacing to fit the underscores.
I had the same issue. I fixed it by changing the fonts: View->Change Font
TL;DR https://www.geany.org/documentation/faq/#geany-does-not-display-underscores-...
This been fixed in Geany 1.37. The workaround to set `line_height` in `filetypes.common` is no longer necessary.
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.
@Lo0is the solution is in a comment above
the solution did not help much, considering that I used another value but nothing
@Lo0is did you try with bigger values than 1?
@b4n sure, I've tried many combinations that goes beyond 1 but it doesn't give me any kind of change
@Lo0is post your filetypes.common in your favourite pastebin and post a link here.
@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.
@b4n thats why I asked for it to be posted so we can check :)
See also my edit 6 comments above :)
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 `
@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;`.
@b4n I also tried to put 1; 1; but it doesn't work anyway, I'll put the code back to you after changing the values.
`#~ # 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=1;1;
#~ # 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 `
@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.
@elextr Even by removing both lines, does not show me the underscore ...
Can any of you send me your filetypes.common?
@elextr @b4n Correct me, yes I have now rebooted and everything works great, thank you guys.
What worked for me is changing the font, View->Change Font to Nimbus Mono PS Regular
@AdamDanischewski yes, the problem seems to mostly be dejavu fonts, which unfortunately Ubuntu made default.
yes, the problem seems to mostly be dejavu fonts, which unfortunately Ubuntu made default.
hum... i don't know why this problem does not exist on many other editors (e.g. vscode, bluefish, octave).
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
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.
Whats the workaround? I tired line_height=0;2; and it didnt worked.
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.
@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 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.
@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.
https://github.com/geany/geany/issues/2796#issue-865286489
I'm using Ubuntu 20.04 and I still have this problem. I attached my filetypes.common [here](https://pastebin.com/EsG6M9EU). 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.
@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.
@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!
I have underscores working on Manjaro, but instead I get Swedish characters cropped at the top so that "ÅÄÖ" looks like "AAO" while smaller "åäö" works.
@Dawoodoz adjust the line height setting to add more space at the top.
I got the same problem and tried the proposed solution (adjusting the line-height), but nothing changed even when I exaggerated the the line_height as:
```line_height=10;10;false;false```
There were no visible changes in any line_heights neither by reloading the configuration nor by quitting and restarting Geany.
Any clues?
Did you uncomment the heading?
On Sat, 7 Aug 2021, 11:36 am almir-campos, ***@***.***> wrote:
I got the same problem and tried the proposed solution (adjusting the line-height), but nothing changed even when I exaggerated the the line_height as:
line_height=10;10;false;false
There were no visible changes in any line_heights neither by reloading the configuration nor by quitting and restarting Geany.
Any clues?
— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/geany/geany/issues/2502#issuecomment-894586126, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAGGATLUV4RPTXZTBVY6U43T3SEZFANCNFSM4M64YWHA . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&utm_campaign=notification-email .
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.
github-comments@lists.geany.org