Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

User Image
Troy Gates
1 discussion post
I have a Surface Book that I use in laptop mode (3k screen) and in a docked mode on my desk (2 - 1920x1200 monitors). I am always rearranging my program windows if I open them on one or the other modes depending on which mode I used last.

I would like to request a feature that remembers multiple locations and sizes of designated programs, so I can quickly restore the programs to the best location based on which mode I am currently in.
Jan 26, 2016  • #1
User Image
NetMage
282 discussion posts
A script could probably be written to handle this, though I don't see one already done in the library. It could perhaps be combined with monitor profiles and/or with window open events to automatically place windows.
Jan 27, 2016 (modified Jan 27, 2016)  • #2
User Image
Chris295
3 discussion posts
Hi. I don't have a script to do this, but I can recommend a tool called WindowManager (not free, but only 10 USD) that does the trick. It even supports different profiles which can be triggered by the different screen resolutions.

http://www.desksoft.com/WindowManager.htm

I tried many tools and - for me - this is the best solution.
Jan 27, 2016  • #3
User Image
Jeffen Nilsson
112 discussion posts
go to settings > functions and under the window management tab there are 2 options
Jan 27, 2016  • #4
Keith Lammers (BFS)'s profile on WallpaperFusion.com
This can be indeed be done with a couple of scripted functions, and with the latest beta, you could set them up to run when the monitor profile changes. Setting it up is a little more involved than the WindowManager app that Chris295 mentioned, but if you'd like further instructions, please let me know.

Thanks!
Jan 28, 2016  • #5
User Image
andyf
8 discussion posts
Hi Keith,

I'm also interested in being able to have separate window locations per monitor profile - would you be able to provide me with the further instructions as mentioned? Sounds interesting!
Feb 18, 2016  • #6
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Basically you want trigger rules to run scripted functions that will move the windows.

You can add a Trigger rule on the Settings > Triggers tab. The Event should be "Monitor Profile Changed," and then you'll select the Monitor Profile in the Match Conditions section. Then in the Actions section, add a new Scripted Function, and use the following code:

Code

using System;
using System.Drawing;

public static class DisplayFusionFunction
{
public static void Run()
{
IntPtr window = BFS.Window.GetWindowByText("*Firefox*");
BFS.Window.SetSizeAndLocation(window, 0, 0, 800, 600);
}
}


That code will find the main Firefox window and move it to the top-left of the primary (0, 0) and set it's size to 800 x 600. You can duplicate those two lines and edit them as necessary for other programs.

You can then repeat the above steps for the other monitor profiles, modifying the locations/sizes as needed.

Hope that makes sense! If you get stuck, let me know and I'll take some more time to write up better step-by-step instructions with examples.
Feb 22, 2016  • #7
User Image
andyf
8 discussion posts
Keith,

That generally works great! I have two follow-up questions:

1) When I change monitor profile, a notification fires telling me one of the scripted functions has run. Is there anyway to disable this notification? I couldn't see anything obvious in the options.

2) One particular app (Teamspeak 3) doesn't *appear* to be selectable by either Text or Class. I think this might be because it's a Qt5 application? I'm not too familiar with C# but I'll have a look at trying some things out to figure out how to select it. I did try selecting it while making a new trigger, to Resize a window to a specific size + location, with the little draggable target icon - which told me the window text was "TeamSpeak 3", but no combination seemed to work for the script.
Feb 23, 2016  • #8
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Excellent, glad to hear it! You can disable the tray notifications using the "General: Don't show tray icon notification balloons" option in the Settings > Advanced Settings window.

Regarding TeamSpeak, I can reproduce the same behaviour here. Using "BFS.Window.MoveToNextMonitor" on it works fine, but "BFS.Window.SetSizeAndLocation" doesn't. I've added this to our list and we'll see if we can fix it up :)

Thanks!
Feb 23, 2016  • #9
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)