Git Product home page Git Product logo

Comments (10)

kovidgoyal avatar kovidgoyal commented on July 22, 2024

Does not reproduce for me. You didnt post the debug output under 0.35 so I cant tell what Wayland compositor you are running, but make sure it is up to date. As for m and w being cut off its because the font you are using has an italic face that is not metric compatible with the regular face at this pixel size. Use modify_font in kitty.conf to increase the cell width or switch to a font that has metric compatible bold anf italic faces.

from kitty.

BoltsJ avatar BoltsJ commented on July 22, 2024

I'm using GNOME 46 on fedora atomic 40.

The italic font is metric compatible, as cutting off wasn't a problem on 0.33.1, which can be seen in the screenshot I posted.

from kitty.

kovidgoyal avatar kovidgoyal commented on July 22, 2024

Yes because the font is not rendered at the same size in 33 and 35, which is why I said that it is not metric compatible at this size.

from kitty.

BoltsJ avatar BoltsJ commented on July 22, 2024

Well, the main point of the issue is that the fonts are now blurry after upgrading, and the blurriness persists even using the static build from github releases, so it's probably not a packaging issue. Also, my font size hasn't changed.

from kitty.

kovidgoyal avatar kovidgoyal commented on July 22, 2024

Your font size might not have changed, but the font size is in POINTS. The actual PIXEL size at which it is rendered has changed. Because now it is rendered at 1.25 scale instead of 2 scale and then resized in the compositor. Indeed support for fractional scaling makes fonts LESS blurry in general since they are not longer resized by the compositor.

I need some way to reproduce to be able to help you. At a minimum port the debug output with 0.35.1 and also the output of running with --debug-rendering.

from kitty.

BoltsJ avatar BoltsJ commented on July 22, 2024
Linux fedora-desktop 6.8.11-300.fc40.x86_64 #1 SMP PREEMPT_DYNAMIC Mon May 27 14:53:33 UTC 2024 x86_64
S
Kernel 6.8.11-300.fc40.x86_64 on an x86_64 (/dev/tty)

Running under: Wayland (GNOME Shell 46.2) missing: layer_shell
OpenGL: '4.6 (Core Profile) Mesa 24.0.8' Detected version: 4.6
Frozen: True
Paths:
  kitty: /var/home/b/Downloads/kitty-0.35.1-x86_64/bin/kitty
  base dir: /var/home/b/Downloads/kitty-0.35.1-x86_64/lib/kitty
  extensions dir: /var/home/b/Downloads/kitty-0.35.1-x86_64/lib/kitty-extensions
  system shell: /bin/bash
Loaded config files:
  /var/home/b/.config/kitty/kitty.conf

Config options different from defaults:
bold_font               Comic Code Bold
bold_italic_font        Comic Code Bold Italic
font_family             Comic Code
font_size               10.0
italic_font             Comic Code Italic
shell                   fish
tab_bar_edge            1
tab_bar_style           separator
wayland_titlebar_color  4076007938
Colors:
	active_border_color     #c0bfbc   
	active_tab_background   #b0afac   
	active_tab_foreground   #504e55   
	background              #fcfcfc   
	bell_border_color       #ed333b   
	color0                  #fcfcfc   
	color1                  #ed333b   
	color10                 #8ff0a4   
	color11                 #ffa348   
	color12                 #99c1f1   
	color13                 #dc8add   
	color14                 #93ddc2   
	color15                 #f6f5f4   
	color2                  #57e389   
	color3                  #ff7800   
	color4                  #62a0ea   
	color5                  #9141ac   
	color6                  #5bc8af   
	color7                  #deddda   
	color8                  #9a9996   
	color9                  #f66151   
	cursor                  #504e55   
	cursor_text_color       #fcfcfc   
	foreground              #504e55   
	inactive_border_color   #f6f5f4   
	inactive_tab_background #deddda   
	inactive_tab_foreground #5e5c64   
	selection_background    #deddda   
	selection_foreground    #5e5c64   
	url_color               #1a5fb4   

