• Stars
    star
    239
  • Rank 168,708 (Top 4 %)
  • Language
    C#
  • License
    GNU General Publi...
  • Created about 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An open source display profile management program for Windows with support for NVIDIA Surround

Helios Display Management

An open source tool for display profile management. Readily switch between display profiles & settings.

This program is still in development and currently in the pre-release stage; expect missing features, incomplete features and bugs

NOTICE 26-3-2021

Since I was quite busy for a while now, I wasn't able to put in the time that this projects and you guys deserve. And unfortunately, I have no idea when I can get back to development on this project. So things are on hold for now as they were for the last year. Meanwhile, Terry MacDonald decided to take a fork from this project and fix many of the problems that you guys reported over the years and even add many more features like Audio device management; rebranded as a new software named DisplayMagician that just got its first full release a week ago. So make sure to check it out as it should be better maintained and more feature rich. I am still committed to the maintenance of the underlying libraries that are used for both these projects as much as I can. That being said, I am not abandoning this project officially and I might get back to it at a later time, hopefully even incorporating some of the changes made by Terry. However, I felt that for the time being and considering the ambiguity of the situation, this is my responsibility to inform you of these issues and provide you with a great alternative made by a great developer.

Check out DisplayMagician by clicking here

Download

The latest version of this application is available for download via the release page.

Help me fund my own Death Star

--OR--

You can always donate your time by contributing to the project or by introducing it to others.

What it does

Provides an overview of saved profiles for easy editing and switching, as well as functions to automatically switch to a selected profile then run a chosen program, including reverting to the previous profile after the executed application has closed. Useful to change resolution, or merge displays into a single desktop for gaming, then return to normal desktop configuration when finished.

Please read through the README for features (current and planned) and issues you may encounter while using the program.

Feel free to report missing features or bugs using the project issue tracker.

Current features

  • Supports saving of an unlimited number of display profiles
  • Ability to switch to a display profile via the desktop context menu
  • Ability to create a shortcut for a profile for fast and easy switch
  • Ability to switch before executing a program or game and reverting back after exiting the program
  • Support games with a launcher
  • Supports Steam games
  • Supports NVIDIA Surround and NVIDIA Mosaic settings

Planned features

  • Edit saved profile via the application's user interface (20% done)
  • Create new profile vis the application's user interface (Stalled by the previous task)
  • Notification icon while the program waits for a game to exit
  • Automatic update check and notifications
  • Possibility to install components separately (especially the Shell Extension)
  • Support of AMD Eyefinity (Needs a C# wrapper for AMD ADL)
  • Save and restore taskbar location (90% done)

Features to be considered

  • Save and restore monitor colour calibration settings (Needs expanding of underlying wrappers)

Known issues

  • Cannot restore custom colour profiles (colour tunings)
  • In some circumstances the Windows Taskbar may not return to its original location
  • Command line cannot parse hyphens in -a or --arguments options

Usage

Initial Setup:

  1. Install 'Helios Display Management' and restart your computer
  2. Run 'Helios Display Management'
  3. Use 'Windows Display Settings' or 'NVIDIA Control Panel' to configure your display(s) as desired
  4. Save the current profile in 'Helios Display Management' by selecting the Active Profile and using Clone button
  5. Repeat from step 3 and clone each configuration you want to be able to switch to later

Switch via Application Window

  • Select a from the left panel to save (Clone), switch to (Apply), Edit (currently unsupported), or Create a Shortcut

  • Create Shortcut: Creates a windows shortcut

    • Temporarily switch with process monitoring: Give 'Helios Display Management' a program to execute after switching profile, and monitor to keep the profile active until the program is closed, then revert to the last used display profile.

      • Monitoring an application
        • Executable Address: Path of executable to run, or browse to select the executable.

        • Waiting Process: Keep selected profile active while 'Process' is running. When it is detected that the process has ended 'Helios Display Management' will revert to the previous display profile. This is useful for games that have a separate launcher.

        • Timeout: Maximum time (in seconds) to wait for the main process to start after launcher exits. Will revert the display profile automatically if the process was not detected in this time.

        • Arguments: Arguments to be passed to the executing application

      • --OR--
      • Monitoring a Steam Game
        • Steam Game: - AppID of Steam Game to launch - enter manually, or select from the auto-detected list of installed Steam games (Can take some time to populate with recent installations as it tries to download the game title and icon from SteamDB).

        • Timeout: Maximum time (in seconds) to wait for Steam Game/App to begin. Will revert the display profile automatically if the game fails to start in this time.

        • Arguments: Arguments to be passed to the Steam Game

    • Save shortcut in a chosen folder with a chosen name

Switch via Shell Extension

  • Switch to a profile
    • Right click on your desktop
    • Navigate to 'Display Profiles' menu
    • Select a profile and navigate to the sub-menu
    • Apply, Edit or Create Shortcut for the selected profile
  • Temporarily switch to a profile with application monitoring
    • Right click on an executable file or shortcut (Game, Application, Steam Shortcut)
    • Navigate to 'Open under Display Profile' menu
    • Select a profile and navigate to the sub-menu
    • Run, Run as Administrator or Create Shortcut for the selected profile

Switch via Command Line

Command:

HeliosDisplayManagement.exe {arguments}

Arguments:

  • -a [SwitchProfile|CreateShortcut|EditProfile], --action [SwitchProfile|CreateShortcut|EditProfile]
  • -p "{ProfileID}", --profile "{ProfileID}"
  • Temporary switch
    • Application or Game
      • -e "{ApplicationPath}", --execute "{ApplicationPath}" -- (Default: None) -- The path to program executable to be run after switching display profile
      • --arguments "{ProgramArguments}" -- (Default: None) -- Arguments to send to the program executable
      • -w "{ProcessName}", --waitfor "{ProcessName}" -- (Default: None) -- 'ProcessName' to wait for; will (If different than the executed program, ie if executing a game launcher that would close when the game is run)
      • -t {TimeoutInSeconds}, --timeout {TimeoutInSeconds} -- (Default: 30) -- Maximum time in seconds to wait for the program to start. Will revert to previous display profile if the program fails to start in this time.
    • Steam Game
      • -s {SteamAppID}, --steam {SteamAppID} -- (Default: 0) -- AppID of the Steam game
      • --arguments "{SteamArguments}" -- (Default: None) -- Arguments to send to Steam (launch options)
      • -t {TimeoutInSeconds}, --timeout {TimeoutInSeconds} -- (Default: 30) -- Maximum time in seconds to wait for the game to start. Will revert to previous display profile if the game fails to start in this time.

Example:

"C:\Program Files\Helios Display Management\HeliosDisplayManagement.exe" -a SwitchProfile -p "{00000000-0000-0000-0000-000000000000}" -e "C:\Games\Game Folder\GameExecutable.exe" -w "GameProcessName" --arguments "nosplash" -t 30
  • WindowsDisplayAPI: WindowsDisplayAPI is a .Net wrapper for Windows Display and Windows CCD APIs

  • EDIDParser: EDIDParser is a library allowing all .Net developers to parse and to extract information from raw EDID binary data. (Extended Display Identification Data)

  • NvAPIWrapper: NvAPIWrapper is a .Net wrapper for NVIDIA public API, capable of managing all aspects of a display setup using NVIDIA GPUs

License

Copyright (C) 2017-2020 Soroush Falahati

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Credits

Thanks for the work and the time that all of our contributors put into making this a better project. Following is a short list, containing the name of some of these people:

  • Readme file created by @timegrinder

More Repositories

1

LiteDBViewer

LiteDB Viewer is a simple tool that let you open a LiteDB database file and shows its contents; think of it as a GUI for LiteDBShell
Inno Setup
290
star
2

WindowsFirewallHelper

A class library to manage the Windows Firewall as well as adding your program to the Windows Firewall Exception list.
C#
246
star
3

NvAPIWrapper

NvAPIWrapper is a .Net wrapper for NVIDIA public API, capable of managing all aspects of a display setup using NVIDIA GPUs
C#
245
star
4

CircularProgressBar

Circular ProgressBar is a custom control for WinForm with animation.
C#
244
star
5

NetworkAdapterSelector

A simple solution to let you force bind a program to a specific network adapter
C#
198
star
6

WinFormAnimation

A simple library for animating controls/values in .Net WinForm (.Net 3.5 and later). Key frame (Path) based and fully customizable.
C#
196
star
7

NiVirtualCam

OpenNI 2 Virtual Webcam - Directshow Filter
C#
124
star
8

WindowsDisplayAPI

WindowsDisplayAPI is a .Net wrapper for Windows Display and Windows CCD APIs
C#
74
star
9

UACHelper

A helper class library to detect, manage and use UAC functionalities in your program.
C#
65
star
10

NiWrapper.Net

OpenNI 2 and NiTE 2 .Net Wrapper
C#
49
star
11

PHP-MP3

PHP-MP3 is a simple library for reading and manipulating MPEG audio (MP3)
PHP
42
star
12

EDIDParser

EDIDParser is a library allowing all .Net developers to parse and to extract information from raw EDID binary data. (Extended Display Identification Data)
C#
29
star
13

NVIDIASurroundToggler

[OBSOLETE] NVidia Surround Toggler is a simple tool/program that try to fill the main gap left by NVIDIA in their surround technology's user experience by letting the user toggle between the two modes (Surround and Extended) as fast and with less pain as possible. Replaced by: https://github.com/falahati/HeliosDisplayManagement
C#
25
star
14

StartupHelper

A .Net library to add or remove your program to the startup list as well as detecting the startup session. Supporting Windows XP+ with and without administrator rights.
C#
24
star
15

veterans

"Veterans Only" (or simply "veterans") is a Plugin for SourceMod and written with SourcePawn to restrict access of players based on their playtime in a specific game
SourcePawn
16
star
16

HybridBridge

This is a PCL library that let you connect JavaScript on the browser side to the C# side by proxying C# code.
C#
12
star
17

SDroid

SDroid is a framework for designing and running custom bots for Steam network capable of trading and managing the Steam Account they are connected to.
C#
11
star
18

3DPhotoCaptureTool

OpenNI 3D Photo Capture Tool
C#
8
star
19

SharpWorker

SharpWorker is a multi-platform execution environment and helper library for scheduled, API controlled tasks. (examples: Bots, Data Miners, Web Crawlers, API Services, etc)
C#
7
star
20

ConsoleUtilities

ConsoleUtilities is a simple set of tools for creating console navigations, tables and terminals.
C#
6
star
21

SharedDLLCleanup

Cleanup any missing or specified SharedDLL entry from registry; useful for cleaning installation processes
C#
6
star
22

PyWhatsAppWeb

WhatsApp web client automation using selenium in Python
Python
5
star
23

PCIIdentificationResolver

PCI Identification Resolver is a library containing the list of known PCI vendors, devices and other related information for .Net
C#
4
star
24

DownloadHelper

C#
2
star
25

warmupDM

Warmup DeathMatch (warmupDM) is a Plugin for the Valve's FPS game server, Counter Strike: Global Offensive Dedicated Server using SourceMod and written with SourcePawn
SourcePawn
1
star
26

Bitfinex.Net

C#
1
star
27

EnkompassDBackupConverter

Simple command line tool to extract the database script from an enkompass backup file
C#
1
star
28

AnagramFinder

This is a NetStandard C# answer to the TrustPilot's Rabbit Hole Challenge
C#
1
star
29

AdvancedServiceWorker

A customizable and dynamic, yet simple service worker for your website
TypeScript
1
star