如何实现Flatpak应用程序在登录时自动有条件启动?

如何实现Flatpak应用程序在登录时自动有条件启动?

我不想放入一些应用程序$HOME/.config/autostart并在每次登录时启动它们,而是想使用一个CASE语句来定义哪些应用程序在哪一天启动(有些应用程序仅在工作日启动,其他应用程序仅在我有某些会议的日子启动,等等。 - 点是,我希望所有聊天和消息传递功能在我可以联系到的时候自动启动,而不是在周末时自动启动),所以我写了这样的内容:

DAYOFWEEK=$(date +"%u")

case $DAYOFWEEK in
   (1|3|4) flatpak run com.discordapp.Discord && flatpak run com.slack.Slack;;
   (2) flatpak run com.discordapp.Discord && flatpak run com.slack.Slack && flatpak run us.zoom.Zoom;;
   (5) flatpak run com.discordapp.Discord;;
   (6) echo nothing;;
   (7) flatpak run com.slack.Slack;;
   (*) echo day error;;
esac

# always start
flatpak run im.riot.Riot
flatpak run org.signal.Signal

两个问题:

  1. 我不想将其放入.bashrc并在每次打开新终端时发送命令来启动应用程序,那么最好将它放在哪里?.bash_profile

  2. 相关应用程序均以 Flatpak 形式安装。当我将例程放入 中时.bash_profile,第一个应用程序在登录时启动,但阻止了其他任何应用程序的启动,并且在加载桌面之前,我必须在脚本启动时一次杀死一个应用程序。从命令行启动应用程序到后台时尝试插入&命令会导致语法错误。让应用程序正常启动并且不干扰我的桌面的“常规”登录是否受到它们是 Flatpaks 的影响?无论如何,我应该如何启动它们?

谢谢

答案1

您可以~/.config/autostart通过包装器来使用和影响它。看qemu(无 virt-manager/viewer)sdl 窗口全屏高分辨率

这意味着,编写一个包装器,将其放入~/bin,更改.desktop文件以调用您的包装器而不是原始的执行者钥匙。包装器将具有您想要的逻辑......

相关内容