[BUG]: Opening new windows does not append from other not focused workspace #590

Closed
opened 2026-01-05 14:51:47 +01:00 by adam · 1 comment
Owner

Originally created by @jeeeem on GitHub (Mar 27, 2025).

Summary

I have a chrome on the 1st workspace as initial workspace rule so the chrome will always open on the 1st workspace, if I open another chrome window on the 1st workspace, it append properly to a stack since I have "window_container_behaviour": "Append" config on the 1st workspace, but If I open another chrome from another workspace, it doesn't to append to it. It opened in a new tile. Im expecting the window to append in a stack. and take note, all the workspace has "window_container_behaviour": "Append"` config.

Version Information

komorebic 0.1.36
branch:master
commit_hash:a8c687d3
build_time:2025-03-23 17:20:57 +08:00
build_env:rustc 1.85.0 (4d91de4e4 2025-02-17),stable-x86_64-pc-windows-msvc

Komorebi Configuration

{
  "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/master/schema.json",
  "app_specific_configuration_path": [
   "$Env:KOMOREBI_CONFIG_HOME/applications.json",
   "$Env:KOMOREBI_CONFIG_HOME/applications.personal.json"
  ],
  "resize_delta": 50,
  "focus-follows-mouse": "Komorebi",
  "mouse-follows-focus": false,
  "window_container_behaviour": "Create",
  "cross_monitor_move_behaviour": "Insert",
  "unmanaged_window_operation_behaviour": "Op",
  "default_workspace_padding": 5,
  "default_container_padding": 3,
  "window_hiding_behaviour": "Cloak",
  "floating_window_aspect_ratio": "Widescreen",
  "transparency": true,
  "transparency_alpha": 240,
  "transparency_ignore_rules": [
    {
      "kind": "Title",
      "id": "YouTube",
      "matching_strategy": "Contains"
    },
    {
      "kind": "Exe",
      "id": "vlc.exe",
      "matching_strategy": "Equals"
    }
  ],
  "display_index_preferences": {
    "0": "MSI3DB7-5&322806a5&1&UID4352",
    "1": "BOE094D-5&322806a5&1&UID4355",
    "2": "LGD0753-4&32bc49e7&0&UID8388688"
  },
  "bar_configurations": [
    "$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.0.json",
    "$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.2.json"
  ],
  "theme": {
    "palette": "Base16",
    "name": "CatppuccinFrappe",
    "monocle_border": "Base0A"
    // "floating_border": "Base09",
    // "unfocused_border": "Base06",
    // "bar_accent": "Base0D",
    // "unfocused_locked_border": "Base06"
  },
  "border": true,
  "border_implementation": "Komorebi",
  "border_width": 3,
  "border_offset": -1,
  // TODO: convert to hex color
  "border_colours": {
    "single": {
      "r": 66,
      "g": 165,
      "b": 245
    },
    "stack": {
      "r": 0,
      "g": 165,
      "b": 66
    },
    "monocle": {
      "r": 255,
      "g": 51,
      "b": 153
    },
    "floating":{
      "r": 255,
      "g": 51,
      "b": 153
    }
  },
  "stackbar": {
    "height": 0,
    "mode": "Never",
    "label": "Title",
    "tabs": {
      "width": 300,
      "focused_text": "#bfaa69",
      "unfocused_text": "#dfe2f3",
      "background": "#121826",
      "font_family": "JetBrains Mono",
      "font_size": 24
    }
  },
  "animation": {
    "enabled": true,
    "duration": 100,
    "style": "Linear",
    "fps": 144
  },
  "monitors": [
    // Main monitor (3440 x 1140)
    {
      "window_based_work_area_offset_limit": 1,
      "window_based_work_area_offset": {
        "left": 560,
        "top": 0,
        "right": 1120,
        "bottom": 50
      },
      "workspaces": [
        {
          "name": "Main",
          "layout": "BSP",
          "layout_rules": {},
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "firefox.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Coding",
          "layout": "BSP",
          "layout_rules": {},
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "wezterm-gui.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "SumatraPDF",
              "matching_strategy": "StartsWith"
            }
          ]
        },
        {
          "name": "Media",
          "layout": "BSP",
          "layout_rules": {},
          "initial_workspace_rules": [
          ],
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "Discord.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Game",
          "apply_window_based_work_area_offset": false,
          "float_override": true,
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "dota2.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "Phasmophobia.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Title",
              "id": "VALORANT",
              "matching_strategy": "StartsWith"
            },
            {
              "kind": "Exe",
              "id": "cs2.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "FACEIT.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "faceitclient.exe",
              "matching_strategy": "Equals"
            }
          ],
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "Riot Client.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "steamwebhelper.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "Medal.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Work",
          "layout": "BSP",
          "layout_rules": {},
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "ms-teams.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Movie",
          "layout": "BSP",
          "layout_rules": {},
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "stremio.exe",
              "matching_strategy": "Equals"
            }
          ],
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Music",
          "window_container_behaviour": "Append",
          "layout": "BSP",
          "layout_rules": {},
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "Spotify.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "ETC",
          "window_container_behaviour": "Append",
          "layout": "BSP",
          "layout_rules": {},
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "parsecd.exe",
              "matching_strategy": "Equals"
            }
          ],
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "qbittorrent.exe",
              "matching_strategy": "Equals"
            }
          ]
        }
      ]
    },
    // 2nd monitor (1920x 1080)
    {
      "window_based_work_area_offset_limit": 0,
      "window_based_work_area_offset": {
        "left": 560,
        "top": 25,
        "right": 1120,
        "bottom": 50
      },
      "workspaces": [
        {
          "name": "1",
          "layout": "BSP"
        },
        {
          "name": "2",
          "layout": "BSP"
        },
        {
          "name": "3",
          "layout": "BSP"
        },
        {
          "name": "4",
          "layout": "BSP"
        },
        {
          "name": "5",
          "layout": "BSP"
        }
      ]
    },
    // 3rd monitor (1920x 1080)
    {
      "window_based_work_area_offset_limit": 0,
      "window_based_work_area_offset": {
        "left": 560,
        "top": 25,
        "right": 1120,
        "bottom": 50
      },
      "workspaces": [
        {
          "name": "Browse",
          "layout": "BSP",
          "layout_rules": {},
          "window_container_behaviour": "Append",
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "chrome.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Dev",
          "layout": "BSP",
          "layout_rules": {},
          "window_container_behaviour":"Append",
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "wezterm-gui.exe",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "Postman.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Chat",
          "layout": "BSP",
          "layout_rules": {},
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "ms-teams.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Email",
          "layout": "BSP",
          "layout_rules": {},
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "olk.exe",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Tools",
          "layout": "BSP",
          "layout_rules": {},
          "workspace_rules": [
            {
              "kind": "Exe",
              "id": "EXCEL.EXE",
              "matching_strategy": "Equals"
            },
            {
              "kind": "Exe",
              "id": "WINWORD.EXE",
              "matching_strategy": "Equals"
            }
          ]
        },
        {
          "name": "Personal",
          "layout": "BSP",
          "layout_rules": {},
          "window_container_behaviour": "Append",
          "initial_workspace_rules": [
            {
              "kind": "Exe",
              "id": "firefox.exe",
              "matching_strategy": "Equals"
            }
          ]
        }
      ]
    }
  ]
}

