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

Bad appearance on wayland #5349

Closed
cathaysia opened this issue Apr 29, 2024 · 16 comments
Closed

Bad appearance on wayland #5349

cathaysia opened this issue Apr 29, 2024 · 16 comments
Labels
bug Something isn't working fixed-in-nightly This is (or is assumed to be) fixed in the nightly builds. Wayland

Comments

@cathaysia
Copy link

cathaysia commented Apr 29, 2024

What Operating System(s) are you seeing this problem on?

Linux Wayland

Which Wayland compositor or X11 Window manager(s) are you using?

mutter

WezTerm version

wezterm 20240405_180910_cce0706b

Did you try the latest nightly build to see if the issue is better (or worse!) than your current version?

Yes, and I updated the version box above to show the version of the nightly that I tried

Describe the bug

the first is :

image

seconds is:

wezterm.gui.get_appearance always return 'Light'.

image

This screenshot shows some errors, but I don't think they are important. Because wezterm just caused gnome to restart. This problem occurred after

These two problems first appeared in updates after January this year.

To Reproduce

No response

Configuration

local wezterm = require("wezterm")
return {
    window_decorations = "INTEGRATED_BUTTONS|RESIZE",
}

Expected Behavior

just like last year

Logs

$ cat *.txt
08:09:32.405  INFO   wezterm_gui > Spawned your command via the existing GUI instance. Use wezterm start --always-new-process if you do not want this behavior. Result=SpawnResponse { tab_id: 1, pane_id: 1, window_id: 1, size: TerminalSize { rows: 24, cols: 80, pixel_width: 640, pixel_height: 384, dpi: 0 } }
08:10:58.981  INFO   wezterm_gui > Spawned your command via the existing GUI instance. Use wezterm start --always-new-process if you do not want this behavior. Result=SpawnResponse { tab_id: 3, pane_id: 3, window_id: 2, size: TerminalSize { rows: 24, cols: 80, pixel_width: 640, pixel_height: 384, dpi: 0 } }
08:11:06.394  INFO   wezterm_gui > Spawned your command via the existing GUI instance. Use wezterm start --always-new-process if you do not want this behavior. Result=SpawnResponse { tab_id: 4, pane_id: 4, window_id: 3, size: TerminalSize { rows: 24, cols: 80, pixel_width: 640, pixel_height: 384, dpi: 0 } }
08:11:34.154  INFO   wezterm_gui > Spawned your command via the existing GUI instance. Use wezterm start --always-new-process if you do not want this behavior. Result=SpawnResponse { tab_id: 6, pane_id: 6, window_id: 4, size: TerminalSize { rows: 24, cols: 80, pixel_width: 640, pixel_height: 384, dpi: 0 } }
08:12:02.624  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:05.003  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:05.105  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:05.382  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:05.914  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:06.231  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:06.374  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:06.541  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:06.856  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:07.021  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:22.936  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.110  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.267  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.406  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.486  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.618  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.724  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:23.813  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:32.423  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:32.507  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:32.692  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:32.849  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:32.912  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:33.103  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:33.241  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:33.721  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:33.921  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:34.108  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:34.207  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:34.369  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:34.633  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:35.207  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:35.302  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:35.445  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:13:35.752  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:23.816  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:23.916  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:24.440  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:24.660  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:24.799  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:24.951  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.086  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.129  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.251  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.380  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.542  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.787  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:25.907  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:26.037  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:26.673  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:26.930  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:27.275  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:27.425  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:39.934  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:40.122  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:40.210  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:40.293  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:40.412  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:40.568  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:40.901  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.402  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.432  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.462  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.492  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.522  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.553  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.583  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.613  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.644  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.674  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.704  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.734  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.789  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:41.940  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.177  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.266  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.411  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.566  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.773  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.846  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:42.899  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:43.290  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:43.620  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:43.759  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:43.838  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:44.054  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:44.328  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:44.429  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:44.555  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:44.704  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:44.998  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:45.878  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:46.227  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:50.408  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:50.608  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:50.864  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:50.933  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:51.185  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:54.204  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:54.830  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:55.739  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:55.928  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:56.597  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.098  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.128  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.158  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.188  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.219  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.249  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.279  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.309  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.340  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.370  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.400  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.430  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.461  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.491  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.521  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:57.860  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:58.058  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:58.690  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:58.869  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:59.484  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:14:59.839  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:00.300  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:00.376  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:00.620  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:00.994  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:01.235  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:01.354  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:01.531  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:01.801  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:02.132  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:02.527  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:02.759  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:03.146  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:03.396  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:03.499  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:03.907  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:04.009  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:15:04.353  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:17:18.945  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:17:19.505  ERROR  window::os::wayland::window > set_cursor: Cursor not found
08:08:27.427  ERROR  wezterm_mux_server_impl::local > writing pdu data buffer: Broken pipe (os error 32)
08:08:35.373  ERROR  env_bootstrap                  > panic at window/src/os/wayland/window.rs:361:9 - not yet implemented
   0: <unknown>
   1: <unknown>
   2: <unknown>
   3: <unknown>
   4: <unknown>
   5: <unknown>
   6: <unknown>
   7: <unknown>
   8: <unknown>
   9: <unknown>
  10: <unknown>
  11: <unknown>
  12: <unknown>
  13: <unknown>
  14: <unknown>
  15: <unknown>
  16: <unknown>
  17: <unknown>
  18: <unknown>
  19: <unknown>
  20: <unknown>
  21: <unknown>
  22: __libc_start_call_main
  23: __libc_start_main_impl
  24: <unknown>

