有没有办法让 gnome-shell 每次启动时运行一个 shell 脚本?
(例如在Alt+F2之后r,而不是在登录时)
注意:如果您认为这与启动列表有关,那就不是:执行Alt+F2然后r告诉我启动列表中的应用程序是否启动:它们没有启动(至少在我的设置上没有启动)。
不幸的是,通过 shell 脚本它还不能工作:
#!/bin/bash
gnome-shell --replace
sleep 10
## reset screen config
xrandr --output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal --output VIRTUAL1 --off --output DP1 --off --output eDP1 --off --output VGA1 --off
## reset keyboard
setxkbmap fr
xrandr 命令在启动时按预期运行
如果我在终端中输入 sh rgnome.sh,gnome 会重新启动,但接下来的命令似乎不会执行(如果我关闭终端,gnome 也会被杀死);我不熟悉 shell 脚本,所以我可能做了一些明显错误的事情
答案1
您可以在您的路径中创建一个可用的 shell 脚本,也许称之为 r.sh。
该脚本应该调用 gnome-shell --replace 命令,然后调用您用来修复显示配置的命令。
您可能需要等待几秒钟才能运行这些命令以等待替换成功。
编辑:
该脚本可能类似于以下内容:
#!/bin/bash
gnome-shell --replace
sleep 2
fix-your-display-commands
答案2
您的 shell 脚本无法运行,因为xrandr
命令正在等待gnome-shell --restart
退出。由于在 gnome 运行时不会发生这种情况,xrandr
因此不会执行该命令。您需要告诉脚本在后台运行它,这样后续命令也将运行:
#!/usr/bin/env bash
## Start gnome-shell in the background. That's what the & does
gnome-shell --replace &
sleep 10
xrandr --output HDMI1 --mode 1920x1080 --pos 0x0 --rotate normal --output VIRTUAL1 --off --output DP1 --off --output eDP1 --off --output VGA1 --off
现在,将脚本保存在全局的某个位置$PATH
,例如/usr/bin/rgnome.sh
,使其成为可执行文件(sudo chmod 755 /usr/bin/rgnome.sh
),然后不要运行Alt+F2和r,而是使用Alt+F2和rgnome.sh
。
答案3
评论后,我决定我应该完成一个答案:
以下内容可能有助于您了解如何使用 .bashrc 和 .bash_profile
如果您还没有这个文件,不要担心,如果您创建了它,则当您以保存 .bash_profile 的主目录下的用户身份登录时,shell 应该使用它。
上述建议仅在用户将 bash 作为默认 shell 时才有效。因此,您可以考虑采用下面建议的更深层次的级别。
如果您有兴趣让所有用户运行该脚本,您应该考虑编辑 /etc/profile 文件。
我认为你可能会在本节中找到一些答案帮助中心