linux环境下,用笔记本快捷键切换屏幕
最近我的工作环境换到了linux平台上,最大的感受就是linux环境下什么都没有,但是又什么都有。
什么叫什么都没有呢,原先在windows下,不需要装驱动,就可以直接通过笔记本上的快捷键切换显示器和投影仪。但是在linux下,这个功能就没有了(不知道ubuntu有没有这项功能,我用的archlinux+fluxbox没有这个功能)
但是linux是个开放的系统,通过简单的脚本就能实现这个功能,下面具体说说实现的步骤:
在xorg中,xrandr命令可以实现显示器切换功能,具体的使用方法可以参考man手册。我们做一个简单的脚本用于切换显示器:
#!/bin/bash
function show_vga()
{
xrandr --output LVDS --mode 1280x800 --output VGA --mode 1024x768
echo "vga" > /dev/shm/xscreen-mode
}
function show_novga()
{
xrandr --output LVDS --mode 1280x800 --output VGA --off
echo "novga" > /dev/shm/xscreen-mode
}
function show_ext()
{
xrandr --output LVDS --mode 1024x768 --output VGA --right-of LVDS --mode 1024x768
echo "ext" > /dev/shm/xscreen-mode
}
case $1 in
vga)
show_vga
;;
novga)
show_novga
;;
ext)
show_ext
;;
*)
touch /dev/shm/xscreen-mode
if [ "`cat /dev/shm/xscreen-mode`" = "vga" ]; then
show_ext
elif [ "`cat /dev/shm/xscreen-mode`" = "ext" ]; then
show_novga
else
show_vga
fi
;;
esac
这个脚本支持两种模式,如果使用vga(外接投影仪),novga(无外接投影仪),ext(投影仪作为扩展模式)作为参数,他就会切换到相应的显示器模式。并且将当前的显示器模式写入/dev/shm/xscreen-mode这个文件中,如果不带参数调用该脚本则会根据/dev/shm/xscreen-mode中的最新状态依次循环切换这三种显示器模式。
将这个脚本文件存放到~/bin/xscreen。
chmod u+x ~/bin/xscreen
打开可执行标志
最后在~/.fluxbox/keys的文件末尾添加以下内容
#####添加下面内容#####
XF86Display :Exec ~/bin/xscreen
#####添加上面内容#####
其中XF86Display所对应的键位就是切换屏幕的键位,我们可以通过"xbindkeys -mk"获取到这个按键的名称。当用户按下这个键时,系统就执行刚才编写的脚本,进行显示器切换。
通过简单的代码就能实现这样的功能在windows下是不敢想像的,所以可以说在linux下什么都有