I usually work at home and have my dual monitors setup for writing code but a few days ago I was stuck just using my laptop and I was struggling a bit working with just one screen.
Then I got lazy.
I have a Logitech M510 mouse and it comes with the SetPoint software. If you've never explored this software it has all kinds of neat options one of which is the ability to program your mouse buttons. My mouse, in addition to the 2 main buttons, has a scroll wheel and two buttons on the side.
Each of these can be assigned to various functions.
I've also got VirtuaWin installed which gives me 'virtual' desktops allowing me to have my email open on one desktop, my editor on another and my browser open on another.
I usually keep a simple 4 wide x 1 tall virtual desktop config. I don't need that many desktops with the 2 monitors. And I have those setup to toggle with CTRL+ALT+RIGHT. Tip: with VirtualWin make sure you have it configured to 'wrap desktops' and then you can simply execute one keystroke and it will loop through all your desktops.
Now I simply crack open SetPoint and configure one of the buttons as a 'Keystroke Assignment' and then enter the keystroke I want:
And I still have the forward button, as well as the left/right scroll wheel I could assign.
Use your imagination!
While I encourage people to avoid the mouse and type more you can still empower your mouse to do more as well!
Note - on my other computer I use a non-Logitech trackball and use X-Mouse Button Control which gives you similar functionality.
Linux users can checkout: