我想在启动时使用命令来激活 f.lux:
xflux -k 2200 -l 41 -g 175 -nofork
我试了几种方法。都没用。现在我试了这个,还是不行:
将命令放入 crontab 文件中。Linux 中的 crontab 文件是一个守护进程,可在特定时间和事件执行用户编辑的任务。要编辑该文件,请打开终端并输入“sudo crontab -e”以在默认文本编辑器中打开 crontab 文件。在第一个可用行中,输入“@reboot xxxx”,其中“xxxx”是您要运行的命令。保存文件并退出。
为什么
@reboot xflux -k 2200 -l 41 -g 175 -nofork
不起作用?如何在启动时激活 f.lux,而不是每次都手动启动它?
答案1
从 crontab 运行 X11 GUI 应用程序通常根本不起作用。cron 子系统假设 cron 作业将完全独立于用户(或任何用户)是否登录。因此,cron 作业在运行时通常根本无法访问 GUI 桌面会话:否则,用户 A 的 cron 作业可能会监视或干扰用户 B 的会话,这显然是不可接受的。
(如果您确实想要,可以安排这样的访问,但这不是通常的做事方式,并且应用程序需要意识到在应用程序启动时可能会有不同的用户(或者根本没有用户)登录。或者整个 GUI 子系统可能尚未启动。)
您没有指定所使用的 Linux 发行版和桌面环境,这本来是为您提供更详细建议所必需的。但可能有一种方法可以让命令自动启动在您的 GUI 登录但是,具体细节将根据您所使用的桌面环境(及其版本)而有很大差异。
如果您希望 f.lux 也影响登录屏幕,那么可能还有一种方法可以设置一个程序来运行在登录屏幕初始化时;但是,当用户使用 GUI 登录时,GUI 会话的所有权将被转移,并且 X 服务器将在此时重置。要么 f.lux 应用程序需要设计为能够承受这种情况并在所有权切换后重新建立与 GUI 会话的连接(在这种情况下,f.lux 必须以 root 身份运行,这并不理想),要么您必须为登录屏幕配置一个实例,为用户会话配置另一个实例(仅适用于您的用户帐户,或作为所有用户的系统默认值)。后一种选择可能是最容易实现的。
答案2
你可以尝试一下gnome-tweak-tool
。只需使用以下命令安装即可:
sudo apt install gnome-tweak-tool
您应该能够使用它来管理启动应用程序。