Voglio usare xdg-open
per aprire i irc://
collegamenti, come posso fare il parametro richiesto?
Voglio usare xdg-open
per aprire i irc://
collegamenti, come posso fare il parametro richiesto?
Risposte:
xdg-open fondamentalmente cerca solo di vedere quale ambiente desktop hai e quindi esegue gnome-open, gvfs-open, xfce-open, ecc. Vedi sotto per le istruzioni specifiche dell'ambiente desktop ...
Gnome usa il programma gnome-open che usa gconf per memorizzare tutto. Ad esempio sulla mia macchina con Ubuntu 10.10 con gnome-open irc: // blah apre xchat perché xchat include una patch di impostazione gconf per aggiungere un gestore irc: //.
Questo mostra come gnome lo fa, con le impostazioni di gconf in /desktop/gnome/url-handlers/
. Vedi xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
come esempio.
Per KDE dovresti guardare i file .protocol in / usr / share / kde4 / services /, crearne uno nuovo per il tuo nuovo protocollo e metterlo in ~ / .kde / share / kde4 / services /, se è super utile allora considerare di aggiungerlo al pacchetto come soluzione per altri utenti.
KDE sta usando kde-open o kfmclient a seconda di ciò che è disponibile e di quale versione di KDE hai.
XFCE utilizza un programma chiamato exo-open, questo programma non ha alcun modo di configurarlo o aggiungere gestori uri. Guardando attraverso il codice sorgente si mostra che utilizza i file desktop per specificare solo tre tipi di programmi. TerminalEmulator, WebBrowser e EmailClient.
Con XFCE4 (e probabilmente anche altri) è possibile configurare xdg-open per definire un gestore di protocollo personalizzato. In alcuni devi creare / modificare i seguenti file:
~ / .local / share / applicazioni / protocolhandler.desktop ~ / .local / share / applicazioni / mimeapps.list
Un esempio di aggiunta di un gestore per il protocollo ed2k è fornito su stackexchange.com 2 .
Descriverò questo con il magnet:
tipo di URI e la trasmissione (ovvero il caso di bittorent), ma lo stesso metodo può essere applicato a qualsiasi schema o tipo di file.
Inoltre ho verificato questo con Debian Jessie, e in realtà non ho una macchina Ubuntu, ma credo che dovrebbe funzionare allo stesso modo (almeno per xdg-open , nota che i file manager possono scegliere di usare una logica diversa).
Scopri la stringa di tipo MIME. Per i tipi di file MIME, puoi scoprirlo con il comando file :
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
Per il file sopra, il tipo MIME è video/webm
.
Per i gestori URI, il tipo è x-scheme-handler/<scheme>
, dove si
<scheme>
trova la parte dell'URI prima dei due punti, ad esempio "http", "mailto" "irc" o "magnete". Di seguito sono riportati esempi di tipi MIME validi:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
Scopri il nome del file .desktop dell'applicazione.
Spesso non è lo stesso del nome "ufficiale", ma piuttosto una versione minuscola di esso, o un nome completamente diverso. I file .desktop installati vivono sotto / usr / share / applicazioni. Poiché sono normali file di testo e contengono il nome "ufficiale", il seguente comando può aiutarti:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
Il comando significa effettivamente "elenca i file in questa directory che contengono la parola 'Trasmissione'". Alcune applicazioni potrebbero essere installate solo per l'utente, in tal caso il percorso sarebbe
~/.local/share/applications
.
Nel caso in cui tu abbia un'applicazione "strana" che potrebbe non avere affatto il file, puoi sempre crearne uno (e forse inviarlo agli sviluppatori di app). Un modo semplice sarebbe quello di copiarne uno esistente, riscrivere i campi che capisci e rimuovere quelli che non conosci. Fare riferimento alla specifica per i dettagli.
Effettua l'assegnazione usando il comando xdg-mime :
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
Nota che non importa dove si trova effettivamente il file (/ usr / share / applicazioni, ~ / .local / share / applicazioni ...), usi sempre solo il nome , non il percorso completo.
Normalmente il comando non produrrà nulla - va bene. Se vuoi verificare cosa hai appena fatto o vedere cosa è attualmente assegnato a qualsiasi tipo MIME senza aprirlo:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
Nota 1: se si desidera controllare altri tipi MIME, è possibile consultare /etc/mime.types. Non contiene tutti i tipi nel mondo; ad esempio i gestori URI, ma potrebbe essere utilizzato per la forma "aggressiva" di gestione delle associazioni. Per esempio:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
associerebbe tutti i formati video noti a VLC.
Nota 2: I file .desktop contengono spesso un elenco di tipi MIME che dichiarano essere in grado di gestire utilizzando il MimeType
campo. La
pagina man xdg-mime dice che il file .desktop deve rivendicare il tipo MIME prima che il comando sopra menzionato funzioni, ma per me sembra funzionare anche se manca il campo. (Voglio dire, l'associazione verrà applicata e l'applicazione verrà avviata - se è davvero in grado di gestire il tipo è una domanda diversa). Non sono sicuro di cosa sia lo svantaggio (forse in futuro xdg-mime sarà più restrittivo).
xdg-mime query filetype FILE
è il modo XDG per trovare i tipi MIME. 2) Puoi anche modificare tu stesso le impostazioni predefinite per mantenere le cose più organizzate ed eseguirne il backup in un secondo momento: .config/mimeapps.list
è il file.
xdg-mime query filetype xyz.wbem
OTOH fornisce meno informazioni ed è molto più da digitare.
Volevo associare i postman
collegamenti alla mia app Postman installata manualmente (non l'estensione di Chrome) in modo da poter aprire i documenti postino dal browser in questo modo:
Il link che volevo associare è simile al seguente:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
Per fare l'associazione ho fatto i seguenti passi:
/home/andrzej.rehmann/software/postman/
/usr/share/applications/Postman.desktop
[Desktop Entry]
Version=1.0
Type=Application
Name=Postman
Icon=/home/andrzej.rehmann/software/postman/app/resources/app/assets/icon.png
Exec="/home/andrzej.rehmann/software/postman/Postman" %u
Comment=Develop with pleasure!
Categories=Development;
Terminal=false
StartupWMClass=Postman
postman
collegamento xdg all'applicazione eseguendo:xdg-mime default Postman.desktop x-scheme-handler/postman
Ho risposto a questa configurazione se qualcuno è interessato: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml