Skip to content

Keys are not displaying on second monitor #172

Description

@csharpfritz

Even though the display position is selected on a second (or third) monitor, the keystrokes are not showing on that display device.

Activity

  1. celeron533 commented on Dec 8, 2017

    @celeron533

    Works fine on my windows 7 64 bit en-us version...

  2. csharpfritz commented on Dec 8, 2017

    @csharpfritz
    Author

    I’ll clarify: on Win10 fall creators update it doesn’t position the output on secondary screens

  3. lconover commented on Apr 18, 2019

    @lconover

    Windows 7 64-bit Professional user; version 6.17601 Service Pack 1 Build 7601.
    Carnac only displays on the middle monitor of a 3 screen setup. Ignores any attempts to switch to a different monitor. Offsets are limited to middle monitor so I can't fake it by having slide left or right. :)

  4. RayLee2333 commented on Oct 17, 2019

    @RayLee2333

    I have the same situation in Windows 10 (1809 ver CH). My own solution is to set the display that needs display software as the main computer display.

  5. szelpe commented on Apr 5, 2020

    @szelpe

    I had the same issue so I dug deep into the source and realized that the problem is that I have my displays on top of each other, and carnac only sets the Left property of the view based on the left property of the selected display.

    I've created a PR which adds the required changes to the code: #238

  6. psxvoid commented on Jan 14, 2021

    @psxvoid

    @szelpe Any updates on this? Are you still working on the PR?

    I'm affected by the same issue.

  7. kai-osthoff commented on Jan 29, 2021

    @kai-osthoff

    Same issue here. Two Displays working well, 3rd Display not.

    If i change the display i will have carnac working to MAIN DISPLAY it works.

  8. szelpe commented on Jan 29, 2021

    @szelpe

    @psxvoid The PR code works on my computer, apparently no one is really maintaining the PRs any more.

  9. psxvoid commented on Jan 29, 2021

    @psxvoid

    That's a bummer. It would be very cool to see your changes in the main app. Or at least in a chocolatey package.

  10. xperiandri commented on Apr 25, 2022

    @xperiandri

    @psxvoid The PR code works on my computer, apparently no one is really maintaining the PRs any more.

    This one? #238

  11. xperiandri commented on Apr 25, 2022

    @xperiandri

    Indeed does not work
    image

  12. shahram7 commented on Mar 5, 2024

    @shahram7

    same problem
    Version 2.3.13.0
    windows 11

  13. doggy8088 commented on Oct 10, 2026

    @doggy8088

    Hi there! 👋

    I (@doggy8088 / Will Huang) have stepped in to take over active maintenance of Carnac at doggy8088/carnac (project website: https://carnac.gh.miniasp.com/).

    This issue regarding multi-monitor positioning, vertical monitor stacks, mixed-DPI scaling, and display resolution changes has been resolved in my fork!

    Context & Root Cause

    • Why this happened:
      1. KeyShowView previously only updated Left (Screen.Left) and never set Top (Screen.Top), and relied on WPF DIPs (WindowState = Maximized) instead of physical pixel coordinates—causing overlays on vertically stacked monitors, negative-coordinate monitors, or secondary mixed-DPI screens to appear on the wrong display or off-screen.
      2. The monitor selector in Preferences -> General rendered all screens in a flat 1D horizontal row regardless of their actual 2D arrangement in Windows Display Settings.
      3. Carnac did not subscribe to SystemEvents.DisplaySettingsChanged, so docking/undocking monitors or changing resolution via Remote Desktop left the overlay and Preferences window stranded off-screen.
    • The Fix:
      • Win32 Physical Pixel Placement (OverlayPlacementController): Positions the overlay window using Win32 MoveWindow with exact physical screen coordinates (Left, Top, Width, Height) across any horizontal, vertical, or mixed-DPI monitor configuration.
      • Proportional 2D Monitor Selector (MonitorLayout): The screen picker in Preferences now draws monitors in their true 2D spatial layout (including vertical stacks and negative coordinates) and immediately moves the overlay when you click a monitor or corner radio button.
      • Automatic Re-Placement on Display Changes: Subscribed to SystemEvents.DisplaySettingsChanged so the overlay and Preferences window automatically re-clamp onto an active screen when monitors or resolutions change.
    • Related Issues & PRs:

    Availability

    • Source Code: Available now on the dev branch of doggy8088/carnac.
    • Upcoming Release: This will be included in the next official release, which will be published to GitHub Releases (both installer and portable .zip), WinGet (winget install doggy8088.Carnac), and Chocolatey.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions