我已经解决的解决方案

我已经解决的解决方案

我使用终端来完成大部分日常计算,因此我将默认运行级别设置为3in /etc/inittab,并且仅在需要时启动 X 服务器。我目前有以下内容,xorg.conf以便更轻松地快速切换到终端:

Section "ServerFlags"
    Option            "DontZap"    "false"
EndSection

Section "InputClass"
    Identifier        "Keyboard Defaults"
    MatchIsKeyboard   "yes"
    Option            "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

我知道这很混乱并且充满安全问题,这就是为什么这些设置首先从默认安装中删除的原因。不过,速度很快。如何使用 shell 脚本或类似的可附加到事件(例如组合键或关闭笔记本电脑屏幕)的脚本以更安全的方式获得此类功能?

我所追求的是立即杀死 X 服务器进程,而不向 tty 输出(目前,用Ctrl + Alt + Bksp垂死的 X 服务器的输出填充终端,我必须使用 退出Ctrl + C)。

答案1

我已经解决的解决方案

这个问题仍然困扰着我,但我已经找到了一个多管齐下的解决方案,非常接近原始问题所寻求的解决方案,因此我将这个问题标记为“已解决”。

1.) 删除 xorg.conf 更改

可以删除 OP 中的这些更改xorg.conf,因为功能将以另一种方式复制:

Section "ServerFlags"
    Option            "DontZap"    "false"
EndSection

Section "InputClass"
    Identifier        "Keyboard Defaults"
    MatchIsKeyboard   "yes"
    Option            "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection

2.) 编辑.xinitrc

大多数使用指南.xinitrc建议添加一行,例如这一行,以在 Xorg 启动时启动您选择的桌面:

exec cinnamon-session;

但是,在.xinitrc文件中,exec语句后面的任何内容都会被忽略。因此,将其更改为仅调用桌面而不使用exec

cinnamon-session;

然后在其下面的行中添加一个clear,以便当桌面会话结束时,它会清除屏幕:

cinnamon-session;
clear;

由于结束会话所花费的时间,结束会话可能还剩下几行(这就是我说这个问题仍然困扰着我的意思;我还没有弄清楚如何解决这个问题完全部分)。

3.) 创建 shell 脚本来结束会话

我在步骤 1 中提到,Xorg 切换功能将以另一种方式复制,这发生在此处。这个特定示例是 Cinnamon 独有的,但您的桌面可能有类似的命令。使用以下两行创建一个 shell 脚本:

#!/usr/bin/env bash
cinnamon-session-quit --logout --force --no-prompt;

使脚本可执行chmod +x quit-x.sh(或任何您命名的名称)。我必须制作一个小 shell 脚本来完成此任务的原因是因为我在将组合键映射到带有选项的命令时遇到问题,但将其映射到脚本时遇到问题很快(见步骤 4)。

4.) 将脚本映射到组合键

这也是高度桌面特定的。 Cinnamon 中的此设置位于“系统设置”应用程序中的“键盘”>“快捷方式”>“自定义快捷方式”下。单击“添加自定义快捷方式”,为其指定一个名称(例如“退出 X”),为其指定一个快捷方式(我选择Alt-T),然后将其指向您的自定义脚本。现在进入终端是轻而易举的事情。

相关内容