Multiple (2 or More!) monitor support
Posted: Mon Aug 08, 2022 9:07 am
Someone on the Swamp was complaining recently about multiple monitor support for SW. Basically (as far as I know) the only real "support" there is for multiple monitors is the "span" button that will spread the main SW application across two monitors and the little left and right buttons on the individual windows. Both of these things really only support 2 monitors. Additionally, clicking on the little left and right buttons actually activates the window, taking extra processing time.
Attached is a macro that uses Windows API to move the window under the mouse cursor to the left or right. It moves any window, not just the active one. It reads the size of your SW window and determines which monitors SW is actually displayed on. If SW is spanned across more than two monitors (there's no upper limit) it will divide the space up and move windows left or right. If SW is only displayed on a single monitor, it will split the working area in half (or more, depending on a constant at the top of the code). If the window is already as far as it can go in the chosen direction, it will instead maximize the window across the whole working space. It is super fast because it just uses Windows API, it does NOT activate the window.
I have used a version of this for years because it's so much faster and easier to use, both from the actual speed of execution and the ease of activating it. No clicky-clicky on a tiny button.
This also gives you a leeetle more modeling space, because it intentionally oversizes each window by a small amount (9px I believe) so that the window border is outside the working space.
This macro has to be mapped to a shortcut key. If you try to map it to a toolbar button then your mouse will not be over a window, so nothing will move. If you try to map it to a mouse gesture it will sort-of work, except that mouse gestures only work if the mouse is over the active window. This negates a main benefit of this macro which is that it works on active or inactive windows.
I have found that the most useful thing is to map the macro to my fwd and back mouse buttons. This is easy to do if you have a Logitech or other type of mouse that has application-specific settings. Since SW doesn't use the fwd and back buttons for anything, you can use the mouse driver to map them to shortcut keys for SW only.
However, this is a little limiting if you have multiple different mice, or if your mouse (like my ergonomic mouse) doesn't have software for mapping those buttons. So, I've attached another file. This one is an EXE file that was made using AutoHotKey. All it does is re-map the fwd and back buttons for SW only to Ctrl+Shift+L and Ctrl+Shift+R. You can drop this EXE file into your Startup folder and it will load up whenever you start Windows. If you already use AHK, here is the entire script that generated the .exe:
Attached is a macro that uses Windows API to move the window under the mouse cursor to the left or right. It moves any window, not just the active one. It reads the size of your SW window and determines which monitors SW is actually displayed on. If SW is spanned across more than two monitors (there's no upper limit) it will divide the space up and move windows left or right. If SW is only displayed on a single monitor, it will split the working area in half (or more, depending on a constant at the top of the code). If the window is already as far as it can go in the chosen direction, it will instead maximize the window across the whole working space. It is super fast because it just uses Windows API, it does NOT activate the window.
I have used a version of this for years because it's so much faster and easier to use, both from the actual speed of execution and the ease of activating it. No clicky-clicky on a tiny button.
This also gives you a leeetle more modeling space, because it intentionally oversizes each window by a small amount (9px I believe) so that the window border is outside the working space.
This macro has to be mapped to a shortcut key. If you try to map it to a toolbar button then your mouse will not be over a window, so nothing will move. If you try to map it to a mouse gesture it will sort-of work, except that mouse gestures only work if the mouse is over the active window. This negates a main benefit of this macro which is that it works on active or inactive windows.
I have found that the most useful thing is to map the macro to my fwd and back mouse buttons. This is easy to do if you have a Logitech or other type of mouse that has application-specific settings. Since SW doesn't use the fwd and back buttons for anything, you can use the mouse driver to map them to shortcut keys for SW only.
However, this is a little limiting if you have multiple different mice, or if your mouse (like my ergonomic mouse) doesn't have software for mapping those buttons. So, I've attached another file. This one is an EXE file that was made using AutoHotKey. All it does is re-map the fwd and back buttons for SW only to Ctrl+Shift+L and Ctrl+Shift+R. You can drop this EXE file into your Startup folder and it will load up whenever you start Windows. If you already use AHK, here is the entire script that generated the .exe:
Code: Select all
#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
; #Warn ; Enable warnings to assist with detecting common errors.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
#IfWinActive ahk_exe SLDWORKS.exe
XButton1::^+R
XButton2::^+L