Rescue off-screen windows easily (Windows.10 and Linux.Mint)

When a program is moved off the main screen – maybe to a second monitor which is now no longer connected – you need a quick and easy way to move it to the current monitor. This is what I do –

There are several programs running on the extended desktop (on the right hand side monitor).

Without the second monitor all you see is this, and your programs are trapped out of sight.

Running programs are not visible

To see what’s hidden off-screen, hold down ALT and press TAB repeatedly. This cycles through thumbnail images of all windows even if they are off-screen or minimized. Release both keys when you highlight the window you want to rescue.

There are 5 off-screen windows to choose from

When both keys are released, the window is selected but not visible. Hold the WINDOWS (flag) key down and press the LEFT arrow key a few times until the window is visible. Release both keys.

First window is rescued.

When you release the keys, the recovered window will stay where it is, and other windows will be offered for rescue.

On the left are other available windows.

Mouse click on the second window you want to rescue and it will be placed next to the first.

Two windows have now been rescued

Repeat the actions for other off-screen windows, and you’re done.

Note that you can use the WINDOWS key with the arrow keys (up, down, left, right) to park windows to any part of the screen.

Sometimes the off-screen program may be waiting for a user response, so try pressing ESCAPE or ENTER to dismiss it. If all esle fails close the program using Task Manager, then reopen it normally. If it starts off-screen, it should now recover easily.

Compiling and uploading Arduino sketches from within Notepad++

Notepad++ is my favourite editor for Arduino sketches, but it lacks the facility to compile and upload sketches directly to the Arduino boards. The usual procedure would be to save the sketch in Notepad++, switch to the Arduino IDE then compile/upload.

However, there is a plug-in for Notepad++ which enables you to run external commands – this post describes how to set it up for the Arduino IDE.

Install the plugin

First ensure you have the latest version of Notepad++ (currently version 7.6.6) and select the menu item under ‘Plugins Admin…’.

Then select the ‘NppExec’ plugin and click install.

Set up the commands to execute

After it installs, you’ll be able to select ‘Execute…’ from the new sub-menu (or simply press ‘f6’), which will display the ‘Execute…’ dialog box.

The empty ‘Execute…’ dialog box will display.

Enter the following text into the command(s) window, ensuring the path points to your ‘arduino_debug.exe’.

set arduino_path = "C:\Program Files (x86)\Arduino\arduino_debug"
npp_save
inputbox "Enter the COM port of your Arduino (e.g., COM1):"
cmd /c $(arduino_path) --port $(input) --upload $(full_current_path)
Commands are remembered in the Execute window

Pressing ‘OK’ will allow you to enter the COM port (this is shown in the Arduino IDE ‘Tools’ menu).

Select a COM port

Press ‘OK’ and the process of compiliation and uploading will begin.

A pane opens in Notepad++ and displays the Arduino compilaition progress

To VERIFY without uploading, the commands in the Execute window will be simpler with only 3 lines –

set arduino_path = "E:\Arduino\arduino-1.8.9-PORTABLE\arduino_debug.exe"
npp_save
cmd /c $(arduino_path) --verify $(full_current_path) --verbose-build

STORING COMMANDS

You can store the commands in the Execute window by using the Save… button. I named my stored command scripts ‘Upload’ and ‘Verify’. Stored commands will then be available in the drop-down box.

Your stored command scripts are selected here

SUMMARY OF HOW TO USE IT

  • Press f6
  • If you have stored commands, select one from the dropdown box
  • Click OK

TIPS

  • Keep the Arduino IDE open with your sketch (not required, but helpful).
  • Ensure the Board type, COM port, etc. are correctly set in the Arduino IDE.
  • In Arduino IDE select external editor (File -> Preferences -> Settings Use External editor
  • Ensure the serial port monitor is not open.