我想让 Cairo dock(带有 opengl)在启动时仅在 Gnome-Classic 上执行,但不在其他 DE(如 cinnamon、unity 或 gnome)上执行。如何做到这一点?
答案1
cairo-dock
首先创建一个基于环境变量运行的脚本$DESKTOP-SESSION
。我们将在~/.config/autostart
目录中创建脚本并将其命名为cairo.sh
按Ctrl+H让 nautilus 显示隐藏文件。然后转到您的主目录 →
.config
→autostart
目录。右键单击 nautilus 中的空白处。选择创建新文档→空文档. 将此文件命名为
cairo.sh
.双击新创建的文件,在 gedit 文本编辑器(或您选择的任何其他编辑器)中打开它,并将这些行粘贴到其中。
if [ "$DESKTOP_SESSION" = "gnome-classic" ]; then cairo-dock fi
然后关闭文件。右键单击它,选择特性。
- 在特性窗户,在权限标签,检查允许将文件作为程序执行。
然后在同一目录中创建另一个文件,即
~/.config/autostart
名为cairo
。(不要首先用.desktop
扩展名命名,以避免以后打开时麻烦)在该文件中,复制这些行并粘贴,更改适当的信息,例如在“用户名”位置输入用户名。这是一个 .desktop 文件,将在启动时调用
[Desktop Entry] Type=Application Exec=/home/<name of user>/.config/autostart/cairo.sh Hidden=false NoDisplay=false X-GNOME-Autostart-enabled=true Name[en]=Cairo
保存文件并退出 gedit。
然后重命名文件并添加扩展名
.desktop
。要重命名,请选择文件并按F2。重命名后,再次使文件可执行。为此,选择文件 → 选择特性。在新窗口中,权限选项卡,选中复选框允许文件作为程序运行。
注销并登录到 gnome-classic 会话。Cairo-dock 将自动启动。
如果您还想在另一个桌面环境(例如 ubuntu)上运行 Cairo,则只需重复此过程,为该桌面会话创建另一组命令。首先,您需要创建另一个 cairo.sh,将其命名为略有不同的名称,例如 cairo2.sh。然后,您可以使用 nautilus 打开它并复制以下几行:
if [ "$DESKTOP_SESSION" = "ubuntu" ]; then
cairo-dock
fi
然后,您可以保存该文件并使其像以前一样可执行。
接下来,您将再次创建一个 .desktop 命令,并将其命名为略有不同的名称,例如 cairo2。复制命令行时,复制以下内容:
[Desktop Entry]
Type=Application
Exec=/home/<name of user>/.config/autostart/cairo2.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name[en]=Cairo
不要忘记在“用户名”位置输入用户名,并确保 Exec= 行上的文件名称与 ubuntu 的 .sh 命令相同,在本例中为 cairo2.sh。
此后,只需按照之前的步骤操作,当您登录到适当的桌面环境时,cairo dock 就会自动打开。
答案2
看一下中的文件/usr/share/xsessions/
。
您将在那里找到ubuntu.desktop
,ubuntu-2d.desktop
(如果您尚未使用 12.10)和gnome-fallback.desktop
(也许还有gnome-classic.desktop
。我已经安装了 gnome-shell,也许这是从那里来的)。
打开其中一个,你会看到它们都有一行Exec=gnome-session --session=...
。对于 gnome-fallback,请打开/usr/share/gnome-session/sessions/gnome-fallback.session
。
现在你可以
改变
/usr/share/gnome-session/sessions/gnome-fallback.session
路线RequiredComponents=gnome-panel;gnome-settings-daemon;
到
RequiredComponents=gnome-panel;gnome-settings-daemon;cairo-dock;
(检查可执行文件名称!)例如改变
/usr/share/xsessions/gnome-fallback.desktop
线路Exec=
Exec=/home/<yourname>/<yourexecbashscript>
或者将当前的自动启动文件夹复制
.config/autostart/
到新位置Exec=gnome-session --session=gnome-fallback -a <Newplaceofautostartfolder>
创建一个全新的会话。将和复制并重命名为新名称
gnome-fallback.session
并将gnome-fallback.session
其放置到各自的位置,然后像 1 中一样调整新会话。
前两个可以工作,但是缺点是它们在更新时可能会或可能不会被覆盖(你必须检查,我不确定)。
2. 此外,如果您复制自动启动文件夹,则只有其中一个会更新,具体取决于您登录的会话。
因此我建议按照3所示进行操作。玩得开心。