如果您安装了 GUI 应用程序(例如 VS Code、GNOME Builder 等),它将在 /usr/share/applications 中创建桌面文件。 但是工具箱有隔离系统(homedir 除外),它不会绑定。
如果可以选择从中创建桌面文件,例如:
$ toolbox desktop code.desktop
会做:
还添加删除选项:
$ toolbox desktop code.desktop -r
删除 ~/.local/share/applications/toolbox_code.desktop 和图标
嗨@oksoft-git! 这看起来很有趣。 我正在考虑提供类似的东西。 你想用这个功能做一个 PR(但不是在 Shell 中,而是在 Go 中用于新版本的 Toolbox ?
@debarshiray ,你怎么看?
我要去!
此功能将极大地有益于 Silverblue 用户,因为您可以轻松地使用容器中的应用程序
是否可以包含基本的二进制集成,以允许将基本命令包装器导出到基本系统,还是超出了项目的范围?
作为命令包装器,我的意思是像 nano 这样的包装器(对于某些程序,它可能比这更复杂)
!/bin/bash
toolbox nano "$@"
( flatpak 做这样的事情,可以进一步研究)
嗨@sandorex ! 您正在谈论的功能已在此处跟踪:#145。 这是推出更新后的工具箱后的优先事项之一。 虽然这两个功能相似,但解决方案却大不相同。
我现在想知道赋予 Toolbox 为应用程序创建/编辑 .desktop 文件的能力是否真的可行。 它需要 Toolbox 知道在哪里找到现有的 .desktop 文件,找到正确的行,更新它们并将文件移动/复制到桌面(不是每个人都使用 GNOME Shell)可以找到并使用它的位置。 这在我看来是不必要的大块逻辑,不会有太大用处。
相反,文档中包含说明如何更新现有 .desktop 文件的部分对我来说听起来更好。
如果我对复杂性有误解,那么请证明我错了。
我可能是错的,但桌面文件在~/.local/share/applications
递归搜索,所以一个目录只包含来自工具箱(每个容器)的桌面文件,然后只删除容器中不存在的桌面文件,但修改我真的不能简化
第二种方法是将这个责任交给另一个应用程序( toolbox-desktop-integration
),它允许选择桌面文件带到主机(将它们放在他们的文件夹中会很聪明,比如~/.local/share/applications/_toolbox_XXX
where XXX
是容器名称)
对您的意见感兴趣@HarryMichal
快完成了,但我无法从桌面文件中提取图标路径以复制到主机。
_edit_:为它创建专用工具会更好。 我会重新创建它。
@ondra05 干得好!
我个人会改进一件事(虽然这不是必需的),那就是使用cat
从容器中读取文件,它可以正常工作,但它有点 hacky,导致podman
共享图像使用toolbox
您可以使用podman cp
在容器和主机之间复制文件
我一直在这个python 脚本中玩弄这个想法。 目前它安装桌面文件、图标、mime 和元信息。 我还没有添加卸载功能,但似乎不太难。
遗憾的是,我没有时间做一个合适的应用程序,我已经制作了 UI,但 GTK 只是麻烦,有一天我可能只做 CLI 应用程序(希望如此)
遗憾的是我没有时间做一个合适的应用程序
我认为为此使用 GUI 有点过头了。 恕我直言,这应该用toolbox export
方向的命令处理,标志为--remove
和--list
。
我会试着调查一下。 我想知道是否可以只添加一个toolbox export APP
命令,该命令以类似于toolbox run export.py ARGS
方式调用工具箱中的这个 python 脚本。 虽然在 go 中这样做显然更好,但这仅涉及将文件从工具箱的/usr
复制到$XDG_DATA_DIR
并且使用脚本可能更简单。 我不知道这种可能性的维护者是什么。
请注意,此类扩展必须考虑很多因素,例如处理图标的问题并不简单。
这类似于围绕添加运行命令的讨论,包括 Freenode 上#silverblue
这个 IRC 对话:
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.
已经可以在容器内安装的应用程序的.desktop文件中添加toolbox run emacs
。 拥有一个实际解析和创建.desktop文件的命令是朝着同一方向迈出的又一步,我不确定这一步是否太过分了。
@debarshiray您如何看待复制桌面文件、图标数据和元数据的 Python 脚本? 我已经做了一个,它工作得很好。
这绝对是一种解决方法。 但是,我现在对是否将其包含在 Toolbox 中犹豫不决。
我有兴趣研究这个问题!
...
不是每个人都使用 GNOME Shell
...
如果我对复杂性有误解,那么请证明我错了。
@HarryMichal我相信您的担忧是不必要的。
如今 .desktop 文件和图标文件主题被设计为与桌面无关并符合XDG 规范:
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
致大家:
我们可以将所需的功能设计为DNF
插件吗?
PS:刚刚意识到 Flatpak 已经公开了应用程序,所以我们可以在需要时借用它的代码。
我还没有添加卸载功能,但似乎不太难。
谢谢@A6GibKm ,请做! :)
最有用的评论
我要去!