O comando a seguir abre um gerenciador de arquivos para mostrar o diretório.
dbus-send --session --dest=org.freedesktop.FileManager1 --print-reply \
--type=method_call /org/freedesktop/FileManager1 \
org.freedesktop.FileManager1.ShowItems array:string:"file:///path/to/your/directory" string:""
O problema é que o gerenciador de arquivos padrão parece aleatório. Meu palpite é o último gerenciador de arquivos atualizado, porque ele mudou depois que um gerenciador de arquivos foi atualizado. Além disso, quando um gerenciador de arquivos já está em execução, ele usa esse gerenciador de arquivos.
Em vez de deixar dbus-send
determinar qual gerenciador de arquivos usar, se eu souber quais gerenciadores de arquivos estão instalados, posso definir um gerenciador de arquivos específico, como o Nemo?
dbus-daemon não suporta oficialmente a configuração de vários .services para serem ativáveis com o mesmo nome de barramento; basicamente escolhe um aleatoriamente, e isso provavelmente mudará a cada inicialização.
Uma maneira de fazer isso funcionar é fazer com que o gerenciador de arquivos seja executado permanentemente em segundo plano, se ele tiver esse modo (por exemplo, o Nautilus). É assim que o
org.freedesktop.Notifications
serviço é fornecido pelos ambientes de desktop – eles não dependem de inicialização automática (ativação de barramento), mas iniciam explicitamente o daemon de notificação apropriado assim que você faz login.Outra maneira é enviar a mensagem do barramento para um arquivo
--dest=
. O gerenciador de arquivos geralmente terá não apenas o nome genérico do barramento, mas também seu próprio nome de barramento de "marca", por exemplo, Thunar também está disponível emorg.xfce.Thunar
; você pode listá-los usandobusctl --user
oud-spy/d-feet
.Quando um serviço tem vários nomes, não importa para qual nome você envia a mensagem D-Bus – todos eles são resolvidos para o mesmo endereço de barramento (nome exclusivo) – então você pode especificar
--dest=org.xfce.Thunar
sem alterar nada sobre o resto do comando (ou seja, especificamente nenhuma alteração no caminho do objeto ou no nome da interface).A terceira maneira é configurar seu gerenciador de pacotes para não instalar os
.service
arquivos dos gerenciadores de arquivos que você não deseja que sejam ativáveis pelo barramento. Acesse /usr/share/dbus-1/services e remova aqueles que você não deseja.Por exemplo, no Arch Linux você poderia usar
NoExtract=
em /etc/pacman.conf; no Debian você pode encontrardpkg-divert
os arquivos indesejados.