Se você instalar um aplicativo GUI (por exemplo, VS Code, GNOME Builder etc.), ele criará um arquivo de área de trabalho em / usr / share / applications. Mas a caixa de ferramentas isolou o sistema (exceto o homedir) e não ligará.
Se houver uma opção para criar um arquivo de desktop a partir dele, como:
$ toolbox desktop code.desktop
fará:
Adicione também a opção de remover:
$ toolbox desktop code.desktop -r
para remover ~ / .local / share / applications / toolbox_code.desktop e o ícone
Olá @ oksoft-git! Isso parece interessante. Eu estava pensando em fornecer algo semelhante a isso. Você gostaria de fazer um PR com este recurso (mas não no Shell, mas no Go para a nova versão do Toolbox ?
@debarshiray , o que você acha?
Eu estou indo para isso!
Este recurso beneficiaria enormemente os usuários do silverblue, pois então você pode facilmente usar os aplicativos do contêiner
Seria possível incluir integração binária básica, para permitir a exportação de wrappers de comandos básicos para o sistema básico ou isso está fora do escopo do projeto?
Como wrappers de comando, quero dizer wrapper como este para o nano, por exemplo (pode ser mais complexo do que este para alguns programas)
!/bin/bash
toolbox nano "$@"
(flatpak faz algo assim, poderia investigar mais)
Olá @sandorex ! O recurso de que você está falando já está sendo rastreado aqui: # 145. É uma das prioridades depois de lançar a caixa de ferramentas atualizada. Embora esses dois recursos sejam semelhantes, a solução para eles é muito diferente.
Estou me perguntando agora se dar ao Toolbox o poder de criar / editar arquivos .desktop para aplicativos é realmente o caminho a percorrer. Seria necessário que o Toolbox soubesse onde localizar o arquivo .desktop existente, encontrar as linhas corretas, atualizá-las e mover / copiar o arquivo para um local onde a área de trabalho (nem todo mundo usa o GNOME Shell) vai encontrá-lo e usá-lo. Isso me parece um pedaço desnecessariamente grande de lógica que não teria muito uso.
Em vez disso, a seção da documentação com instruções sobre como atualizar um arquivo .desktop existente parece melhor para mim.
Se eu estiver errado sobre a complexidade, então, por favor, prove que estou errado.
Posso estar errado, mas os arquivos da área de trabalho são pesquisados recursivamente em ~/.local/share/applications
portanto, um diretório que contém apenas os arquivos da área de trabalho da caixa de ferramentas (por contêiner) e, em seguida, apenas remova os arquivos da área de trabalho que não existem no contêiner, mas a modificação não consigo realmente simplificar
A segunda abordagem seria atribuir essa responsabilidade a outro aplicativo ( toolbox-desktop-integration
) que permitiria a seleção de arquivos da área de trabalho para trazer para o host (colocá-los em suas pastas seria inteligente, como ~/.local/share/applications/_toolbox_XXX
where XXX
é o nome do contêiner)
Interessado em sua opinião @HarryMichal
Está quase pronto, mas não consigo extrair o caminho do ícone do arquivo da área de trabalho para copiar para o host.
_edit_: Criar uma ferramenta dedicada para isso será melhor. Eu vou recriar isso.
Bem, eu tenho isso. github.com/ondra05/toolbox-desktop
@ ondra05 Bom trabalho!
Há uma coisa que eu pessoalmente aprimoraria (embora não seja necessário) e que usar cat
para ler o arquivo do contêiner, funcionará bem, mas é meio hacky, porque podman
compartilha imagens com toolbox
você pode usar podman cp
para copiar arquivos entre o container e o host
Estou brincando com essa ideia neste script python. Atualmente ele instala arquivos de desktop, ícones, mime e metainfo. Ainda não adicionei um recurso de desinstalação, mas não parece muito difícil.
Infelizmente, não tenho tempo para fazer um aplicativo adequado, fiz a interface do usuário, mas GTK é um pé no saco, provavelmente farei apenas o aplicativo CLI algum dia (espero)
Infelizmente não tenho tempo para fazer um aplicativo adequado
Eu acho que uma GUI para isso é um exagero. Imho isso deve ser tratado com comandos na direção de toolbox export
com sinalizadores como --remove
e --list
.
Vou tentar investigar isso. Eu me pergunto se é possível apenas adicionar um comando toolbox export APP
que chama, digamos, este script python dentro da caixa de ferramentas de uma forma semelhante a toolbox run export.py ARGS
. Embora seja claramente melhor fazer isso em movimento, isso envolve apenas a cópia de arquivos da caixa de ferramentas /usr
para $XDG_DATA_DIR
e pode ser mais simples usar um script para isso. Não sei qual é o mantenedor dessa possibilidade.
Note que tal extensão teria que levar muitas coisas em consideração, o problema de manipulação de ícones não é trivial, por exemplo.
Isso é semelhante à discussão sobre a adição do comando run , incluindo esta conversa IRC de #silverblue
em Freenode:
From #silverblue on Freenode:
15:56 <rishi> otaylor: alexlarsson: Hey! Do you have any thoughts on
https://github.com/debarshiray/toolbox/pull/76 ?
15:57 <rishi> In short, people want to be able to do "toolbox run emacs".
15:57 <rishi> And I am worried about encroaching on Flatpak territory.
15:58 <alexlarsson> I don't think its a huge problem.
15:58 <otaylor> rishi: I suspect we need such functionality if we want the
toolbox to be a serious tool that people rely on
15:58 <alexlarsson> No 2 tools will be 100% non-overlapping
15:59 <alexlarsson> and i can imagine using this in non-flatpak like way
15:59 <alexlarsson> toolbox run some-service
15:59 <otaylor> rishi: I'd be more worried about adding, say, menu item
management so that it looks like 'toolbox run emacs' is a real app
16:00 <alexlarsson> I mean, some people use flatpak for cli stuff
16:00 <rishi> otaylor: alexlarsson: Okay!
16:00 <alexlarsson> which is not quite the point
16:00 <alexlarsson> Still, it works
16:01 <alexlarsson> The main thing is that the design decisions that drive
toolbox and flatpak are driven by a particular usecase
16:01 <alexlarsson> Not that they can't be used other ways
16:03 <rishi> Yeah, toolbox is very clearly: "use jhbuild on Silverblue".
16:04 <rishi> walters would say "separate development prefix", but that's
about it, I think.
Já é possível adicionar toolbox run emacs
no arquivo .desktop do aplicativo instalado dentro do container. Ter um comando que realmente analisa e cria arquivos .desktop é outro passo na mesma direção, e não tenho certeza se é um passo longe demais.
@debarshiray o que você acha de um script python que copia arquivos de desktop, icondata e metadados? Já fiz um e está funcionando bem.
É definitivamente uma maneira de fazer isso. No entanto, estou hesitante em incluí-lo na Caixa de ferramentas agora.
Estou interessado em trabalhar neste assunto!
...
nem todo mundo usa GNOME Shell
...
Se eu estiver errado sobre a complexidade, então, por favor, prove que estou errado.
@HarryMichal Eu acredito que suas preocupações são desnecessárias.
Atualmente, os arquivos .desktop e os temas de arquivos de ícones são projetados para serem independentes da área de trabalho e estão sujeitos às
https://specifications.freedesktop.org/
https://specifications.freedesktop.org/desktop-entry-spec/latest/index.html
https://specifications.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html
Para todos:
podemos projetar a funcionalidade necessária como DNF
plugin talvez?
PS: acabei de perceber que o Flatpak já expõe os aplicativos, então poderíamos simplesmente pegar seu código emprestado, se necessário.
Ainda não adicionei um recurso de desinstalação, mas não parece muito difícil.
Obrigado @ A6GibKm , por favor! :)
Comentários muito úteis
Eu estou indo para isso!