Display Hot Keys - Instantly apply display settings with hot keys!
-
jon-mil-92
- Posts: 18
- Joined: 14 May 2024, 07:28
- Contact:
Re: Display Hot Keys - Instantly apply display settings with hot keys!
It's been a while since I posted here! Display Hot Keys has come a long way. I updated the OP. To see changes, visit the "Releases" page on GitHub: https://github.com/jon-mil-92/DisplayHotKeys/releases
Creator / developer of Display Hot Keys: https://jon-mil-92.github.io/DisplayHotKeys/
Instantly apply display settings with user-defined hot keys!
Instantly apply display settings with user-defined hot keys!
-
jon-mil-92
- Posts: 18
- Joined: 14 May 2024, 07:28
- Contact:
Re: Display Hot Keys - Instantly apply display settings with hot keys!
A new release is up!
Creator / developer of Display Hot Keys: https://jon-mil-92.github.io/DisplayHotKeys/
Instantly apply display settings with user-defined hot keys!
Instantly apply display settings with user-defined hot keys!
- Chief Blur Buster
- Site Admin
- Posts: 12295
- Joined: 05 Dec 2013, 15:44
- Location: Toronto / Hamilton, Ontario, Canada
- Contact:
Re: Display Hot Keys - Instantly apply display settings with hot keys!
Thank you for continuing to actively maintain this utility!
I admit I haven't tried it recently, but you might have added it already: A hot key that displays the current mode on all displays simultaneously as a temporary overlay popup (monitor number, resolution, refresh rate, bits per pixel, hdr on/off, etc). Make the resolution and refresh rate the biggest text.
Basically like a temporary OSD status message that appears on all displays simultaneously. Whether as big transparent text (like an onscreen menu), or a small dialog at the corner of the monitor.
Sometimes I lose track of which is which, especially when unplugging/plugging a new monitor automatically changes the refresh rate of all displays, as Windows just simply loves to do. Gaming laptop lid opens/close is another wrinkle. The misfortune of everybody who plays with high-Hz multimonitor.
I admit I haven't tried it recently, but you might have added it already: A hot key that displays the current mode on all displays simultaneously as a temporary overlay popup (monitor number, resolution, refresh rate, bits per pixel, hdr on/off, etc). Make the resolution and refresh rate the biggest text.
Basically like a temporary OSD status message that appears on all displays simultaneously. Whether as big transparent text (like an onscreen menu), or a small dialog at the corner of the monitor.
Sometimes I lose track of which is which, especially when unplugging/plugging a new monitor automatically changes the refresh rate of all displays, as Windows just simply loves to do. Gaming laptop lid opens/close is another wrinkle. The misfortune of everybody who plays with high-Hz multimonitor.
Head of Blur Busters - BlurBusters.com | TestUFO.com | Follow @BlurBusters on: BlueSky | Twitter | Facebook
Forum Rules wrote: 1. Rule #1: Be Nice. This is published forum rule #1. Even To Newbies & People You Disagree With!
2. Please report rule violations If you see a post that violates forum rules, then report the post.
3. ALWAYS respect indie testers here. See how indies are bootstrapping Blur Busters research!
-
jon-mil-92
- Posts: 18
- Joined: 14 May 2024, 07:28
- Contact:
Re: Display Hot Keys - Instantly apply display settings with hot keys!
That's a good idea! I can look into this. I think I'm going to be creating some sort of additional settings menu at some point, and that could be an option in there.Chief Blur Buster wrote: ↑21 Aug 2026, 02:06Thank you for continuing to actively maintain this utility!
I admit I haven't tried it recently, but you might have added it already: A hot key that displays the current mode on all displays simultaneously as a temporary overlay popup (monitor number, resolution, refresh rate, bits per pixel, hdr on/off, etc). Make the resolution and refresh rate the biggest text.
Basically like a temporary OSD status message that appears on all displays simultaneously. Whether as big transparent text (like an onscreen menu), or a small dialog at the corner of the monitor.
Sometimes I lose track of which is which, especially when unplugging/plugging a new monitor automatically changes the refresh rate of all displays, as Windows just simply loves to do. Gaming laptop lid opens/close is another wrinkle. The misfortune of everybody who plays with high-Hz multimonitor.
Creator / developer of Display Hot Keys: https://jon-mil-92.github.io/DisplayHotKeys/
Instantly apply display settings with user-defined hot keys!
Instantly apply display settings with user-defined hot keys!
-
bobbie424242
- Posts: 15
- Joined: 08 Dec 2025, 10:34
Re: Display Hot Keys - Instantly apply display settings with hot keys!
As a Java developer, I am curious to know why this project uses JNI rather than JNA for native API calls ?
Great to see Swing + FlatLAF put to good use in 2026 !
Great to see Swing + FlatLAF put to good use in 2026 !
-
jon-mil-92
- Posts: 18
- Joined: 14 May 2024, 07:28
- Contact:
Re: Display Hot Keys - Instantly apply display settings with hot keys!
Hey thanks! There are actually many reasons I did not, and could not, use JNA for this project. I'll go ahead and list some of them:bobbie424242 wrote: ↑23 Aug 2026, 08:50As a Java developer, I am curious to know why this project uses JNI rather than JNA for native API calls ?
Great to see Swing + FlatLAF put to good use in 2026 !
- Some of the APIs that I needed to use are not exposed with JNA, such as the DPI scaling API and the DXGI API.
- I have logic for retaining the user's intended display arrangement when changing display settings (Windows does not do this), and this is better suited in native code.
- I have native threads calling back to the Java code, and this works better with JNI.
- I need this implementation to be very performant because it is latency-sensitive, and JNA adds overhead.
Creator / developer of Display Hot Keys: https://jon-mil-92.github.io/DisplayHotKeys/
Instantly apply display settings with user-defined hot keys!
Instantly apply display settings with user-defined hot keys!
-
bobbie424242
- Posts: 15
- Joined: 08 Dec 2025, 10:34
Re: Display Hot Keys - Instantly apply display settings with hot keys!
Thank you for the elaborate explanation.
-
yulorien
- Posts: 4
- Joined: 16 Sep 2026, 05:37
Re: Display Hot Keys - Instantly apply display settings with hot keys!
On the all-displays mode overlay — one thing worth getting right if you build it: EnumDisplaySettings hands you dmDisplayFrequency as a DWORD, so it arrives already rounded to an integer. 59.94 comes back as 59 or 60 depending on the driver, never as 59.94, and 119.88 lands on 119 or 120. Those NTSC-fractional modes are exactly the ones people lose track of, so an OSD built on DEVMODE would stay quiet about the case it is most wanted for.
QueryDisplayConfig avoids that. DISPLAYCONFIG_PATH_TARGET_INFO.refreshRate is a DISPLAYCONFIG_RATIONAL, so 60000/1001 and 60/1 stay distinct instead of both collapsing to 60. Cheap to render as either the exact fraction or a two-decimal figure, and it is already per-target, which fits the all-monitors-at-once layout being asked for.
One caveat for the UI wording: that is still the nominal mode, not measured output. The panel's real rate drifts off the mode's rational, which is the reason Blur Busters' own RefreshRateCalculator estimates Hz from VSYNC timestamps rather than asking the OS. For a "which monitor am I looking at" overlay the nominal rational is the right call — just worth not letting it read as a measurement.
QueryDisplayConfig avoids that. DISPLAYCONFIG_PATH_TARGET_INFO.refreshRate is a DISPLAYCONFIG_RATIONAL, so 60000/1001 and 60/1 stay distinct instead of both collapsing to 60. Cheap to render as either the exact fraction or a two-decimal figure, and it is already per-target, which fits the all-monitors-at-once layout being asked for.
One caveat for the UI wording: that is still the nominal mode, not measured output. The panel's real rate drifts off the mode's rational, which is the reason Blur Busters' own RefreshRateCalculator estimates Hz from VSYNC timestamps rather than asking the OS. For a "which monitor am I looking at" overlay the nominal rational is the right call — just worth not letting it read as a measurement.
