Signal UT: Signal-Desktop for Ubuntu Touch
-
Anyway I can tell that there will be significant performance improvement in next release!
-
@pparent Personally, I don't use signal (only telegram) but congratulations for your investment in porting this desktop app for UT, which will be of great service to many.
-
@pparent a technical explanation as to why this app will always be slow with Xwayland:
X11 historically uses GLX for passing buffers from the client to the server, and GLX inherently is tied to Desktop OpenGL. Desktop OpenGL and OpenGL ES as used on Ubuntu Touch devices are different. The only way forward would be EGL and that would require changes to Xwayland to handle the Android driver's/libhybris EGL implementation.
I tried bringing hardware acceleration to Xwayland once and it resulted in only one device (the JingPad) being remotely capable of doing it, with render artifacts. Since then we run Xwayland in shm mode which guarantees software rendering in all cases. So whatever you perceived as hardware accelerated before must have been a placebo.
-
Ok thank you!
But maybe chromium engine can make use of GPU for tasks that are not directly related to compositing? Because here it's an electron app with a chromium engine.
Just to make things clear I would like to switch to wayland if/when it is feasible. If someone has informations about how to run a GTK wayland app, with keyboard support, either with Mir1.2 or Mir2.0, please share as it would be extremely usefull!
For now, if I start with wayland: the window does not display correctly ( wrong scaling or wring size, as --force-device-scale-factor=2.75 make the window very big, it's like it zooms on it but does not reduce its size), it is more slugish than with X11, and it has no keyboard.
-
Here would be my current starting script for wayland is there a way to do better to solve some of the problems?
@fredldotme @klh#!/bin/sh # Input method (probably does nothing as it is for X11 normaly) export GTK_IM_MODULE=Maliit export GTK_IM_MODULE_FILE=lib/aarch64-linux-gnu/gtk-3.0/3.0.0/immodules/immodules.cache # Prefer Wayland export GDK_BACKEND=wayland export DISABLE_WAYLAND=0 export OZONE_PLATFORM=wayland export QT_QPA_PLATFORM=wayland export XDG_SESSION_TYPE=wayland export WAYLAND_DISPLAY=${WAYLAND_DISPLAY:-wayland-0} export GTK_USE_PORTAL=1 export DCONF_PROFILE=/nonexistent export XDG_CONFIG_HOME=/home/phablet/.config/signalut.pparent/ export PATH=$PWD/bin:$PATH dpioptions="--high-dpi-support=1 --force-device-scale-factor=2.75" gpuoptions="--use-gl=egl --enable-gpu-rasterization --enable-zero-copy --ignore-gpu-blocklist --enable-features=UseSkiaRenderer,VaapiVideoDecoder,ThreadedAnimation --disable-frame-rate-limit --disable-gpu-vsync --enable-oop-rasterization --enable-threaded-compositing" sandboxoptions="--no-sandbox --disable-features=WaylandWindowDecorations " waylandoptions="--ozone-platform=wayland --enable-features=UseOzonePlatform" exec ./opt/Signal/Signal $dpioptions $gpuoptions $sandboxoptions $waylandoptionsThe main thing for any hope of a usable option with wayland, would be to enable the keyboard for gtk over wayland. (And this I'm a bit afraid of the feasibility in Mir1.2). The other thing is to have a decent scaling factor while keeping the window of the right size, but if it is the only thing it can always be patched within Signal code, which is certainly not ideal but most probably doable.
-
@pparent iirc my immodules hack won't work for Wayland, and you won't get an onscreen keyboard in Mir 1.8 because it's missing all the IME protocols.
I haven't looked at what electron-only features the signal-desktop app uses, but you could look into packaging Node.js and running the back-end parts there with a shim in WebEngine to communicate with that. Not trivial, but would give you near-perfect integration with the OS.
-
@klh said in Signal UT: Signal-Desktop for Ubuntu Touch:
@pparent iirc my immodules hack won't work for Wayland, and you won't get an onscreen keyboard in Mir 1.8 because it's missing all the IME protocols.
I haven't looked at what electron-only features the signal-desktop app uses, but you could look into packaging Node.js and running the back-end parts there with a shim in WebEngine to communicate with that. Not trivial, but would give you near-perfect integration with the OS.
Yes I had thought about this option, but in reality I want to remain as close as possible from original client, and keep a small set of patches. For these reasons:
-
1°) Because Signal-Desktop needs regular updates, as old versions get outdated fast and are not anymore compatible with the protocol. A version of Signal-Desktop is valid for 3 months. So I don't want heavy hacks that will not port easily from one version to another. I need to be able to recompile newer versions without headaches.
-
2°) Because I want to minimize the risk of security breach coming from Signal-Desktop customization.
-
3°) I want to avoid that Signal project may not be happy about our client because of messing too much with their protocol/client.
So If nothing is possible while keeping the binaries as is, I will stay with X until Mir2.x release.
Can you confirm, that the keyboard with Wayland should be better with Mir2.x?
Ps: I'm currently debuging and trying to patch the code of maliit-inputcontext-gtk, to try and solve the bugs we currently have with the keyboard with X.
-
-
Ok I've found a way to solve keyboard bugs (in X, in a very hacky way)
. I will make a new release soon, Alongside optimizations to make the app less sluggish.With those, it will reach the stage of good client for text-only notification-less chat!
(Other features will come later)
-
Hello!
First of all, a big thank you for the great work: Signal works well on my Volla tablet (UT).
However, I have a problem—on my Volla phone X23, the QR code is displayed so large after startup that I cannot scan it, or rather, it is not recognized.
What can I do? I have already tried to make it smaller with the UT tweak tool, but without success. -
I see, I did not think of that.
I should find a way to adapt to different phone displays. in the mean time a hack would be to do from terminal:
sudo nano /opt/click.ubuntu.com/signalut.pparent/current/launcher.shand replace the follwing line by a smaller value:
dpioptions="--high-dpi-support=1 --force-device-scale-factor=2.75"You can replace "2.75" by "2" or "1.5" , try what's best for you.