28

I've recently acquired a set of monitor arms that allow for free rotation of my monitors. I'd like to be able to quickly switch from one orientation to another on the fly, without having to go through the trouble of accessing the screen rotation features of the operating system.

How do I set up a hotkey or shortcut to quickly switch the orientation of my monitor?

0

9 Answers 9

39

With my graphics card, this approach works:

  1. Download Display (website is down as of 2020-10-11, mirrors here and here).

  2. Extract the Display.exe to a location of your choice (e.g., C:\Display.exe).

  3. Use the [right-click] -> New -> Shortcut dialogue to create shortcuts for the desired orientations:

     C:\Display.exe /rotate:0
     C:\Display.exe /rotate:90
     C:\Display.exe /rotate:180
     C:\Display.exe /rotate:270
    
  4. (optional) In each shortcut's properties, you can specify a Shortcut Key.

5
  • This works very well.
    – wax eagle
    Jul 10, 2012 at 17:06
  • I should mention that this only appears to work on the primary display (i see no options in it's argument list for dealing with a second monitor, but that's the monitor I wanted to change anways)
    – wax eagle
    Jul 10, 2012 at 17:30
  • 7
    The version there today (Version 1.2 (build 14)) does have an option to specify which monitor to rotate: display /device 2 /rotate 90 Dec 22, 2013 at 22:31
  • 5
    This is great! Also useful is C:\Display.exe /rotate:90 /toggle to toggle between the default rotation and the specified one.
    – Abdulla
    Jan 12, 2014 at 13:04
  • 1
    I use autohotkey with it like this: !#right:: Run A:\display\display.exe /device 1 /rotate:90
    – Shayan
    Jan 25, 2019 at 11:02
6

If some people are still using this thread or searching for this at google, I have the PERFECT SOLUTION.

  1. Download Display

  2. Extract to C:\Display\ (or a folder of your choice)

  3. Open cmd, and write in the path to display.exe - C:\Display\display.exe\ -listdevices (this will show you all of your screens, letting you choose which one to rotate)

  4. Choose which device (screen) you would like to rotate by their index number.

  5. Create a .bat file using notepad. (Open notepad, write the lines shown below, save as "all files" and write ".bat" after name of your choice)

  6. Write C:\display\display.exe -device (number of your device) -rotate 90 /toggle

  7. If the "90 (degrees)" is the wrong screen rotation, just change it to "180" or "270".

  8. You should be done now, and you may edit the shortcut or/and add it to your Taskbar by creating a new Toolbar.

->The nice thing about this way, is that you only need one shortcut and not multiple-<

3

For me a simple CTRL+ALT+ARROW KEY worked just fine. Way simpler than the script, downloading display.exe and etc.

1
  • 1
    This is dependent on your graphics driver, the display.exe solution seems to work regardless of driver.
    – wax eagle
    Feb 6, 2014 at 15:52
2

Someone wrote a script on the AutoHotKey forums that does just this. But I haven't tried it myself.

He made it so that pressing the Windows key + a numpad key will rotate it:

  • Win + 4 : Rotates screen to Portrait
  • Win + 2 : Rotates screen to Landscape ( flipped )
  • Win + 6 : Rotates screen to Portrait ( flipped )
  • Win + 8 : Rotates screen to Landscape

Here's the script:

#SingleInstance Force
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.

#Numpad8:: ; Landscape Mode - WinLogo + Number pad 8
IfWinExist, Screen Resolution
{
    WinActivate, Screen Resolution
}
else
{
    run "desk.cpl"
}   
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
Send, {Tab}
sleep 500

send, {Alt Down}
send, {o}
send, {Alt Up}

sleep 500
send, {Up} ; Send Up 4 times to make sure we are at the start of the dropdown
send, {Up}
send, {Up}
send, {Up}
sleep 500
send, {Alt Down}
send, {a}
send, {Alt Up}
WinWait, Display Settings
if ErrorLevel
{
   MsgBox, WinWait timed out for display settings.
   return
}
send, {Alt Down}
send, {k}
send, {Alt Up}
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
send, {Alt Down}
send, {F4}
send, {Alt Up}
return

#Numpad4:: ; Portrait Mode - WinLogo + Number pad 4
IfWinExist, Screen Resolution
{
    WinActivate, Screen Resolution
}
else
{
    run "desk.cpl"
}   
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
Send, {Tab}
sleep 500

send, {Alt Down}
send, {o}
send, {Alt Up}
;return
sleep 500
send, {Up} ; Send Up 4 times to make sure we are at the start of the dropdown
send, {Up}
send, {Up}
send, {Up}
send, {Down}
sleep 500
send, {Alt Down}
send, {a}
send, {Alt Up}
WinWait, Display Settings
if ErrorLevel
{
   MsgBox, WinWait timed out for display settings.
   return
}
send, {Alt Down}
send, {k}
send, {Alt Up}
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
send, {Alt Down}
send, {F4}
send, {Alt Up}
return



#Numpad6:: ; Portrait Mode (Flipped) - WinLogo + Number pad 6
IfWinExist, Screen Resolution
{
    WinActivate, Screen Resolution
}
else
{
    run "desk.cpl"
}   
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
Send, {Tab}
sleep 500

send, {Alt Down}
send, {o}
send, {Alt Up}

sleep 500
send, {Down} ; Send Up 4 times to make sure we are at the end of the dropdown
send, {Down}
send, {Down}
send, {Down}
sleep 500
send, {Alt Down}
send, {a}
send, {Alt Up}
WinWait, Display Settings
if ErrorLevel
{
   MsgBox, WinWait timed out for display settings.
   return
}
send, {Alt Down}
send, {k}
send, {Alt Up}
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
send, {Alt Down}
send, {F4}
send, {Alt Up}
return

