今天,我为我的Linux 19肉桂购买了蒸汽上的项目医院游戏。
我只安装了这个游戏,所以我无法确定这个问题是否存在于其他游戏中。
虽然游戏运行良好,但我无法通过菜单创建.desktop文件:
右击项目医院->创建桌面快捷菜单项。
它将说(文字记录):
无法创建快捷方式。这个游戏的捷径可能已经在桌面上了。
同样,它也没有为这个游戏创建菜单条目。
(图片版本不可用-由于某种原因,我无法截图模式弹出。)
我的蒸汽版日期为2018-11月26日:

是否可以手工创建.desktop文件?
如果是的话,你能解释一下最低限度必须包含什么吗?有什么方法可以在创建之后验证它吗?
发布于 2018-12-06 13:27:46
博士
创建包含内容的.desktop文件,项目医院的蒸汽Id是868360,您可以在蒸汽链接中看到这个数字,例如:
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/
不管它的价值如何,我刚刚提交了一张公开的罚单,谢谢Aaron的评论:
所以,让我们直接进入它,并调试这个东西,最后!!
$ 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*这里您会注意到的第一件奇怪的事情是,有些文件有一个execute标志(文件名后面也用星号表示)。
您会注意到的第二件事是,有些文件是很小的,而另一些文件则更大,可以成为一个图标。
因此,运行以下代码将显示更多信息:
$ 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现在,让我们移除execute权限,因为按照我的标准,它根本不应该存在,并列出我们得到的内容:
$ 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/并给那些压缩档案适当的扩展:
$ 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中看到:

And我想我已经找到原因了!
您可能会看到,确实工作的游戏在目录中有png图标,而在我的测试用例(Project )中没有工作的游戏有一个名为icons的子目录,其中包含这些图标。
案件解决了,@kisak-阀门请调整蒸汽客户,以处理这些案件。谢谢。
https://unix.stackexchange.com/questions/486371
复制相似问题