At my office I have two computers: a Linux desktop and a laptop running Linux and Windows. I have a dock station for the laptop, plugged to the two screens that I also use with the desktop computer, in alternate inputs (DVI/VGA). Changing the inputs in these screens is a bit of a hassle, because they are not the «one-click-switch» type. I need to go into the menus and browse through the options.
As I have enough with changing the USB connectors for the mouse and the keyboard, I found out a «hack» to disable the video output of the desktop. This way, when I turn on the laptop the two screens automatically search for the next available input.
The trick consists in using FrameBuffer suspend mode, manipulating the contents of /sys/class/graphics/fb0/blank. I use these two scripts:
screen_on.sh
#!/bin/sh
echo 0 > /sys/class/graphics/fb0/blank
screen_off.sh
#!/bin/sh
echo 1 > /sys/class/graphics/fb0/blank
I left them in my home directory: /home/user/bin/
Since writing to /sys/class/graphics/fb0/blank requires root permissions, I edited /etc/sudoers and added the following two lines:
usuario ALL=(root) NOPASSWD: /home/usuario/bin/screen_off.sh
usuario ALL=(root) NOPASSWD: /home/usuario/bin/screen_on.sh
The last step is to add two key bindings in KDE:
- Create a new group, named «Screen».
- Create two new bindings: «On» y «Off».
- I assigned two keys I never used in my keyboard (this one has multiple media shortcuts, mail, home, etc.). You can also use combinations such as «Ctrl+Alt+whatever«.
- In «Action», just enter the path to the scripts using sudo::
sudo /home/user/bin/screen_off.sh
sudo /home/user/bin/screen_on.sh
This is working in Debian Wheezy with a dedicated graphics card.