在 Windows 10 上,我的笔记本电脑的键盘背光在一分钟左右不活动后会自动关闭。一旦发生任何活动,它们就会重新打开。
在 ubuntu 上,如果我运行以下命令
echo <0-3> | sudo tee /sys/class/leds/asus::kbd_backlight/brightness
这可以使亮度变暗/增加(0 表示关闭,3 表示最亮)。
有没有办法让上述操作在系统空闲 1 分钟时自动执行,并在系统恢复空闲状态时重新运行?
谢谢。
答案1
你需要做什么
- 安装
xprintidle
,以跟踪当前空闲时间(由缺少键盘和鼠标事件定义)。 - 创建一个小的背景脚本(如下所示);将脚本复制到一个空文件中并将其保存为
dim_keyboard.sh
。使脚本可执行并将其复制到未经授权的用户无法更改脚本的位置(例如/usr/local/bin
)。 将脚本添加到
sudoers
文件中,因为您使用以下命令运行命令sudo
:添加行:<username> ALL= NOPASSWD: /path/to/your/script
(
<username>
您的用户名在哪里)到文件,如下所述这里。
注意:在sudoers
文件中,出于安全原因,始终使用完整路径脚本,即使它在 中也是如此$PATH
。原因是,否则很容易将类似名称的脚本放在 中~/bin
,该脚本可以以sudo
特权运行,可能带有恶意代码。
测试运行脚本,以空闲时间(以秒为单位)作为参数:
sudo /path/to/script.sh 60
一分钟后背光变暗
如果一切正常,将其添加到启动应用程序: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)
使用此行保存旧状态并重复使用,因此亮度将始终保持不变