Processing Ajax...

Title
Close Dialog

Message

Confirm
Close Dialog

Confirm
Close Dialog

Confirm
Close Dialog

User Image
Jeffen Nilsson
114 discussion posts
Some suggestions/questions here.

-

Automatic display profile switch

I use my 5 (4 + TV) monitors in 2 different configurations.

The first of which is 4 monitors in this configuration with the profile: Main.
http://puu.sh/pLhlO/6e1f10d208.png


The second which is only my TV with the profile: TV.
http://puu.sh/pLhsP/33d44f808a.jpg


I switch between these 2 configurations by turning the TV ON/OFF with my TV remote.
When the TV is ON, all other displays become disabled. When the TV is OFF it is not detected by Windows and in turn will enable the 4 other monitors.

When i turn the TV ON the profile switches automatically to TV with no hassles and works as intended.

When i turn the TV OFF however the 4 monitors go in their specific positions but the Main profile doesn't activate.

I always have to manually switch the monitor profile to Main which is an annoying problem that i would like fixed.

-

Taskbar movement on profile switch

I remember asking about this a year ago but i thought I'd ask again with the release of windows 10 if anything has changed.

I want my Taskbar position to be saved alongside my monitor profiles so that in my Main profile its on the right-hand side of monitor 3 and on my TV profile its on the left-hand side.

-

Triggers on monitor profile switch

There is already an Event called "Monitor Profile Changed" but it's either bugged, not implemented correctly, or disappointing.

Right now almost everything is greyed out and there is nothing you can do except show a notification or run a function.
http://puu.sh/pLipv/61448b6455.png


I would like a 'Process Filename' Waterfox window with the 'Window Text' "Gmail" 'Move Window to Selected Monitor' 3 and 'Maximize Window' when switching to 'Monitor Profile' Main

Right now I can only do one of these which is the Monitor profile without the other conditions/actions being pretty useless by itself.

-
Jun 30, 2016  • #1
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Automatic display profile switch: It's actually Windows that's enabling/positioning the monitors when you power the TV off. Normally, DisplayFusion will "detect" the layout and show the Monitor Profile name that matches it, but because of the monitor splits you have configured, it doesn't actually match. If you're looking to have the splits automatically loaded, you could save the layout without splits as a different "temp" profile, then use a "Monitor Profile Changed" Trigger rule to load the "Main" profile when it detects the "temp" profile. That way, Windows will enable the monitors, DisplayFusion will detect that as the "temp" profile, then apply the "Main" profile.

Taskbar movement on profile switch: This is still open on our feature request list, but we don't have an ETA on when it might be implemented, sorry.

Triggers on monitor profile switch: I think there's just some confusion over how the Triggers work with application windows. In order for a Trigger rule to move an application window, it needs to be passed a window handle. That can only happen for certain events, like "Window Created," "Window Focused," etc. The "Monitor Profile Changed" event doesn't concern a specific window, thus, no window handle to pass to the Trigger. You can do what you're looking for, but you'd need to create a Scripted Function that will find and move the window, and then you'd have the Trigger rule run the Scripted Function. I've attached a copy of some code that should do the trick for you.

Thanks!
• Attachment: WaterfoxScript.txt [343 bytes]
Jun 30, 2016 (modified Jun 30, 2016)  • #2
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Automatic display profile switch: It's actually Windows that's enabling/positioning the monitors when you power the TV off. Normally, DisplayFusion will "detect" the layout and show the Monitor Profile name that matches it, but because of the monitor splits you have configured, it doesn't actually match. If you're looking to have the splits automatically loaded, you could save the layout without splits as a different "temp" profile, then use a "Monitor Profile Changed" Trigger rule to load the "Main" profile when it detects the "temp" profile. That way, Windows will enable the monitors, DisplayFusion will detect that as the "temp" profile, then apply the "Main" profile.

Taskbar movement on profile switch: This is still open on our feature request list, but we don't have an ETA on when it might be implemented, sorry.

Triggers on monitor profile switch: I think there's just some confusion over how the Triggers work with application windows. In order for a Trigger rule to move an application window, it needs to be passed a window handle. That can only happen for certain events, like "Window Created," "Window Focused," etc. The "Monitor Profile Changed" event doesn't concern a specific window, thus, no window handle to pass to the Trigger. You can do what you're looking for, but you'd need to create a Scripted Function that will find and move the window, and then you'd have the Trigger rule run the Scripted Function. I've attached a copy of some code that should do the trick for you.

Thanks!


Automatic display profile switch: Profile switching worked as intended

Taskbar movement on profile switch: Does this mean it's not confirmed that it actually works and its just on the list to be tested? or is it confirmed to work but it hasn't gotten to the implementation stage yet?

Triggers on monitor profile switch: using the exact script i get this error
Compile Failed.
Line 9: Cannot implicitly convert type 'System.IntPtr[]' to 'System.IntPtr'


Error in the code which said GetWindowsByText instead of GetWindowByText.


I have 3 splits on my top middle monitor how do i differentiate between these 3? 5.1 5.2 and 5.3 don't seem to work and i get this error
Line 21: The best overloaded method match for 'BFS.WindowDF.MoveToMonitorMaximized(uint, System.IntPtr)' has some invalid arguments
Line 21: Argument 1: cannot convert from 'double' to 'uint'


0 instead of a . so 501 502 503


If i have 1 waterfox window with 2 different window texts depending on which tab is open is there a way to combine them or do i have to write it out separately like this?

Code

IntPtr windowHandle2 = BFS.Window.GetWindowByText("*Inbox*Waterfox*");
IntPtr windowHandle21 = BFS.Window.GetWindowByText("*all subreddits*Waterfox*");
BFS.Window.MoveToMonitorMaximized(3, windowHandle2);
BFS.Window.MoveToMonitorMaximized(3, windowHandle21);


If i want ALL google chrome windows to maximize on monitor 1 how do i do that?

Is there some way to force IDs to certain monitors because they seem to switch around randomly and thus not activating the profiles correctly.

Yet another problem with Waterfox when running the

Code

BFS.Window.MoveToMonitorMaximized(3, windowHandle2);

If the windows are in windowed mode there is no problem, but if they are minimized with the script running they maximize properly but when Restoring them they warp to this tiny size.
http://puu.sh/pNAKF/10fa6a2049.png


I tried the same thing with google chrome and i did not have the problem.

I'll see if i can get in touch with alex from waterfox when hes back from holiday and see if there is something he can do (if the problem is not with DP of course).

On an unrelated note the "dim all monitors except primary" pre-made function only gives me these boxes in the top left of my primary monitor
http://puu.sh/pNC3O/4c7c619b78.png
Jul 1, 2016 (modified Jul 4, 2016)  • #3
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Taskbar movement on profile switch: Haven't started work on it, so nothing can be confirmed at this point.

2 different Waterfox tabs: You can just use *Waterfox*, then it will move any window that has Waterfox in the title.

Forcing all Google Chrome windows to monitor 1: See attached Scripted Function.

Monitor IDs: It's not possible to change the monitor IDs, unfortunately.

Minimized Waterfox issue: We had something similar with Firefox that we had to workaround. I've put this on our list, as it might just be a matter of applying the same workaround to Waterfox.

Dim all monitors except primary: Thanks for letting us know, we'll update the script :)
Jul 5, 2016  • #4
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Taskbar movement on profile switch: Haven't started work on it, so nothing can be confirmed at this point.

2 different Waterfox tabs: You can just use *Waterfox*, then it will move any window that has Waterfox in the title.

Forcing all Google Chrome windows to monitor 1: See attached Scripted Function.

Monitor IDs: It's not possible to change the monitor IDs, unfortunately.

Minimized Waterfox issue: We had something similar with Firefox that we had to workaround. I've put this on our list, as it might just be a matter of applying the same workaround to Waterfox.

Dim all monitors except primary: Thanks for letting us know, we'll update the script :)


2 different Waterfox tabs: i have 2 waterfox WINDOWS open where i only want 1 of those windows to maximize on monitor 3, that window could be on 2 different TABS which is what im asking about.

Forcing all Google Chrome windows to monitor 1: No attachment to your post from what i can see, and if you're talking about the WaterfoxScript.txt from the earlier post it is broken

Code

Line 9: Cannot implicitly convert type 'System.IntPtr[]' to 'System.IntPtr'


Monitor IDs: Any idea why my monitor id's keep jumping around like this then?
https://puu.sh/pSci1/4c674599a1.png
http://puu.sh/pLhlO/6e1f10d208.png


thanks
Jul 6, 2016  • #5
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Woops! Of course I forgot to attach it :)

I've attached the Chrome script, as well as an updated Waterfox script. Your method will work fine as well, just thought I'd provide an example of a different way to do it.

