linux下使用 xset 设置屏保

时间:2021-04-02 04:58:55

linux下使用 xset 设置屏保

把从网上找到的资料整理到这里


Linux下的屏保设置 xset s 与 xset dpms
http://bbs.chinaunix.net/archiver/?tid-2112889.html

用xset q 可以查看当前屏保的设置情况,黑屏方式的屏保有两种状态:
1.    xset 的s参数后面可接两个数字参数,前一个即是进入屏保的秒数,如果想立刻进入屏保:
    xset s 2 600  这样,两秒种后进入屏保。
    如果想恢复默认值,即比较长的时间进入屏保:xset s 0 600
    取消屏保:xset s off
2.    dpms 是屏保的另一种状态,将其断电,与关机后的显示器同样的效果:
    开启:xset dpms 1 1 2
    取消:xset -dpms
==============================================================
关闭X的屏幕保护
http://adam8157.info/blog/2010/06/turn-off-x-screensaver/

查看xset的手册后发现屏幕保护是由X的两个部分控制的, 一个是BlankTime(较新的X中放在ScreenSaver选项中), 一个是DPMS. BlankTime设置的是黑屏, 也就是说只黑屏而不关显示器电源,
对于液晶显示器来说就是不关背灯. DPMS设置的是电源, 三个子选项Standby, Suspend和Off对于CRT显示器是一个逐步关闭电源的过程, 对于液晶显示器应该是一样的.

正因为X的屏幕保护由两部分控制, 单纯的关闭DPMS或者BlankTime都不行, 必须都关掉. 所以我在.xinitrc中加入了下面的命令, 具体解释和其它xset命令参数见Manual.

xset s off
xset dpms 0 0 0

但是这样暴力关闭显得不大环保, 尤其是整宿不关机下载的情况, 可以选择把DPMS和BlankTime的超时时间设置得久一点, 或者加一条alias用来手动关闭显示器电源(笔记本没显示器开关).

alias soff='sleep 5 && xset dpms force off'

之所以sleep 5是为了防止命令执行以后因为手抖或者合上笔记本的盖子而唤醒显示器. 同时这也解释了我为什么在上一步不用xset -dpms, 因为关显示器的时候会再次启用DPMS模块, 屏保又开始生效了,
而置0只是关屏保而不关DPMS, 留着这个模块用来关显示器. 还有一个原因在于有的桌面环境会不停得去检测并启用DPMS模块, 无法简单地关闭DPMS模块.

此外, 如果你的笔记本电脑合上盖子时dmesg能够检测到lid button信号, 可以在acpi的配置文件/etc/acpi/events/lm_lid设置相应的动作, 我的完全没有检测到, 也就没有细研究了.

==============================================================
xset使用详解
http://blog.sina.com.cn/s/blog_4dca847601009qhd.html

Xset是上层应用程序,主要用于在XWindow启动之后,对XWindow进行一些设置,在Linux中比较好的一点就是当你不知一个命令的用法时可以使用man xset

首先
-display 根据英文字面的意思是指出是哪个display在跑这个Xserver,不过我试了好多次想用这个选项,还是没有成功,所以具体怎么用还是不知道。

-b 打开和关闭电脑的嘟嘟的提示音,比如我们打开文件的是否,出错的时候发出的声音。但是听音乐还是可以照常听的
xset b on
xset b off

如果xset后面跟的是一个数值,哪默认提示音是打开的,并且它的音量就是此数值/100*最大音量。
-bc 关闭调试版本兼容机制
bc 打开调试版本兼容机制
xset –bc
xset bc

c 控制键盘的按键声 关闭/打开
xset c on
xset c off

dpms
xset –dpms 关闭电源之星
xset +dpms 打开电源之星,主要用来省电的
xset dpms 后面可以有三个参数的时间分别为(standby,suspend, off)
例如可以这样写
xset dpms 0 0 30 这样写就会在30s后关闭显示屏,进入省电模式。
同时这个选项还可以这样写
xset dpms force[standby|suspend|on|off]
可以强制进入以上四个模式

fp  虽然Xorg缺省已经支持了相当丰富的字体,但是还是有可能需要安装新的字体,例如某种中文字体。X Window的字体应该在配置文件中设置其搜寻路径,但在启动X Window之后,也可以使用xset命令来重新设置字体的搜寻路径。
xset fp+ :增加一个字体搜寻目录。
xset fp- :删除一个字体搜寻目录。
xset fp= :重新设置字体搜寻目录。
xset fp rehash:更改某个字体目录中的内容后,强迫系统刷新字体搜寻路径。

可以使用‘xset’使用工具来修改当前会话的字体路径。用命令 xset fp 来设置字体路径;把新元素添加到前面使用 xset +fp,而添加到后面使用 xset fp+。例如,
$ xset +fp /usr/local/fonts/Type1
$ xset fp+ /usr/local/fonts/bitmap
反过来,从字体的路径的前面删除一个元素使用‘xset -fp’,而从后面删除使用‘xset fp-’。

Lcd 可以用来控制键盘上的Led灯主要有
xset -lcd
xset +lcd
在我的键盘上只有第三个灯在亮Scroll Lock,其它两个都不能通过这个来控制,但是根据它上面说描述的好像键盘上所有的灯都可以控制的,但是我在实际的操作过程中,发现好像就只有第三个可以控制

Mouse这一选项是用来鼠标加速的,就跟windows有一个配置鼠标移动速度的很像
xset m 100/1 4
等同于xset m 100 4
不过这个要慎重设,虽然没有什么后果,但是100后鼠标移动速度超快根本看不到鼠标。