Hotkey Configuration

#Requires AutoHotkey v2.0.2
#SingleInstance Force

; Show a notification when this script has been started
SoundBeep 300,150
; TrayTip "Komorebi", "Komorebi script has been started" ; For some reason, Traytip does not working properly
ToolTip "Komorebi script has been started"
SetTimer ToolTip, -2000

HideTrayTip() {
ToolTip
}

; CONTROLS
; # Win (Windows logo key)
; ! Alt
; ^ Ctrl
; + Shift
; & An ampersand may be used between any two keys or mouse buttons to combine them into a custom hotkey.

Komorebic(cmd) {
RunWait(format("komorebic.exe {}", cmd), , "Hide")
}

AutoHotkey(cmd) {
RunWait(format("autohotkey.exe {}", cmd), , "Hide")
}

Nushell(cmd) {
RunWait(format("nu --config ~/.config/nushell/init.nu --env-config ~/.config/nushell/env.nu -c {}", cmd), , "Hide")
}

; etc (ctrl+alt+shift)
#SuspendExempt ; Exempt the following hotkey from Suspend.
^!+r::Reload ; Reload this script
^!+p::Suspend ; Disable all komorebic hotkeys except for suspending key
^!+w::AutoHotkey("./WindowSpy.ahk") ; To update this, just copy the latest version in autohotkey folder, overwrite this script to the latest "WindowSpy.ahk" script
^!+s::Nushell("start-wm") ; Restart komorebi process
^!+x::Nushell("stop-wm") ; Stop komorebi process
#SuspendExempt False ; Suspend for any hotkeys/hotstrings that are below this.

; ^!+p::Komorebic("toggle-pause") ; Stop komorebic tiling
^!+g::Komorebic("gui")
^!+f::Komorebic("enforce-workspace-rules")
^!+d::Komorebic("restore-windows")

; Focus windows (alt) + (alt+shift)
!h::Komorebic("focus left")
!j::Komorebic("focus down")
!k::Komorebic("focus up")
!l::Komorebic("focus right")
!+[::Komorebic("cycle-focus previous")
!+]::Komorebic("cycle-focus next")

; Move windows (alt)
!+h::Komorebic("move left")
!+j::Komorebic("move down")
!+k::Komorebic("move up")
!+l::Komorebic("move right")
!+Enter::Komorebic("promote")

; Stack windows (ctrl+alt)
^!Left::Komorebic("stack left")
^!Right::Komorebic("stack right")
^!Up::Komorebic("stack up")
^!Down::Komorebic("stack down")
^!;::Komorebic("unstack")
^!s::Komorebic("stack-all")
^!x::Komorebic("unstack-all")
^![::Komorebic("cycle-stack previous")
^!]::Komorebic("cycle-stack next")
^!q::Komorebic("cycle-stack previous")
^!e::Komorebic("cycle-stack next")
^!+q::Komorebic("cycle-stack-index previous")
^!+e::Komorebic("cycle-stack-index next")

; Resize (alt) / (alt+shift)
!=::Komorebic("resize-axis horizontal increase")
!-::Komorebic("resize-axis horizontal decrease")
!+=::Komorebic("resize-axis vertical increase")
!+-::Komorebic("resize-axis vertical decrease")

; Window manager options (alt) / (alt+shift)
!f::Komorebic("toggle-maximize") ; Fullscreen
!m::Komorebic("toggle-window-based-work-area-offset") ; Maximize work area offset
!+f::Komorebic("toggle-monocle") ; Expand the window in the whole layout
!e::Komorebic("manage") ; Manage window
!+e::Komorebic("unmanage") ; Unmanage window
!t::Komorebic("toggle-float") ; Move the window on the top of all windows
!+t::Komorebic("toggle-tiling") ; Toggle tiling of windows
!;::Komorebic("toggle-workspace-layer") ; Toggle workspace layer (Floating or Tiling)
!+r::Komorebic("retile") ; Organize the tiling windows
!w::Komorebic("toggle-workspace-window-container-behaviour") ; Toggle dynamic or stacking tiling)
!.::Komorebic("toggle-lock") ; Toggle lock container

; Close window (alt+shift)
!+q::Komorebic("close")
!q::Komorebic("minimize")

; KOMOREBI LAYOUTS
; BSP
; +-------+-----+
; | | |
; | +--+--+
; | | |--|
; +-------+--+--+

; Vertical Stack
; +-------+-----+
; | | |
; | +-----+
; | | |
; +-------+-----+

; RightMainVerticalStack
; +-----+-------+
; | | |
; +-----+ |
; | | |
; +-----+-------+

; Horizontal Stack
; +------+------+
; | |
; |------+------+
; | | |
; +------+------+

; Columns
; +--+--+--+--+
; | | | | |
; | | | | |
; | | | | |
; +--+--+--+--+

; Rows
; +-----------+
; |-----------|
; |-----------|
; |-----------|
; +-----------+

; Ultrawide Vertical Stack
; +-----+-----------+-----+
; | | | |
; | | +-----+
; | | | |
; | | +-----+
; | | | |
; +-----+-----------+-----+

; Grid
; +-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+
; | | | | | | | | | | | | | | |
; | | | | | | | | | | | | | +---+
; +-----+-----+ | +---+---+ +---+---+---+ +---+---| |
; | | | | | | | | | | | | | +---+
; | | | | | | | | | | | | | | |
; +-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+
; 4 windows 5 windows 6 windows 7 windows

