Fresh Kicksecure host installation (on bare metal, not VM). My monitor is high resolution so the panel and terminal look too tiny. So I scaled the display to 1.5x or 2x (using kanshi or the temporary settings dialog). Either causes the panel to crash the next time a dialog is displayed (e.g. “Reboot” button > about to popup Yes/No dialog > crash). This logs me off to greetd. If I type user: sysmaint and press Enter, I can get back to the panel, but I still cannot reboot. I had to use the terminal emulator or login in another VT to sudo reboot.
The error message is somewhere along the lines of “wayland protocol error, width / height is not divisible by scale factor” or something. Sorry I don’t have the exact quote since it’s in a sysmaint session and it’s hard to copy text. But it can be obtained by manually running the sysmaint-panel program in a terminal emulator instead of upon session start. When it crashes this way, the error message can be observed (since the user is not kicked back to greetd).
Looking at the code, I believe when the panel wants to show a popup dialog, it sets the dimensions to minimum possible (determined by contents?). Rounding it up to an even number or multiples of 6 may help with some common scale factors but feels like a hack to me. Either way, I don’t see an easy way to patch this myself so I’m back to squinting at the tiny fonts for now.
2 Likes
Cannot reproduce in a VM here. What I did to try to reproduce the issue:
- Boot an existing Kicksecure 18 KVM virtual machine in sysmaint mode
- In the System Maintenance Panel, click “Configure Displays”
- Open wdisplays
- Set the display scaling factor to 1.5
- Apply changes
- In the System Maintenance Panel, click “Open Terminal”
- In the terminal, type
sysmaint-panel
- In the new sysmaint-panel window, click Reboot
The “Reboot” window appears without problems.
Will try to reproduce on baremetal in the (likely near) future.
1 Like
Redid the above steps on baremetal, on an Intel Core i5-1135G7 laptop with only integrated graphics. Could not reproduce the crash.
Despite I running into it all the time on bare metal, I sadly cannot reproduce it on the VMs either. I spent a lot of time tuning the display settings, trying to disable auto-resizing, and even tried multiple monitors with different resolutions on VirtualBox. No luck.
I did get the error message from my bare metal setup for those who are interested. But feel free to ignore this issue for now unless we find a way to reproduce. @arraybolt3 Thanks for looking into it anyway.
wl_surface #41: error 2: Buffer size (271x132) is not divisible by scale (2)
The Wayland connection experienced a fatal error: Protocol error
zsh: exit 1 sysmaint-panel
2 Likes
What graphics hardware does your system use? I tried with Intel graphics, but I also have an NVIDIA machine available I could try.
1 Like
Mine is also Intel. I think it has more to do with dual monitor than GPU and that’s why I’ve been experimenting with VBox multiple emulated monitors. My current hypothesis is that if one monitor is scaled while another isn’t, it can mess with the dimension calculations. So I tried to set both monitors to the same scale at the same time using kanshi, and sure enough, the problem went away (at least for now, need more testing).
Are we sure we want to spend more time on this? I fear this may be an edge case dependent on exact setup and at best we’ll probably find an upstream issue (like the Wayland library used by the panel).
2 Likes
Ah, didn’t think about different scaling on different screens.
I think it probably is worth pursuing, since there is a possible solution here. We’re still using PyQt5 for a lot of our software, which is outdated and really should be replaced with PyQt6 at some point. This feels like it’s likely a toolkit bug in Qt5, and so porting to Qt6 may very well fix the issue. We have a task for that, but it’s far down the task list since we have a bunch of other stuff we’re digging through.