Gestori di protocollo URL in Ubuntu Desktop di base


16

Esisteva un modo per registrare i gestori del protocollo URL con Gconf, che ora è obsoleto e sembra che non ci sia modo di fare lo stesso con DConf (o Gsettings, il suo wrapper consigliato).

Come si registra correttamente un gestore di protocollo URL dal DConf?

Inoltre, qualcosa mi sembra strano (come non lo capisco) sul mio Ubuntu 12.04

Il protocollo apt://dovrebbe essere gestito dal apturlcomando. È così con il mio browser Opera, ma solo perché ho aggiunto questa associazione specifica usando la funzione di configurazione del browser. Altrimenti, nel resto dell'ambiente:

  • La corsa si xdg-open apt://foo.barapre elinks(la mia www-browseralternativa).
  • L'esecuzione gnome-open apt://foo.barapre il Software Center.
  • Aprendo gconf-editor, vedo una chiave il /desktop/gnome/url-handlers/aptcui valore è apturl "%s"ed è abilitato. Questa configurazione sembra essere ignorata, cosa ragionevolmente prevista, poiché GConf è considerato obsoleto.
  • In apertura dconf-editor, non riesco a vedere nulla di correlato ai gestori o ai protocolli URL in/desktop/gnome

Mi sembra un po 'confuso ai miei occhi (stuzzicando solo questa frase, niente di male)

Cosa c'è sotto?

Nota a margine: sto cercando qualcosa che preferibilmente funzioni anche quando l'ambiente desktop completo non è caricato, come quando si esegue una sessione i3wm con solo gsettings-daemon(e altre cose non correlate a questo caso) caricate.

Aggiornare

Un altro modo per "registrare" un gestore di protocollo è con i *.desktopfile e il loro tipo MIME; es MimeType=application/<the-protocol>;.

Ho trovato un /usr/share/applications/ubuntu-software-center.desktopcon questo contenuto:

[Desktop Entry]
Name=Ubuntu Software Center
GenericName=Software Center
Comment=Lets you choose from thousands of applications available for Ubuntu
Exec=/usr/bin/software-center %u
Icon=softwarecenter
Terminal=false
Type=Application
Categories=PackageManager;GTK;System;Settings;
MimeType=application/x-deb;application/x-debian-package;x-scheme-handler/apt;
StartupNotify=true
X-Ubuntu-Gettext-Domain=software-center
Keywords=Sources;PPA;Install;Uninstall;Remove;Purchase;Catalogue;Store;

Questo spiega perché gnome-open apt://foo.barapre il Software Center anziché apturl.

Quindi ho installato questo apturl.desktopin ~/.local/share/applications:

[Desktop Entry]
Encoding=UTF-8
Version=1.0
Type=Application
Terminal=false
Exec=/usr/bin/apturl %u
Name=APT‑URL
Comment=APT‑URL handler
Icon=
Categories=Application;Network;
MimeType=x-scheme-handler/apt;

Dopo update-desktop-databasee anche dopo il riavvio, entrambi xdg-opene gnome-opencomunque fanno lo stesso e ignorano questo file desktop dell'utente, che come al solito con i file desktop dell'utente, dovrebbe sovrascrivere quello in /usr/share/applications/.

Forse c'è qualcosa di speciale con i file desktop che specificano il x-scheme-handlertipo MIME e non sono gestiti nel solito modo.

Il modo del file desktop non risponde alla domanda.


1
Ciò può essere d'aiuto: unix.stackexchange.com/a/100736
Todd Owen,

Risposte:


9

Apri ~/.local/share/applications/mimeapps.liste aggiungi una riga come:

x-scheme-handler/apt=apturl.desktop

Sì, ho potuto immaginarlo per HTTP, MAILTO e alcuni altri.
Hibou57,

Non esiste una tale cartella. Ho fatto una ricerca da root e non l'ho trovata.
Vlas Bashynskyi,

@VlasBashynskyi, la posizione di mimeapps.listpuò variare. Vorrei suggerire di eseguire una ricerca per il nome del file.
Hibou57,

4

xdg-mime

Forse più elegante (in questo esempio uso "apt" , lo cambio per qualsiasi altro schema):

  1. Controlla i tipi MIME registrati in /usr/share/applications/defaults.list.
  2. Aggiungi il apt.desktopfile ( qui alcuni esempi ) a ~/.local/share/applications/(a livello di utente) o /usr/share/applications/(a livello di sistema).
  3. Crea database di cache di tipi MIME gestiti da file desktop: update-desktop-database
  4. Registrare un protocollo con

    xdg-mime default apt.desktop x-scheme-handler/apt`
    

    Ciò aggiungerà il nuovo tipo MIME per lo schema a ~/.local/share/applications/mimeapps.list. È possibile registrare il nuovo tipo MIME per tutti gli utenti sul sistema sudo xdg-mime install --mode system <xml file>.

Prova con xdg-open "apt://foo.bar".

Vedi anche Aggiunta di un tipo MIME .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.