[BUG]: Toggling monocle mode doesn't preserve relative windows sizes #573

Closed
opened 2026-01-05 14:51:40 +01:00 by adam · 7 comments
Owner

Originally created by @kkanden on GitHub (Jan 31, 2025).

Summary

When having windows split, each having different sizes set using komorebic resize-axis, and toggling monocle mode for one of the windows back and forth resets the windows sizes back to default (50%-50% for two windows).
The desired result is for the windows sizes to be preserved.

Version Information

OS Name: Microsoft Windows 11 Home
OS Version: 10.0.26100 N/A Build 26100

komorebic 0.1.33
tag:v0.1.33
commit_hash:cc51f62c
build_time:2025-01-11 22:30:30 +00:00
build_env:rustc 1.84.0 (9fc6b4312 2025-01-07),stable-x86_64-pc-windows-msvc

Komorebi Configuration

{
    "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.31/schema.json",
    "app_specific_configuration_path": "$Env:KOMOREBI_CONFIG_HOME/applications.json",
    "window_hiding_behaviour": "Cloak",
    "cross_monitor_move_behaviour": "Insert",
    "default_workspace_padding": 0,
    "default_container_padding": 0,
    "border": true,
    "border_width": 3,
    "border_offset": -1,
    "border_style": "System",
    "theme": {
        "name": "CatppuccinMocha",
        "palette": "Base16",
        "unfocused_border": "Base03",
        "bar_accent": "Base0D"
    },
    "mouse_follows_focus": false,
    "animation": {
        "enabled": true,
        "duration": 250,
        "fps": 120,
        "style": "EaseInOutExpo"
    },
    "stackbar": {
        "height": 0,
        "mode": "OnStack",
        "tabs": {
            "width": 200
        }
    },
    "monitors": [
        {
            "workspaces": [
                {
                    "name": "I",
                    "layout": "BSP"
                },
                {
                    "name": "II",
                    "layout": "BSP"
                },
                {
                    "name": "III",
                    "layout": "BSP"
                },
                {
                    "name": "IV",
                    "layout": "BSP"
                },
                {
                    "name": "V",
                    "layout": "BSP"
                }
            ]
        }
    ],
    "ignore_rules": [
        {
            "kind": "Exe",
            "id": "Spotify.exe",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Exe",
            "id": "Discord.exe",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Title",
            "id": "Settings",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Exe",
            "id": "Rterm.exe",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Exe",
            "id": "obs64.exe",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Exe",
            "id": "explorer.exe",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Exe",
            "id": "ApplicationFrameHost.exe",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Title",
            "id": "Counter-Strike 2",
            "matching_strategy": "Equals"
        },
        {
            "kind": "Exe",
            "id": "steamwebhelper.exe",
            "matching_strategy": "Equals"
        }
    ]
}

Hotkey Configuration

.shell powershell

Reload whkd configuration

alt + r : taskkill /f /im whkd.exe; Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell

alt + shift + r : komorebic stop; komorebic start --whkd

App shortcuts - these require shell to be pwsh / powershell

The apps will be focused if open, or launched if not open

alt + b : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE.config\focus_or_launch.ps1" -ProcessName "chrome" -LaunchCommand "chrome"
alt + t : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE.config\focus_or_launch.ps1" -ProcessName "WindowsTerminal" -LaunchCommand "wt"
alt + v : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE.config\focus_or_launch.ps1" -ProcessName "spotify" -LaunchCommand "C:\Users\oliwia\AppData\Roaming\Spotify\Spotify.exe"
alt + d : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE.config\focus_or_launch.ps1" -ProcessName "Discord" -LaunchCommand "C:\Users\oliwia\AppData\Local\Discord\Update.exe" -LaunchArguments "--processStart Discord.exe"

alt + q : komorebic close
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 + p : komorebic resize-axis horizontal increase
alt + u : komorebic resize-axis horizontal decrease
alt + i : komorebic resize-axis vertical increase

alt + o : komorebic resize-axis vertical decrease

Manipulate windows

alt + g : komorebic toggle-float
alt + f : komorebic toggle-monocle
alt + shift + f : komorebic toggle-maximize

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
alt + 4 : komorebic focus-workspace 3
alt + 5 : komorebic focus-workspace 4
alt + 6 : komorebic focus-workspace 5
alt + 7 : komorebic focus-workspace 6
alt + 8 : komorebic focus-workspace 7

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
alt + shift + 4 : komorebic move-to-workspace 3
alt + shift + 5 : komorebic move-to-workspace 4
alt + shift + 6 : komorebic move-to-workspace 5
alt + shift + 7 : komorebic move-to-workspace 6
alt + shift + 8 : komorebic move-to-workspace 7

Output of komorebic check

KOMOREBI_CONFIG_HOME detected: C:\Users\oliwia.config

Looking for configuration files in C:\Users\oliwia.config

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

Found C:\Users\oliwia.config\whkdrc; key bindings will be loaded from here when
whkd is started, and you can start it automatically using the --whkd flag

Originally created by @kkanden on GitHub (Jan 31, 2025). ### Summary When having windows split, each having different sizes set using `komorebic resize-axis`, and toggling monocle mode for one of the windows back and forth resets the windows sizes back to default (50%-50% for two windows). The desired result is for the windows sizes to be preserved. ### Version Information OS Name: Microsoft Windows 11 Home OS Version: 10.0.26100 N/A Build 26100 komorebic 0.1.33 tag:v0.1.33 commit_hash:cc51f62c build_time:2025-01-11 22:30:30 +00:00 build_env:rustc 1.84.0 (9fc6b4312 2025-01-07),stable-x86_64-pc-windows-msvc ### Komorebi Configuration ```json { "$schema": "https://raw.githubusercontent.com/LGUG2Z/komorebi/v0.1.31/schema.json", "app_specific_configuration_path": "$Env:KOMOREBI_CONFIG_HOME/applications.json", "window_hiding_behaviour": "Cloak", "cross_monitor_move_behaviour": "Insert", "default_workspace_padding": 0, "default_container_padding": 0, "border": true, "border_width": 3, "border_offset": -1, "border_style": "System", "theme": { "name": "CatppuccinMocha", "palette": "Base16", "unfocused_border": "Base03", "bar_accent": "Base0D" }, "mouse_follows_focus": false, "animation": { "enabled": true, "duration": 250, "fps": 120, "style": "EaseInOutExpo" }, "stackbar": { "height": 0, "mode": "OnStack", "tabs": { "width": 200 } }, "monitors": [ { "workspaces": [ { "name": "I", "layout": "BSP" }, { "name": "II", "layout": "BSP" }, { "name": "III", "layout": "BSP" }, { "name": "IV", "layout": "BSP" }, { "name": "V", "layout": "BSP" } ] } ], "ignore_rules": [ { "kind": "Exe", "id": "Spotify.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "Discord.exe", "matching_strategy": "Equals" }, { "kind": "Title", "id": "Settings", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "Rterm.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "obs64.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "explorer.exe", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "ApplicationFrameHost.exe", "matching_strategy": "Equals" }, { "kind": "Title", "id": "Counter-Strike 2", "matching_strategy": "Equals" }, { "kind": "Exe", "id": "steamwebhelper.exe", "matching_strategy": "Equals" } ] } ``` ### Hotkey Configuration .shell powershell # Reload whkd configuration alt + r : taskkill /f /im whkd.exe; Start-Process whkd -WindowStyle hidden # if shell is pwsh / powershell # alt + shift + r : komorebic stop; komorebic start --whkd # App shortcuts - these require shell to be pwsh / powershell # The apps will be focused if open, or launched if not open alt + b : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\.config\focus_or_launch.ps1" -ProcessName "chrome" -LaunchCommand "chrome" alt + t : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\.config\focus_or_launch.ps1" -ProcessName "WindowsTerminal" -LaunchCommand "wt" alt + v : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\.config\focus_or_launch.ps1" -ProcessName "spotify" -LaunchCommand "C:\Users\oliwia\AppData\Roaming\Spotify\Spotify.exe" alt + d : powershell -NoProfile -ExecutionPolicy Bypass -File "$env:USERPROFILE\.config\focus_or_launch.ps1" -ProcessName "Discord" -LaunchCommand "C:\Users\oliwia\AppData\Local\Discord\Update.exe" -LaunchArguments "--processStart Discord.exe" alt + q : komorebic close 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 + p : komorebic resize-axis horizontal increase alt + u : komorebic resize-axis horizontal decrease alt + i : komorebic resize-axis vertical increase # alt + o : komorebic resize-axis vertical decrease # Manipulate windows alt + g : komorebic toggle-float alt + f : komorebic toggle-monocle alt + shift + f : komorebic toggle-maximize # 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 alt + 4 : komorebic focus-workspace 3 alt + 5 : komorebic focus-workspace 4 alt + 6 : komorebic focus-workspace 5 alt + 7 : komorebic focus-workspace 6 alt + 8 : komorebic focus-workspace 7 # 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 alt + shift + 4 : komorebic move-to-workspace 3 alt + shift + 5 : komorebic move-to-workspace 4 alt + shift + 6 : komorebic move-to-workspace 5 alt + shift + 7 : komorebic move-to-workspace 6 alt + shift + 8 : komorebic move-to-workspace 7 ### Output of komorebic check KOMOREBI_CONFIG_HOME detected: C:\Users\oliwia\.config Looking for configuration files in C:\Users\oliwia\.config Found komorebi.json; this file can be passed to the start command with the --conf ig flag Found C:\Users\oliwia\.config\whkdrc; key bindings will be loaded from here when whkd is started, and you can start it automatically using the --whkd flag
adam added the bugkomorebi labels 2026-01-05 14:51:40 +01:00
adam closed this issue 2026-01-05 14:51:40 +01:00
Author
Owner

