在 Debian 笔记本的命令行下,想实现“10分钟无操作自动关屏但不休眠”,关键是分开设置两件事关屏超时休眠动作。你可以根据桌面环境或使用习惯,参考以下几种方案:

🖥️ 方案一:有图形界面(GNOME / KDE / XFCE)

大多数笔记本都运行在图形界面下,此方案最直接。

  • 使用 gsettings (适用于 GNOME):在终端运行以下命令即可:

    bash

    # 设置10分钟 (600秒) 后自动关闭屏幕
    gsettings set org.gnome.desktop.session idle-delay 600
    
    # 禁止在连接电源和使用电池时进入休眠
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-type 'nothing'
    gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-type 'nothing'
  • 使用 xset (适用于 XFCE/KDE)

    bash

    # 先确认当前设置
    xset q
    # 设置10分钟后关屏(DPMS 的 Standby, Suspend, Off 参数,单位:秒)
    xset dpms 600 600 600

⌨️ 方案二:纯命令行界面 (TTY)

如果你没有安装桌面环境,就在纯终端下操作。

  • 使用 setterm 命令

    bash

    # 设置控制台在10分钟后自动关闭屏幕显示
    setterm --blank 10
    
    # 如果想立即生效,可以尝试强制应用到当前终端 (tty1)
    # setterm -blank 10 >> /dev/tty1

    setterm 的设置重启后会失效。如果想让它在重启后依然有效,可以把它加入 /etc/bash.bashrc 或创建 systemd 服务。

  • 使用 vbetool 命令:如果 setterm 无效,可安装并使用 vbetool 即时控制显示器电源。

    bash

    # 安装 vbetool
    sudo apt update && sudo apt install vbetool
    
    # 立即关闭屏幕(按任意键可恢复)
    sudo vbetool dpms off

🔧 方案三:使用 systemd (最彻底的底层防休眠)

如果你希望从系统底层“锁死”所有休眠行为,确保万无一失,可以这样操作:

bash

# 1. 屏蔽所有休眠、挂起目标,从源头禁用
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

# 2. 编辑 logind 配置,忽略各种触发休眠的事件
sudo nano /etc/systemd/logind.conf
# 添加或修改以下几行:
[Login]
HandleSuspendKey=ignore
HandleHibernateKey=ignore
HandleLidSwitch=ignore
IdleAction=ignore

# 3. 重启 systemd-logind 服务使配置生效
sudo systemctl restart systemd-logind

💡 额外补充:TLP (推荐给笔记本用户)

TLP 是一款强大的命令行电源管理工具,能帮你智能管理电池和电源策略。你可以这样安装和配置:

bash

# 1. 安装 TLP
sudo apt update && sudo apt install tlp

# 2. 编辑主配置文件
sudo nano /etc/tlp.conf
# 找到并修改以下几行:
# 关闭“当连接电源时,空闲后自动挂起”的功能
CPU_SCALING_GOVERNOR_ON_AC=powersave
# 如果你对屏幕行为有精确要求,可以取消注释并修改
# DISK_DEVICES="sda"
# DISK_APM_LEVEL_ON_AC="254"   # 数值越大,越不容易停转

# 3. 保存文件后,重启 TLP 服务
sudo tlp restart

🔍 如何验证配置生效?

配置好后,可以通过以下命令确认设置是否已生效:

  • 检查 systemd 休眠目标:运行 systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target,若显示 Loaded: masked,说明休眠功能已被成功禁用。

  • 查看电源管理配置:使用 systemd-inhibit 命令,可以查看当前哪些进程正在阻止系统进入休眠或关屏状态。