如何在系统范围内关闭Xfce会话?

我们正在使用运行Xubuntu的终端服务器。 因为我们在保存的会话中遇到了一些问题,所以我们希望完全关闭会话的保存。

到目前为止,我们已经能够将默认设置为不保存会话,但在注销屏幕中仍可以保存会话。 是否可以完全关闭会话保存(系统范围),以便我们的用户不会“意外”使用它?

(使用Xubuntu 12.04测试,但安装了Xfce 4.10和4.12的ppas,但我讨论的选项可用于Xfce 4.8)

有一种方法可以全局禁用保存会话的选项,实现它的最佳方法是使用Xfce kiosk模式 。 SaveSession是一个可用的kiosk模式选项,埋藏在xfce4-session的源代码中。 如果我们查看/home/mike/xfce4-session-4.10.0/xfce4-session/xfsm-shutdown.c ,我们可以看到未记录的设置:

 /* check kiosk */ shutdown->kiosk_can_save_session = xfce_kiosk_query (kiosk, "SaveSession"); 

首先,使用创建kiosk目录

 sudo mkdir /etc/xdg/xfce4/kiosk 

然后使用文本编辑器创建和编辑kioskrc:

 sudo nano /etc/xdg/xfce4/kiosk/kioskrc 

将以下内容放在您的kioskrc

 [xfce4-session] SaveSession=NONE 

现在,保存更改并注销并再次以用户身份登录进行测试。 保存会话的复选框选项应该已经消失。

在应用设置之前,该框仍然可用:

在此处输入图像描述

之后,在kiosk模式处于活动状态时,该选项不再可用:

在此处输入图像描述

如果您希望使用kiosk模式全局禁用其他设置,例如关闭或暂停等function,请参阅我的答案:

  • 如何在Xfce中更改系统级别的hibernate和挂起设置?

我遇到了同样的问题,但是@ user76204提供的解决方案并没有为我做到这一点。

我的细节

$ uname -ir && lsb_release -a && xfce4-about -V

3.13.0-24-generic x86_64 No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 14.04 LTS Release: 14.04 Codename: trusty xfce4-about 4.11.1 (Xfce 4.10)

我的解决方案

我完全承认这是一个丑陋,丑陋的黑客

  1. 清除会话目录:
    find "$HOME/.cache/sessions" -type f -print0 | xargs -0 rm -f
  2. 通过在"$HOME/.cache/sessions"上设置八进制权限来删除写入权限
    chmod 500 "$HOME/.cache/sessions"

因此, 无法保存会话。 但是,这种方法确实有一个优点:您是否希望以后在会话中设置某些内容:

  1. 重置文件夹的权限
    chmod 700 "$HOME/.cache/sessions"
  2. 启动XFCE会话管理器:
    xfce4-session &
  3. 设置/保存/配置什么……
  4. 保存会话
  5. 通过在"$HOME/.cache/sessions"上设置八进制权限来删除写入权限
    chmod 500 "$HOME/.cache/sessions"

来自misterich的hack也没有为我做这个技巧,不知何故它仍然可以写入sessions文件夹

我的解决方案

  1. rm -rf“$ HOME / .cache / sessions”

  2. 触摸“$ HOME / .cache / sessions”

现在有一个名为sessions而不是sessions文件夹的文件,因此它不能再写入文件了。