@LGUG2Z commented on GitHub (Feb 1, 2025):

Does this happen regardless of the workspace layout?

@LGUG2Z commented on GitHub (Feb 1, 2025): Does this happen regardless of the workspace layout?
Author
Owner

@kkanden commented on GitHub (Feb 1, 2025):

yes, i just tried out VerticalStack and HorizontalStack and the same thing happens :/

@kkanden commented on GitHub (Feb 1, 2025): yes, i just tried out VerticalStack and HorizontalStack and the same thing happens :/
Author
Owner

@LGUG2Z commented on GitHub (Feb 2, 2025):

I just tried reproducing this with the latest commit on master and wasn't able to - it may have been magically fixed by some other change? Can you try grabbing the latest GitHub Actions build and reproducing it with that?

@LGUG2Z commented on GitHub (Feb 2, 2025): I just tried reproducing this with the latest commit on `master` and wasn't able to - it may have been magically fixed by some other change? Can you try grabbing the latest GitHub Actions build and reproducing it with that?
Author
Owner

@kkanden commented on GitHub (Feb 2, 2025):

thanks for the help so far. I have cloned the repo and built from source, however the issue persists. i have attached a video showing the problem. hopefully it helps to clarify.

https://github.com/user-attachments/assets/9220df88-d3b4-4324-9848-6e77e60fcd87

@kkanden commented on GitHub (Feb 2, 2025): thanks for the help so far. I have cloned the repo and built from source, however the issue persists. i have attached a video showing the problem. hopefully it helps to clarify. https://github.com/user-attachments/assets/9220df88-d3b4-4324-9848-6e77e60fcd87
Author
Owner

@LGUG2Z commented on GitHub (Feb 2, 2025):

Ah, thanks for the video - I was able to reproduce this and it looks like this behavior only occurs for me when there are exactly 2 windows open. Is this the same for you?

@LGUG2Z commented on GitHub (Feb 2, 2025): Ah, thanks for the video - I was able to reproduce this and it looks like this behavior only occurs for me when there are exactly 2 windows open. Is this the same for you?
Author
Owner

@LGUG2Z commented on GitHub (Feb 2, 2025):

This is now fixed in the commit referenced above and will be part of the v0.1.34 release 🎉

If you plan to use komorebi in your day job in the future please remember to purchase a commercial use license 🙏

@LGUG2Z commented on GitHub (Feb 2, 2025): This is now fixed in the commit referenced above and will be part of the v0.1.34 release 🎉 If you plan to use `komorebi` in your day job in the future please remember to purchase a [commercial use license](https://lgug2z.com/software/komorebi/) 🙏
Author
Owner

@kkanden commented on GitHub (Feb 2, 2025):

thanks a lot for your help! i really appreciate your work on the app as it's really cool!

@kkanden commented on GitHub (Feb 2, 2025): thanks a lot for your help! i really appreciate your work on the app as it's really cool!
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/komorebi#573