Como definir um iniciador como confiável?

Como definir um iniciador como confiável?

Eu tenho um ícone na área de trabalho que não funciona. Quando tento usá-lo, recebo o erro

Arquivo de área de trabalho não confiável Este arquivo da área de trabalho não é confiável e não pode ser iniciado. Para ativar o lançamento, clique com o botão direito e: Ative "Permitir lançamento"

Não recebo esse item de menu "Permitir inicialização" quando:

  1. Clico com o botão direito no ícone na área de trabalho
  2. Clico com o botão direito em seu arquivo no Dolphin
  3. Clico com o botão direito neste arquivo no "Gerenciador de Arquivos"

Então tentei fazer isso na linha de comando usando as instruções nesta página da web:Como marcar um arquivo .desktop como confiável na linha de comando no Ubuntu 18.04?. Como tenho muitos links de inicialização não confiáveis, usei esta sequência de comandos e obtive esta resposta:

$ chmod u+xrw /home/stephen/Desktop/*.desktop
$ chmod g+xrw /home/stephen/Desktop/*.desktop
$ chmod o+xr /home/stephen/Desktop/*.desktop
$ gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes
gio: Setting attribute metadata::trusted not supported

Recebi o mesmo erro quando dei ao gio um arquivo específico em vez do caractere curinga *, também quando tentei executar o gio como root.

Qual é o atributo correto para dar o comando gio? Em quais navegadores de arquivos o item de menu "Permitir inicialização" deve aparecer?

Meu sistema operacional é Ubuntu 22.04 congestionado

Aqui está um dos arquivos .desktop com os quais tenho problemas:

[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
TerminalOptions=
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Segui as recomendações do ubfan1 feitas nos comentários de 6 de setembro de 2022. Os resultados:

stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Comment" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "GenericName" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: error: file contains multiple keys named "Name" in group "Desktop Entry"
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
/home/stephen/Desktop/Flameshot.desktop: warning: key "TerminalOptions" in group "Desktop Entry" is deprecated

Como a chave Path deve ser definida? Sem saber disso, e também porque era apenas um aviso, editei o resto do arquivo de acordo. Este é o resultado dessas edições:

[Desktop Entry]
Comment=Powerful yet simple to use screenshot software.
Comment[en_US]=Powerful yet simple to use screenshot software.
Exec=flameshot launcher
GenericName=
GenericName[en_US]=
Icon=flameshot
MimeType=
Name=Flameshot (Snappy Edition)
Path=
StartupNotify=false
Terminal=false
Type=Application
Version=1.0
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-Desktop-File-Install-Version=0.26
X-KDE-SubstituteUID=false
X-KDE-Username=

Agora obtenho estes resultados:

stephen@stephen:~$ desktop-file-validate /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-install /home/stephen/Desktop/Flameshot.desktop
/usr/share/applications/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path
stephen@stephen:~$ sudo desktop-file-edit /home/stephen/Desktop/Flameshot.desktop
/home/stephen/Desktop/Flameshot.desktop: warning: value "" for key "Path" in group "Desktop Entry" does not look like an absolute path

Ainda assim, o item de menu "Permitir lançamento" não aparece.

Então descobri que o Flameshot.desktop não é mais executável. Então usei o Dolphin para fazer isso. Depois de fazer isso, descobri que o ato de torná-lo executável fez com que o conteúdo de Flameshot.desktop revertesse para o que comecei acima. As entradas de chave duplicadas foram reintroduzidas e acabei exatamente onde comecei.

Talvez o aviso da chave Path fosse mais importante do que eu imaginava. Antes de tentar novamente, preciso saber como configurá-lo. Quaisquer outras sugestões também seriam muito apreciadas.

Criei uma planilha para comparar os resultados do comando "strace gio set" feito na conta de teste, que é uma nova conta temporária criada para testes na qual consigo criar ícones funcionais na área de trabalho, e a conta stephen, que é a principal conta, e aquela criada durante a instalação do Ubuntu, onde não consigo. Ele pode ser baixado em:

https://www.mediafire.com/file/xz4dy7280wfx3u8/giosetenablecomparison.ods/file

A coluna A é o resultado do comando na conta principal e a coluna B é o resultado na conta de teste. Os resultados são bastante comparáveis ​​até a linha 59. Na conta de teste isso mostra "close(3)" para a conta principal e "close(3) = 0" na conta de teste.

Na conta Stephen, a saída termina na linha 59. Na conta de teste, a saída continua até a linha 516.

Não sei o que significa toda essa saída. Parece-me que algum erro está encerrando o processo prematuramente no relato de Stephen. Alguém aqui pode ver o que deu errado e sugerir uma solução.

O computador antigo do qual migrei tem um Pop!_OS 21.04. O novo computador para o qual migrei e com o qual tenho problemas com esse ícone tem Ubuntu 22.04. Quando fiz a migração copiei todos os binários em/opt e todos os arquivos em/home. Ao copiar todos os arquivos em /opt, eu esperava poupar tempo e esforço para fazer todas as instalações de software novamente. Eu sei que existem binários em outros lugares, como/user/bin e/snap. Não os copiei e pretendia instalá-los no novo computador usando arquivos de instalação. Eu sabia que haveria links quebrados no diretório /Desktop até que os aplicativos aos quais eles estão vinculados fossem instalados. Acho que agora isso pode ter sido um erro e que tudo deveria ter sido instalado a partir dos arquivos de instalação no novo computador.

O resultado dos comandos solicitados porchave de açoem seu comentário:

stephen@stephen:~$ echo $DBUS_SESSION_BUS_ADDRESS
unix:path=/run/user/1000/bus
stephen@stephen:~$ id -u
1000

Responder1

gio set "/home/stephen/Desktop/*.desktop" "metadata::trusted" yes

não está correto. 3 questões:

  • você precisa usar dbus-launch. Se dbus-launchnão estiver instalado primeiro faça:

    sudo apt install dbus-x11
    
  • Você não pode usar curingas.

  • é "verdadeiro" e não "sim" no Ubuntu 20.04.

O comando:

dbus-launch gio set /home/stephen/Desktop/{name}.desktop "metadata::trusted" true

(onde {nome} precisa ser substituído pelo nome real)

Responder2

O item de menu "Permitir inicialização" não apareceu porque o diretório: "~/Desktop" era gravável por outras pessoas. Eu tive que encontrar e analisar o código-fonte do GNU para descobrir isso. A chave para isso era a linha 200 do arquivo:

/usr/share/gnome-shell/extensions/ding(at)rastersoft.com/fileItemMenu.js".

(substitua (at) por @)

Isso é:

if (fileItem.isValidDesktopFile && !this._desktopManager.writableByOthers && !fileItem.writableByOthers && (selectedItemsNum == 1 )) {

Como o diretório "~/Desktop" era gravável por outras pessoas, o termo "!this._desktopManager.writableByOthers" era falso e, portanto, o item de menu não aparecia.

O requisito de que o diretório "~/Desktop" não tenha permissão de gravação por terceiros não está documentado e precisa ser. Teria me poupado muito tempo se assim fosse.

informação relacionada