Steam 无法创建 .desktop 文件。解决方法或修复?

Steam 无法创建 .desktop 文件。解决方法或修复?

今天,我买了项目医院Steam 上为我的 Linux Mint 19 Cinnamon 准备的游戏。

我只安装了这个游戏,所以我无法确定其他游戏是否也存在该问题。

虽然游戏运行良好,但我无法.desktop通过菜单创建文件:

右键单击“Project Hospital”->“创建桌面快捷方式”菜单项。

它会说(文字记录):

无法创建快捷方式。
该游戏的快捷方式可能已经在桌面上。

同样,它也没有为此游戏创建菜单条目。

(图片版本不可用 - 由于某种原因,我无法对模式弹出窗口进行屏幕截图。)

我有 2018 年 11 月 26 日的 Steam 版本:

我的 Steam 版本日期为 2018 年 11 月 26 日


是否可以.desktop手动创建文件?

如果是,您能解释一下它至少必须包含哪些内容吗?创建后有没有办法验证它?

答案1

长话短说

创建.desktop包含内容的文件,Steam ID 为项目医院868360,您可以在 Steam 链接中看到这个数字,例如:

https://store.steampowered.com/app/868360/Project_Hospital/

[Desktop Entry]
Name=[replace with the game name]
Exec=steam steam://rungameid/[replace with a number = Steam Id of the game]
Icon=[replace with a path to some image you find suitable]
Terminal=false
Type=Application
Categories=Game

您可以使用以下命令验证语法:

desktop-file-validate /path/to/the/desktop/file

如果没有发现错误,它不会说什么。


细节

已经有一个关闭了出票在 GitHub 上这个主题据称是重复的这张票。此问题的公开票是:https://github.com/ValveSoftware/steam-for-linux/issues/5590

但没有任何地方写出解决方法。该问题已于 2017 年 11 月 8 日(即一年前)解决。

我不明白为什么关闭后这仍然是一个问题,但无论如何......

您应该chmod +x在桌面上的此文件上运行,但如果放在菜单中则不然。

我的用户桌面项目的位置:~/Desktop

我的全局菜单项的位置:/usr/share/applications/


调试-我的 Steam 问题票评论成绩单

无论如何,我刚刚提交了公开票,谢谢亚伦顺便说一下评论:


那么,让我们直接开始并最终调试这个东西!

$ ls -lhF ~/.local/share/Steam/steam/games/

-rwxrwxr-x 1 vlastimil vlastimil 102K Dec  4 14:51 051f52fdea67d8f16a20daaccaf2fbfa1823d202.ico*
-rwxrwxr-x 1 vlastimil vlastimil 159K Nov 12 12:06 3f2b22c6d7bca4d39f06c203d16facb50014bbbb.ico*
-rw-rw-r-- 1 vlastimil vlastimil 178K Oct 17 10:00 61f9291306d3f002cc749d437ce84c42c9c9d52d.ico
-rw-rw-r-- 1 vlastimil vlastimil  11K Sep 26 15:13 75a21c39178811f5ec421d85a58fa2a07c2633b7.ico
-rwxrwxr-x 1 vlastimil vlastimil  60K Nov 27 03:42 7f263bfdc0c2df24b756d7e87472c6b447ee8538.ico*
-rwxrwxr-x 1 vlastimil vlastimil 362K Nov 19 13:09 866ec9836186e7127888bfd7a11231a3971f105d.ico*
-rwxrwxr-x 1 vlastimil vlastimil  602 Feb  4  2010 PlatformMenu.vdf*
-rwxrwxr-x 1 vlastimil vlastimil 9,9K May  4  2006 SteamMovie.ico*

您在这里会注意到的第一个奇怪的事情是,某些文件具有执行标志(在文件名后也用星号表示)。

您会注意到的第二件事是,有些文件很小,而另一些文件则较大,本身就是一个图标。

因此,运行以下命令将揭示更多信息:

$ file ~/.local/share/Steam/steam/games/*

/home/vlastimil/.local/share/Steam/steam/games/051f52fdea67d8f16a20daaccaf2fbfa1823d202.ico: Zip archive data, at least v1.0 to extract
/home/vlastimil/.local/share/Steam/steam/games/3f2b22c6d7bca4d39f06c203d16facb50014bbbb.ico: Zip archive data, at least v2.0 to extract
/home/vlastimil/.local/share/Steam/steam/games/61f9291306d3f002cc749d437ce84c42c9c9d52d.ico: MS Windows icon resource - 5 icons, 16x16, 32 bits/pixel, 24x24, 32 bits/pixel
/home/vlastimil/.local/share/Steam/steam/games/75a21c39178811f5ec421d85a58fa2a07c2633b7.ico: Zip archive data, at least v2.0 to extract
/home/vlastimil/.local/share/Steam/steam/games/7f263bfdc0c2df24b756d7e87472c6b447ee8538.ico: Zip archive data, at least v2.0 to extract
/home/vlastimil/.local/share/Steam/steam/games/866ec9836186e7127888bfd7a11231a3971f105d.ico: MS Windows icon resource - 6 icons, 16x16, 32 bits/pixel, 32x32, 32 bits/pixel
/home/vlastimil/.local/share/Steam/steam/games/PlatformMenu.vdf:                             ASCII text, with CRLF line terminators
/home/vlastimil/.local/share/Steam/steam/games/SteamMovie.ico:                               MS Windows icon resource - 6 icons, 16x16, 4 bits/pixel, 16x16, 8 bits/pixel

现在,我们知道一些文件实际上是 .zip 存档,让我们仔细看看它们,首先将它们复制到安全位置:

$ mkdir -p ~/steamIcons && cp ~/.local/share/Steam/steam/games/*.ico ~/steamIcons && cd ~/steamIcons && rm SteamMovie.ico

现在,让我们删除执行权限,因为按照我的标准,它根本不应该存在,并列出我们得到的内容:

$ chmod -x * && ls -lh

-rw-r--r-- 1 vlastimil vlastimil 102K Dec  6 23:54 051f52fdea67d8f16a20daaccaf2fbfa1823d202.ico
-rw-r--r-- 1 vlastimil vlastimil 159K Dec  6 23:54 3f2b22c6d7bca4d39f06c203d16facb50014bbbb.ico
-rw-r--r-- 1 vlastimil vlastimil 178K Dec  6 23:54 61f9291306d3f002cc749d437ce84c42c9c9d52d.ico
-rw-r--r-- 1 vlastimil vlastimil  11K Dec  6 23:54 75a21c39178811f5ec421d85a58fa2a07c2633b7.ico
-rw-r--r-- 1 vlastimil vlastimil  60K Dec  6 23:54 7f263bfdc0c2df24b756d7e87472c6b447ee8538.ico
-rw-r--r-- 1 vlastimil vlastimil 362K Dec  6 23:54 866ec9836186e7127888bfd7a11231a3971f105d.ico

我们现在可能应该将这些图标从档案中分离出来:

$ mkdir -p ico zip
$ mv 61f9291306d3f002cc749d437ce84c42c9c9d52d.ico 866ec9836186e7127888bfd7a11231a3971f105d.ico ico/
$ mv *.ico zip/

并给这些 zip 档案适当的扩展名:

$ for file in *; do mv "${file}" "${file}.zip"; done && ls -lh

现在,我想为每个 zip 文件创建一个目录,并将这些文件解压缩到目录中:

$ for filename in *; do dirname="${filename%.zip}"; dirname="${dirname%.ico}"; mkdir -p "${dirname}"; unzip "${filename}" -d "${dirname}";rm "${filename}"; done

我现在需要查看目录结构。您可能还没有tree安装,所以让我们在我的基于 Ubuntu 的 Linux 上安装它:

$ sudo apt-get install tree

让我们看看我们有什么:

$ tree

.
├── 051f52fdea67d8f16a20daaccaf2fbfa1823d202
│   └── icons
│       ├── icon_16.png
│       ├── icon_24.png
│       ├── icon_32.png
│       ├── icon_64.png
│       └── icon_96.png
├── 3f2b22c6d7bca4d39f06c203d16facb50014bbbb
│   ├── 128x128.png
│   ├── 16x16.png
│   ├── 24x24.png
│   ├── 256x256.png
│   ├── 32x32.png
│   ├── 64x64.png
│   └── 96x96.png
├── 75a21c39178811f5ec421d85a58fa2a07c2633b7
│   ├── Hexcells Icon 128.png
│   ├── Hexcells Icon 16.png
│   ├── Hexcells Icon 32.png
│   ├── Hexcells Icon 64.png
│   └── Hexcells Icon 96.png
└── 7f263bfdc0c2df24b756d7e87472c6b447ee8538
    ├── civ5.png
    └── __MACOSX

6 directories, 18 files

据我所知,不幸的是,我们有一些无法识别的游戏,所以最好在 GUI 中查看:

图标_文件夹_屏幕截图

我想我现在已经找到原因了!

正如您自己所看到的,能够运行的游戏在目录中具有 png 图标,而在我的测试用例(Project Hospital)中不起作用的游戏有一个名为 的子目录,icons其中包含这些图标。

案例已解决,@kisak-valve 请调整 Steam 客户端以处理这些案例。谢谢。

相关内容