Eu quero usar xdg-open
para abrir irc://
links, como posso fazer o parâmetro necessário?
Eu quero usar xdg-open
para abrir irc://
links, como posso fazer o parâmetro necessário?
Respostas:
O xdg-open basicamente olha apenas para ver qual ambiente de desktop você possui e, em seguida, executa o gnome-open, o gvfs-open, o xfce-open, etc. Veja abaixo as instruções específicas do ambiente de desktop ...
O Gnome usa o programa gnome-open, que usa o gconf para armazenar tudo. Por exemplo, na minha máquina com o Ubuntu 10.10 executando o gnome-open irc: // blah abre o xchat porque o xchat inclui um patch de configuração do gconf para adicionar um manipulador irc: //.
Isso mostra como o gnome faz isso, com as configurações do gconf ativadas /desktop/gnome/url-handlers/
. Veja xchat-2.8.8/src/common/dbus/apps_xchat_url_handler.schemas
como um exemplo.
Para o KDE, você deve olhar para os arquivos .protocol em / usr / share / kde4 / services /, criar um novo para o seu novo protocolo e colocá-lo em ~ / .kde / share / kde4 / services /, se for super útil, considere adicioná-lo ao pacote como uma correção para outros usuários.
O KDE está usando o kde-open ou o kfmclient, dependendo do que está disponível e da versão do KDE que você possui.
O XFCE usa um programa chamado exo-open, este programa não tem como configurá-lo ou adicionar manipuladores de uri. Examinar o código-fonte mostra que ele usa arquivos da área de trabalho para especificar apenas três tipos de programas. TerminalEmulator, WebBrowser e EmailClient.
Com o XFCE4 (e provavelmente também outros), é possível configurar o xdg-open para definir um manipulador de protocolo personalizado. Em alguns, você precisa criar / editar os seguintes arquivos:
~ / .local / share / applications / protocolhandler.desktop ~ / .local / share / applications / mimeapps.list
Um exemplo de adição de um manipulador para o protocolo ed2k é fornecido em stackexchange.com 2 .
Descreverei isso com o magnet:
tipo de URI e a transmissão (por exemplo, caso de bittorent), mas o mesmo método pode ser aplicado a qualquer esquema ou tipo de arquivo.
Também verifiquei isso com o Debian Jessie, e na verdade não tenho uma máquina Ubuntu, mas acredito que deve funcionar da mesma forma (pelo menos no xdg-open , observe que os gerenciadores de arquivos podem optar por usar uma lógica diferente).
Descubra a sequência do tipo MIME. Para tipos de arquivo MIME, você pode encontrá-lo com o comando file :
$ file -i Broken_Blossoms.webm Broken_Blossoms.webm: video/webm; charset=binary $
Para o arquivo acima, o tipo MIME é video/webm
.
Para manipuladores de URI, o tipo é x-scheme-handler/<scheme>
, onde
<scheme>
é a parte do URI antes dos dois pontos, por exemplo, "http", "mailto" "irc" ou "magnet". A seguir, exemplos de tipos MIME válidos:
x-scheme-handler/http
x-scheme-handler/irc
x-scheme-handler/magnet
x-scheme-handler/mailto
Descubra o nome do arquivo .desktop do aplicativo.
Frequentemente, não é o mesmo que o nome "oficial", mas sim uma versão em minúscula ou um nome completamente diferente. Os arquivos .desktop instalados estão em / usr / share / applications. Como são arquivos de texto normais e contêm o nome "oficial", o seguinte comando pode ajudá-lo:
$ grep "Transmission" -l -r /usr/share/applications /usr/share/applications/transmission-gtk.desktop $
O comando significa efetivamente "listar arquivos nesse diretório que contêm a palavra 'Transmissão'". Alguns aplicativos podem ser instalados apenas para o usuário; nesse caso, o caminho seria
~/.local/share/applications
.
Caso você tenha um aplicativo "estranho" que pode não ter o arquivo, você sempre pode criar um (e talvez enviá-lo aos desenvolvedores do aplicativo). A maneira mais fácil seria copiar um existente, reescrever os campos que você entende e remover aqueles que não são. Consulte a especificação para obter detalhes.
Faça a atribuição usando o comando xdg-mime :
$ xdg-mime default transmission-gtk.desktop x-scheme-handler/magnet $
Observe que não importa onde o arquivo esteja (/ usr / share / applications, ~ / .local / share / applications ...), você sempre usa apenas o nome , não o caminho completo.
Normalmente, o comando não produzirá nada - tudo bem. Se você deseja verificar o que acabou de fazer ou ver o que está atualmente atribuído a qualquer tipo MIME sem abri-lo:
$ xdg-mime query default x-scheme-handler/magnet transmission-gtk.desktop $
Nota 1: Se você deseja verificar outros tipos MIME, consulte /etc/mime.types. Ele não contém todos os tipos no mundo; por exemplo, os manipuladores de URI, mas poderia ser usado para a forma "agressiva" de manipular as associações. Por exemplo:
grep ^video/ | cut -d\t -f1 | xargs xdg-mime default vlc.desktop
associaria todos os formatos de vídeo conhecidos ao VLC.
Nota 2: Os arquivos .desktop geralmente contêm uma lista de tipos MIME que eles afirmam poder manipular usando o MimeType
campo. A página de manual do xdg-mime
diz que o arquivo .desktop deve reivindicar o tipo MIME antes que o comando mencionado acima funcione, mas para mim parece funcionar mesmo se o campo estiver ausente. (Quero dizer, a associação será aplicada e o aplicativo será iniciado - se ele realmente puder lidar com o tipo é uma pergunta diferente). Não tenho certeza do que é desvantagem (talvez no futuro o xdg-mime seja mais restritivo).
xdg-mime query filetype FILE
é a maneira XDG de encontrar tipos de mímica. 2) Você também pode editar os padrões para manter as coisas mais organizadas e fazer backup posteriormente: .config/mimeapps.list
é o arquivo.
xdg-mime query filetype xyz.wbem
OTOH fornece menos informações e é muito mais para digitar.
Eu queria associar postman
links ao meu aplicativo Postman instalado manualmente (não à extensão chrome) para poder abrir os documentos do carteiro no navegador da seguinte maneira:
O link que eu queria associar se parece com isso:
postman://app/collections/import/39995-2b0394ab-b007-488d-9a0a...
Para fazer a associação, executei as seguintes etapas:
/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
link xdg ao aplicativo executando:xdg-mime default Postman.desktop x-scheme-handler/postman
Anunciei essa configuração se alguém estiver interessado: https://github.com/hoto/ansible-home-fedora/blob/fedora/roles/postman/tasks/postman_installer.yml