让我的应用程序的用户选择是否应在登录时启动该应用程序。最跨平台的实现方式?

普里亚

我想让我的应用程序的用户通过激活/取消激活应用程序中的复选框来控制是否应在每次用户登录时运行该应用程序。(例如,Dropbox就是这样做的。)

实现此目的的最佳方法是什么?我希望该实现在大多数Linux环境下都可以运行(即尽可能跨平台)。另外,如果用户不需要成为root用户即可更改此设置,那将是很好的选择。

谢谢

遵循X-Desktop规范的发行版将从系统范围的目录XDG_CONFIG_DIRS/autostart和用户家中的自动启动目录自动启动应用程序没有root权限,只有后者可以访问。

在HOME中定义自动启动应用程序

1.查找自动启动目录

我们首先需要知道自动启动目录所在的位置。根据X-Desktop规范,位置应为以下位置:

如果相同的文件名位于多个自动启动目录下,则仅应使用最重要目录下的文件。

  • 示例:如果未设置$ XDG_CONFIG_HOME,则用户主目录中的自动启动目录为〜/ .config / autostart /
  • 示例:如果未设置$ XDG_CONFIG_DIRS,则系统范围的自动启动目录为/ etc / xdg / autostart /
  • 示例:如果未设置$ XDG_CONFIG_HOME和$ XDG_CONFIG_DIRS并且两个文件/etc/xdg/autostart/foo.desktop和〜/ .config / autostart / foo.desktop存在,则仅文件〜/ .config / autostart / foo。将使用台式机,因为〜/ .config / autostart /比/ etc / xdg / autostart /更重要

在标准的Ubuntu安装$XDG_CONFIG_HOME中未定义。因此,自动启动目录位于中~/.config/autostart.desktop该目录中的任何文件都将在登录时启动相应的应用程序。

2.创建自动启动目录(如果不存在)

在填充自动启动目录之前,我们需要检查其是否存在,并最终必须创建它。

3.定义.dektop文件

对于Unity和GNOME,最小.desktop文件将具有以下内容,以启用自动启动应用程序:

[Desktop Entry]
Type=Application
Exec=</path/to/application>
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=<name of application>

我们可能会.desktop随应用程序一起分发模板文件,以根据用户选项集将其复制到自动启动目录中或从自动启动目录中删除。

定义系统范围的自动启动应用程序

要为所有用户启用自动启动应用程序,我们需要/etc/xdg/autostart用我们的.desktop文件填充系统范围的自动启动目录(例如

为了能够通过用户选项执行此操作,我们需要临时允许root权限。例如,这可以通过pkexec在我们的设置对话框中调用子进程来完成


另请参阅以下相关问题:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

让我的应用程序的用户选择是否应在登录时启动该应用程序。最跨平台的实现方式?

来自分类Dev

在应用程序启动时登录用户

来自分类Dev

应用程序是否继续加载不应在应用程序启动时启动的页面?

来自分类Dev

OS X应用程序-用户登录系统时自动启动应用程序

来自分类Dev

OS X应用程序-用户登录系统时自动启动应用程序

来自分类Dev

登录时自动启动应用程序

来自分类Dev

我在哪里放置应用程序图标?(跨平台)

来自分类Dev

开发移动跨平台应用程序

来自分类Dev

跨平台多人游戏(应用程序)

来自分类Dev

开发跨平台应用程序

来自分类Dev

如何根据用户是否登录来处理在应用程序启动时显示不同的视图控制器?

来自分类Dev

多平台应用程序开发的选择

来自分类Dev

尝试实现Facebook登录时无效的应用程序ID

来自分类Dev

(Xamarin Forms) 启动时应用程序崩溃(使用应用程序属性登录/注销)

来自分类Dev

检查用户是否在整个应用程序中都已登录

来自分类Dev

如何在登录时以root用户身份启动gui应用程序?

来自分类Dev

如何以更方便的方式启动我的应用程序?

来自分类Dev

从应用程序登录的最佳方式

来自分类Dev

从应用程序登录的最佳方式

来自分类Dev

生成Codename One应用程序时跨平台Google+登录API密钥

来自分类Dev

在没有登录的跨平台应用程序中显示Facebook Feed

来自分类Dev

登录前启动noip应用程序

来自分类Dev

使用模式登录启动应用程序

来自分类Dev

登录前启动noip应用程序

来自分类Dev

从我的Android应用程序与MS Teams Android应用程序中的用户启动聊天

来自分类Dev

用户打开某个应用程序时启动我的应用程序-Android

来自分类Dev

如何为跨平台Web应用程序实现推送通知服务?

来自分类Dev

了解跨平台应用程序如何启动和使用 xaml 页面

来自分类Dev

如何检查我的Web应用程序的用户是否尝试使用其他凭据登录?

Related 相关文章

  1. 1

    让我的应用程序的用户选择是否应在登录时启动该应用程序。最跨平台的实现方式?

  2. 2

    在应用程序启动时登录用户

  3. 3

    应用程序是否继续加载不应在应用程序启动时启动的页面?

  4. 4

    OS X应用程序-用户登录系统时自动启动应用程序

  5. 5

    OS X应用程序-用户登录系统时自动启动应用程序

  6. 6

    登录时自动启动应用程序

  7. 7

    我在哪里放置应用程序图标?(跨平台)

  8. 8

    开发移动跨平台应用程序

  9. 9

    跨平台多人游戏(应用程序)

  10. 10

    开发跨平台应用程序

  11. 11

    如何根据用户是否登录来处理在应用程序启动时显示不同的视图控制器?

  12. 12

    多平台应用程序开发的选择

  13. 13

    尝试实现Facebook登录时无效的应用程序ID

  14. 14

    (Xamarin Forms) 启动时应用程序崩溃(使用应用程序属性登录/注销)

  15. 15

    检查用户是否在整个应用程序中都已登录

  16. 16

    如何在登录时以root用户身份启动gui应用程序?

  17. 17

    如何以更方便的方式启动我的应用程序?

  18. 18

    从应用程序登录的最佳方式

  19. 19

    从应用程序登录的最佳方式

  20. 20

    生成Codename One应用程序时跨平台Google+登录API密钥

  21. 21

    在没有登录的跨平台应用程序中显示Facebook Feed

  22. 22

    登录前启动noip应用程序

  23. 23

    使用模式登录启动应用程序

  24. 24

    登录前启动noip应用程序

  25. 25

    从我的Android应用程序与MS Teams Android应用程序中的用户启动聊天

  26. 26

    用户打开某个应用程序时启动我的应用程序-Android

  27. 27

    如何为跨平台Web应用程序实现推送通知服务?

  28. 28

    了解跨平台应用程序如何启动和使用 xaml 页面

  29. 29

    如何检查我的Web应用程序的用户是否尝试使用其他凭据登录?

热门标签

归档