AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 744254
Accepted
Damn Vegetables
Damn Vegetables
Asked: 2023-04-27 23:26:54 +0800 CST2023-04-27 23:26:54 +0800 CST 2023-04-27 23:26:54 +0800 CST

Configurando o gerenciador de arquivos padrão e localizando um arquivo com o gerenciador de arquivos padrão

  • 772

Por favor, não marque como duplicado antes de ler minha pergunta. Eu sei que já existem essas perguntas, mas a resposta existente não funcionou como esperado, e é por isso que estou fazendo esta pergunta.

As respostas existentes dizem que a maneira de definir o gerenciador de arquivos padrão é xdg-mime default <app name> inode/directory, e a maneira de localizar um arquivo com o gerenciador de arquivos padrão é dbus-send --session --print-reply --dest=org.freedesktop.FileManager1 --type=method_call /org/freedesktop/FileManager1 org.freedesktop.FileManager1.ShowItems array:string:"<path>" string:"".

Mas quando testei isso em algumas distribuições baseadas em Arch, incluindo Arch com Gnome, o dbus-sendcomando nem sempre abriu o gerenciador de arquivos que xdg-mime query defaultindica, após instalar o gerenciador de arquivos Nemo (o gerenciador de arquivos padrão do Gnome é o Gnome Files). Enquanto xdg-mime query default inode/directorygera nemo.desktop, o dbus-send...comando acima abre arquivos Gnome, e quando o primeiro gera "org.gnome.Nautilus.desktop", o último abre o Nemo. (Isso ocorre quando não há um gerenciador de arquivos em execução. Se já houver uma instância de um gerenciador de arquivos, dbus-sendo comando parece usar esse gerenciador de arquivos.)

O dbus-sendcomando acima é o comando correto para "localizar um arquivo com o gerenciador de arquivos padrão"? Embora o dbus-sendcomando acima não tenha funcionado conforme o esperado, os IDEs da JetBrain, como Android Studio ou IntellJ, localizaram corretamente o arquivo com o gerenciador de arquivos padrão, quando cliquei com o botão direito do mouse em um arquivo e, em seguida, cliquei em "Abrir em" e, em seguida, no nome do gerenciador de arquivos. Pensei em pesquisar o código-fonte, mas esses são aplicativos enormes e tentar pesquisar o código-fonte não retornou nenhum resultado (usei palavras-chave como "abrir em" ou "gerenciador de arquivos").

d-bus
  • 1 1 respostas
  • 22 Views

1 respostas

  • Voted
  1. Best Answer
    user1686
    2023-04-30T22:48:44+08:002023-04-30T22:48:44+08:00

    Essas duas configurações não têm nada a ver uma com a outra, pois o sistema realmente não possui um conceito unificado de "gerenciador de arquivos padrão". xdg-mimeapenas altera as associações do tipo MIME, mas não tem absolutamente nenhum efeito sobre qual serviço é ativado quando um programa tenta se comunicar org.freedesktop.FileManager1via D-Bus.

    (É um pouco como arquivos .html e URLs http:// podem ser associados a diferentes programas.)

    Por motivos legados, o dbus-daemon permite que vários .servicearquivos afirmem que fornecem o mesmo nome de serviço. (Isto só importa ao ativar um serviço que ainda não está em execução; a ativação não é usada se o nome já for reivindicado por um processo já em execução.)

    O primeiro passo pode ser descobrir quais arquivos D-Bus .service fornecem o nome:

    $ grep -rl Name=org.freedesktop.FileManager1 /usr/share/dbus-1/services
    /usr/share/dbus-1/services/org.kde.dolphin.FileManager1.service
    /usr/share/dbus-1/services/org.xfce.Thunar.FileManager1.service
    /usr/share/dbus-1/services/org.freedesktop.FileManager1.service
    

    (Não se preocupe que os nomes dos arquivos não correspondem ao nome do serviço que eles aparentemente fornecem.)

    Em seguida, substitua os serviços indesejados por meio de ~/.local/share/dbus-1:

    $ mkdir -p ~/.local/share/dbus-1/services
    $ ln -s /dev/null ~/.local/share/dbus-1/services/org.xfce.Thunar.FileManager1.service
    $ ln -s /dev/null ~/.local/share/dbus-1/services/org.kde.dolphin.FileManager1.service
    

    O nomeado org.freedesktop.FileManager1.servicena verdade é o Nautilus, então pode ficar:

    $ cat org.freedesktop.FileManager1.service 
    [D-BUS Service]
    Name=org.freedesktop.FileManager1
    Exec=/usr/bin/nautilus --gapplication-service
    

    Verifique se funciona:

    $ urlencode() {
        echo -n "$1" | perl -pe's/[^\/A-Za-z0-9_.!~,=-]/sprintf"%%%02X",ord$&/gse'
      }
    $ uri="file://$(urlencode "$path")"
    $ gdbus call -e -d org.freedesktop.FileManager1 \
                    -o /org/freedesktop/FileManager1 \
                    -m org.freedesktop.FileManager1.ShowItems \
                    "['$uri']" \
                    "''"
    
    • 0

relate perguntas

  • Observando as propriedades do sd-bus

  • A integração do navegador de plasma quebra com `export QT_QPA_PLATFORMTHEME="qt5ct"`

  • Use dbus para obter o nome do mediaplayer atualmente em execução

  • Servidor dedicado Centos 7.2/Plesk 12.5 na maioria dos serviços Falha na inicialização. falha dbus - Loop muito rápido. Atrasando um pouco a execução

  • uso do chaveiro gnome sem uma sessão x

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve