falahati / heliosdisplaymanagement Goto Github PK
View Code? Open in Web Editor NEWAn open source display profile management program for Windows with support for NVIDIA Surround
License: GNU General Public License v2.0
An open source display profile management program for Windows with support for NVIDIA Surround
License: GNU General Public License v2.0
If I have any profiles saved when I right click or open the context menu for any exe or shortcut throughout my computer (desktop, explorer, not start menu icons) the software attempts to load the first profile. This makes my context menu useless for mostly everything. I love the program you have here and I am trying to modify my DisplayProfiles xml to work with my surround setup as amasover detailed in another issue. Looking for a way to resolve this myself but felt like reporting it. I am a software engineer and would love to help, let me know what I can do!
I didn't have much hope, but I tried this tool on my ZBook 17 G4 with a Quadro P5000 but (as I expected) it does not successfully switch to a Mosaic profile. Is there any chance of implementing this in the future, or is the implementation of Mosaic too different from Surround? I really wish the Nvidia Control Panel saved profiles for Mosaic, rather than making me go through the setup every time.
Describe the bug
When I have my HP Reverb G2 VR headset connected and start Helios Display Management, I get an Unhandled exception error from the .NET Framwork.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
No error when VR headset connected.
Reporting Logs
I can attach more logs later if needed but here's the "Details" from the dialog shown in the screenshot:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
WindowsDisplayAPI.Exceptions.InvalidEDIDInformation: EDID does not contain necessary information.
at WindowsDisplayAPI.DisplayConfig.PathDisplayTarget.get_EDIDManufactureId()
at WindowsDisplayAPI.DisplayConfig.PathDisplayTarget.get_EDIDManufactureCode()
at HeliosDisplayManagement.Shared.NVIDIA.SurroundTopology.FromPathTargetInfo(PathTargetInfo pathTargetInfo)
at HeliosDisplayManagement.Shared.Topology.PathTarget..ctor(PathTargetInfo targetInfo, SurroundTopology surround)
at HeliosDisplayManagement.Shared.Topology.Path.<>c.<.ctor>b__0_0(PathTargetInfo target)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at HeliosDisplayManagement.Shared.Topology.Path..ctor(PathInfo pathInfo)
at HeliosDisplayManagement.Shared.Profile.<>c.<GetCurrent>b__23_0(PathInfo info)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at HeliosDisplayManagement.Shared.Profile.GetCurrent(String name)
at HeliosDisplayManagement.Shared.Profile.get_IsActive()
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at HeliosDisplayManagement.UIForms.MainForm.ReloadProfiles()
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
HeliosDisplayManagement
Assembly Version: 0.9.5.25264
Win32 Version: 0.9.5.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HeliosDisplayManagement.exe
----------------------------------------
HeliosDisplayManagement.Shared
Assembly Version: 0.9.5.25264
Win32 Version: 0.9.5.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HeliosDisplayManagement.Shared.DLL
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4200.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.ServiceModel
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel/v4.0_4.0.0.0__b77a5c561934e089/System.ServiceModel.dll
----------------------------------------
System.ServiceModel.Internals
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel.Internals/v4.0_4.0.0.0__31bf3856ad364e35/System.ServiceModel.Internals.dll
----------------------------------------
SMDiagnostics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/SMDiagnostics/v4.0_4.0.0.0__b77a5c561934e089/SMDiagnostics.dll
----------------------------------------
Microsoft.VisualStudio.Diagnostics.ServiceModelSink
Assembly Version: 4.0.0.0
Win32 Version: 14.0.23107.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualStudio.Diagnostics.ServiceModelSink/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualStudio.Diagnostics.ServiceModelSink.dll
----------------------------------------
System.Runtime.Serialization
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.IdentityModel
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.IdentityModel/v4.0_4.0.0.0__b77a5c561934e089/System.IdentityModel.dll
----------------------------------------
NvAPIWrapper
Assembly Version: 0.6.1.15
Win32 Version: 0.6.1.15
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/NvAPIWrapper.DLL
----------------------------------------
Newtonsoft.Json
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2.21924
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/Newtonsoft.Json.DLL
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
WindowsDisplayAPI
Assembly Version: 1.2.0.1
Win32 Version: 1.2.0.1
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/WindowsDisplayAPI.DLL
----------------------------------------
CommandLine
Assembly Version: 1.9.71.2
Win32 Version: 1.9.71.2
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/CommandLine.DLL
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Enviroment (please complete the following information):
First of, thank you for developing this tool! This made Nvidia surround finally worth using.
I have 2 saved profiles between which I switch with shortcuts. 1 is 3 display as surround together with 1 display apart and another profile is just the 4 displays apart. Switching between those mostly works just fine but I have had the problem that after switching my taskbar on my main monitor ends up on top of my screen.
I need to go in to settings and manually change it from "custom" to "bottom".
It does not always happen but sometimes it does. Any idea??
I wanted to make a simple labeled button on my stream deck but when I have it run the shortcut it just opens the app
I Used the specific shortcut to change from turning nvidia surround off and on
Is there a way I could force it to run through the shortcut and not to shoot specificly to the app because I can right click on the shortcut "open File Location" and it'll take me to the exact exe Stream Deck is trying to open (whitch is the configure page)
Hello!
I just found your tool and tried to test it, but I always get the "Microsoft .NET Framework" error message "EDID does not contain necessary information" when I try to start Helios. Could you please fix/explain this error?
Marc
This app is brilliant as I use a few setups I use with this app.
NVSurround + Intel - 3 (surround) +1 (accessory) Nvidia +1 Intel
Standard all 5 monitors - 5 seperate monitors 4 Nvidia + 1 Intel
TV (accessory HDMI switch box) - 3 (surround) + 1 (TV as primary) Nvidia + 1 Intel
VR (Displayport switch box) - 3 seperate Nvidia + Rift S headset + 1 Intel
Would love to rename my configs from [Current] (1) (1) etc but those options are saying not available in this version 0.9.5.25264
I hope the project isn't abandoned as this is brilliant for my needs and people like me would really benefit from this.
Hey
New to this excellent tool.
But in my installation I'm not getting the context menu /Shell extension from the desktop. There's no 'Display Profiles' menu.
I don't know if I'm alone. But I tried searching and found no other reports.
As a side note: I'm running Display Fusion too - maybe there's a conflict?
The shortcuts created and running the commands in command prompt doesn't work. When I double click the shortcut or try to run the command line nothing happens.
Even if it is set to run as administrator still nothing happens.
i.e: C:>"C:\Program Files\Helios Display Management\HeliosDisplayManagement.exe" -a SwitchProfile -p "{f1bc9d3b-404b-437f-90f6-7ddb9a12ec54}"
Hey,
I threw together a readme file. Unsure if this is useful to you, or how you would want to write it, or if it's even accurate (I was poking around and reworded some things), but might help as a basis (with as much information as I could get out of the program, using it, and what you had for issues / enhancements etc).
Don't feel obligated to use it and I won't mind at all if you don't, I just felt like helping out a little as the program, even in it's incomplete state, has drastically improved some of my gaming experience.
Had to fudge the file extension to upload it.
I left the license section blank so you can choose what to put in there, or it can get filled out properly later.
Describe the bug
Attempts to create a shortcut for a Steam game fail every time, even after program reinstallation.
To Reproduce
There are basically 2 error messages which I believe are related directly.
Steps to reproduce error 1:
Steps to reproduce error 2:
Details:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ArgumentNullException: Value cannot be null.
Parameter name: source
at System.Linq.Enumerable.Select[TSource,TResult](IEnumerable`1 source, Func`2 selector)
at HeliosDisplayManagement.Steam.SteamGame.<GetIcon>b__40_0()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at HeliosDisplayManagement.UIForms.SteamGamesForm.<SteamGamesForm_Load>d__7.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
HeliosDisplayManagement
Assembly Version: 0.9.5.25264
Win32 Version: 0.9.5.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HeliosDisplayManagement.exe
----------------------------------------
HeliosDisplayManagement.Shared
Assembly Version: 0.9.5.25264
Win32 Version: 0.9.5.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HeliosDisplayManagement.Shared.DLL
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4300.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4341.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4190.0 built by: NET48REL1LAST_B
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.ServiceModel
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel/v4.0_4.0.0.0__b77a5c561934e089/System.ServiceModel.dll
----------------------------------------
System.ServiceModel.Internals
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel.Internals/v4.0_4.0.0.0__31bf3856ad364e35/System.ServiceModel.Internals.dll
----------------------------------------
SMDiagnostics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/SMDiagnostics/v4.0_4.0.0.0__b77a5c561934e089/SMDiagnostics.dll
----------------------------------------
System.Runtime.Serialization
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.IdentityModel
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4250.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.IdentityModel/v4.0_4.0.0.0__b77a5c561934e089/System.IdentityModel.dll
----------------------------------------
NvAPIWrapper
Assembly Version: 0.6.1.15
Win32 Version: 0.6.1.15
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/NvAPIWrapper.DLL
----------------------------------------
Newtonsoft.Json
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2.21924
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/Newtonsoft.Json.DLL
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4270.0 built by: NET48REL1LAST_C
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
WindowsDisplayAPI
Assembly Version: 1.2.0.1
Win32 Version: 1.2.0.1
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/WindowsDisplayAPI.DLL
----------------------------------------
CommandLine
Assembly Version: 1.9.71.2
Win32 Version: 1.9.71.2
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/CommandLine.DLL
----------------------------------------
Accessibility
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0 built by: NET48REL1
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
Microsoft.CSharp
Assembly Version: 4.0.0.0
Win32 Version: 4.8.4084.0
CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.CSharp/v4.0_4.0.0.0__b03f5f7f11d50a3a/Microsoft.CSharp.dll
----------------------------------------
HtmlAgilityPack
Assembly Version: 1.8.9.0
Win32 Version: 1.8.9
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HtmlAgilityPack.DLL
----------------------------------------
IconLib
Assembly Version: 0.73.0.0
Win32 Version: 0.73.0.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/IconLib.DLL
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Expected behaviour
Shortcut has been placed successfully.
Enviroment (please complete the following information):
Additional context
The issue came up just recently. Have been using the software without any problems for a long time until now.
This issue is not specific to this particular Insider build (18323), but gets worse with the increasing number of new features and improvements to Windows 10.. This is most obvious when using the nVidia control panel to configure Surround mode. The list of programs or features to kill before surround mode can be configured grows longer fast, which I guess is to be expected when using Fast ring Insider builds. And Office 2019 also might add to that list as it is so tightly integrated into Windows 10.
Luckily the list of programs/processes to kill is easily shortened. I did so by simply removing the items from startup or uninstalling them all together, like I did with Skype and Your Phone. But others are more difficult to take care of, like stopping the "StartMenuExperienceHost" service. I guess it is a critical part of the, as the name already suggests, start menu experience. When I removed the executable, I lost the Start menu. The only option left is to stop the process temporarily using the Task Manager. Doing so is extremely annoying as the process almost immediately reappears, only leaving a split second to act.
And now, with the release of the latest nVidia driver, 417.71 with Free Sync support I can finally make use of that feature my monitors have. But when I did so, I could no longer switch from Surround to Extended mode. When using the nVidia control panel to do so, my screens turn black and Windows is still running in the background. Then after 30 seconds or so it crashes and reboots itself.
As you probably already figured out, I am no skilled programmer who can resolve these problems alone. Instead I rely on programs and scripts written by others. This works out fine 95% of the time, but not in this case. I tried DisplayFusion and of course HeliosDisplayManagements, as well as a few others, but none offer a relatively easy way to switch/toggle between surround and extended mode. And that seems the case with most people who are looking for it.
Sorry, this is a long story for 2 rather short questions: a) does Helios offer the features to circumvent (some) of the above issues and am I just not skilled enough to find and make use of them? b) And are you familiar with similar issues related to the latest nVidia driver, particularly when using its Free Sync support?
Thank you!
I have successfully captured two profiles:
Both of the profiles have images that look correct according to the screen layout.
I can switch to the "extended" profile perfectly, however; I cannot load the nVidia surround profile successfully. It seems that the app has problems with nVidia Surround?
Thanks!
Is your feature request related to a problem? Please describe.
v0.9.5.25264
Related: #19 Blackout Screen Timing Customization
I'm not sure if I'm describing a bug, or just a feature that hasn't been implemented yet, but from the profile "Edit" menu, I'm unable to set the name of a given profile after having cloned it.
Instead, my workflow is as follows:
%appdata%\HeliosDisplayManagement.Shared
DisplayProfiles_2.0.json
I find this workflow to be particularly tedious, while I actually don't mind the minor nuisance of having to open a dedicated configuration program such as the NVidia Control Panel to set up the profile parameters.
Additionally, as with #19 , I tend to find that this blackout screen has a greater duration than needed to set up some profiles.
Describe the solution you'd like
I'm aware that the "Edit" menu is currently a placeholder for an AIO configuration interface, however, I wonder if prioritizing application-specific functionality would help get the more important features sorted, and I also do wonder if the "Please wait" timings could be configured on either a global or Per-Profile basis.
In my opinion, actual configuration of profile topologies, etc, isn't really a fundamental requirement of this application, as long as it's able to leverage settings provided by other tools, which it does well, and could after these quality of life enhancements.
*Describe alternatives you've considered
I'm not sure about all the caveats of what makes a profile switch require more, or less time, such as between surround <-> grid, changing of taskbar positions, etc etc , so there's elements of that design I don't really understand.
Also, please advise me of whether there's something I've missed about the renaming interface, and actually its much more straightforward than I just described.
Additional context
Add any other context or screenshots about the feature request here.
Hello,
It seems the tool is not saving the Digital Vibrance when switching from a profile surround to another profile triple screen. I have 2x AOC G2460F and 1x Acer GN246HL.
Will it be possible to add color settings to the parameters?
Let me know if you need any details.
Best Regards
Jimmy
When I click the Paypal link I'm told on the PP page that "This recipient is currently unable to receive money."
I've been a big fan of your Nvidia Surround Toggle tool for some time and only just found this new tool which is awesome btw, but any chance we could get the ability to have a single shortcut toggle between two profiles a bit like the old tool?
Hopefully a small addition but would be useful for people who only/normally use two different profiles and want to minimise the amount of shotcuts hanging about 😃
Cheers & keep up the awesome work!
I realize the Edit page doesn't work, but is it possible to change the profile names?
Also, is it possible to change the timeouts during display switching? I'd prefer not to wait the 3 seconds, and it appears that my screens are done switching after approx 15 seconds, so waiting the full 30 seems a waste.
I created the NV Surround profile by using Nvidia Control Panel to make it surround then saved the profile with Helios. Trying to apply the profile doesn't change anything it loads for 3 seconds then it loads for 30 and nothing changes. I'm using three 1920x1080 screens.
EDIT: Forgot to mention my PC also crashed two times trying to apply the profile, seems to be a random occurence though.
I'm trying to create a shortcut for a racing game to automatically use surround. However, when I do, there's multiple issues preventing it working.
Steps to reproduce:
A manual shortcut pointing directly to the executable can be created. However, getting it working is another issue for another day.
Thank you so much for your hard work on this program!
Is there an easy way to donate$ ?
~Thanks again!
Hi, I understand this application has been dormant and taken over by Display Magician. However, this app works better for me and the UI is simple/better in my opinion.
I was hoping you could provide an update that would allow you to change the name of saved profiles. Currently I'm stuck with Current (1), Current (1) (1), Current (1) (1) (1) and so on. Clicking edit allows you to type in a new name, but the save button is greyed out. Everything else about this program works great for me. Seeing this change would make it perfect. Thank you!
Is your feature request related to a problem? Please describe.
I occasionally connect my laptop to my 3rd monitor but my desktop still assumes it's usable.
Describe the solution you'd like
I would like a shortcut that disables the monitor on my desktop.
Describe alternatives you've considered
Disabling the monitor in display settings.
I've tried several locations on my computer and the program always installs to the default C:\Program Files\ location despite correctly showing the desired install location in the setup application.
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Reporting Logs
- Download the HeliosDisplayManagement.Reporting.zip file.
- Extract it to the desktop. (or somewhere with write access for your user account)
- Execute the program and wait for it to end, then press Enter to exit.
- This will generate a log file right next to the program, rename this newly created log file from "HeliosDisplayManagement.Reporting.XXXXX.log" to a meaningful name, for example: "DisabledSurround.log" or "AllMonitorsExtended.log" so I know what the log is about.
- Switch to other modes (using Windows Control Panel and NVidia Control Panel) and repeat these steps.
At the end of this process, you should have multiple .log files each generated while your system was in a correct mode. Feel free to check the log files for any information you might not want to share with the public. Attach these .log files here.
Enviroment (please complete the following information):
Additional context
Add any other context about the problem here.
I read a post about the xml file that stores profiles and noticed that I could manually edit them. I added a profile for a single monitor, but cannot switch from my extended multi-monitor configuration to the single or vice versa as Helios thinks that no matter which is in use both are currently active. Also, switching to surround does not enable bezel correction. I attempted to use the edit window to set it, but all of the options are greyed out in the edit window. I am also having an issue with loading the edit screen for profiles when I have any more than one monitor active. It comes up after an extremely long time and causes serious performance issues until it loads (generally takes 1-2 minutes before it finally appears). With just one monitor active, it comes up almost immediately. I am running Windows 7 x64 on an AMD FX 8150 with 32 GB of ram, GTX 1060 and GTX 1070 with 8 monitors (6 x 1080p + 2 x 1280x1024), and an SSD. I'd be happy to help debug this as it's most likely a special case considering my hardware configuration. Thanks for making such a useful application. I couldn't be happier with its functions so far, but the finer details have finally forced me to request your assistance.
Hello fallahati,
I wonder if u could improve AMD Radeon Adrenalin (Eyefinity) because it won't detect my display after I cloned the profiles and trying to switch from Eyefinity to no-Eyefinity, It worked great with Nvidia Surround, however I switched to AMD, I hope u can fix detection issue further??
Kind regards
/e33et
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behaviour:
Expected behaviour
the program should open but it doesn't when the https://spacedesk.net/ Driver is installed
Screenshots
If applicable, add screenshots to help explain your problem.
Reporting Logs
- Download the HeliosDisplayManagement.Reporting.zip file.
- Extract it to the desktop. (or somewhere with write access for your user account)
- Execute the program and wait for it to end, then press Enter to exit.
- This will generate a log file right next to the program, rename this newly created log file from "HeliosDisplayManagement.Reporting.XXXXX.log" to a meaningful name, for example: "DisabledSurround.log" or "AllMonitorsExtended.log" so I know what the log is about.
- Switch to other modes (using Windows Control Panel and NVidia Control Panel) and repeat these steps.
At the end of this process, you should have multiple .log files each generated while your system was in a correct mode. Feel free to check the log files for any information you might not want to share with the public. Attach these .log files here.
Opening WithSpacedeckdriver.log
Enviroment (please complete the following information):
Additional context
Add any other context about the problem here.
this is the details from the drop-down
First, thank you for the great app.
I would like to suggest perhaps a feature:
After switching to a profile created shortcut, run a command line option to some other target/shortcut. Kind of like the "Process Monitoring" function, except just running Windows command line.
For example, When i switch between a 3 monitor surround and a single monitor, I use nircmd to switch sound device as well in Windows via a command: nircmd.exe -setdefaultsounddevice "Headphones" 1
Which would switch my Windows default sound device from Speakers to headphones when i switch monitor profile.
Right now i use a bat file to achieve this:
`@echo off
cd "C:\Program Files\Helios Display Management"
start HeliosDisplayManagement.exe -a SwitchProfile -p "{796ab1c1-a9f3-4502-a800-88147f3acddb}"
cd "C:\Program Files\nircmd-x64"
start nircmd.exe setdefaultsounddevice "Headphones" 1
exit`
regards,
Steven
Describe the bug
.NET Framework throws unhandled exception when launching program.
To Reproduce
Steps to reproduce the behaviour:
Navigate to HeliosDisplayManagement.exe and run it.
Reporting Logs
Helios did not produce any logs with the software indicated in the text this description replaced. Exception log follows:
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
WindowsDisplayAPI.Exceptions.InvalidEDIDInformation: EDID does not contain necessary information.
at WindowsDisplayAPI.DisplayConfig.PathDisplayTarget.get_EDIDManufactureId()
at WindowsDisplayAPI.DisplayConfig.PathDisplayTarget.get_EDIDManufactureCode()
at HeliosDisplayManagement.Shared.NVIDIA.SurroundTopology.FromPathTargetInfo(PathTargetInfo pathTargetInfo)
at HeliosDisplayManagement.Shared.Topology.PathTarget..ctor(PathTargetInfo targetInfo, SurroundTopology surround)
at HeliosDisplayManagement.Shared.Topology.Path.<>c.<.ctor>b__0_0(PathTargetInfo target)
at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() at System.Linq.Buffer
1..ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable
1 source)
at HeliosDisplayManagement.Shared.Topology.Path..ctor(PathInfo pathInfo)
at HeliosDisplayManagement.Shared.Profile.<>c.b__23_0(PathInfo info)
at System.Linq.Enumerable.WhereSelectArrayIterator2.MoveNext() at System.Linq.Buffer
1..ctor(IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable
1 source)
at HeliosDisplayManagement.Shared.Profile.GetCurrent(String name)
at HeliosDisplayManagement.UIForms.MainForm.AddProfile(Profile profile)
at HeliosDisplayManagement.UIForms.MainForm.ReloadProfiles()
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
Enviroment (please complete the following information):
Additional context
Add any other context about the problem here.
I understand this is more a minor / cosmetic enhancement for the future, so I wouldn't be expecting it any time soon.
Is your feature request related to a problem? Please describe.
Cycling profile takes significantly longer than possibly required.
Describe the solution you'd like
I'm unsure if it's an API or some other limitation or if you've just imposed it for now but I'd like the ability to customise the 'black out' screen that appears when changing profile.
ie. colours (background colour, transparency, progress ring colour, number colour etc) and especially the timers (with warnings to the user about setting it too short potentially not providing enough time to complete it).
Additional context
For example, my machine takes 15s to completely cycle profile when enabling and disabling surround, but the time taken from clicking 'apply' to the blackout screen ending ends up being 45s and I'd like to cut that down eventually. Plus people could style it to match their windows theme.
Hey there,
Brilliant program, thanks for the work!
I've noticed that the command line --arguments "blah"
doesn't play nice when the arguments contain a hyphen as the executable isn't escaping / ignoring any hyphens inside the quotation marks, so attempts to parse something like
--arguments "-tcp"
as a second -t time call such as -t cp
and fails as a result (tested with -tcp and -nosplash), one provides the error -t/--timeout option violates format
, the other is being treated as -n with no error and the usual list of command line options pops up.
Initially occurred with a shortcut made by HDM itself, so I assume just the way the executable reads them in.
As a secondary question (that isn't an issue) do you have a road map or list of 'possible features' somewhere? I'm interested to see where this is going and what is already planned so I don't end up posting feature requests you're already working on.
Hi.
I have been using your program for a few weeks without issues, but now, every time I try to switch to any surround profile through your program, the computer crashes or enters sleep mode. I can still do it through the nvidia panel. Sometimes Helios works when I switch back to non-surround, but every surround attempt is a crash.
Any suggestions?
Great program, keep going :)
Describe the bug
Can't open Helios with error.
just-in-time (JIT) debugging instead of this dialog box.
************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): A device attached to the system is not functioning
at WindowsDisplayAPI.DisplayConfig.PathDisplayTarget.get_DevicePath()
at HeliosDisplayManagement.Shared.Topology.PathTarget..ctor(PathTargetInfo targetInfo, SurroundTopology surround)
at HeliosDisplayManagement.Shared.Topology.Path.<>c.<.ctor>b__0_0(PathTargetInfo target)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at HeliosDisplayManagement.Shared.Topology.Path..ctor(PathInfo pathInfo)
at HeliosDisplayManagement.Shared.Profile.<>c.<GetCurrent>b__23_0(PathInfo info)
at System.Linq.Enumerable.WhereSelectArrayIterator`2.MoveNext()
at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
at System.Linq.Enumerable.ToArray[TSource](IEnumerable`1 source)
at HeliosDisplayManagement.Shared.Profile.GetCurrent(String name)
at HeliosDisplayManagement.Shared.Profile.get_IsActive()
at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
at HeliosDisplayManagement.UIForms.MainForm.ReloadProfiles()
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Form.OnCreateControl()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Form.WmShowWindow(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3468.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
HeliosDisplayManagement
Assembly Version: 0.9.5.25264
Win32 Version: 0.9.5.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HeliosDisplayManagement.exe
----------------------------------------
HeliosDisplayManagement.Shared
Assembly Version: 0.9.5.25264
Win32 Version: 0.9.5.0
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/HeliosDisplayManagement.Shared.DLL
----------------------------------------
System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3451.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3468.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3324.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.ServiceModel
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3440.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel/v4.0_4.0.0.0__b77a5c561934e089/System.ServiceModel.dll
----------------------------------------
System.ServiceModel.Internals
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3440.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.ServiceModel.Internals/v4.0_4.0.0.0__31bf3856ad364e35/System.ServiceModel.Internals.dll
----------------------------------------
SMDiagnostics
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3440.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/SMDiagnostics/v4.0_4.0.0.0__b77a5c561934e089/SMDiagnostics.dll
----------------------------------------
System.Runtime.Serialization
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3440.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll
----------------------------------------
System.IdentityModel
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3440.0 built by: NET472REL1LAST_B
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.IdentityModel/v4.0_4.0.0.0__b77a5c561934e089/System.IdentityModel.dll
----------------------------------------
NvAPIWrapper
Assembly Version: 0.6.1.15
Win32 Version: 0.6.1.15
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/NvAPIWrapper.DLL
----------------------------------------
Newtonsoft.Json
Assembly Version: 11.0.0.0
Win32 Version: 11.0.2.21924
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/Newtonsoft.Json.DLL
----------------------------------------
System.Numerics
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3190.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------
System.Data
Assembly Version: 4.0.0.0
Win32 Version: 4.7.3260.0 built by: NET472REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
WindowsDisplayAPI
Assembly Version: 1.2.0.1
Win32 Version: 1.2.0.1
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/WindowsDisplayAPI.DLL
----------------------------------------
CommandLine
Assembly Version: 1.9.71.2
Win32 Version: 1.9.71.2
CodeBase: file:///C:/Program%20Files/Helios%20Display%20Management/CommandLine.DLL
----------------------------------------
************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.
For example:
<configuration>
<system.windows.forms jitDebugging="true" />
</configuration>
When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.
To Reproduce
Steps to reproduce the behaviour:
Just open Helios.
Expected behaviour
GUI appear or screen setting automatically with command. It's also used to work normally.
Reporting Logs
- Download the HeliosDisplayManagement.Reporting.zip file.
- Extract it to the desktop. (or somewhere with write access for your user account)
- Execute the program and wait for it to end, then press Enter to exit.
- This will generate a log file right next to the program, rename this newly created log file from "HeliosDisplayManagement.Reporting.XXXXX.log" to a meaningful name, for example: "DisabledSurround.log" or "AllMonitorsExtended.log" so I know what the log is about.
- Switch to other modes (using Windows Control Panel and NVidia Control Panel) and repeat these steps.
At the end of this process, you should have multiple .log files each generated while your system was in a correct mode. Feel free to check the log files for any information you might not want to share with the public. Attach these .log files here.
Enviroment (please complete the following information):
Additional context
Add any other context about the problem here.
I posted the issue a while back about mosaic support, and it looks like there is indeed an issue with mosaic now. My friend and I have the exact same system, except he has a Quadro P3000 and I have a GTX 1080 Ti. I've been using Helios just fine with surround on my system, but when I cloned his mosaic profile and took a look at the JSON, i could instantly tell it looked off (does't have the individual displays listed under it). Trying to apply the configuration fails with a message that the display configuration has changed since the profile was created, and to remake it.
I also tried manually adding the surround topology by grabbing the display IDs as was mentioned in one of the previous bugs, and I still could not enable mosaic using Helios after it was disabled.
Ok So I've seen this issue before, but not as far as i can see in the way its happening to me. When i create the profile for surround, the software doesn't detect that the resolution is formed by a surround profile. This is irritating because i cant use the software to actually move between the two and still have to go through the irritating process of enabling surround, alligning my 3 monitors correctly and bezel correction also...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.