Regarding the IDs changing, are the IDs in the Windows display settings also changing? How often does it seem to happen? I've seen that happen some times when switching between cloned/extended setups, and also when updating video card drivers.
• Attachment: Move All Chrome Windows to Monitor 1.txt [568 bytes]
• Attachment: WaterfoxScriptv2.txt [753 bytes]
Jul 6, 2016  • #6
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Woops! Of course I forgot to attach it :)

I've attached the Chrome script, as well as an updated Waterfox script. Your method will work fine as well, just thought I'd provide an example of a different way to do it.

Regarding the IDs changing, are the IDs in the Windows display settings also changing? How often does it seem to happen? I've seen that happen some times when switching between cloned/extended setups, and also when updating video card drivers.


scripts work as they should.

windows display settings compared to displayfusion settings
http://puu.sh/pTqsz/a365fba79a.png


it happens when the middle monitor is turned OFF when i turn OFF the TV to switch to the Main profile
so i get this
http://puu.sh/pTqLa/556a8a0406.png


when i then turn on the middle monitor i get the mismatched IDs

This also happens sometimes when i switch from Main to TV but i don't know the exact cause yet.

This is how it looks when i load Main as it should
http://puu.sh/pTrhJ/9cbda1b51d.png


Since windows display settings is the same it seems to be something to do with displayfusion
Jul 7, 2016 (modified Jul 7, 2016)  • #7
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Ok, thanks! I'm going to check with our devs to see what other info we can get from you to help here.
Jul 7, 2016  • #8
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Could you download the "CustomerTest.exe" tool below, and attach the output from it when the IDs are fine, and again when the IDs are messed up? Note that you should fully close the app and re-open it after the IDs are messed up, just to make sure it's refreshed properly.

https://www.binaryfortress.com/Files/DisplayFusion/CustomerTest.exe

Thanks!
Jul 13, 2016  • #9
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Could you download the "CustomerTest.exe" tool below, and attach the output from it when the IDs are fine, and again when the IDs are messed up? Note that you should fully close the app and re-open it after the IDs are messed up, just to make sure it's refreshed properly.

https://www.binaryfortress.com/Files/DisplayFusion/CustomerTest.exe

Thanks!


So sorry for the 2 month delay, my 4k main monitor broke and the first 2 replacements i got sent were DOA whereas the 3rd one worked as it should.

Attached are the 2 text files for when the IDs are Fine and when they are Messed.

Fine
https://puu.sh/pLhlO/6e1f10d208.png


Messed
http://puu.sh/r2VUo/aa8e6944f5.png
• Attachment [protected]: Main CustomerTest Fine.txt [46,106 bytes]
• Attachment [protected]: Main CustomerTest Messed.txt [46,106 bytes]
Sep 7, 2016 (modified Sep 7, 2016)  • #10
User Image
Jeffen Nilsson
114 discussion posts
Another post for the TV IDs

Fine
https://puu.sh/r3Kh5/ad2d1c5431.jpg


Messed
https://puu.sh/r3K5H/47856a8da7.jpg
• Attachment [protected]: TV CustomerTest Fine.txt [62,620 bytes]
• Attachment [protected]: TV CustomerTest Messed.txt [62,425 bytes]
Sep 8, 2016  • #11
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Sorry for the delay on this! I'm going to need to reproduce this issue here in order for us to be able to fix it up. I've got a test machine that I'm going to test a bunch of different configurations with, so we'll see what I can come up with. I will post an update when I do have more news.

Thanks!
Sep 19, 2016  • #12
User Image
Jeffen Nilsson
114 discussion posts
I bought a new graphics card (GTX 1080), switched the previous DVI cables to DP cables, now just running with DP and HDMI cables.

still have the same problem.

Fine
https://puu.sh/sgfEQ/4da36c1a95.png


Messed
https://puu.sh/sgfsl/59375ce082.png
• Attachment [protected]: Main CustomerTest Fine 1080.txt [42,000 bytes]
• Attachment [protected]: Main CustomerTest Messed 1080.txt [42,000 bytes]
Nov 13, 2016 (modified Nov 13, 2016)  • #13
User Image
Jeffen Nilsson
114 discussion posts
Any update yet Keith?
Dec 15, 2016  • #14
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Not yet sorry. I still haven't been able to reproduce it with any of the configurations I have for testing. I'm leaving this on my list though, and I'll definitely let you know if/when I make some progress on it.
Dec 17, 2016  • #15
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Not yet sorry. I still haven't been able to reproduce it with any of the configurations I have for testing. I'm leaving this on my list though, and I'll definitely let you know if/when I make some progress on it.