P 它说这一项是用来控制像素值的,但是我设置了后没有什么效果不知道为什么
xset p 0
界面颜色无任何效果

r用来设置键盘上重复按键的,可以这么解释,我们平常按住一个键的话比如长按1,在输入处会出现很多的1,但是如果使用
xset  r off则此时无论你长按什么键,它都只会出来一次,比如长按1,它只会出来一个1
还可以针对某一特定的值
xset –r 10就是将键盘上长按1的效果去掉了,其它的都还有长按的效果的。
xset –r 11就是将键盘上长按2的效果去掉了,其它的都还有长按的效果的。以此类推
它还有一些功能设置,比如按多就可以算是一个重复按键,你可以设置1s,2s(不过这种情况要在加载了Xserver的扩展module XKB extension后才会有的功能)


s这个选项和screen saver有关,根据我的理解screen save的意思是屏保的意思,与前面的dpms有点相像,同样具有省电的功能,总共有几个选项exposure 可以屏保,noexposure不能屏保,屏保的时间可以使用
xset s 10 这样的形式来确定,单位是s,如果没有对其进行操作10s后进入屏保
xset s expose
xset s noexpose
bank和nobank是用来确定屏保的画面
xset s blank (屏保后画面为黑色的)
xset s noblank(屏保后画面是一个图案,我的是一个X)

q这个选项没有什么其它的参数
xset –q 用来显示我们上面配置的参数

==============================================================
Disable screensaver in ubuntu
http://www.diybl.com/course/6_system/linux/Linuxjs/20100222/195658.html

Solution 1:
Edit /etc/X11/xorg.conf file using the following command
sudo vi /etc/X11/xorg.conf
and add the following lines

Section “ServerFlags”
#other options can go here
Option “BlankTime” “0″
Option “StandbyTime” “0″
Option “SuspendTime” “0″
Option “OffTime” “0″
EndSection

Save and exit the file

Solution 2
Edit /etc/X11/xorg.conf file using the following command
sudo vi /etc/X11/xorg.conf

This effectively disables power management on your monitor Settings

Section “Monitor”
#other options can go here
Option “DPMS” “false”
EndSection

Save and exit the file and restart your machine

Solution 3
gconftool-2  –set “/apps/gnome-screensaver/idle_activation_enabled” –type boolean false

Solution 4
gnome-screensaver-command –inhibit

Solution 5
gnome-screensaver-comand –poke

==============================================================
xset 关闭屏幕保护-关闭节电模式
http://socol.iteye.com/blog/1039725

linux机器运行一个监控程序,需要显示器一直亮着,不能黑屏,不能进入省电模式。
系统中没有安装gnome的电源管理程序,也没有安装屏幕保护程序。使用如下办法都无效:
    * 设置bios
    * 修改启动参数acpi=off,noapic
    * 安装gnome-power-manager,设置从不黑屏
    * 修改xorg.conf的DPMS选项和NoPM选项
    * 修改nv的驱动参数

最后用xset来设置。有以下问题
将dmps的时间设置为10分钟以内的时间值,屏幕均可以到时自动黑屏,
设置大于10分钟后,空闲时间一到10分钟就黑屏,
很偶然的使用xset -q查看除dpms之外的其它参数时,发现了一个screensave的值为600。
原来dpms和屏保是互相作用的,这两个值谁设的小谁生效。
使用xset -q查看x的设置,可以看到屏保的时间是600秒,难怪dpms的值只对小于10分钟的时间有效
 
总结如下:
 
可以使用xset命令设置各项:
xset s 300 #设置屏保时间为300秒,时间单位为秒
xset s 0 #关闭屏幕保护
xset dpms 600 900 1200 # 三个数值分别为Standby、Suspend、Off,具体什么意思就不多说了,单位秒
xset -dpms #关闭电源管理
 
也可以编辑xorg.conf
ServerLayerOut字段中添加如下几行:
 
Option "BlankTime" "5"   #注意这里的时间值为分钟
Option "StandbyTime" "10"
Option "SuspendTime" "15"
Option "OffTime" "20"
 
时间值设置成0 就是关闭该项,
 
效果都是一样的。可以使用xset -q 查看设置情况。
 
xset b 0 可以关闭X下的铃声
xset b off都是一样的
 
请一定要注意:X的屏幕保护和gnome的屏幕保护是不一样的,X的电源管理和gnome的电源管理也是不一样的。即使你的gnome桌面环境不安装屏幕保护程序,X的屏幕保护也会起作用(黑屏!),

如果你想要看遠端 PC 的顯示器( Monitor )狀態是開示關, 如果關了, 怎麼叫起來?只要有支援 DPMS 就好辦了. 假設你有四台機器, 都不想它們 monitor 因為任何原因(例如省電)而關閉的.
或許你希望把它們叫起來.用下列 script 即可.前提是你已經建好 ssh key authentication , 可以用 ssh 不需密碼登入.

#!/bin/sh
# monitoron.sh
nocpc="pc1 pc2 pc3 pc4"
user="xyz"

for i in $nocpc
do
    ssh -l $user $i "DISPLAY=:0 xset -q |grep Monitor" |grep On > /dev/null
    if [ $? -ne 0 ]; then
        echo $i is off, turn on it
        ssh -l $user $i "DISPLAY=:0 xset dpms force on"
    fi
done

測試
1. ssh xyz@pc3 "DISPLAY=:0 xset dpms force off  
2. sh monitoron.sh