首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >蒸汽无法创建.desktop文件(S)。解决还是修复?

蒸汽无法创建.desktop文件(S)。解决还是修复?
EN

Unix & Linux用户
提问于 2018-12-06 13:27:46
回答 1查看 1.7K关注 0票数 4

今天,我为我的Linux 19肉桂购买了蒸汽上的项目医院游戏。

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

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

右击项目医院->创建桌面快捷菜单项。

它将说(文字记录):

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

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

(图片版本不可用-由于某种原因,我无法截图模式弹出。)

我的蒸汽版日期为2018-11月26日:

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

如果是的话,你能解释一下最低限度必须包含什么吗?有什么方法可以在创建之后验证它吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2018-12-06 13:27:46

TL;

博士

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

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

代码语言:javascript
复制
[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

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

代码语言:javascript
复制
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的评论:

所以,让我们直接进入它,并调试这个东西,最后!!

代码语言:javascript
复制
$ 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标志(文件名后面也用星号表示)。

您会注意到的第二件事是,有些文件是很小的,而另一些文件则更大,可以成为一个图标。

因此,运行以下代码将显示更多信息:

代码语言:javascript
复制
$ 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文档,让我们仔细看看它们,首先将它们复制到安全的位置:

代码语言:javascript
复制
$ mkdir -p ~/steamIcons && cp ~/.local/share/Steam/steam/games/*.ico ~/steamIcons && cd ~/steamIcons && rm SteamMovie.ico

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

代码语言:javascript
复制
$ 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

我们现在应该把这些图标和档案分开:

代码语言:javascript
复制
$ mkdir -p ico zip
$ mv 61f9291306d3f002cc749d437ce84c42c9c9d52d.ico 866ec9836186e7127888bfd7a11231a3971f105d.ico ico/
$ mv *.ico zip/

并给那些压缩档案适当的扩展:

代码语言:javascript
复制
$ for file in *; do mv "${file}" "${file}.zip"; done && ls -lh

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

代码语言:javascript
复制
$ for filename in *; do dirname="${filename%.zip}"; dirname="${dirname%.ico}"; mkdir -p "${dirname}"; unzip "${filename}" -d "${dirname}";rm "${filename}"; done

我现在需要看一下目录结构。您可能不会安装tree,所以让我们在基于Ubuntu的Linux上安装它:

代码语言:javascript
复制
$ sudo apt-get install tree

让我们看看我们有什么:

代码语言:javascript
复制
$ 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-阀门请调整蒸汽客户,以处理这些案件。谢谢。

票数 7
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/486371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档