Could it have something to do with me using 2 different GPUs? im using a 780 through DP to the top middle monitor. With the 1080 im using HDMI for the TV and DP for the other 3. (previously i used the onboard graphics for my top middle monitor)

Is it possible to force numbers on monitors corresponding to their connector on the graphics card?

Why arent windows and displayfusion monitor IDs the same?
Dec 17, 2016 (modified Dec 17, 2016)  • #16
User Image
Jeffen Nilsson
114 discussion posts
Okay lets see if i can try to write out what happens so you can reproduce it as well as possible.

first of all i use 2 GPUs, one 780 and one 1080 (not sure if it is relevant).
The 780 has one connection going to the top middle monitor via Displayport
The 1080 has 4 connections, 1 of them going to the TV via HDMI and 3 connections going to the left, center, and right monitors via Displayport.

We start of with only the TV enabled with the top middle, left, right monitors disabled whereas the middle monitor is disconnected.

Now we disconnect the TV (from shutting it off via remote) which in turn will enable the 3 currently disabled monitors (windows enables the 3 monitors automatically after detecting the TV being disconnected).

With the 3 monitors enabled we now connect the middle monitor and now the IDs are mismatched.

Due to a quirk of my middle monitor, after being in the idle state for a certain amount of time it automatically shuts off which disconnects it from the PC since it has no power to keep it going.

If i disconnect my TV with the middle monitor in power-saving mode i do not have any problem.

My middle monitor is a MST (Multi-stream transport) enabled monitor
Dec 19, 2016 (modified Dec 19, 2016)  • #17
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Thanks! I'll keep you posted if/when I make some progress on testing here :)
Dec 20, 2016  • #18
User Image
Jeffen Nilsson
114 discussion posts
I tried some other stuff which i probably shouldve done from the beginning.

I posted a topic about monitor profiles not saving correctly here: https://www.displayfusion.com/Discussions/View/monitor-profiles-doesnt-save-correctly/?ID=153fa8bb-2cf0-48b6-8cf1-98ec264af198

where you told me to enable the "Use Classic Get/Set Functions" advanced option.

Disabling that option SEEMS to have fixed this problem, i cannot recreate it by the previous troubleshooting steps anymore but i'm not sure if that is going to be messing with my profiles again.

also when im using the TV profile with that option disabled my TV ID is 4 normally, but after a few hours my middle monitor turns off which rearranges the monitors in displayfusion and changes my TV ID to 3.

