Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG]: Multiple monitors layout mix up #1056

Open
alexgorbatchev opened this issue Oct 14, 2024 · 3 comments
Open

[BUG]: Multiple monitors layout mix up #1056

alexgorbatchev opened this issue Oct 14, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@alexgorbatchev
Copy link
Sponsor

alexgorbatchev commented Oct 14, 2024

Summary

I'm experiencing repeated monitor ID issue. I have 3 monitors arranged in this configuration:

-----  -----
| 1 |  |   |
-----  | 2 |
-----  |   |
| 0 |  |   |
-----  -----

The monitor-information always returns this for me:

$ komorebic monitor-information
{
  "GBT3204-5&1818b9c1&0&UID4355": {
    "left": 0,
    "top": 0,
    "right": 3840,
    "bottom": 2160
  },
  "GSM7750-5&1818b9c1&0&UID4353": {
    "left": 0,
    "top": -2160,
    "right": 3840,
    "bottom": 2160
  },
  "DELA0AA-5&1818b9c1&0&UID4352": {
    "left": 3840,
    "top": -1711,
    "right": 1440,
    "bottom": 3440
  }
}

My config has the following:

  "display_index_preferences": {
    "0": "GBT3204-5&1818b9c1&0&UID4355",
    "1": "GSM7750-5&1818b9c1&0&UID4353",
    "2": "DELA0AA-5&1818b9c1&0&UID4352"
  },
  "monitors": [
    {
      "workspaces": [{ "name": "a", "layout": "BSP" }]
    },
    {
      "workspaces": [{ "name": "b", "layout": "Columns" }]
    },
    {
      "workspaces": [{ "name": "c", "layout": "Rows" }]
    }
  ]

I found that after Windows sleep, monitors[1] and monitors[2] get swapped. I would say this happens pretty much every time, or nearly as frequent. My solution is to swap the values in the .json file manually every time. So essentially I keep rotating b and c to fix the issue.

At this point I've probably done it a few dozen times.

Version Information

OS Name:                   Microsoft Windows 11 Pro
OS Version:                10.0.22631 N/A Build 22631
komorebic 0.1.28
tag:v0.1.28
commit_hash:0cdce8fc
build_time:2024-07-15 16:06:31 +00:00
build_env:rustc 1.79.0 (129f3b996 2024-06-10),stable-x86_64-pc-windows-msvc

Komorebi Configuration

{
  "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.28/schema.json",
  "app_specific_configuration_path": "$Env:USERPROFILE/applications.yaml",
  "window_hiding_behaviour": "Cloak",
  "cross_monitor_move_behaviour": "Insert",
  "default_workspace_padding": 10,
  "default_container_padding": 10,
  "border": true,
  "border_width": 8,
  "border_offset": -1,
  "border_colours": {
    "single": "#42a5f5",
    "stack": "#00a542",
    "monocle": "#ff3399",
    "unfocused": "#808080"
  },
  "stackbar": {
    "height": 40,
    "mode": "OnStack",
    "label": "Title",
    "tabs": {
      "width": 300,
      "focused_text": "#00a542",
      "unfocused_text": "#b3b3b3",
      "background": "#141414"
    }
  },
  "display_index_preferences": {
    "0": "GBT3204-5&1818b9c1&0&UID4355",
    "1": "GSM7750-5&1818b9c1&0&UID4353",
    "2": "DELA0AA-5&1818b9c1&0&UID4352"
  },
  "monitors": [
    {
      "workspaces": [{ "name": "a", "layout": "BSP" }]
    },
    {
      "workspaces": [{ "name": "b", "layout": "Columns" }]
    },
    {
      "workspaces": [{ "name": "c", "layout": "Rows" }]
    }
  ]
}

Hotkey Configuration

.shell powershell

# Reload whkd configuration
# alt + o                 : taskkill /f /im whkd.exe && start /b whkd # if shell is cmd
alt + o                 : taskkill /f /im whkd.exe && Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell
alt + shift + o         : komorebic reload-configuration

# App shortcuts - these require shell to be pwsh / powershell
# The apps will be focused if open, or launched if not open
# alt + f                 : if ($wshell.AppActivate('Firefox') -eq $False) { start firefox }
# alt + b                 : if ($wshell.AppActivate('Chrome') -eq $False) { start chrome }

alt + m                 : komorebic minimize
# Focus windows
alt + h                 : komorebic focus left
alt + j                 : komorebic focus down
alt + k                 : komorebic focus up
alt + l                 : komorebic focus right
alt + shift + oem_4     : komorebic cycle-focus previous # oem_4 is [
alt + shift + oem_6     : komorebic cycle-focus next # oem_6 is ]

# Move windows
alt + shift + h         : komorebic move left
alt + shift + j         : komorebic move down
alt + shift + k         : komorebic move up
alt + shift + l         : komorebic move right
alt + shift + return    : komorebic promote

# Stack windows
alt + left              : komorebic stack left
alt + down              : komorebic stack down
alt + up                : komorebic stack up
alt + right             : komorebic stack right
alt + oem_1             : komorebic unstack # oem_1 is ;
alt + oem_4             : komorebic cycle-stack previous # oem_4 is [
alt + oem_6             : komorebic cycle-stack next # oem_6 is ]

# Resize
alt + oem_plus          : komorebic resize-axis horizontal increase
alt + oem_minus         : komorebic resize-axis horizontal decrease
alt + shift + oem_plus  : komorebic resize-axis vertical increase
alt + shift + oem_minus : komorebic resize-axis vertical decrease

# Manipulate windows
alt + t                 : komorebic toggle-float
alt + shift + f         : komorebic toggle-monocle

# Window manager options
alt + shift + r         : komorebic retile
alt + shift + p         : komorebic toggle-pause

# Layouts
alt + x                 : komorebic flip-layout horizontal
alt + y                 : komorebic flip-layout vertical

# Workspaces
alt + 1                 : komorebic focus-workspace 0
alt + 2                 : komorebic focus-workspace 1
alt + 3                 : komorebic focus-workspace 2

# Move windows across workspaces
alt + shift + 1         : komorebic move-to-workspace 0
alt + shift + 2         : komorebic move-to-workspace 1
alt + shift + 3         : komorebic move-to-workspace 2

Output of komorebic check

No KOMOREBI_CONFIG_HOME detected, defaulting to C:\Users\alex

Looking for configuration files in C:\Users\alex

Found komorebi.json; this file can be passed to the start command with the --config flag

Found C:\Users\alex\.config\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag
@alexgorbatchev alexgorbatchev added the bug Something isn't working label Oct 14, 2024
@LGUG2Z
Copy link
Owner

LGUG2Z commented Oct 14, 2024

{
  "GBT3204-5&1818b9c1&0&UID4355": {
    "left": 0,
    "top": 0,
    "right": 3840,
    "bottom": 2160
  },
  "GSM7750-5&1818b9c1&0&UID4353": {
    "left": 0,
    "top": -2160,
    "right": 3840,
    "bottom": 2160
  },
  "DELA0AA-5&1818b9c1&0&UID4352": {
    "left": 3840,
    "top": -1711,
    "right": 1440,
    "bottom": 3440
  }
}

This is an unordered map, so the order these values are printed in don't have any special meaning.

Assuming that this is the desired index layout:

-----  -----
| 1 |  |   |
-----  | 2 |
-----  |   |
| 0 |  |   |
-----  -----

You probably need to set display_index_preferences like this:

  "display_index_preferences": {
    "0": "GSM7750-5&1818b9c1&0&UID4353",
    "1": "GBT3204-5&1818b9c1&0&UID4355",
    "2": "DELA0AA-5&1818b9c1&0&UID4352"
  },

@alexgorbatchev
Copy link
Sponsor Author

Thank you for you help, unfortunately I already have display_index_preferences in my config referenced above and so I believe the problem is elsewhere.

@LGUG2Z
Copy link
Owner

LGUG2Z commented Oct 15, 2024

You should try replacing the value in your config with the value I have given- I made a change to the ordering based on the diagram you drew.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants