Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make deep links work for Linux #8027

Open
Tracked by #12245 ...
endulab opened this issue Oct 24, 2022 · 8 comments
Open
Tracked by #12245 ...

Make deep links work for Linux #8027

endulab opened this issue Oct 24, 2022 · 8 comments
Labels
core-team E:Desktop New Share URL Format Implementation of the new share URL link format and other deep link associated issues feature to analyze
Milestone

Comments

@endulab
Copy link
Contributor

endulab commented Oct 24, 2022

Investigate what should be done to make deep links working on Linux.

Internal deep links should work from web browser according to specs: https://github.com/status-im/specs/blob/feature/url-shema/docs/draft/17-url-scheme.md (/u, /c and /cc for now).

@caybro
Copy link
Member

caybro commented Oct 24, 2022

Executive summary: not possible with the current AppImage packaging format that we use on Linux. AppImage simply doesn't support this usecase scenario. As a starting point, our .desktop file needs to contain a line such as:

MimeType=x-scheme-handler/status-im;

in order for the DE to recognize the status-im:// URL protocol but this needs to be done in a system-wide manner, not inside our AppImage bundle.

Then we need to make our binary aware of passing URL(s) via cmdline, which is done as follows:

Exec=nim_status_client %u

then somewhere in our NIM "main" code we'd need to parse that (list of) URL(s) and handle it accordingly and emit the appropriate signal.

Conclusion: fix this by moving to a more modern pkg format, such as Snap and/or Flatpak

cc @alexandraB99 @iurimatias @endulab

@caybro caybro closed this as not planned Won't fix, can't repro, duplicate, stale Oct 24, 2022
@jrainville
Copy link
Member

I think we should leave this open, but move it to a later milestone with a to-analyze tag maybe?

@caybro
Copy link
Member

caybro commented Oct 24, 2022

Sure, why not, let's keep it open as a reminder what to do as the next step :)

@caybro caybro removed their assignment Oct 24, 2022
@caybro caybro reopened this Oct 24, 2022
@iurimatias iurimatias added this to the 0.9.0 milestone Nov 14, 2022
@anastasiyaig
Copy link
Contributor

@endulab @jrainville is it still a case to implement for 0.9.0?

@jrainville jrainville modified the milestones: 0.9.0, 0.10.0 Jan 11, 2023
@jrainville
Copy link
Member

Moved to 0.10. We might move to later if we want to prioritize performance in 0.10.

@jrainville
Copy link
Member

Just an FYI for whoever implements this. This part from Lukas "then somewhere in our NIM "main" code we'd need to parse that (list of) URL(s) and handle it accordingly and emit the appropriate signal" is already implemented.

@iurimatias iurimatias modified the milestones: 0.14, 0.15 Jun 13, 2023
@jrainville jrainville added E:Desktop New Share URL Format Implementation of the new share URL link format and other deep link associated issues messenger-team labels Sep 18, 2023
@iurimatias iurimatias modified the milestones: 0.16, 0.17 Jan 16, 2024
@jrainville jrainville self-assigned this Feb 9, 2024
@jrainville
Copy link
Member

I was able to make it work by manually changing my configs on Ubuntu. Here are the steps:

  1. Create a file called status-app.desktop in ~/.local/share/applications
[Desktop Entry]
Version=1.0
Name=Status
Comment=Status is a free, open-source super app
Exec="PATH/TO/status.AppImage" --uri=%U
Terminal=false
Type=Application
TryExec=PATH/TO/status.AppImage
  1. Register the protocol in ~/.config/mineapps.list by adding this line: x-scheme-handler/status-app=status-app.desktop
    This can be done by running xdg-mime default status-app.desktop x-scheme-handler/status-app

With this in place, calling xdg-open "status-app://foo.bar" opens Status.


I'll now investigate how to set this up automatically when installing the app. Like @caybro said, it most likely involves changing the type of package we use.

@jrainville jrainville modified the milestones: 2.28.0 Beta, 2.29.0 Beta Feb 23, 2024
@jrainville jrainville changed the title Make deep links working for Linux Make deep links work for Linux Apr 17, 2024
@jrainville jrainville modified the milestones: 2.29.0 Beta, 2.30.0 Beta May 3, 2024
@jrainville
Copy link
Member

I have a branch here with my initial work https://github.com/status-im/status-desktop/tree/feat/bundle-app-as-flatpak. I had to pause this as there were more pressing issues

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core-team E:Desktop New Share URL Format Implementation of the new share URL link format and other deep link associated issues feature to analyze
Projects
Status: No status
Development

No branches or pull requests

5 participants