https://bugs.kde.org/show_bug.cgi?id=479013

Nicolas Fella <nicolas.fe...@gmx.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
      Latest Commit|                            |https://invent.kde.org/netw
                   |                            |ork/kdeconnect-kde/-/commit
                   |                            |/383ad27b5964c8ff14330bf702
                   |                            |c68d1f9928f96f
         Resolution|---                         |FIXED

--- Comment #7 from Nicolas Fella <nicolas.fe...@gmx.de> ---
Git commit 383ad27b5964c8ff14330bf702c68d1f9928f96f by Nicolas Fella, on behalf
of Prajna Sariputra.
Committed on 28/01/2024 at 14:00.
Pushed by nicolasfella into branch 'master'.

[plugins/mousepad]: Add support for the persistence feature of the
RemoteDesktop portal

This allows us to avoid asking the user for permission for remote control on
Wayland every time kdeconnectd is restarted for whatever reason (for example
logging out or rebooting), at least in theory. The idea is that the
SelectDevices call now also accepts a restore token, and if the user grants
permission to persist a restore token will be returned in the response of the
Start call.

Currently
https://invent.kde.org/plasma/xdg-desktop-portal-kde/-/merge_requests/265 is
required for this to work at all with Plasma 6, and even then persistence only
works in the same session (for example if I restart kdeconnectd then I only get
the notification instead of the permissions prompt), if I reboot the system
then the token gets invalidated and the permissions dialog appears again, not
sure if the issue is with what I'm doing here or if that's a bug in the portal.

Things that need to be checked:
- What happens if the portal implementation only has v1 of the protocol and not
v2 (the one with persistence)?
  - In particular what happens for the SelectDevices call if a restore token is
given despite the portal not supporting it
    - Seems fine with xdg-desktop-portal 1.14.4 at least 
  - For the Start call we'll need to handle the case of the user denying the
persistence request anyway
- Where and how should the restore token be stored?
  - ~~I used KConfig just so I have something to test, but the restore token
isn't really a setting~~
    - Updated to use `KSharedConfig::openStateConfig`
  - Most of KDE Connect's settings and data appear to be for each connected
device
  - The device name is a global setting, but it's implemented using QSettings
rather than KConfig, and currently only setName and getName is exposed in
`core/kdeconnectconfig.h`

M  +144  -11  
interfaces/systeminterfaces/org.freedesktop.portal.RemoteDesktop.xml
M  +29   -1    plugins/mousepad/waylandremoteinput.cpp
M  +1    -0    plugins/mousepad/waylandremoteinput.h

https://invent.kde.org/network/kdeconnect-kde/-/commit/383ad27b5964c8ff14330bf702c68d1f9928f96f

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to