Skype-länkar

Det var ett sabla pill (och letande) för att få callto-, tel- och skype-länkar att hanteras från en webbläsare. Lite förvånande att skype inte skickar med detta från början (gäller Linux).

Hur som helst, min arbetsväg:

  • xdg-open är bra att använda när man skall öppna URLer
  • xdg-open använder gnome-open (i min miljö)
  • gnome-open använder gconf och kikar under /desktop/gnome/url-handlers för att hitta en url-handler som hanterar URLens schema (http t ex)
  • varje “url-handler” skall ha tre nycklar:
    • command – kommandot som körs, t ex /home/ceda/bin/skype.py %s
    • enabled – true/false
    • use_terminal – true/false

Sedan var det bara att hitta ett lämpligt kommando. Skype visade sig inte stödja något alls vad gäller binären och flaggor till programmet. Däremot använder man tydligen DBus och därigenom är möjligheterna större. Efter ett tags letande hittade jag Philipp Kolmanns skript skype action handler.

Nästan klart – det har ett tillkortakommande vad gäller URL-kodning. En ring-länk till mig skulle se ut såhär: callto:+46702778511 och Philipps skript hanterade inte att plustecknet kodades om till %2B. Jag fixade detta såhär:

# urldecode
if '%' in sys.argv[1]:
        import urllib
        sys.argv[1] = urllib.unquote(sys.argv[1])

Nu funkar det fint! (Vem var det nu jag skulle ringa egentligen …)