ubuntu 14.04 + gnome 3.10 + gnome-shell 重启

ubuntu 14.04 + gnome 3.10 + gnome-shell 重启

有没有办法让 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+F2r,而是使用Alt+F2rgnome.sh

答案3

评论后,我决定我应该完成一个答案:

以下内容可能有助于您了解如何使用 .bashrc 和 .bash_profile

.bash_profile 与 .bashrc

如果您还没有这个文件,不要担心,如果您创建了它,则当您以保存 .bash_profile 的主目录下的用户身份登录时,shell 应该使用它。

上述建议仅在用户将 bash 作为默认 shell 时才有效。因此,您可以考虑采用下面建议的更深层次的级别。

如果您有兴趣让所有用户运行该脚本,您应该考虑编辑 /etc/profile 文件。

我认为你可能会在本节中找到一些答案帮助中心

相关内容