Frustrating stuff :-[
Dec 23, 2016 (modified Dec 23, 2016)  • #19
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Ah, interesting! Glad to hear that's fixed this issue. With the middle monitor turning off after a few hours, is it doing that on its own while you're using the computer? Or do you mean that when the monitors go to sleep, the middle one turns off and causes the monitor re-detection to occur?
Dec 23, 2016  • #20
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Ah, interesting! Glad to hear that's fixed this issue. With the middle monitor turning off after a few hours, is it doing that on its own while you're using the computer? Or do you mean that when the monitors go to sleep, the middle one turns off and causes the monitor re-detection to occur?


It happens while im using the computer
It happens when im using the TV profile, as in all monitors except for the TV are disabled
Dec 24, 2016 (modified Dec 24, 2016)  • #21
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Ah, I see! It sounds like the monitor itself has a power saving mode that's causing it to turn off. Does it use an HDMI or DisplayPort cable?
Dec 30, 2016  • #22
User Image
Jeffen Nilsson
114 discussion posts
Quote:
Ah, I see! It sounds like the monitor itself has a power saving mode that's causing it to turn off. Does it use an HDMI or DisplayPort cable?


It uses displayport, it is the ASUS PQ321QE, one of the "old" 4K monitors with a single displayport connector

By the way, did you ever get a fix for the waterfox windows resizing to some weird dimensions i posted about last year? i still have this problem

https://puu.sh/t5Svw/18d8a539c0.png


its a Christmas miracle! the IDs in windows match up with the DP IDs
https://puu.sh/t5VHy/45fbf95fdd.png


i doubt it's gonna last but ill keep testing and see what sticks.
Dec 30, 2016 (modified Dec 30, 2016)  • #23
Keith Lammers (BFS)'s profile on WallpaperFusion.com
That's good news about the monitor IDs! I'm starting to wonder if the monitor ID issue might only be a problem with newer NVIDIA cards. I can't reproduce it on my 650 Ti here, but you and other customers that are running into issues with the IDs are all using a GTX 960 or higher. I'm going to see if we can get our hands on a newer card to test with further.

Regarding the Waterfox thing, I was never able to reproduce that. Can you give me the exact steps to reproduce it again? I'll give it another go and see what I can find out.
Jan 17, 2017  • #24
User Image
Jeffen Nilsson
114 discussion posts
Quote:
That's good news about the monitor IDs! I'm starting to wonder if the monitor ID issue might only be a problem with newer NVIDIA cards. I can't reproduce it on my 650 Ti here, but you and other customers that are running into issues with the IDs are all using a GTX 960 or higher. I'm going to see if we can get our hands on a newer card to test with further.

Regarding the Waterfox thing, I was never able to reproduce that. Can you give me the exact steps to reproduce it again? I'll give it another go and see what I can find out.


The monitor IDs seem to have stuck so it must've been one of those settings.

I'm not quite sure how i can reproduce now since i have changed so much in the setup and settings so the old way doesn't work any more.

I remember it having to do with the save/restore window positions after windows power saving turns off the displays. Trying to replicate it the old way doesn't have a problem any more.

(I also remember you saying something about a workaround that you did for firefox and you would see about implementing it to waterfox as well but i could be completely misremembering here.)

Now however im using triggers and a custom function for when im switching from watching on the TV to sitting by the desk

Code

using System;
using System.Drawing;

public static class DisplayFusionFunction
{
public static void Run()
{

// Get all window handles
IntPtr[] windowHandles = BFS.Window.GetAllWindowHandles();

foreach (IntPtr window in windowHandles)
{
            string windowTitle1 = BFS.Window.GetText(window);
            if ((windowTitle1.Contains("YouTube") && windowTitle1.Contains("Chromium")))
                BFS.Window.MoveToMonitorMaximized(3, window);

            string windowTitle = BFS.Window.GetText(window);
            if ((windowTitle.Contains("all (filtered)") && windowTitle.Contains("Waterfox")) || (windowTitle.Contains("Inbox") && windowTitle.Contains("Waterfox")) || (windowTitle.Contains("DisplayFusion") && windowTitle.Contains("Waterfox")))
                BFS.Window.MoveToMonitorMaximized(4, window);
}
        
        
            // Find the * window
            
IntPtr windowHandle1 = BFS.Window.GetWindowByText("*Reading List - Novel Updates*Waterfox*");
IntPtr windowHandle4 = BFS.Window.GetWindowByText("*µTorrent*");
IntPtr windowHandle5 = BFS.Window.GetWindowByText("*Foobar2000*");
IntPtr windowHandle6 = BFS.Window.GetWindowByText("*TeamSpeak*");
IntPtr windowHandle7 = BFS.Window.GetWindowByText("*mIRC*");
IntPtr windowHandle8 = BFS.Window.GetWindowByText("FAHControl - Folding@home Client Advanced Control");

            // maximize windows
                   
BFS.Window.MoveToMonitorMaximized(2, windowHandle1);
BFS.Window.MoveToMonitorMaximized(102, windowHandle4);
BFS.Window.MoveToMonitorMaximized(102, windowHandle5);
BFS.Window.MoveToMonitorMaximized(104, windowHandle6);
BFS.Window.MoveToMonitorMaximized(103, windowHandle7);
BFS.Window.MoveToMonitorMaximized(101, windowHandle8);
}
}


I sometimes get some buggy behavior when running this function but i was going to make another thread for some other issues i have and maybe we can solve it there.
Jan 24, 2017 (modified Jan 24, 2017)  • #25
Keith Lammers (BFS)'s profile on WallpaperFusion.com
Ok, sounds good. I'll follow-up in the new thread. If you can, please make a new thread for each separate issue. It makes it easier to track from my end :)

Thanks!
Jan 24, 2017  • #26
Keith Lammers (BFS)'s profile on WallpaperFusion.com
We've just released DisplayFusion 9.2 Beta 2, and it should hopefully fix up the issues you were running into. Note that you should overwrite or save new versions of your Monitor Profiles after updating. Please let us know how it works out when you've had a chance to give it a go.

Thanks!
May 4, 2018  • #27
Subscribe to this discussion topic using RSS
Was this helpful?  Login to Vote(-)  Login to Vote(-)