08:08:27.413  INFO   wezterm_gui > Spawned your command via the existing GUI instance. Use wezterm start --always-new-process if you do not want this behavior. Result=SpawnResponse { tab_id: 3, pane_id: 4, window_id: 1, size: TerminalSize { rows: 24, cols: 80, pixel_width: 640, pixel_height: 384, dpi: 0 } }
08:09:32.417  ERROR  wezterm_mux_server_impl::local > writing pdu data buffer: Broken pipe (os error 32)
08:10:58.995  ERROR  wezterm_mux_server_impl::local > writing pdu data buffer: Broken pipe (os error 32)
08:11:04.258  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:06.408  ERROR  wezterm_mux_server_impl::local > writing pdu data buffer: Broken pipe (os error 32)
08:11:08.655  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:09.069  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:09.225  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:09.634  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:09.879  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:10.596  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:10.774  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:11.122  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:32.877  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:32.969  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:33.212  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:33.463  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:33.581  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:33.700  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:33.795  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:34.126  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:34.168  ERROR  wezterm_mux_server_impl::local > writing pdu data buffer: Broken pipe (os error 32)
08:11:39.334  ERROR  window::os::wayland::window    > set_cursor: Cursor not found
08:11:40.542  ERROR  wezterm_gui                    > running message loop: Io error: Broken pipe (os error 32); terminating

Anything else?

no

@cathaysia cathaysia added the bug Something isn't working label Apr 29, 2024
@RomanAverin
Copy link

Same issue.

@Anakael
Copy link

Anakael commented Apr 29, 2024

Same errors with Cursor not found.

@szsdk
Copy link

szsdk commented Apr 30, 2024

I have the same experience after the recent update of my arch. I also have the same issue with kitty. This is the related issue: kovidgoyal/kitty#7396

@Shikachuu
Copy link

Shikachuu commented May 4, 2024

Probably closely related or even the same bugg as #5360, I'm experiencing both issues dependending on the display layout and the runtime config. Probably related to gnome 46 or mutter itself.

I think that kitty issue is a red herring tho', tried messing with all the ime settings sadly without any success.

Also explicitly disabling wayland config.enable_wayland = false kinda solves both issues, but I don't think this should be the way to do it.

@cathaysia
Copy link
Author

It should have nothing to do with gnome46. This problem has already appeared in January. But I not reported it. Instead, I switched to kitty. In the change log at that time, I mainly talked about "reconstructing wayland". I suspect that it was related to that reconstruction.

@wez
Copy link
Owner

wez commented May 5, 2024

Please try the most recent nightly build

@wez wez added the Wayland label May 5, 2024
@cathaysia
Copy link
Author

since 20240505_232355_e6db4408, the gui.get_appearance() function already be fixed, but window bug still live.

for the master(f6fdfeb)
if wezterm starts with empty config, then window has no decorate, so window cannot move or resize.

image

I noticed that kitty had no decorations before. After the update, kitty added hand-painted decorations again.

if wezterm starts with:

return {
    window_decorations = "INTEGRATED_BUTTONS|RESIZE",
}

then wezterm just like before:

image

@glima
Copy link

glima commented Jun 2, 2024

Same here. Such love for the rest of wezterm that it keeps me using it besides the low interest in Wayland. Got used to no window title.

@RomanAverin
Copy link

Same here. Such love for the rest of wezterm that it keeps me using it besides the low interest in Wayland. Got used to no window title.

You can use it in XWayland mode. It is enough to specify enable_wayland = false

@glima
Copy link

glima commented Jun 3, 2024

You can use it in XWayland mode. It is enough to specify enable_wayland = false

Mm, no, sorry. I use fractional scaling, and that + X == blurry content :(

@xieve
Copy link

xieve commented Jun 6, 2024

I have the same issue, also on Mutter (using Gnome). If I set window_decorations to NONE, the ugly decorations disappear, they appear when it is set to RESIZE, INTEGRATED_BUTTONS, RESIZE|INTEGRATED_BUTTONS or TITLE. TITLE|RESIZE behaves like NONE (no window decorations at all). The mouse disappears whenever it enters the window area with the error message window::os::wayland::window > set_cursor: Cursor not found.

@RomanAverin
Copy link

We're still here 😥

@wez
Copy link
Owner

wez commented Jul 22, 2024

@RomanAverin if you don't have anything constructive to add, please do not comment here.
If you do this again, I will block you.

@xz-dev
Copy link

xz-dev commented Jul 23, 2024

Is there any correlation? #5604 (comment)

@wez
Copy link
Owner

wez commented Sep 22, 2024

the issue with the frame has been resolved now in main. There is another existing issue tracking the return value of the appearance function, so I'm going to close this one.

@wez wez closed this as completed Sep 22, 2024
@wez wez added the fixed-in-nightly This is (or is assumed to be) fixed in the nightly builds. label Sep 22, 2024
Copy link
Contributor

I'm going to lock this issue because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues. If you have found a problem that seems similar to this, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Oct 23, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working fixed-in-nightly This is (or is assumed to be) fixed in the nightly builds. Wayland
Projects
None yet
Development

No branches or pull requests

10 participants