Publish KDE Connect to the Windows Store
Open, NormalPublic

Description

KDE Connect needs to be on the Windows Store, as part of a GSoC 2019 project milestone. We should package it and upload it to the KDE Community's account on the Microsoft Store.

Checklist:

  • maintainer/team agrees
  • package is ready
  • some testing has been done
  • icons in 44x44 and 150x150
  • optional icons 310x150 and 310x310
  • screenshots
  • description
  • feature description (multiple: tag like)
brute4s99 triaged this task as Normal priority.

so we have Jenkins ready to build .Appx packages for us now, thanks to @bcooksley : https://invent.kde.org/sysadmin/binary-factory-tooling/commit/aeddc47b0ca4dcdef64044226b99d9b78a0156a7

but the builds are not successful yet. We need to land this patch to have the builds done right : https://phabricator.kde.org/D23209

After that, we should have the .Appx packages signed by the official KDE e.V key, ready for sideloading by users (with Developer Access) until we publish the app on the Windows Store! 🏓

brute4s99 updated the task description. (Show Details)Aug 16 2019, 10:47 PM
brute4s99 added a subscriber: vonreth.
brute4s99 updated the task description. (Show Details)Aug 19 2019, 11:10 PM

reference patch : https://phabricator.kde.org/D23209 (merged already)

the builds are successfully being built on the CI now. We just need to iron out the kinks so it actually works like it should, on all systems.

If there is a build you think is publishable, will help you to get that done.

Guilhermems added a subscriber: Guilhermems.EditedApr 13 2021, 6:38 PM

Okay, testing of KDE Connect on WIndows - Possible blockers:

KDE Connect: kdeconnect-kde_Release_win64 - Build 556 - https://binary-factory.kde.org/view/Windows 64-bit/job/kdeconnect-kde_Release_win64/

Keyboard and Mouse control: Works

Media Playback controls + volume: Works partially. It did work the first time, later I tried again (after unpluging my headphones) and it stopped working completely. I used VLC.

Ring computer: Works
Ring phone: Works partially (I had to unlock my phone first. Android app bug?)
Ping phone: Works
Receive Notificatins from Phone: Works
Send Windows notifications to phone: Didn't work, even after enabling the option on the Android app.

Control Presentations: Not sure if it works fully since I don't have a office suite installed. But on Windows default picture viewer it did "do stuff" when pressing buttons on the app: pressing next and previous buttons made the app leave fullscreen but it didn't do the intended action, pressing on the pointer button on the app showed a black screen with a glowy blue circle inside I could control with motion.

Browse device from Windows: It popped up a window asking which app I wanted to select to access a sftp. Windows Explorer wasn't an option and since I have no other app to use I couldn't get it to work.

Send files from phone to Windows: Works
Send files from Windows to phone: Didn't work. The app on Android shows a notification saying the operation failed.

SMS messaging: It lists messages but as soon as you click on one the SMS app crashes.

Phone battery indicator: Works

Commands: Don't work since they are commands specific to Plasma.

Pictures and MprisRemote: I don't know how to use it. :|

Contacts synchronization: I don't know how it works, but the contact folder in Windows had nothing inside.

Call control: Works and I can also silence it from Windows :D

Screen saver inhibition: Didn't work, but it's probably not a problem since screensavers are hidden behind the old interface on Windows and most people don't use them for that reason.

Clipboard from Windows to Android: Works
Clipboard from Android to Windows: Doesn't work


The app crashed once when trying to close it, restarting the app made it not find my phone and I had to restart Windows. Can't reproduce again.

brute4s99 added a comment.EditedJun 13 2021, 1:51 AM

Hi @Guilhermems , thanks for testing the binary. Could you please go through the testing another time? Along with many fixes, thanks to your testing, the Windows port has been given a style facelift as well that you'd probably appreciate.

Test with build #795 or greater. : https://binary-factory.kde.org/job/kdeconnect-kde_Nightly_win64/

See comments inline:-

Keyboard and Mouse control: Works

The mouse should be even smoother now, do take a look!

Media Playback controls + volume: Works partially. It did work the first time, later I tried again (after unpluging my headphones) and it stopped working completely. I used VLC.

VLC Media player is not a good testcase, I'm sure even the media keys don't work well with it if the VLC's app window is not in focus. Try Groove or Firefox.

Ring phone: Works partially (I had to unlock my phone first. Android app bug?)

Yes, might be a battery optimization thing. Out of scope for the Windows port.

Send Windows notifications to phone: Didn't work, even after enabling the option on the Android app.

Yes, it's expected. I've disabled the plugin on Windows so it won't show up in the settings on android anymore. Thanks for the catch!

Control Presentations: Not sure if it works fully since I don't have a office suite installed.

You can test on a slide deck online, or a quick template from google slides. It should work there.

But on Windows default picture viewer it did "do stuff" when pressing buttons on the app: pressing next and previous buttons made the app leave fullscreen but it didn't do the intended action,

needs more work

pressing on the pointer button on the app showed a black screen with a glowy blue circle inside I could control with motion.

Needs Fixing.
I'll have to look into why this happens.. apparently it's quite a common bug with Qt apps on Windows, so it might take a while. As a not-that-great-workaround, click anywhere while the screen is black and the blue halo is visible, it should become transparent.

Browse device from Windows: It popped up a window asking which app I wanted to select to access a sftp. Windows Explorer wasn't an option and since I have no other app to use I couldn't get it to work.

Windows natively doesn't support SFTP, so if the user has any app that handles sftp:// URLs. it can use the triggered command to access the remote filesystem. A good example is WinSCP.

Send files from Windows to phone: Didn't work. The app on Android shows a notification saying the operation failed.

Needs Fixing.
It's an os-agnostic bug in kdeconnect. and we're looking into it.

SMS messaging: It lists messages but as soon as you click on one the SMS app crashes.

I cannot reprod the issue with latest master build.. but in case it shows up, let me know how I can reproduce it in more detail! :D

Commands: Don't work since they are commands specific to Plasma.

It should work fine if you add some custom commands. To fix the misinformation, I've recently added Windows specific Sample Commands as well. :D

Pictures and MprisRemote: I don't know how to use it. :|

More fixes will expose the photo plugin soon. mprisremote works but we don't have a nice user-accessible way of making it useful.
A WIP kdeconnect-app.exe is also shipped with the setup which has nice support for the plugin GUI.

Contacts synchronization: I don't know how it works, but the contact folder in Windows had nothing inside.

The latest build should save the contacts in the Contacts folder. Also, these contacts are used in the SMS app.

Call control: Works and I can also silence it from Windows :D

The pausemusic plugin should also have muted your Windows speakers; it also restores the volume after the call is over.

Screen saver inhibition: Didn't work, but it's probably not a problem since screensavers are hidden behind the old interface on Windows and most people don't use them for that reason.

It should work, but somehow I wasn't able to trigger a screensaver on my desktop even without KDE Connect running. Also, you might have to enable the plugin from the Configure menu.

Clipboard from Android to Windows: Doesn't work

It should work on Windows. The clipboard sync for Android to Windows has an extra step on Android 10, the persistent indicator should have a "Send Clipboard" option like so:-

You might want to try the latest APK from the factory to make sure you have it.

Hi @brute4s99 . I tried testing it again, but unfortunately I ran into problems while doing it:

Windows KDE Connect Build 795 and Android Build 980 (debug-2369041d)

Keyboard and Mouse control: Works and it does feel smoother.

Media controls: Works. I tested using Firefox and a Youtube video. I can pause and unpause the video. The volume slider under the pause buttons does nothing, but the slider on the Devices tab does change the volume on Windows itself.

I was only able to test those two things before both devices disconnected and I couldn't get them to connect anymore. I tried installing the version on Playstore just in case it was a problem with the Android version but it still didn't work.
The Windows app would show on the config window that my device was asking for pairing, but even when accepting the request on Windows the Android app would say the pairing process timed out. I also tried restarting both my phone and Windows but it still didn't work. It also still didn't work even when manually enabling all permissions on Android.

I have a suggestion: On Windows, it would be good if it could show a notification when a device wants to pair. Currently I have to open the config Windows if I want to accept a new device.

I was only able to test those two things before both devices disconnected and I couldn't get them to connect anymore. I tried installing the version on Playstore just in case it was a problem with the Android version but it still didn't work.

That;s unfortunate.. it shouldn't crash anymore. You could help me by getting some logs; can you try again with just running kdeconnectd.exe from a command prompt in the installation files directory, after closing the app completely (close by clicking the Quit button in the system tray icon menu)

That way, if it crashes, you could get the logs to me from the command prompt.

I have a suggestion: On Windows, it would be good if it could show a notification when a device wants to pair. Currently I have to open the config Windows if I want to accept a new device.

Actually, we already do have a notification for that in place.. Make sure your notification preferences is not set to Priority Only or something like that in the Action Center.. :D

Guilhermems added a comment.EditedJun 14 2021, 2:00 AM

I was only able to test those two things before both devices disconnected and I couldn't get them to connect anymore. I tried installing the version on Playstore just in case it was a problem with the Android version but it still didn't work.

That;s unfortunate.. it shouldn't crash anymore. You could help me by getting some logs; can you try again with just running kdeconnectd.exe from a command prompt in the installation files directory, after closing the app completely (close by clicking the Quit button in the system tray icon menu)

That way, if it crashes, you could get the logs to me from the command prompt.

I have a suggestion: On Windows, it would be good if it could show a notification when a device wants to pair. Currently I have to open the config Windows if I want to accept a new device.

Actually, we already do have a notification for that in place.. Make sure your notification preferences is not set to Priority Only or something like that in the Action Center.. :D

Yeah, you're right, my notifications were disabled haha.

Well, I did what you said and kdeconnectd.exe it does crash, here's the log:

kdeconnect.core: Warning: KDE Connect private key file has too open permissions  "C:/Users/guima/AppData/Local/kdeconnect/privateKey.pem"
kdeconnect.core: Warning: KDE Connect certificate file has too open permissions  "C:/Users/guima/AppData/Local/kdeconnect/certificate.pem"
kdeconnect.core: Could not query capabilities from notifications server
Accept
unknown device "D:" 0 0 0
kdeconnect.plugin.battery: Primary Battery seems to have been removed. Suspending packets until it is reconnected.

It crashes after the last message. Apparently it connects for about 1 second, then it disconnects showing that message about the battery.

Edit: I tried disabling the battery plugin on both Windows and Android but the issue still persists. I also tried deleting the privateKey and certificate files but it didn't help.

Edit 2: I solved the issue! I disabled both the Send Notifications and Receive Notifications on KDE Connect on Windows and both devices can now pair. I'll send you the testing results later.

Windows KDE Connect Build 795 and Android Build 980 (debug-2369041d)

Keyboard and Mouse control: Works and it does feel smoother.

Media controls: Works. I tested using Firefox and a Youtube video. I can pause and unpause the video. The volume slider under the pause buttons does nothing, but the slider on the Devices tab does change the volume on Windows itself.

SMS Messages: Now works fine, I can send and read my messages.

Sending files to phone: Works. Before it wasn't working, but when I upgraded the Android app to the latest build, instead of manually setting the permissions I just followed the prompts on the app, and it worked. Basically you have to select the storage device you want KDE Connect to have access to when Android asks you to. Before, since I set the permissions manually on Android, I didn't give the app a chance to let me set the permission to access my entire storage, so that's the reason why it fails. I bet people going through the same problem probably didn't select a folder when setting permissions.

Receiving files on Windows: Works

Ring phone: Works

Ring Windows: Works

Ping phone: Works

Clipboard from Android to Windows: Works as you said, when using the notification on Android 10 to send it.

Clipboard from Windows to Android: Works

Android Battery indicator: Works

Control Presentations: Yes, I can go forward and backward using the phone. The pointer functionality still shows a black screen with a glowy circle. Right clicking with the mouse to make a context menu appear makes the black screen go away, and the cicle is shown as intended, however, that only lasts while the context menu is shown. As soon as you dismiss the context menu the screen turns black again.

Commands: The command examples do work. :)

Contacts: Works, but they have weird names with numbers and letters and ending with .vcf on the contact folders (intended behavior?)

Screensaver inhibition: Seems to work. I set it to show after 1 minute and nothing showed up.

Remote access to files on phone: Works with WinSCP.

Receive and send notifications: They need to be disabled otherwise KDE Connect doesn't pair.

Call control: I can't test it now, I'll do that later. :)

brute4s99 added a comment.EditedJun 15 2021, 9:21 PM

Very cool! The newer build has exposed a new executable- kdeconnect-app.exe - via the desktop icon. It has some more controls and uses Kirigami.
Link: https://binary-factory.kde.org/job/kdeconnect-kde_Nightly_win64/804/artifact/kdeconnect-kde-master-804-windows-msvc2019_64-cl.exe

Control Presentations: Yes, I can go forward and backward using the phone. The pointer functionality still shows a black screen with a glowy circle. Right clicking with the mouse to make a context menu appear makes the black screen go away, and the cicle is shown as intended, however, that only lasts while the context menu is shown. As soon as you dismiss the context menu the screen turns black again.

Does a left click help to remove the black background? in my testing, once you left click on the screen while it's black, the issue can not be reproduced again. (which makes me feel like it's a Qt bug, as many other apps have this issue as well over the internet)..

Receive and send notifications: They need to be disabled otherwise KDE Connect doesn't pair.

That does not sound good.. I've disabled the "Send Notifications from PC" plugin on the desktop side.. can you try again after unpairing and then uninstalling apps on both end?

If that doesn't help, do you have another VM or preferably another live system you could test this out on?

Also, please make sure Windows is updated to atleast v2004 just to be sure it's not a new API problem

Guilhermems added a comment.EditedJun 18 2021, 3:14 AM

WINDOWS BUILD 807 ANDROID BUILD 984

Windows fully updated. Latest builds for Windows and Android as of June 17th. Uninstalled both apps from both systems and cleaned the data on Android and the folders in AppData on Windows.

That does not sound good.. I've disabled the "Send Notifications from PC" plugin on the desktop side.. can you try again after unpairing and then uninstalling apps on both end?

Pairing doesn't work if the option to send notifications from Windows to Android is enabled. Receiving notifications from Android on Windows is fine. The problematic option should be removed from the Windows version (it's still available as an option on the latest Windows build).

Does a left click help to remove the black background? in my testing, once you left click on the screen while it's black, the issue can not be reproduced again. (which makes me feel like it's a Qt bug, as many other apps have this issue as well over the internet)..

The black screen on the presentation mode still happens with a left click, however, clicking on the start menu fixes the issue (but as soon as you stop pressing the button on Android and presses it again the bug comes back).

Remote input: Works, but it's a bit cumbersome to use as you have to keep the mouse button pressed to have the cursor move on Android. Maybe it could capture the cursor (like games do) and only let you leave if you press Esc on the keyboard.

BTW, the new Kirigami interface is really good. :D

Guilhermems added a comment.EditedJun 18 2021, 3:22 AM

There's a bug on the Kirigami interface: There's not enough space for additional screens like plugin settings. It should hide unneeded pages when accessing new ones when the window is too small:

Guilhermems added a comment.EditedJun 19 2021, 7:25 PM

WINDOWS BUILD 809 Latest Andrid Build

I'm testing only what didn't work the last time or new functionality.

Media Controls from Android to PC: Same as last time I tested. Forward, backward and pause works. Stop button does nothing, volume slider on the first tab also doesn't work. The volume slider on the device tab works. Tested with Firefox with Youtube Music.

Media control from PC to Android: Works perfectly.

Contacts: Same as last time.

Presentations: Same as last time.

Get photo: Works (maybe it could show a notification showing where the image was saved?)

Call control: Works.

Remote input: Same as last time.

Kirigami interface: Same as last post. You need to maximize the screen to see all the content.

KDE Connect has been sent to the Microsoft Store for certification. Hoping for the best 🤞

brute4s99 updated the task description. (Show Details)Jun 22 2021, 5:14 PM

Good News! We have a invite-only Beta Release published in the App Store now : https://www.microsoft.com/store/apps/9N93MRMSXBF0 🎉