; Change layout (alt+shift) / (ctrl+alt+shift)
; ^!+x::Komorebic("cycle-layout previous")
; ^!+c::Komorebic("cycle-layout next")
!+b::Komorebic("change-layout bsp")
!+x::Komorebic("change-layout rows")
!+c::Komorebic("change-layout columns")
!+u::Komorebic("change-layout ultrawide-vertical-stack")

; Flip Layouts (alt)
!x::Komorebic("flip-layout horizontal")
!c::Komorebic("flip-layout vertical")
!v::Komorebic("flip-layout horizontal-and-vertical")

; WORKSPACES
; Focus workspaces (alt)
#Tab::Komorebic("focus-last-workspace")
^!h::Komorebic("cycle-workspace previous")
^!l::Komorebic("cycle-workspace next")
!1::Komorebic("focus-monitor-workspace 0 0")
!2::Komorebic("focus-monitor-workspace 0 1")
!3::Komorebic("focus-monitor-workspace 0 2")
!4::Komorebic("focus-monitor-workspace 0 3")
!5::Komorebic("focus-monitor-workspace 0 4")
!6::Komorebic("focus-monitor-workspace 0 5")
!7::Komorebic("focus-monitor-workspace 0 6")
!8::Komorebic("focus-monitor-workspace 0 7")

; Focus other monitor workspaces (alt)
^!c::Komorebic("cycle-monitor next")
^!1::Komorebic("focus-monitor-workspace 1 0")
^!2::Komorebic("focus-monitor-workspace 1 1")
^!3::Komorebic("focus-monitor-workspace 1 2")
^!4::Komorebic("focus-monitor-workspace 1 3")
^!5::Komorebic("focus-monitor-workspace 1 4")
^!6::Komorebic("focus-monitor-workspace 1 5")
^!7::Komorebic("focus-monitor-workspace 1 6")
^!8::Komorebic("focus-monitor-workspace 1 7")

; Send windows across workspaces (alt + shift)
!+1::Komorebic("send-to-monitor-workspace 0 0")
!+2::Komorebic("send-to-monitor-workspace 0 1")
!+3::Komorebic("send-to-monitor-workspace 0 2")
!+4::Komorebic("send-to-monitor-workspace 0 3")
!+5::Komorebic("send-to-monitor-workspace 0 4")
!+6::Komorebic("send-to-monitor-workspace 0 5")
!+7::Komorebic("send-to-monitor-workspace 0 6")
!+8::Komorebic("send-to-monitor-workspace 0 7")

; Send windows across monitor workspace (ctrl + alt + shift)
^!+c::Komorebic("cycle-move-to-monitor next")
^!+1::Komorebic("send-to-monitor-workspace 1 0")
^!+2::Komorebic("send-to-monitor-workspace 1 1")
^!+3::Komorebic("send-to-monitor-workspace 1 2")
^!+4::Komorebic("send-to-monitor-workspace 1 3")
^!+5::Komorebic("send-to-monitor-workspace 1 4")
^!+6::Komorebic("send-to-monitor-workspace 1 5")
^!+7::Komorebic("send-to-monitor-workspace 1 6")
^!+8::Komorebic("send-to-monitor-workspace 1 7")

Output of komorebic check

KOMOREBI_CONFIG_HOME detected: C:\Users\jberen/.config/komorebi/

Looking for configuration files in C:\Users\jberen/.config/komorebi/

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

No ~/.config/whkdrc found; you may not be able to control komorebi with your keyboard

Originally created by @jeeeem on GitHub (Mar 27, 2025). ### Summary I have a chrome on the 1st workspace as `initial workspace rule` so the chrome will always open on the 1st workspace, if I open another chrome window on the 1st workspace, it append properly to a stack since I have ` "window_container_behaviour": "Append"` config on the 1st workspace, but If I open another chrome from another workspace, it doesn't to append to it. It opened in a new tile. Im expecting the window to append in a stack. and take note, all the workspace has "window_container_behaviour": "Append"` config. ### Version Information komorebic 0.1.36 branch:master commit_hash:a8c687d3 build_time:2025-03-23 17:20:57 +08:00 build_env:rustc 1.85.0 (4d91de4e4 2025-02-17),stable-x86_64-pc-windows-msvc ### Komorebi Configuration ```json { "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/master/schema.json", "app_specific_configuration_path": [ "$Env:KOMOREBI_CONFIG_HOME/applications.json", "$Env:KOMOREBI_CONFIG_HOME/applications.personal.json" ], "resize_delta": 50, "focus-follows-mouse": "Komorebi", "mouse-follows-focus": false, "window_container_behaviour": "Create", "cross_monitor_move_behaviour": "Insert", "unmanaged_window_operation_behaviour": "Op", "default_workspace_padding": 5, "default_container_padding": 3, "window_hiding_behaviour": "Cloak", "floating_window_aspect_ratio": "Widescreen", "transparency": true, "transparency_alpha": 240, "transparency_ignore_rules": [ { "kind": "Title", "id": "YouTube", "matching_strategy": "Contains" }, { "kind": "Exe", "id": "vlc.exe", "matching_strategy": "Equals" } ], "display_index_preferences": { "0": "MSI3DB7-5&322806a5&1&UID4352", "1": "BOE094D-5&322806a5&1&UID4355", "2": "LGD0753-4&32bc49e7&0&UID8388688" }, "bar_configurations": [ "$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.0.json", "$Env:KOMOREBI_CONFIG_HOME/komorebi.bar.2.json" ], "theme": { "palette": "Base16", "name": "CatppuccinFrappe", "monocle_border": "Base0A" // "floating_border": "Base09", // "unfocused_border": "Base06", // "bar_accent": "Base0D", // "unfocused_locked_border": "Base06" }, "border": true, "border_implementation": "Komorebi", "border_width": 3, "border_offset": -1, // TODO: convert to hex color "border_colours": { "single": { "r": 66, "g": 165, "b": 245 }, "stack": { "r": 0, "g": 165, "b": 66 }, "monocle": { "r": 255, "g": 51, "b": 153 }, "floating":{ "r": 255, "g": 51, "b": 153 } }, "stackbar": { "height": 0, "mode": "Never", "label": "Title", "tabs": { "width": 300, "focused_text": "#bfaa69", "unfocused_text": "#dfe2f3", "background": "#121826", "font_family": "JetBrains Mono", "font_size": 24 } }, "animation": { "enabled": true, "duration": 100, "style": "Linear", "fps": 144 }, "monitors": [ // Main monitor (3440 x 1140) { "window_based_work_area_offset_limit": 1, "window_based_work_area_offset": { "left": 560, "top": 0, "right": 1120, "bottom": 50 }, "workspaces": [ { "name": "Main", "layout": "BSP", "layout_rules": {}, "initial_workspace_rules": [ { "kind": "Exe", "id": "firefox.exe", "matching_strategy": "Equals" } ] }, { "name": "Coding", "layout": "BSP", "layout_rules": {}, "initial_workspace_rules": [ { "kind": "Exe", "id": "wezterm-gui.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "SumatraPDF", "matching_strategy": "StartsWith" } ] }, { "name": "Media", "layout": "BSP", "layout_rules": {}, "initial_workspace_rules": [ ], "workspace_rules": [ { "kind": "Exe", "id": "Discord.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "", "matching_strategy": "Equals" } ] }, { "name": "Game", "apply_window_based_work_area_offset": false, "float_override": true, "initial_workspace_rules": [ { "kind": "Exe", "id": "dota2.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "Phasmophobia.exe", "matching_strategy": "Equals" }, { "kind": "Title", "id": "VALORANT", "matching_strategy": "StartsWith" }, { "kind": "Exe", "id": "cs2.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "FACEIT.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "faceitclient.exe", "matching_strategy": "Equals" } ], "workspace_rules": [ { "kind": "Exe", "id": "Riot Client.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "steamwebhelper.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "Medal.exe", "matching_strategy": "Equals" } ] }, { "name": "Work", "layout": "BSP", "layout_rules": {}, "workspace_rules": [ { "kind": "Exe", "id": "ms-teams.exe", "matching_strategy": "Equals" } ] }, { "name": "Movie", "layout": "BSP", "layout_rules": {}, "initial_workspace_rules": [ { "kind": "Exe", "id": "stremio.exe", "matching_strategy": "Equals" } ], "workspace_rules": [ { "kind": "Exe", "id": "", "matching_strategy": "Equals" } ] }, { "name": "Music", "window_container_behaviour": "Append", "layout": "BSP", "layout_rules": {}, "workspace_rules": [ { "kind": "Exe", "id": "Spotify.exe", "matching_strategy": "Equals" } ] }, { "name": "ETC", "window_container_behaviour": "Append", "layout": "BSP", "layout_rules": {}, "initial_workspace_rules": [ { "kind": "Exe", "id": "parsecd.exe", "matching_strategy": "Equals" } ], "workspace_rules": [ { "kind": "Exe", "id": "qbittorrent.exe", "matching_strategy": "Equals" } ] } ] }, // 2nd monitor (1920x 1080) { "window_based_work_area_offset_limit": 0, "window_based_work_area_offset": { "left": 560, "top": 25, "right": 1120, "bottom": 50 }, "workspaces": [ { "name": "1", "layout": "BSP" }, { "name": "2", "layout": "BSP" }, { "name": "3", "layout": "BSP" }, { "name": "4", "layout": "BSP" }, { "name": "5", "layout": "BSP" } ] }, // 3rd monitor (1920x 1080) { "window_based_work_area_offset_limit": 0, "window_based_work_area_offset": { "left": 560, "top": 25, "right": 1120, "bottom": 50 }, "workspaces": [ { "name": "Browse", "layout": "BSP", "layout_rules": {}, "window_container_behaviour": "Append", "initial_workspace_rules": [ { "kind": "Exe", "id": "chrome.exe", "matching_strategy": "Equals" } ] }, { "name": "Dev", "layout": "BSP", "layout_rules": {}, "window_container_behaviour":"Append", "initial_workspace_rules": [ { "kind": "Exe", "id": "wezterm-gui.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "Postman.exe", "matching_strategy": "Equals" } ] }, { "name": "Chat", "layout": "BSP", "layout_rules": {}, "workspace_rules": [ { "kind": "Exe", "id": "ms-teams.exe", "matching_strategy": "Equals" } ] }, { "name": "Email", "layout": "BSP", "layout_rules": {}, "workspace_rules": [ { "kind": "Exe", "id": "olk.exe", "matching_strategy": "Equals" } ] }, { "name": "Tools", "layout": "BSP", "layout_rules": {}, "workspace_rules": [ { "kind": "Exe", "id": "EXCEL.EXE", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "WINWORD.EXE", "matching_strategy": "Equals" } ] }, { "name": "Personal", "layout": "BSP", "layout_rules": {}, "window_container_behaviour": "Append", "initial_workspace_rules": [ { "kind": "Exe", "id": "firefox.exe", "matching_strategy": "Equals" } ] } ] } ] } ``` ### Hotkey Configuration #Requires AutoHotkey v2.0.2 #SingleInstance Force ; Show a notification when this script has been started SoundBeep 300,150 ; TrayTip "Komorebi", "Komorebi script has been started" ; For some reason, Traytip does not working properly ToolTip "Komorebi script has been started" SetTimer ToolTip, -2000 HideTrayTip() { ToolTip } ; CONTROLS ; # Win (Windows logo key) ; ! Alt ; ^ Ctrl ; + Shift ; & An ampersand may be used between any two keys or mouse buttons to combine them into a custom hotkey. Komorebic(cmd) { RunWait(format("komorebic.exe {}", cmd), , "Hide") } AutoHotkey(cmd) { RunWait(format("autohotkey.exe {}", cmd), , "Hide") } Nushell(cmd) { RunWait(format("nu --config ~/.config/nushell/init.nu --env-config ~/.config/nushell/env.nu -c {}", cmd), , "Hide") } ; etc (ctrl+alt+shift) #SuspendExempt ; Exempt the following hotkey from Suspend. ^!+r::Reload ; Reload this script ^!+p::Suspend ; Disable all komorebic hotkeys except for suspending key ^!+w::AutoHotkey("./WindowSpy.ahk") ; To update this, just copy the latest version in autohotkey folder, overwrite this script to the latest "WindowSpy.ahk" script ^!+s::Nushell("start-wm") ; Restart komorebi process ^!+x::Nushell("stop-wm") ; Stop komorebi process #SuspendExempt False ; Suspend for any hotkeys/hotstrings that are below this. ; ^!+p::Komorebic("toggle-pause") ; Stop komorebic tiling ^!+g::Komorebic("gui") ^!+f::Komorebic("enforce-workspace-rules") ^!+d::Komorebic("restore-windows") ; Focus windows (alt) + (alt+shift) !h::Komorebic("focus left") !j::Komorebic("focus down") !k::Komorebic("focus up") !l::Komorebic("focus right") !+[::Komorebic("cycle-focus previous") !+]::Komorebic("cycle-focus next") ; Move windows (alt) !+h::Komorebic("move left") !+j::Komorebic("move down") !+k::Komorebic("move up") !+l::Komorebic("move right") !+Enter::Komorebic("promote") ; Stack windows (ctrl+alt) ^!Left::Komorebic("stack left") ^!Right::Komorebic("stack right") ^!Up::Komorebic("stack up") ^!Down::Komorebic("stack down") ^!;::Komorebic("unstack") ^!s::Komorebic("stack-all") ^!x::Komorebic("unstack-all") ^![::Komorebic("cycle-stack previous") ^!]::Komorebic("cycle-stack next") ^!q::Komorebic("cycle-stack previous") ^!e::Komorebic("cycle-stack next") ^!+q::Komorebic("cycle-stack-index previous") ^!+e::Komorebic("cycle-stack-index next") ; Resize (alt) / (alt+shift) !=::Komorebic("resize-axis horizontal increase") !-::Komorebic("resize-axis horizontal decrease") !+=::Komorebic("resize-axis vertical increase") !+-::Komorebic("resize-axis vertical decrease") ; Window manager options (alt) / (alt+shift) !f::Komorebic("toggle-maximize") ; Fullscreen !m::Komorebic("toggle-window-based-work-area-offset") ; Maximize work area offset !+f::Komorebic("toggle-monocle") ; Expand the window in the whole layout !e::Komorebic("manage") ; Manage window !+e::Komorebic("unmanage") ; Unmanage window !t::Komorebic("toggle-float") ; Move the window on the top of all windows !+t::Komorebic("toggle-tiling") ; Toggle tiling of windows !;::Komorebic("toggle-workspace-layer") ; Toggle workspace layer (Floating or Tiling) !+r::Komorebic("retile") ; Organize the tiling windows !w::Komorebic("toggle-workspace-window-container-behaviour") ; Toggle dynamic or stacking tiling) !.::Komorebic("toggle-lock") ; Toggle lock container ; Close window (alt+shift) !+q::Komorebic("close") !q::Komorebic("minimize") ; KOMOREBI LAYOUTS ; BSP ; +-------+-----+ ; | | | ; | +--+--+ ; | | |--| ; +-------+--+--+ ; Vertical Stack ; +-------+-----+ ; | | | ; | +-----+ ; | | | ; +-------+-----+ ; RightMainVerticalStack ; +-----+-------+ ; | | | ; +-----+ | ; | | | ; +-----+-------+ ; Horizontal Stack ; +------+------+ ; | | ; |------+------+ ; | | | ; +------+------+ ; Columns ; +--+--+--+--+ ; | | | | | ; | | | | | ; | | | | | ; +--+--+--+--+ ; Rows ; +-----------+ ; |-----------| ; |-----------| ; |-----------| ; +-----------+ ; Ultrawide Vertical Stack ; +-----+-----------+-----+ ; | | | | ; | | +-----+ ; | | | | ; | | +-----+ ; | | | | ; +-----+-----------+-----+ ; Grid ; +-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+ ; | | | | | | | | | | | | | | | ; | | | | | | | | | | | | | +---+ ; +-----+-----+ | +---+---+ +---+---+---+ +---+---| | ; | | | | | | | | | | | | | +---+ ; | | | | | | | | | | | | | | | ; +-----+-----+ +---+---+---+ +---+---+---+ +---+---+---+ ; 4 windows 5 windows 6 windows 7 windows ; Change layout (alt+shift) / (ctrl+alt+shift) ; ^!+x::Komorebic("cycle-layout previous") ; ^!+c::Komorebic("cycle-layout next") !+b::Komorebic("change-layout bsp") !+x::Komorebic("change-layout rows") !+c::Komorebic("change-layout columns") !+u::Komorebic("change-layout ultrawide-vertical-stack") ; Flip Layouts (alt) !x::Komorebic("flip-layout horizontal") !c::Komorebic("flip-layout vertical") !v::Komorebic("flip-layout horizontal-and-vertical") ; WORKSPACES ; Focus workspaces (alt) #Tab::Komorebic("focus-last-workspace") ^!h::Komorebic("cycle-workspace previous") ^!l::Komorebic("cycle-workspace next") !1::Komorebic("focus-monitor-workspace 0 0") !2::Komorebic("focus-monitor-workspace 0 1") !3::Komorebic("focus-monitor-workspace 0 2") !4::Komorebic("focus-monitor-workspace 0 3") !5::Komorebic("focus-monitor-workspace 0 4") !6::Komorebic("focus-monitor-workspace 0 5") !7::Komorebic("focus-monitor-workspace 0 6") !8::Komorebic("focus-monitor-workspace 0 7") ; Focus other monitor workspaces (alt) ^!c::Komorebic("cycle-monitor next") ^!1::Komorebic("focus-monitor-workspace 1 0") ^!2::Komorebic("focus-monitor-workspace 1 1") ^!3::Komorebic("focus-monitor-workspace 1 2") ^!4::Komorebic("focus-monitor-workspace 1 3") ^!5::Komorebic("focus-monitor-workspace 1 4") ^!6::Komorebic("focus-monitor-workspace 1 5") ^!7::Komorebic("focus-monitor-workspace 1 6") ^!8::Komorebic("focus-monitor-workspace 1 7") ; Send windows across workspaces (alt + shift) !+1::Komorebic("send-to-monitor-workspace 0 0") !+2::Komorebic("send-to-monitor-workspace 0 1") !+3::Komorebic("send-to-monitor-workspace 0 2") !+4::Komorebic("send-to-monitor-workspace 0 3") !+5::Komorebic("send-to-monitor-workspace 0 4") !+6::Komorebic("send-to-monitor-workspace 0 5") !+7::Komorebic("send-to-monitor-workspace 0 6") !+8::Komorebic("send-to-monitor-workspace 0 7") ; Send windows across monitor workspace (ctrl + alt + shift) ^!+c::Komorebic("cycle-move-to-monitor next") ^!+1::Komorebic("send-to-monitor-workspace 1 0") ^!+2::Komorebic("send-to-monitor-workspace 1 1") ^!+3::Komorebic("send-to-monitor-workspace 1 2") ^!+4::Komorebic("send-to-monitor-workspace 1 3") ^!+5::Komorebic("send-to-monitor-workspace 1 4") ^!+6::Komorebic("send-to-monitor-workspace 1 5") ^!+7::Komorebic("send-to-monitor-workspace 1 6") ^!+8::Komorebic("send-to-monitor-workspace 1 7") ### Output of komorebic check KOMOREBI_CONFIG_HOME detected: C:\Users\jberen/.config/komorebi/ Looking for configuration files in C:\Users\jberen/.config/komorebi/ Found komorebi.json; this file can be passed to the start command with the --config flag No ~/.config/whkdrc found; you may not be able to control komorebi with your keyboard
adam added the i-will-not-work-on-thiskomorebi labels 2026-01-05 14:51:47 +01:00
adam closed this issue 2026-01-05 14:51:47 +01:00
Author
Owner

@LGUG2Z commented on GitHub (Apr 4, 2025):

but If I open another chrome from another workspace, it doesn't to append to it.

This is expected behaviour; window_container_behaviour only applies to windows opened on the workspace with that configuration now, not to windows moved to that workspace (ie. through workspace rules).

I'm open to accepting a PR which puts the desired behaviour you're talking about behind a separate opt-in configuration option if you or anyone else wants this enough to work on it.

@LGUG2Z commented on GitHub (Apr 4, 2025): > but If I open another chrome from another workspace, it doesn't to append to it. This is expected behaviour; `window_container_behaviour` only applies to windows opened on the workspace with that configuration now, not to windows moved to that workspace (ie. through workspace rules). I'm open to accepting a PR which puts the desired behaviour you're talking about behind a separate opt-in configuration option if you or anyone else wants this enough to work on it.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/komorebi#590