#Numpad2:: ; Landscape Mode (Flipped) - WinLogo + Number pad 2
IfWinExist, Screen Resolution
{
    WinActivate, Screen Resolution
}
else
{
    run "desk.cpl"
}   
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
Send, {Tab}
sleep 500

send, {Alt Down}
send, {o}
send, {Alt Up}

sleep 500
send, {Up} ; Send Up 4 times to make sure we are at the start of the dropdown
send, {Up}
send, {Up}
send, {Up}
send, {Down}
send, {Down}

sleep 500
send, {Alt Down}
send, {a}
send, {Alt Up}
WinWait, Display Settings
if ErrorLevel
{
   MsgBox, WinWait timed out for display settings.
   return
}
send, {Alt Down}
send, {k}
send, {Alt Up}
WinWait, Screen Resolution
if ErrorLevel
{
   MsgBox, WinWait timed out.
   return
}
send, {Alt Down}
send, {F4}
send, {Alt Up}
return
7
  • 1
    Hmmm I actually decided to give it a try myself and for me it seems to bring up the Windows 7 Screen Resolution dialog from which I can change the orientation. Close, but no cigar...
    – Ivo Flipse
    Jul 10, 2012 at 15:45
  • Ctrl+Alt+Uparrow will do the job isn't it :-)
    – avirk
    Jul 10, 2012 at 15:47
  • @avirk for some reason that doesn't do anything for me :S
    – Ivo Flipse
    Jul 10, 2012 at 15:48
  • 1
    @avirk That keyboard shortcut depends on your display drivers. For example, I believe if you have the Intel GFX or NVIDIA tray icon running it will work.
    – iglvzx
    Jul 10, 2012 at 16:07
  • 1
2

I had the same problem as you but i found out how to fix this kink. First got to Control Panel. Go to Display. Click on Advanced Settings. You will see 6 tabs. Click on the tab that says

Intel(R) Graphics and Media Control Panel.

You will see Graphics Properties at the bottom of the tab page.
Then select Advanced Settings and click OK. There will be 5 tabs. Click on the last tab. (Options and Support) You can set the shortcuts from there. Hope this helps!

2
  • 2
    This is graphics card dependent unfortunately. But good answer for Intel Graphics folks.
    – wax eagle
    Jan 21, 2014 at 22:12
  • Bless you kind sir, for helping me find how to disable this terrible invasion.
    – Mike Viens
    Sep 29, 2014 at 21:38
1

There's a free app download you can get through the MS store: https://www.microsoft.com/en-us/p/screen-rotate/9nblggh3zd5h?activetab=pivot:overviewtab

It has a small memory footprint, so it's easy to leave running anytime you think you're going to be needing it. The hotkeys are customizable, or you can click on the icons. It iconifies to the taskbar notification area, meaning that the hotkeys still work.

It's nicely done; it does one simple job extremely well. Unlike Samsung's awful "Magic Rotate," it doesn't mess with your display resolution, so that I can have both a 4K display and easy-to-remember hotkeys.

0

So, I just read this whole thread http://answers.microsoft.com/en-us/windows/forum/windows_7-desktop/how-torotate-screen-in-windows-7-by-a-shortcut/55fca2a8-c34f-41f6-81ba-ce44e7127aeb

Apparently, Microsoft is refusing to put this with a keyboard shortcut into Windows itself, highly likely you could try it with the drivers/utilities that your Graphics Cards vendor supplies.

For my current AMD setup I simply opened the AMD Vision Engine Control Center and went to preferences --> Hotkeys enter image description here

Then I chose Creating and Arranging Desktops in the Dropdown menu et voilá enter image description here

That's about the most simple way I could find; while I still find it suboptimal. Maybe other people could provide some screenshots how it's with the nvidia drivers.

0

ClickMonitorDDC allows to setup such the shortcut, on per-monitor basis if necessary. By the way, this tool also enables an easy (using mouse scroll) adjustment of brightness and contrast.

0

This method worked on my Windows 10 Pro laptop.

Step 1: Install Python3 on your computer, if it is already not installed.

Step 2: Run the following command in the command prompt

python -m pip install rotate-screen keyboard pywin32

Step 3: Open a new text file on the Desktop with name screen_rotate.py and copy-paste following content in it

import rotatescreen
import keyboard

screen = rotatescreen.get_primary_display()

keyboard.add_hotkey('ctrl+alt+up', screen.set_landscape, suppress=True)
keyboard.add_hotkey('ctrl+alt+right', screen.set_portrait_flipped, suppress=True)
keyboard.add_hotkey('ctrl+alt+down', screen.set_landscape_flipped, suppress=True)
keyboard.add_hotkey('ctrl+alt+left', screen.set_portrait, suppress=True)

keyboard.wait()

Step 4: Now whenever you want to rotate screen, first run this Python script by double clicking it, and then use the following well known shortcuts for landscape, portrait, portrait_flipped, and landscape_flipped modes respectively :

ctrl+alt+up     
ctrl+alt+left   
ctrl+alt+right  
ctrl+alt+down   

Once done, close the running script. For more information, visit https://pypi.org/project/rotate-screen/#description
https://github.com/danny-burrows/rotate-screen

NOTE: If the script doesn't run by double-clicking on it, you can create a batch file named scr_rot.bat with the content python scr_rot.bat. Now double clicking on this bat file would run the python script and save you the trouble of opening a command prompt and then running the python-script. If you have more than one display, you can create similar shortcuts using rotatescreen.get_secondary_displays()

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.