ITADN

Display order does not match Windows Display Settings

#445OpenRennan24 创建于 2026-02-26
bughelp-wanted
R
Rennan24commented
The issue that I'm having is that the Displays orders are not controllable causing some hotkeys to be confusing, especially if you disconnect or move monitors around. In Windows Display settings there is an index associated with the monitors, but it seems like they can get out of sync. I'm not quite sure how the Display indexes are calculated on FancyWM side. (I remember somewhere saying it's calculated based on monitor position, left to right?) But somehow the order can get messed up :/ It would be nice to have a setting / config for it. akin to how other WM handle it. Something like `FancyWM-Display1 = Win-Display3` `FancyWM-Display2 = Win-Display2` `FancyWM-Display3 = Win-Display1` or whatever order the user wants, which will fix the issue below <details><summary>FancyWM Logs</summary> <p> ``` 2026-02-26 13:26:56.651 -08:00 [WRN] FancyWM v2.18.5.6 (https://www.microsoft.com/store/apps/9P1741LKHQS9) on Microsoft Windows NT 10.0.26100.0 2026-02-26 13:27:00.662 -08:00 [INF] Using the multi-monitor tiling backend 2026-02-26 13:27:00.665 -08:00 [INF] Managing display Win32Display { \\?\DISPLAY#DEL422D#5&1975e059&0&UID4633#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} } (Bounds: (L=30, T=-1440, R=2590, B=0, W=2560, H=1440), Scale: 1.25) 2026-02-26 13:27:00.867 -08:00 [INF] Desktop Win32VirtualDesktop { Name = General, IsCurrent = False } added to workspace 2026-02-26 13:27:00.881 -08:00 [INF] Desktop Win32VirtualDesktop { Name = Programming, IsCurrent = False } added to workspace 2026-02-26 13:27:00.894 -08:00 [INF] Desktop Win32VirtualDesktop { Name = Other, IsCurrent = True } added to workspace 2026-02-26 13:27:00.930 -08:00 [INF] Managing display Win32Display { \\?\DISPLAY#DEL4243#5&1975e059&0&UID4635#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} } (Bounds: (L=2590, T=-867, R=3670, B=1053, W=1080, H=1920), Scale: 1) 2026-02-26 13:27:01.068 -08:00 [INF] Desktop Win32VirtualDesktop { Name = General, IsCurrent = False } added to workspace 2026-02-26 13:27:01.078 -08:00 [INF] Desktop Win32VirtualDesktop { Name = Programming, IsCurrent = False } added to workspace 2026-02-26 13:27:01.095 -08:00 [INF] Desktop Win32VirtualDesktop { Name = Other, IsCurrent = True } added to workspace 2026-02-26 13:27:01.110 -08:00 [INF] Managing display Win32Display { \\?\DISPLAY#LEN41B0#4&19beca5d&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} } (Bounds: (L=0, T=0, R=2560, B=1600, W=2560, H=1600), Scale: 1.5) 2026-02-26 13:27:01.249 -08:00 [INF] Desktop Win32VirtualDesktop { Name = General, IsCurrent = False } added to workspace 2026-02-26 13:27:01.257 -08:00 [INF] Desktop Win32VirtualDesktop { Name = Programming, IsCurrent = False } added to workspace 2026-02-26 13:27:01.272 -08:00 [INF] Desktop Win32VirtualDesktop { Name = Other, IsCurrent = True } added to workspace 2026-02-26 13:27:01.357 -08:00 [INF] Window 0026103E=explorer(54956) can be managed, registering with backend (Win32Display { \\?\DISPLAY#DEL422D#5&1975e059&0&UID4633#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.358 -08:00 [INF] Window 00040BF4=Fork(19932) can be managed, registering with backend (Win32Display { \\?\DISPLAY#DEL422D#5&1975e059&0&UID4633#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.358 -08:00 [INF] Window 00020AAC=Unity(37524) can be managed, registering with backend (Win32Display { \\?\DISPLAY#DEL422D#5&1975e059&0&UID4633#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.386 -08:00 [INF] Window 0004098E=ms-teams(27872) can be managed, registering with backend (Win32Display { \\?\DISPLAY#DEL4243#5&1975e059&0&UID4635#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.400 -08:00 [INF] Window 000B0B76=Code(28280) can be managed, registering with backend (Win32Display { \\?\DISPLAY#LEN41B0#4&19beca5d&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.401 -08:00 [INF] Window 00030946=msedge(38108) can be managed, registering with backend (Win32Display { \\?\DISPLAY#LEN41B0#4&19beca5d&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.401 -08:00 [INF] Window 000501CE=ShareX(34404) can be managed, registering with backend (Win32Display { \\?\DISPLAY#LEN41B0#4&19beca5d&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.402 -08:00 [INF] Window 00150800=rider64(49908) can be managed, registering with backend (Win32Display { \\?\DISPLAY#LEN41B0#4&19beca5d&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.402 -08:00 [INF] Window 00020942=msedge(38108) can be managed, registering with backend (Win32Display { \\?\DISPLAY#LEN41B0#4&19beca5d&0&UID8388688#{e6f07b5f-ee97-4a90-b076-33f57bf4eaa7} }) 2026-02-26 13:27:01.538 -08:00 [INF] Relocating window 0026103E=explorer(54956) from (L=1309, T=-1436, R=2589, B=-61, W=1280, H=1375) to (L=31, T=-1436, R=2589, B=-61, W=2558, H=1375) 2026-02-26 13:27:01.804 -08:00 [INF] Window 000B0B76=Code(28280) move ended 2026-02-26 13:27:01.804 -08:00 [INF] Window 000B0B76=Code(28280) move ended 2026-02-26 13:27:01.810 -08:00 [INF] Window 000B0B76=Code(28280) move ended 2026-02-26 13:27:01.833 -08:00 [INF] Relocating window 000B0B76=Code(28280) from (L=831, T=499, R=1903, B=2363, W=1072, H=1864) to (L=6, T=6, R=2554, B=1522, W=2548, H=1516) 2026-02-26 13:27:04.367 -08:00 [INF] Got focus on 000B0B76=Code(28280) 2026-02-26 13:27:04.368 -08:00 [INF] Got focus on 000B0B76=Code(28280) 2026-02-26 13:27:04.370 -08:00 [INF] Got focus on 000B0B76=Code(28280) ``` </p> </details> ### Monitor setup on windows: <img width="471" height="366" alt="Image" src="https://github.com/user-attachments/assets/390c89d7-fb0f-48d8-9100-1552849fb5ea" /> ### Hotkey setup: <img width="379" height="129" alt="Image" src="https://github.com/user-attachments/assets/ca659fc5-0cf8-4523-ac6c-2fac6914a0d0" /> ### What really happens: <img width="471" height="366" alt="Image" src="https://github.com/user-attachments/assets/d62b6352-a36c-474d-ad2c-0173f122c1b6" />
1 条评论