空闲时笔记本电脑键盘背光自动变暗

空闲时笔记本电脑键盘背光自动变暗

在 Windows 10 上,我的笔记本电脑的键盘背光在一分钟左右不活动后会自动关闭。一旦发生任何活动,它们就会重新打开。

在 ubuntu 上,如果我运行以下命令

echo <0-3> | sudo tee /sys/class/leds/asus::kbd_backlight/brightness 

这可以使亮度变暗/增加(0 表示关闭,3 表示最亮)。

有没有办法让上述操作在系统空闲 1 分钟时自动执行,并在系统恢复空闲状态时重新运行?

谢谢。

答案1

你需要做什么

  1. 安装xprintidle,以跟踪当前空闲时间(由缺少键盘和鼠标事件定义)。
  2. 创建一个小的背景脚本(如下所示);将脚本复制到一个空文件中并将其保存为dim_keyboard.sh使脚本可执行并将其复制到未经授权的用户无法更改脚本的位置(例如/usr/local/bin)。
  3. 将脚本添加到sudoers文件中,因为您使用以下命令运行命令sudo:添加行:

    <username> ALL= NOPASSWD: /path/to/your/script
    

    <username>您的用户名在哪里)到文件,如下所述这里


注意:sudoers文件中,出于安全原因,始终使用完整路径脚本,即使它在 中也是如此$PATH。原因是,否则很容易将类似名称的脚本放在 中~/bin,该脚本可以以sudo特权运行,可能带有恶意代码。


  1. 测试运行脚本,以空闲时间(以秒为单位)作为参数:

    sudo /path/to/script.sh 60
    

    一分钟后背光变暗

  2. 如果一切正常,将其添加到启动应用程序:Dash > 启动应用程序 > 添加。添加命令:

    sudo /path/to/script.sh 60
    

剧本:

#!/bin/bash

let "div = 1000"
let "limit = $1"
dimmed=false
cmd=/sys/class/leds/asus::kbd_backlight/brightness

while true
do
  sleep 2
  let "idle = $(xprintidle)"
  if [ $(($idle / $div)) -gt $limit ] && [ $dimmed == false ]; then
    echo 0 | tee $cmd 
    dimmed=true
  elif [ $(($idle / $div)) -le $limit ] && [ $dimmed == true ]; then
    echo 3 | tee $cmd 
    dimmed=false
  fi
done

答案2

继续https://askubuntu.com/a/762994/954857答案。请添加以下内容

savedState=$(cat /sys/class/leds/asus::kbd_backlight/brightness)

使用此行保存旧状态并重复使用,因此亮度将始终保持不变

相关内容