管理 WSL 直接安装软件的 Windows 开始菜单和图标

管理 WSL 直接安装软件的 Windows 开始菜单和图标

WSL 动态虚拟通道插件(WSLDVCPlugin)似乎在为使用系统包管理器安装的 Linux GUI 应用程序创建开始菜单链接/可搜索性方面做得非常出色(对我来说,它适合 Ubuntu)。

WSLDVCPlugin 还根据应用程序的原始 Linux 图标创建一个 Windows 图标,并将企鹅固定在图标的右下角,以便它在任务栏上作为 WSL 脱颖而出。

我想对我安装的没有使用包管理器的应用程序使用相同的“开始”菜单和图标功能(具体来说,我希望它适用于 Anaconda navigator 和 Firefox 开发者版本)。我对如何做到这一点有一些想法,但目前没有足够的 Linux 和 WSL 知识来实现​​它。

答案1

简短回答

对于您希望 Windows 创建“开始菜单”条目的每个应用程序,创建一个<appname>.desktop文件。

解释

这看起来(当我尝试时似乎也是如此)非常简单。根据 Github自述对于 WSLg:

Weston 使用此通道枚举所有 Linux GUI 应用程序(即具有 gui 类型的桌面文件条目的应用程序)及其启动命令行和图标。开源 WSLDVCPlugin 处理通过此通道发送的 Linux GUI 应用程序列表,并在 Windows 开始菜单中为它们创建链接。

因此,Linux 方面负责查找<appname>.desktop文件,就像它通常在 Linux 桌面管理器中创建菜单条目一样。微软在其实施中利用了这一机制,通过 RDP 向 Windows 发送已安装应用程序的通知,插件会在 Windows 中创建“开始菜单”条目。

因此,要创建 Windows 开始菜单项,只需创建相应的“/usr/share/applications/.desktop”:

sudo bash -c 'cat << EOF > /usr/share/applications/<appname>.desktop
[Desktop Entry]
Type=Application
Name=<appname>
Exec=/path/to/app
EOF'

补充笔记

  • 在我的安装中(嵌套虚拟化 Skylake VM 中的 Win 11),“开始”菜单项会在一秒钟左右内显示出来。

  • 请注意,文件似乎.desktop确实需要在 中/usr/share/applications。在我的测试中~/.local/share/applications没有起作用。

  • 另外,在我的测试中,桌面文件似乎Terminal=true被忽略了。

  • 删除<appname>.desktop文件也会删除“开始菜单”项。

相关内容