GSoC/2019/StatusReports/WeixuanXiao: Difference between revisions
Weixuan XIAO (talk | contribs) |
Weixuan XIAO (talk | contribs) |
||
Line 4: | Line 4: | ||
KDE Connect works well on Linux and is built with KDE Frameworks and Qt. There is already “Continuity” on macOS for iPhone and iPad running iOS. But there is no support, and there will never be official support for Android phone on macOS. It makes sense to use KDE Connect on macOS to give Android users a better experience. | KDE Connect works well on Linux and is built with KDE Frameworks and Qt. There is already “Continuity” on macOS for iPhone and iPad running iOS. But there is no support, and there will never be official support for Android phone on macOS. It makes sense to use KDE Connect on macOS to give Android users a better experience. | ||
During Google Summer of Code 2019, a port of KDE Connect comes up! | During Google Summer of Code 2019, a port of KDE Connect for macOS comes up! | ||
This is the main user interface of KDE Connect, we can open it from the indicator in the tray bar of macOS. All available plugins are here, you can enable/disable or configure them. | This is the main user interface of KDE Connect, we can open it from the indicator in the tray bar of macOS. All available plugins are here, you can enable/disable or configure them. | ||
Line 16: | Line 16: | ||
The text that you copy on your Mac will be shared to your phone, and those you copy on your phone will be also synchronized to your Mac. | The text that you copy on your Mac will be shared to your phone, and those you copy on your phone will be also synchronized to your Mac. | ||
[[File:Kdeconnect-clipboard-sync.png| | [[File:Kdeconnect-clipboard-sync.png|600px|center|KDE Connect Clipboard]] | ||
Line 24: | Line 24: | ||
Except the functions | Except the functions showed, you can also do these from your Android phone: | ||
* Keep your Mac awake when your phone is connected | * Keep your Mac awake when your phone is connected | ||
* Share files and links between devices | * Share files and links between devices | ||
Line 38: | Line 38: | ||
The release can be found in [https://github.com/Inokinoki/kde-blog/releases Release page of my blog] and KDE Community FTP. | |||
The codes can be found in [https://invent.kde.org/wxiao/kdeconnect-kde Weixuan XIAO's KDE Connect repository] | You will be able to get more exciting functions from Nightly Build on [https://binary-factory.kde.org/view/MacOS/job/kdeconnect-kde_Nightly_macos/ KDE Binary Factory]. | ||
The codes can be found in [https://invent.kde.org/wxiao/kdeconnect-kde Weixuan XIAO's KDE Connect repository]. You can follow instructions on [https://community.kde.org/KDEConnect/Build_MacOS Build on macOS] in KDE Connect Wiki. | |||
In the following paragraphs, there are some details of my work in this summer. | |||
== Progress == | == Progress == |
Revision as of 19:47, 22 August 2019
KDE Connect for macOS port
KDE Connect works well on Linux and is built with KDE Frameworks and Qt. There is already “Continuity” on macOS for iPhone and iPad running iOS. But there is no support, and there will never be official support for Android phone on macOS. It makes sense to use KDE Connect on macOS to give Android users a better experience.
During Google Summer of Code 2019, a port of KDE Connect for macOS comes up!
This is the main user interface of KDE Connect, we can open it from the indicator in the tray bar of macOS. All available plugins are here, you can enable/disable or configure them.
Available devices will be listed on the left, you can choose them to pair/unpair with them/it.
The text that you copy on your Mac will be shared to your phone, and those you copy on your phone will be also synchronized to your Mac.
With KNotifications support for macOS, you can receive notification from your Android phones and react to them. You can ping your Mac to test whether they are well connected.
Except the functions showed, you can also do these from your Android phone:
- Keep your Mac awake when your phone is connected
- Share files and links between devices
- Control the volume of your Mac from the phone
- Use your phone as Trackpad and Keyboard to control your Mac
- Use your phone to control your slides during a presentation
You can do these from your Mac:
- Check battery level of your phone
- Ring your phone to help find it
- Send and receive SMS via your phone
- Browse and manipulate files in your phone
The release can be found in Release page of my blog and KDE Community FTP.
You will be able to get more exciting functions from Nightly Build on KDE Binary Factory.
The codes can be found in Weixuan XIAO's KDE Connect repository. You can follow instructions on Build on macOS in KDE Connect Wiki.
In the following paragraphs, there are some details of my work in this summer.
Progress
[Done] Before May 6
- ✅ Keep investigating the causes of failure of interface boot and try to fix it
- ✅ Finish a HOW-TO wiki for building current version of KDE Connect on macOS
[Done] May 6 – May 26
- ✅ Keep track of development discussion on IRC, mailing list and telegram group
- ✅ Fix nightly build of macOS building on KDE Connect Jenkins
- ✅ Try to fix the failure of interface boot
[Done] May 27 – June 16
- ✅ Add vlc library blueprint of macOS version into Craft bin
- ✅ Fix the failure of interface boot by packaging it to a DMG file
- ✅ Use dbus in Craft rather than installing dbus with Homebrew
- ✅ Fix scripts of “package” option in Craft to build a dmg image
- ✅ Package kdeconnect-indicator, kdeconnectd, kdeconnect-cli to DMG package
- ✅ Fix dependencies of kdeconnect-indicator, kdeconnectd, kdeconnect-cli in DMG package
- ✅ DBus integration
- ✅ Private DBus Support
[Done] June 17 – June 28
- ✅ Inhibit screensaver implemented by macOS native command
- ✅ Implement system volume plugin for macOS
[Done] June 24 MID TERM EVALUATION
Up to first evaluation, KDE Connect could be started without explicit configuration. User could use it as a normal application.
[Done] June 24 – July 21
- ✅ Implement native notifications on macOS
- ✅ Make the sftp plugin work by adding a stfp browser
- ✅ Integrate KDE Connect with macOS finder extension, which allows users to send files directly from Finder, this is implemented by a native assistant application, user can install it as they wish
- ✅ Make clipboard plugin work on macOS
[Done] July 22 MID TERM EVALUATION
[Done] July 22 – August 18
- ✅ Implement virtual input plugin by coding another backend for macOS
- ✅ Debug and fix share and receive plugin on both Android and macOS sides
- ✅ Make the sftp plugin work by adding an integrated stfp browser
- Release a production-ready install package of dmg format(CodeSign)
Conclusion
- [Done] Milestone 1 (Bootstrap) and Milestone 2 (Basic package) will be done before evaluation 1, to make the application run normally without tedious configuration like now.
- [Done] Milestone 3 (Native system Functionalities) will be done for evaluation 2. Meanwhile, Milestone 4 (Plugin Functionalities) should be started on mid-July, before the evaluation 2.
- [WIP] Milestone 4 (Plugin Functionalities) and Milestone 5 (Complete package) will be done for final evaluation. And it will be a full deliverable version which is product-ready.
Work In Progress
- Implement native notifications on macOS working on writing tests
- Finish all documentation and clear up
- Release a production-ready install package of dmg format
Accepted changes
KDE Connect:
- Use a private dbus for KDE Connect on mac OS macos-private-dbus branch
- Allow kdeconnectd auto launch from kdeconnect-indicator on macOS
- DBus wrapper for KDE Connect only dbus daemon on macOS: Add wrapper for macos dbus connection
- Enable sms test only when SMSAPP_ENABLED set to ON
- Fix macos build
- Screen saver inhibit plugin for macOS
- System volume plugin for macOS
- Clipboard sync plugin for macOS
- Implementation of virtual input plugin by fixing X11 or by coding another backend for macOS
- Integrate KDE Connect with macOS finder extension, which allows users to send files directly from Finder
- Hide icon and set HighRes feature
- Integrated SFTP browser
Craft Blueprints:
- Add dbus-daemon to kdeconnect
- Add KDE Connect components for macOS
- Fix kdeconnect-indicator bundle on macOS
- Fix missing QtDBus lib for phonon-vlc building on macOS
- Copy smsapp and kdeconnect app into package for releasing
- Add kpeoplevcard blueprint
Craft:
- Use macdeloyqt to fix all deps of exec in macOS package
- Copy kioslave into package to fix "Debug and fix share and receive plugin on both Android and macOS sides"
- Add qml dirs definitions into MacOSDMGPackager to make qml app correctly deploy
Posts and Resources
Useful links:
Posts: