Eugeny / tabby

A terminal for a more modern age
https://tabby.sh
MIT License
59.32k stars 3.39k forks source link

Wayland support #5999

Closed unic0rn9k closed 2 years ago

unic0rn9k commented 2 years ago

On wayland compositors the reselution defaults to 1080p on hidpi displays.

Eugeny commented 2 years ago

Please elaborate

unic0rn9k commented 2 years ago

Wayland is a linux display protocol. Tabby does not support wayland, and thus only works using xwayland (a compatibility layer for running x apps on wayland). This comes with some drawbacks, mainly bad performance and the reselution issue I mentioned.

Eugeny commented 2 years ago

Thanks. Can you check whether running Tabby with these flags works? https://wiki.archlinux.org/title/wayland#Electron

Wayland - ArchWiki
unic0rn9k commented 2 years ago

Doesn't seam to make a difference. Changing the frontend between xterm and xterm WebGL doesn't do anything either.

proletarius101 commented 2 years ago

Doesn't seam to make a difference. Changing the frontend between xterm and xterm WebGL doesn't do anything either.

Run

/opt/Tabby/tabby --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform=wayland --no-sandbox

to start tabby. You can confirm through xlsclients that there is no tabby running in X.

proletarius101 commented 2 years ago

However, GDK_BACKEND is automatically set to x11 if Tabby is open with x11 and to wayland if Tabby is open with wayland. Consequently, in the former situation, Tabby can't open applications with x11 backend, whereas in the later situation, it can't open applications with wayland backend.

In other terminal applications, e.g. GNOME Terminal, $GDK_BACKEND is set to null.

unic0rn9k commented 2 years ago

Running with the arguments sepcified above doesn't work and neither does setting the GDK_BACKEND variable to wayland.

Also tabby outputs some weird errors when i run it (although it does run, to be clear):

libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[5974:0410/220625.313651:ERROR:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.
chown: changing ownership of '/opt/Tabby/chrome-sandbox': Operation not permitted
chmod: cannot access '/opt/Tabby/chrome-sandox': No such file or directory
proletarius101 commented 2 years ago

Running with the arguments sepcified above doesn't work and neither does setting the GDK_BACKEND variable to wayland.

Also tabby outputs some weird errors when i run it (although it does run, to be clear):

libva error: vaGetDriverNameByIndex() failed with unknown libva error, driver_name = (null)
[5974:0410/220625.313651:ERROR:sandbox_linux.cc(376)] InitializeSandbox() called with multiple threads in process gpu-process.
chown: changing ownership of '/opt/Tabby/chrome-sandbox': Operation not permitted
chmod: cannot access '/opt/Tabby/chrome-sandox': No such file or directory

added a --no-sandbox parameter

unic0rn9k commented 2 years ago

Oh, sorry. Thanks, that works.

proletarius101 commented 2 years ago

A dependency glasstron doesn't seem to support wayland yet:

/opt/Tabby/tabby --no-sandbox --enable-features=UseOzonePlatform,WaylandWindowDecorations --ozone-platform=wayland --launch-unity
[343776:0514/065555.526424:ERROR:cursor_loader.cc(116)] Failed to load a platform cursor of type kNull
[343823:0514/065555.566720:ERROR:gpu_init.cc(446)] Passthrough is not supported, GL is egl, ANGLE is 
[343823:0514/065555.569669:ERROR:sandbox_linux.cc(377)] InitializeSandbox() called with multiple threads in process gpu-process.
Error: Bad window
    at ReadFixedRequest.callback (/opt/Tabby/resources/app.asar/node_modules/x11/lib/xcore.js:465:29)
    at ReadFixedRequest.execute (/opt/Tabby/resources/app.asar/node_modules/x11/lib/unpackstream.js:41:10)
    at UnpackStream.resume (/opt/Tabby/resources/app.asar/node_modules/x11/lib/unpackstream.js:165:30)
    at UnpackStream.write (/opt/Tabby/resources/app.asar/node_modules/x11/lib/unpackstream.js:102:10)
    at Socket.<anonymous> (/opt/Tabby/resources/app.asar/node_modules/x11/lib/xcore.js:88:21)
    at Socket.emit (node:events:390:28)
    at Socket.emit (node:domain:475:12)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)
    at Socket.Readable.push (node:internal/streams/readable:228:10) {
  error: 3,
  seq: 9,
  badParam: 1,
  minorOpcode: 0,
  majorOpcode: 20
}
TypeError: Cannot read properties of undefined (reading 'type')
    at /opt/Tabby/resources/app.asar/node_modules/glasstron/src/native/linux_x11/x11.js:62:46
    at ReadFixedRequest.callback (/opt/Tabby/resources/app.asar/node_modules/x11/lib/xcore.js:490:39)
    at ReadFixedRequest.execute (/opt/Tabby/resources/app.asar/node_modules/x11/lib/unpackstream.js:41:10)
    at UnpackStream.resume (/opt/Tabby/resources/app.asar/node_modules/x11/lib/unpackstream.js:165:30)
    at UnpackStream.write (/opt/Tabby/resources/app.asar/node_modules/x11/lib/unpackstream.js:102:10)
    at Socket.<anonymous> (/opt/Tabby/resources/app.asar/node_modules/x11/lib/xcore.js:88:21)
    at Socket.emit (node:events:390:28)
    at Socket.emit (node:domain:475:12)
    at addChunk (node:internal/streams/readable:315:12)
    at readableAddChunk (node:internal/streams/readable:289:9)