Ever want to take a screenshot at higher-than-your-monitor supports resolutions? I do! I laser print quality, e.g. 300-600 DPI (dots per inch) not a measly 70-90DPI like my screen supports. So if aiming for a 10″ wide print out, I’d need a 3000 pixel wide image. I don’t know about you but my monitor hasn’t gotten up to 2000 yet 🙂
I found (at least) two particular approaches that I am using now to help with this task…
I’m hoping you find this post if you are searching for this kind of solution because I found a hundred web searches that were *not* helpful or really even on this topic. What do you search for anyway? “screenshot virtual desktop” gives you a good start but you’ll get a weird mix of unrelated stuff for sure. Heck one proprietary vendor told me their product wouldn’t do it, but they also thought it really wasn’t possible. Oh my. Hint, you want virtual desktop panning or scaling.
Here’s what I found works on my Linux box, but both likely will work on other platforms as well if you have suitable hardware (and if Microsoft and Apple give you the options)…
#1 – NVIDIA X Server Settings
My NVIDIA graphics card is good enough to take on the task, yours should be too. Testing on my Red Hat Enterprise Linux (RHEL6) Desktop environment, I launched the command nvidia-settings (as root) and selected the X Server Display Settings. There is an advanced button that allows you to specify a resolution for panning. I set mine to 3000×1050 just for fun, logged out and back in to reset X Server settings and was instantly in action.
The result is that you have a huge desktop and to move around in it you slide your pointer off the edge of the screen. Similarly when you want to take a screenshot, just start up your app, maximize it (you’ll see a portion of it!) and launch your screenshot app – in my case KSnapshot is my friend. I tell it to capture the whole window and… it just works. I did find a faint ghosting effect where the KSnapshot dialog was still showing a bit on top of the window I captured – I think it’s because it takes a bit more time and energy to handle the expanded graphics – give yourself a few seconds to work with instead.
TODO: Learn X Server conf stuff enough to also enable scaling so I have a high resolution desktop that still fits on my screen – though ultimately only show 72DPI but that the system can capture at full res when needed. I looked at the Xephyr project too and it seems similar but I think it’s probably overkill for me at this stage unless I’m doing screenshot remotely.
#2 – VNC / Remote Desktop
Panning around the screen in solution #1 might not be an option for those still using mommy’s netbook for their work.. so here’s your alternative. You may even find this preferable to the above because scaling works well, at least in my VNC client app. (Hint, VNC is worth learning about if you don’t already know about it, it’s basically what Windows, Mac and even RHEL term Remote Desktop computing.) In Linux it’s simple, start a VNC Server session and a copy of your desktop starts up virtually. You don’t see anything until you connect to it using a VNC (or Remote Desktop) client program – you can connect locally or remotely through your network.
In my case I installed TightVNC (I think), but it likely doesn’t matter, just find a VNC Server and Client package to try out. I ran the command vncserver -geometry 3000×1050 – and I was off to the races. Then, even using the same computer and desktop, I ran the Remote Desktop Viewer (filed under Internet apps in my menu) and enter in my address and the display “port” number that the vnserver app mentioned after starting up – e.g. localhost:1. I also have an option in my connection dialog to turn on scaling – yes, try it, you’ll like it!
The result is really cool, nothing stupendous but will solve all your woes with high res screenshots. Need to see what a website looks like at a higher resolution than your papa’s Dell laptop supports? Give this a try. No promise on Windows and Mac as they often mess with what you can do with virtual desktops, but if a VNC Server can be run, then it just might also work.
I’m sure some off the shelf solution exists – but I haven’t found it. What I would ideally have is a tool on my desktop that I can click on – switching to ultra hi-def mode and saving a screenshot and then dropping me back to normal resolution. Should be doable – holler when you need a beta tester!
One app I will be doing some screenshots on is Quantum GIS – it will certainly be interesting to see how quickly my WMS layers fail to load at higher than normal screen resolution… so I’m sure I’ll be blogging about tilecaching sometime in the future too 😉
12 Nov 2011
p.s. I wrote this agggges ago – if it works for you, please comment so I know it’s not something I should address/update.