使用 Gnome 启动器的相对路径

2024-04-15

我们正在开发一个需要在可移动设备(例如 USB 记忆棒)上运行的应用程序。在 Linux 上,我们使用 Gnome 启动器将应用程序的快捷方式放置在设备的根目录上。但是,我们需要对可执行文件和图标使用相对路径,因为我们事先不知道设备将安装在哪里。在 .desktop 文件中我有类似的内容:

Exec=../myapp/myexecutable
图标=../myapp/myicon.png

未找到可执行文件或图标。我阅读了 .desktop 文件中图标查找的规范(http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#icon_lookup),但它并没有启发我。

有没有办法让启动器使用相对路径?如果没有,是否有另一种方法来实现我想要的(即带有图标和可执行文件的快捷方式,使用相对路径指定)?


不支持相对路径*。

一种解决方案是使用安装程序。此脚本根据运行脚本的位置更新桌面文件。使脚本可执行,用户可以单击它进行安装。该脚本要求桌面文件可写。

这是在考虑到 Linux 的情况下完成的。该文件名为自动运行程序;但这只是一个约定,它通常不会自动运行。如果您将其部署在 Linux 以外的其他系统上,则将该文件命名为其他名称(自动运行程序),或者根据平台调整它来做不同的事情。

#! /bin/sh

####  Fixup $APPNAME.desktop.
APPNAME=xvscatter
ICONNAME=xv_logo.png

cd $(dirname "$0")
APPDIR="$PWD/$APPNAME"
EXEC="$APPDIR/$APPNAME"
ICON="$APPDIR/$ICONNAME"

sed -i -e "s@^Icon=.*@Icon=$ICON@" \
    -e "s@^Exec.*@Exec=$EXEC@"  "$APPNAME.desktop"

* 公约为自由桌面 http://standards.freedesktop.org/icon-theme-spec/icon-theme-spec-latest.html#directory_layout是将图标放在 $HOME/.icons、/usr/share/icons 或 /usr/share/pixmaps 中。这些目录下是不同图标大小和类型的子目录。当使用这些目录之一存储图标时,桌面文件中仅列出图标名称(不包含目录);否则记录文件的完整路径。

可执行文件(如果在路径中)可以在没有路径名的情况下列出(不安全)。最好列出完整路径。想象一下由于未指定完整路径而启动了错误的程序。

另一种可能性是将桌面文件复制到用户的桌面或/usr/共享/应用程序,并在那里进行编辑。当程序位于只读媒体上时执行此操作。

因为以上都不会导致真正的安装,所以如果可能的话,请使用平台的本机安装程序和打包工具(rpm、dep、portage 等)。这些工具提供了完整安装的框架,包括适当的文件权限(例如 selinux)和桌面菜单。它们还提供轻松卸载。

如果程序必须从可移动媒体运行,请考虑使用系统安装来仅安装符号链接,可能是 /opt/vendor/progname。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Gnome 启动器的相对路径 的相关文章

  • 站点根目录的相对路径

    我觉得问这个问题很蠢 但我无法弄清楚 我发现了几个帖子 这是一个 https stackoverflow com questions 3655059 html pick images of root folder from sub fold
  • Android - 创建可调整大小的视图

    我目前正在开发一个具有可移动和可调整大小视图的仪表板 我现在遇到的问题是我想通过触摸手势调整视图大小 因此 我想到了一个点 将其添加到选择视图中 可以拖动该点来调整所选视图的大小 这与 Android 主屏幕上的调整大小过程类似 即使经过长
  • ASP.NET WebForms:为什么用户控件中的相对路径在本地工作,但在部署时却不起作用?

    重写问题 在我的一生中 我无法让相对图像路径在使用 VS 的开发服务器和发布到远程 IIS 服务器之间的用户控件内一致工作 我不想通过添加来使我的图像成为服务器标签runat server 我希望它是严格的客户端 并且我不想使用任何骗局代码
  • 更改主页按钮的长按功能

    我正在寻找 Android 技巧 来更改长按主页按钮的功能 目前 长按主页按钮打开任务管理器 相反 我希望长单击充当短单击 这意味着将我们带到默认启动器的主页 理想情况下 这个技巧适用于所有 Android 版本 但如果它仅适用于 2 3
  • Jasper Reports 将绝对路径更改为相对路径?

    我是 jasper 的新手 我想在 jrxml 中编译报告并从绝对路径到相对路径导出为 pdf 目前这些代码仅在绝对路径下工作 导出为 pdf 下载网络浏览器的文件夹 Reports ConsumationReport jrxml 内的 j
  • 三星 Galaxy S 上的图标背景?如何改变这个?

    我看到三星 Galaxy S 设备上的启动图标添加了背景 我需要将此背景更改为我们创建的自定义背景 我知道这可以改变 因为像 每日简报 这样的应用程序有自己的云状背景 使启动图标看起来非常丰富 如果有人知道如何更改此背景 请告诉我 看一下图
  • Android:如何创建启动器

    我以前从未开发过 Android 所以当你回答时请认为我 100 愚蠢 我想创建一个应用程序启动器 它将打开默认的 Web 浏览器到给定的 URL 换句话说 我想用我的网站徽标制作一个图标 当您单击它时 它会在您的默认网络浏览器中打开该网站
  • Android - 按下时显示上次查看的活动(主页按钮-->应用程序快捷方式)

    我来做这个永恒的问题 到目前为止还没有找到解决方案 我在网上搜索了同样的问题 但找到了这个问题的最终解决方案 当我打开 2 个活动并拉动 主页按钮 然后按应用程序的快捷方式时 它会再次向我显示第一个活动 启动器活动 然后要返回到显示的活动
  • HTML 中的相对路径

    我正在创建一个网站localhost 我想将我网站中的所有链接资源设置为相对路径 我的意思是仅内部资源 网站位于 http localhost mywebsite 我读了这个有用的问题绝对 URL 与相对 URL https stackov
  • 如何将用户重定向到 Android 应用程序中的默认启动器?

    自从我尝试弄清楚如何开发一个使用 NFC 身份验证的 Android 解锁屏幕应用程序以来 已经有很长一段时间了 我正在使用 Nexus S 经过在互联网上的多次研究 我得出的结论是 目前不支持将锁屏替换为第三方应用程序 我们需要修改平台才
  • 以编程方式将谷歌设置为主屏幕自定义启动器中的搜索栏

    我正在创建 我自己的启动器 In that case I want to put我的主屏幕中的快速搜索栏 即 Google now 启动器 我怎样才能做到这一点 我已经浏览了多个线程但没有找到任何相关答案 我不想展示widget picke
  • 如何使用相对路径而不包含上下文根名称?

    要工作我的静态文件 CSS JS 我必须编写绝对路径 例如 AppName templates style main css 有没有什么解决方案 我可以写相对路径style main css If your actual关注的是 webap
  • Angular AOT 组件中的相对路径

    我在这里问是因为我在网上找不到完整的文档 这个例子here https angular io docs ts latest cookbook aot compiler html太简单了 我有一个包含多个组件和一些模块的应用程序 用ngc编译
  • 如何为 Linux:KDE、Gnome 等设置应用程序的桌面图标?

    我有一个可以在 Windows Linux 和 Macintosh 上运行的跨平台程序 我的 Windows 版本有一个图标 但我不知道如何为我的 Linux 版本制作一个图标 KDE Gnome 等有标准格式吗 还是我必须为每一种格式做一
  • 无法加载资源:服务器响应状态为 404(未找到)

    我无法解决我的链接问题 你能帮忙链接 CSS 和 JS 文件吗 CSS JS Error Failed to load resource t
  • 相对路径不适用于 css 中的图像

    我有以下文件结构 C wamp myproject admin webroot images 我有一个位于 admin 文件夹内的 index php 文件 它调用位于同一文件夹中的 header inc php 文件 header inc
  • Bitnami:如何在 Apache2 中配置 GitLab 5.0 应用程序而不具有相对根目录?

    或者如何使 GitLab 应用程序作为 Apache2 HTTP 服务器上的根应用程序 我以前没有使用过 Apache2 但是我得到了Bitnami GitLab 虚拟机 http bitnami com stack gitlab virt
  • 如何获取图标名称的完整文件路径?

    如何从 GNOME 中的图标名称获取完整文件路径 import gtk icon theme gtk icon theme get default icon info icon theme lookup icon my icon name
  • 如何以编程方式查找USB存储路径?

    我将 USB 存储设备连接到手机并使用 getExternalFilesDirs 查找所有目录 包括 sdcard 和 USB 该功能正确输出了SD卡的路径 但未输出USB路径 有没有办法找到USB的相对路径而不是绝对路径 我已经被这个问题
  • spring 类路径资源中的相对路径

    我有一堆 spring 配置文件 所有这些文件都位于各个子包的 META INF 目录下 我一直在使用如下所示的导入

随机推荐