Important environment variables seen by the kitty process:
	PATH                                /var/home/b/Downloads/kitty-0.35.1-x86_64/bin:/var/home/b/.local/bin:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/var/home/b/.local/lib/node_modules/bin:/var/home/b/.local/lib/cargo/bin
	LANG                                en_US.UTF-8
	VISUAL                              nvim
	EDITOR                              nvim
	SHELL                               /bin/bash
	DISPLAY                             :0
	WAYLAND_DISPLAY                     wayland-0
	USER                                b
	XDG_MENU_PREFIX                     gnome-
	XDG_DATA_HOME                       /var/home/b/.local/share
	XDG_CONFIG_HOME                     /var/home/b/.config
	XDG_SESSION_DESKTOP                 gnome
	XDG_SESSION_TYPE                    wayland
	XDG_CURRENT_DESKTOP                 GNOME
	XDG_CACHE_HOME                      /var/home/b/.cache
	XDG_SESSION_CLASS                   user
	XDG_STATE_HOME                      /var/home/b/.local/state
	XDG_RUNTIME_DIR                     /run/user/1000
	XDG_DATA_DIRS                       /var/home/b/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share/:/usr/share/
[0.043] Compositor missing capabilities: layer_shell
[0.060] Creating window 1 at size: 840x610 and scale 1
[0.087] GL version string: '4.6 (Core Profile) Mesa 24.0.8' Detected version: 4.6
[0.087] CSD: old.size: 0x0 new.size: 840x610 needs_update: 1 shadow_changed: 1 size_changed: 1 state_changed: 0 buffer_destroyed: 0
[0.087] Created decoration buffers at scale: 1.000000
[0.097] Fractional scale requested: 150/120 = 1.25 for window 1
[0.097] Resizing framebuffer of window: 1 to: 1050x763 window size: 840x610 at scale: 1.250
[0.097] Waiting for swap to commit Wayland surface for window: 1
[0.097] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 1 state_changed: 0 buffer_destroyed: 0
[0.098] Created decoration buffers at scale: 1.250000
[0.098] Preferred integer buffer scale changed to: 2 for window 1
[0.098] Compositor set top-level bounds of: 2048x2272 for window 1
[0.098] Compositor top-level capabilities: maximize=1 minimize=1 window_menu=1 fullscreen=1
[0.098] XDG top-level configure event for window 1: size: 0x0 states: 
[0.098] XDG surface configure event received and acknowledged for window 1
[0.098] Waiting for swap to commit Wayland surface for window: 1
[0.098] CSD: old.size: 840x610 new.size: 840x610 needs_update: 0 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 0
[0.098] Final window 1 content size: 840x610 resized: 0
[0.098] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 840x634 viewport: 840x610
[0.098] Fractional scale requested: 120/120 = 1.00 for window 1
[0.098] Resizing framebuffer of window: 1 to: 840x610 window size: 840x610 at scale: 1.000
[0.098] Waiting for swap to commit Wayland surface for window: 1
[0.098] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 1 state_changed: 0 buffer_destroyed: 0
[0.099] Created decoration buffers at scale: 1.000000
[0.099] Preferred integer buffer scale changed to: 1 for window 1
[0.119] CSD: old.size: 840x610 new.size: 840x610 needs_update: 0 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 0
[0.121] OS Window created
[0.135] Child launched
[0.152] CSD: old.size: 840x610 new.size: 840x610 needs_update: 0 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 0
[0.158] Window 1 swapped committing surface
[0.162] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 0
[0.166] Fractional scale requested: 150/120 = 1.25 for window 1
[0.166] Resizing framebuffer of window: 1 to: 1050x763 window size: 840x610 at scale: 1.250
[0.166] Waiting for swap to commit Wayland surface for window: 1
[0.166] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 1 state_changed: 0 buffer_destroyed: 1
[0.168] Created decoration buffers at scale: 1.250000
[0.168] Preferred integer buffer scale changed to: 2 for window 1
[0.168] Compositor set top-level bounds of: 2048x2272 for window 1
[0.168] XDG top-level configure event for window 1: size: 840x634 states: TOPLEVEL_STATE_ACTIVATED 
[0.168] XDG surface configure event received and acknowledged for window 1
[0.168] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 1 buffer_destroyed: 0
[0.168] Final window 1 content size: 840x610 resized: 0
[0.168] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 840x634 viewport: 840x610
[0.168] Window 1 swapped committing surface
[0.216] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111915
[0.266] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111915
[0.271] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 1
[0.273] Created decoration buffers at scale: 1.250000
[0.273] SIGWINCH sent to child in window: 1 with size: (38, 105, 1050, 760)
[0.577] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 1
[0.578] Created decoration buffers at scale: 1.250000
[3.216] Calling wl_pointer_set_cursor in _glfwPlatformSetCursor with surface: (nil) and serial: 111915
[3.334] Child launched
[3.335] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 1
[3.337] Created decoration buffers at scale: 1.250000
[3.342165] No render frame received in 0.25 seconds[3.352226] No render frame received in 0.25 seconds[3.837] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111915
[3.887] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111915
[5.478742] No render frame received in 0.25 seconds[8.196] Calling wl_pointer_set_cursor in set_cursor with surface: 0x55fd23fca8d0
[8.263] Calling wl_pointer_set_cursor in set_cursor with surface: 0x55fd23fca8d0
[8.849] Calling wl_pointer_set_cursor in set_cursor with surface: 0x55fd23fca8d0
[10.574] Calling wl_pointer_set_cursor in set_cursor with surface: 0x55fd23fca8d0
[15.162] Compositor set top-level bounds of: 2048x2272 for window 1
[15.162] XDG top-level configure event for window 1: size: 840x634 states: 
[15.162] XDG surface configure event received and acknowledged for window 1
[15.162] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 1 buffer_destroyed: 1
[15.164] Created decoration buffers at scale: 1.250000
[15.164] Final window 1 content size: 840x610 resized: 0
[15.164] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 840x634 viewport: 840x610
[16.033] Calling wl_pointer_set_cursor in _glfwPlatformSetCursor with surface: (nil) and serial: 111954
[16.033] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111954
[16.084] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111954
[16.252] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111954
[16.252] Compositor set top-level bounds of: 2048x2272 for window 1
[16.252] XDG top-level configure event for window 1: size: 840x634 states: TOPLEVEL_STATE_ACTIVATED 
[16.252] XDG surface configure event received and acknowledged for window 1
[16.252] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111954
[16.252] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 1 buffer_destroyed: 1
[16.254] Created decoration buffers at scale: 1.250000
[16.255] Final window 1 content size: 840x610 resized: 0
[16.255] Setting window 1 "visible area" geometry in configure event: x=0 y=-24 840x634 viewport: 840x610
[16.302] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111954
[17.049] CSD: old.size: 840x610 new.size: 840x610 needs_update: 1 shadow_changed: 0 size_changed: 0 state_changed: 0 buffer_destroyed: 1
[17.050] Created decoration buffers at scale: 1.250000
[17.055152] No render frame received in 0.25 seconds[18.433] Calling wl_pointer_set_cursor in setCursorImage with surface: 0x55fd23fca8d0 and serial: 111954

Is this sufficient or is there other debug output you need?

from kitty.

kovidgoyal avatar kovidgoyal commented on July 22, 2024

Lots of weird shit going on in that log. Why is your compositor first requesting a fractional scale of 1 and then 1.25? In any case as far as I can see, kitty is sizing things correctly as evidenced by the line

Resizing framebuffer of window: 1 to: 1050x763 window size: 840x610 at scale: 1.250

I would guess the issue comes from GNOME thinking 610 * 1.25 is 762 not 763 i.e. it is rounding 762.5 to 762. Easily confirmed by testing with a window size that results in a integer when multiplied by 1.25.

I will note that the wayland spec states: For toplevel surfaces, the size is rounded halfway away from zero. Therefore if this is the cause you should report the bug to GNOME.

from kitty.

BoltsJ avatar BoltsJ commented on July 22, 2024

Is there a workaround I could use in the meantime to go back to the old scaling behavior? It worked perfectly before

from kitty.

BoltsJ avatar BoltsJ commented on July 22, 2024

GNOME bug report: https://gitlab.gnome.org/GNOME/mutter/-/issues/3514

from kitty.

kovidgoyal avatar kovidgoyal commented on July 22, 2024

Not that I know of, short of ensuring your window size is such that
multiplying it with the scale yields something that is not x.5. Or
switch to another Wayland compositor, one that follows the "fractional
scaling spec", such as it is.

from kitty.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.