Ubuntu – n equivalent to Win-P (Switch Video Output hotkey)

shortcut-keysvideo

I have a Laptop with multiple outputs and use an external monitor pretty often. If I want to activate it, I have to go to system menu --> Displays and activate the external display. After using, I need to deactivate it with the same menu.

In Windows, I could do the same by simply pressing Win+P (Meta+P). Is there any hotkey or other way to achieve this behaviour in Unity (Ubuntu 11.04/11.10)? On a side-note, my laptop does have a button to switch output modes, but does not work (just opens the unity menu bar – I suspect it's a shortcut for Meta+P internally).

Addendum: The Laptop in question is a Dell Studio XPS 1640.

Addendum 2:
I've did some more research. xev gives me the following statement when pressing the "change CRT/LCD"-Button:

KeymapNotify event, serial 33, synthetic NO, window 0x0,
    keys:  2   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   
           0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   

In tty1, the command showkey gives me the following output:

key 125 pressed
key  25 pressed
key  25 released
key 125 released
key  28 pressed

Alternative output via showkey -s:

0xe0 0x5b 0x19 0x99 0xe0 0xdb
0x1c

The last line takes a second to show – I guess it refers to the enter-key. A quick look into dumpkeys|grep ^keycode reveals 125=ALT and 25=p. Looking in /lib/udev/keymaps/dell, the code for switching the video mode is set to 0x9B:

0x9B switchvideomode # Display Toggle button

Now, from what I see, the display-button is not mapped to a single key but to a key burst… any idea how to tackle the problem further is greatly appreciated.

Best Answer

If you have a Fn key on your keyboard, chances are good that some of the remotely intelligible glyphs in the same distinct color as the 'Fn' key already accomplish what you seek for, you'll just have to hold Fn and press F10.

For this to work, your laptop vendor must have its entry at /lib/udev/keymaps and udev must correctly detect your keyboard type.

For example, doing a grep -r switchvideomode there yields:


./module-lenovo:0x6 switchvideomode # Fn+F7
./acer:0xA9 switchvideomode # Fn+F5
./samsung-other:0x82 switchvideomode # Fn+F4 CRT/LCD (high keycode: "displaytoggle")
./fujitsu-amilo_pro_edition_v3505:0xA9 switchvideomode # Fn-F3
./fujitsu-esprimo_mobile_v5:0xA9 switchvideomode
./module-sony-vgn:0x11 switchvideomode # Fn+F7
./module-sony:0x0B switchvideomode # Fn+F7
./dell:0x8B switchvideomode # Fn+F8 CRT/LCD (high keycode: "displaytoggle")
./dell:0x8F switchvideomode # Fn+F7 aspect ratio
./dell:0x9B switchvideomode # Display Toggle button
./olpc-xo:0x69 switchvideomode # Brightness key
./module-ibm:0x06 switchvideomode # Fn+F7
./oqo-model2:0xF0 switchvideomode
./onkyo:0xF5 switchvideomode # Fn+E
./lenovo-thinkpad-usb-keyboard-trackpoint:0x90016 switchvideomode # Fn+F7
./zepto-znote:0x93 switchvideomode    # Fn+F3 Toggle Video Output
./ibm-thinkpad-usb-keyboard-trackpoint:0x900f2 switchvideomode
./fujitsu-amilo_pro_v3205:0xF7 switchvideomode # Fn+F3
./lenovo-3000:0x8B switchvideomode # Fn+F7 video
./hewlett-packard:0xEE switchvideomode # FnF4

Otherwise, you can write your own taking the nearest match as a template and maybe submit it to canonical's laptop testers for inclusion.

Related Question