SUMMARY A button should only be shown, if there is any functionality behind it. Therefore it shouldn't be shown if the prerequisite is missing. It should at least give the user some kind of feedback, if the triggered functionality isn't available or failed executing. STEPS TO REPRODUCE 1. Pair two computers, lacking krfb/krdc 2. Activate "Virtual Monitor" plugin 3. Open Plasmoid 4. Click "Virtual Display" OBSERVED RESULT The current implementation fails silently, if krfb (guest) or krdc (host) are not installed. Nothing happens, if you click the "Virtual Display" button. EXPECTED RESULT The plugin / plasmoid should check if host and client are capable to establish a "Virtual Display" connection, which requires kfrb to create a virtual display and krdc to host it. There should/could be some instruction or hint, if this is not the case. If we don't want to implement this, we should at least hide the button. SOFTWARE/OS VERSIONS Linux: Nobara Linux 39 KDE Plasma Version: 6.0.3 KDE Frameworks Version: 6.0.0 Qt Version: 6.6.2
I'm not sure if this is considered a bug, or a feature request. I consider a silent failing button as a bug.
I can confirm this bug. I didn't even know what to do as user because there was no hint from the system. KDE Neon doesn't even come pre-installed with krfb/krdc. I mean the virtual display feature doesn't work too but that's another issue.
I'm working on it, in some capacity. I've implemented the necessary checks in the plugin already and I will try to gray out the button, if krfb isn't installed or krdc on the paired device. I'm not sure yet, how to communicate a failure.. and if I will actually implement it, but my change could prevent a lot of issues first hand.
I failed to trigger the bot, here is my MR: https://invent.kde.org/network/kdeconnect-kde/-/merge_requests/670
Git commit b24d6298027fa0b94c61f2c27ecf955a5123d3fc by Aleix Pol Gonzalez, on behalf of Fabian Arndt. Committed on 30/05/2024 at 23:13. Pushed by apol into branch 'master'. virtualmonitor: implemented capabilities check ## Summary Currently, the plugin just fails silently if the local device is missing the `krfb` package or if the remote device misses an `vnc://` protocol/scheme handler. You click the button and nothing happens. One issue is, that the plugin is considered `virtualmonitor.available` in the `DeviceDelegate.qml`, even if the check for `krfb-virtualmonitor` fails and no dbus-path is provided. I investigated the behavior a bit, but ignored it in the end as this MR benefits from being shown for device constellations that _could_ provide this feature. A warning is shown with brief instructions, how to get the plugin working correctly. - Check if krfb-virtualmonitor is available locally - Check default scheme handler for vnc:// on device (Linux) - Show warnings / reasons, if no connection could be established ## Test Plan Regarding if the devices have mentioned packages installed, we should see different behaviors. If the remote device has no VNC client, it can not connect to out server. _A warning should be shown._ If the local device hasn't the `krfb-virtualmonitor` available, the remote device couldn't connect. _A warning should be shown._ If both problems are present, _both warnings should be shown._ If none of these are present, no warning should be shown and we should try to establish a connection. The connection attempts failed? _A warning should be shown._ M +0 -1 declarativeplugin/qml/PluginChecker.qml M +29 -7 plasmoid/package/contents/ui/DeviceDelegate.qml M +4 -0 plugins/virtualmonitor/kdeconnect_virtualmonitor.json M +61 -1 plugins/virtualmonitor/virtualmonitorplugin.cpp M +25 -0 plugins/virtualmonitor/virtualmonitorplugin.h https://invent.kde.org/network/kdeconnect-kde/-/commit/b24d6298027fa0b94c61f2c27ecf955a5123d3fc