Microsoft Outlook #96

Closed
opened 2026-01-05 14:48:17 +01:00 by adam · 8 comments
Owner

Originally created by @hughwilliams94 on GitHub (Jun 9, 2022).

Originally assigned to: @LGUG2Z on GitHub.

Thanks very much for Komorebi.

I am having an issue with MS Outlook windows that hang around after being closed. If I open an email or calendar in a new window, closing that new window does not seem to be recognised by Komorebi.

I've tried using the workarounds suggested for other MS Office apps, but they don't seem to help.

Please let me know if I can provide any details for debugging.

Originally created by @hughwilliams94 on GitHub (Jun 9, 2022). Originally assigned to: @LGUG2Z on GitHub. Thanks very much for Komorebi. I am having an issue with MS Outlook windows that hang around after being closed. If I open an email or calendar in a new window, closing that new window does not seem to be recognised by Komorebi. I've tried using the workarounds suggested for other MS Office apps, but they don't seem to help. Please let me know if I can provide any details for debugging.
adam closed this issue 2026-01-05 14:48:17 +01:00
Author
Owner

@LGUG2Z commented on GitHub (Jun 11, 2022):

I believe this should have been addressed in the configuration generation repo by this PR.

If this does not help, the next time you are left with a ghost window tile after closing a window, run komorebic state in the terminal and share the output here; that should help me figure out why the window manager still believes that there is a window for which a tile still needs to be reserved and I'll be able to suggestion some configuration options for you.

@LGUG2Z commented on GitHub (Jun 11, 2022): I believe this should have been addressed in the configuration generation repo by [this PR](https://github.com/LGUG2Z/komorebi-application-specific-configuration/pull/3). If this does not help, the next time you are left with a ghost window tile after closing a window, run `komorebic state` in the terminal and share the output here; that should help me figure out why the window manager still believes that there is a window for which a tile still needs to be reserved and I'll be able to suggestion some configuration options for you.
Author
Owner

@hughwilliams94 commented on GitHub (Jun 17, 2022):

Unfortunately this has not helped with my particular issue, I've included the out of komorebic state below. Daily stand-up - Meeting Occurrence is the ghost window in this instance.

{
  "monitors": {
    "elements": [
      {
        "id": 65537,
        "size": {
          "left": 0,
          "top": 0,
          "right": 1920,
          "bottom": 1080
        },
        "work_area_size": {
          "left": 0,
          "top": 0,
          "right": 1920,
          "bottom": 1080
        },
        "workspaces": {
          "elements": [
            {
              "name": "Outlook",
              "containers": {
                "elements": [
                  {
                    "windows": {
                      "elements": [
                        {
                          "hwnd": 132604,
                          "title": "Calendar -fake@fake.com - Outlook",
                          "exe": "OUTLOOK.EXE",
                          "class": "rctrl_renwnd32",
                          "rect": {
                            "left": 20,
                            "top": 20,
                            "right": 930,
                            "bottom": 1040
                          }
                        }
                      ],
                      "focused": 0
                    }
                  },
                  {
                    "windows": {
                      "elements": [
                        {
                          "hwnd": 5179240,
                          "title": "Daily stand-up - Meeting Occurrence  ",
                          "exe": "OUTLOOK.EXE",
                          "class": "rctrl_renwnd32",
                          "rect": {
                            "left": 970,
                            "top": 20,
                            "right": 930,
                            "bottom": 1040
                          }
                        }
                      ],
                      "focused": 0
                    }
                  }
                ],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [
                null,
                null
              ],
              "tile": true
            },
            {
              "name": "Teams",
              "containers": {
                "elements": [],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [],
              "tile": true
            },
            {
              "name": "Emacs",
              "containers": {
                "elements": [],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [],
              "tile": true
            },
            {
              "name": "Edge",
              "containers": {
                "elements": [],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [],
              "tile": true
            },
            {
              "name": "Office",
              "containers": {
                "elements": [],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [],
              "tile": true
            },
            {
              "name": "Spotify",
              "containers": {
                "elements": [],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [],
              "tile": true
            },
            {
              "name": "Sandbox",
              "containers": {
                "elements": [],
                "focused": 0
              },
              "monocle_container": null,
              "maximized_window": null,
              "floating_windows": [],
              "layout": {
                "Default": "BSP"
              },
              "layout_rules": [],
              "layout_flip": null,
              "workspace_padding": 10,
              "container_padding": 10,
              "resize_dimensions": [],
              "tile": true
            }
          ],
          "focused": 0
        }
      }
    ],
    "focused": 0
  },
  "is_paused": false,
  "invisible_borders": {
    "left": 2,
    "top": 0,
    "right": 9,
    "bottom": 2
  },
  "resize_delta": 50,
  "new_window_behaviour": "Create",
  "work_area_offset": null,
  "focus_follows_mouse": null,
  "mouse_follows_focus": true,
  "has_pending_raise_op": false,
  "float_identifiers": [
    "OPContainerClass",
    "IHWindowClass",
    "Progman",
    "1Password.exe",
    "Window Spy",
    "CredentialUIBroker.exe",
    "Calculator",
    "Chrome_RenderWidgetHostHWND",
    "SunAwtDialog",
    "DropShadowTop",
    "_WwB",
    "Microsoft Teams Notifications",
    "ueli.exe",
    "Zoom.exe",
    "tcconfig.exe",
    "wincompose.exe",
    "OperationStatusWindow",
    "QuickLook.exe",
    "Control Panel",
    "NUIDialog",
    "Wally.exe",
    "Microsoft Teams Call in progress Meeting",
    "OfficeTooltip",
    "Advanced Find",
    "ddm.exe",
    "CEFCLIENT",
    "Wox.exe",
    "TaskManagerWindow",
    "Paradox Launcher.exe"
  ],
  "manage_identifiers": [
    "GalaxyClient.exe",
    "nhm_app.exe",
    "Obsidian.exe",
    "slack.exe",
    "OUTLOOK.EXE"
  ],
  "layered_whitelist": [
    "steam.exe",
    "EXCEL.EXE",
    "WINWORD.EXE",
    "OUTLOOK.EXE",
    "POWERPNT.EXE"
  ],
  "tray_and_multi_window_identifiers": [
    "explorer.exe",
    "firefox.exe",
    "chrome.exe",
    "idea64.exe",
    "ApplicationFrameHost.exe",
    "steam.exe",
    "Discord.exe",
    "AutoHotkeyU64.exe",
    "EpicGamesLauncher.exe",
    "Beeper.exe",
    "GalaxyClient.exe",
    "signal.exe",
    "TranslucentTB.exe",
    "Spotify.exe",
    "pycharm64.exe",
    "ueli.exe",
    "slack.exe",
    "qbittorrent.exe",
    "tcconfig.exe",
    "ZSATray.exe"
  ],
  "border_overflow_identifiers": [
    "EpicGamesLauncher.exe",
    "Beeper.exe",
    "Discord.exe",
    "GalaxyClient.exe",
    "WINWORD.EXE",
    "POWERPNT.EXE",
    "nhm_app.exe",
    "OUTLOOK.EXE",
    "EXCEL.EXE",
    "slack.exe",
    "Spotify.exe",
    "Obsidian.exe",
    "vguiPopupWindow"
  ],
  "name_change_on_launch_identifiers": [
    "firefox.exe",
    "idea64.exe",
    "pycharm64.exe"
  ]
}
@hughwilliams94 commented on GitHub (Jun 17, 2022): Unfortunately this has not helped with my particular issue, I've included the out of `komorebic state` below. `Daily stand-up - Meeting Occurrence` is the ghost window in this instance. ``` json { "monitors": { "elements": [ { "id": 65537, "size": { "left": 0, "top": 0, "right": 1920, "bottom": 1080 }, "work_area_size": { "left": 0, "top": 0, "right": 1920, "bottom": 1080 }, "workspaces": { "elements": [ { "name": "Outlook", "containers": { "elements": [ { "windows": { "elements": [ { "hwnd": 132604, "title": "Calendar -fake@fake.com - Outlook", "exe": "OUTLOOK.EXE", "class": "rctrl_renwnd32", "rect": { "left": 20, "top": 20, "right": 930, "bottom": 1040 } } ], "focused": 0 } }, { "windows": { "elements": [ { "hwnd": 5179240, "title": "Daily stand-up - Meeting Occurrence ", "exe": "OUTLOOK.EXE", "class": "rctrl_renwnd32", "rect": { "left": 970, "top": 20, "right": 930, "bottom": 1040 } } ], "focused": 0 } } ], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [ null, null ], "tile": true }, { "name": "Teams", "containers": { "elements": [], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [], "tile": true }, { "name": "Emacs", "containers": { "elements": [], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [], "tile": true }, { "name": "Edge", "containers": { "elements": [], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [], "tile": true }, { "name": "Office", "containers": { "elements": [], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [], "tile": true }, { "name": "Spotify", "containers": { "elements": [], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [], "tile": true }, { "name": "Sandbox", "containers": { "elements": [], "focused": 0 }, "monocle_container": null, "maximized_window": null, "floating_windows": [], "layout": { "Default": "BSP" }, "layout_rules": [], "layout_flip": null, "workspace_padding": 10, "container_padding": 10, "resize_dimensions": [], "tile": true } ], "focused": 0 } } ], "focused": 0 }, "is_paused": false, "invisible_borders": { "left": 2, "top": 0, "right": 9, "bottom": 2 }, "resize_delta": 50, "new_window_behaviour": "Create", "work_area_offset": null, "focus_follows_mouse": null, "mouse_follows_focus": true, "has_pending_raise_op": false, "float_identifiers": [ "OPContainerClass", "IHWindowClass", "Progman", "1Password.exe", "Window Spy", "CredentialUIBroker.exe", "Calculator", "Chrome_RenderWidgetHostHWND", "SunAwtDialog", "DropShadowTop", "_WwB", "Microsoft Teams Notifications", "ueli.exe", "Zoom.exe", "tcconfig.exe", "wincompose.exe", "OperationStatusWindow", "QuickLook.exe", "Control Panel", "NUIDialog", "Wally.exe", "Microsoft Teams Call in progress Meeting", "OfficeTooltip", "Advanced Find", "ddm.exe", "CEFCLIENT", "Wox.exe", "TaskManagerWindow", "Paradox Launcher.exe" ], "manage_identifiers": [ "GalaxyClient.exe", "nhm_app.exe", "Obsidian.exe", "slack.exe", "OUTLOOK.EXE" ], "layered_whitelist": [ "steam.exe", "EXCEL.EXE", "WINWORD.EXE", "OUTLOOK.EXE", "POWERPNT.EXE" ], "tray_and_multi_window_identifiers": [ "explorer.exe", "firefox.exe", "chrome.exe", "idea64.exe", "ApplicationFrameHost.exe", "steam.exe", "Discord.exe", "AutoHotkeyU64.exe", "EpicGamesLauncher.exe", "Beeper.exe", "GalaxyClient.exe", "signal.exe", "TranslucentTB.exe", "Spotify.exe", "pycharm64.exe", "ueli.exe", "slack.exe", "qbittorrent.exe", "tcconfig.exe", "ZSATray.exe" ], "border_overflow_identifiers": [ "EpicGamesLauncher.exe", "Beeper.exe", "Discord.exe", "GalaxyClient.exe", "WINWORD.EXE", "POWERPNT.EXE", "nhm_app.exe", "OUTLOOK.EXE", "EXCEL.EXE", "slack.exe", "Spotify.exe", "Obsidian.exe", "vguiPopupWindow" ], "name_change_on_launch_identifiers": [ "firefox.exe", "idea64.exe", "pycharm64.exe" ] } ```
Author
Owner

@LGUG2Z commented on GitHub (Jun 17, 2022):

I'm trying to do a little digging to see if users of other twms have seen similar issues with Outlook and I found this: https://github.com/TimUntersberger/nog/issues/268

I like nog's idea of having a min_width and min_height for a window to be managed. I have the feeling that the window still exists (otherwise komorebi's orphan window reaper would have removed it), but it has been either resized to a deliberately small size or moved way out of the viewport.

@ramirezmike @TimUntersberger Apologies for tagging you in this blast from the past, but I wonder if you could provide some additional context on dealing with this issue based on your experiences dealing with it in nog. 🙏

@LGUG2Z commented on GitHub (Jun 17, 2022): I'm trying to do a little digging to see if users of other twms have seen similar issues with Outlook and I found this: https://github.com/TimUntersberger/nog/issues/268 I like `nog`'s idea of having a `min_width` and `min_height` for a window to be managed. I have the feeling that the window still exists (otherwise `komorebi`'s orphan window reaper would have removed it), but it has been either resized to a deliberately small size or moved way out of the viewport. @ramirezmike @TimUntersberger Apologies for tagging you in this blast from the past, but I wonder if you could provide some additional context on dealing with this issue based on your experiences dealing with it in `nog`. 🙏
Author
Owner

@TimUntersberger commented on GitHub (Jun 17, 2022):

I have the feeling that the window still exists

If I remember correctly, some windows apps seem to be reusing windows or at least hiding them until you open the app again.

I'm assuming that outlook only has 1 notification window which gets reused.

@TimUntersberger commented on GitHub (Jun 17, 2022): > I have the feeling that the window still exists If I remember correctly, some windows apps seem to be reusing windows or at least hiding them until you open the app again. I'm assuming that outlook only has 1 notification window which gets reused.
Author
Owner

@ramirezmike commented on GitHub (Jun 17, 2022):

Yeah, using a minwidth/minheight eliminates the problem but it is a little hacky. An observation I had was that some background services seem to claim window IDs without actually having visible windows which causes the same thing to occur. Might be worth looking through the Windows API to see if there's something that provides more information about the window to be sure that it exists..

Also, offtopic, hi @TimUntersberger 👋 hope you are well

@ramirezmike commented on GitHub (Jun 17, 2022): Yeah, using a minwidth/minheight eliminates the problem but it is a little hacky. An observation I had was that some background services seem to claim window IDs without actually having visible windows which causes the same thing to occur. Might be worth looking through the Windows API to see if there's something that provides more information about the window to be sure that it exists.. Also, offtopic, hi @TimUntersberger 👋 hope you are well
Author
Owner

@LGUG2Z commented on GitHub (Jun 17, 2022):

Thanks to both of you, both for the inspiration to start this project and for taking the time to reply here in this thread. 🙏

@hughwilliams94 I bit the bullet and paid the $6 for a month to be able to use Outlook and after trying to reproduce the issue, I found that this behaviour only occurs when the window is closed, but not when the window is minimized. This mimics how "tray and multi window applications" behave, and I noticed that Outlook also has a tray icon.

Based on this, I added OUTLOOK.EXE to try tray and multi-window whitelist with this command:

komorebic identify-tray-application exe "OUTLOOK.EXE"

And since doing this, I am able to successfully close an email opened in a new window without leaving a ghost/zombie window tile behind. Try this out and let me know if it also resolves your issues. In the meantime, I will make an update to the configuration repo to ensure this rule is automatically populated the next time users generate fresh configs.

@LGUG2Z commented on GitHub (Jun 17, 2022): Thanks to both of you, both for the inspiration to start this project and for taking the time to reply here in this thread. 🙏 @hughwilliams94 I bit the bullet and paid the $6 for a month to be able to use Outlook and after trying to reproduce the issue, I found that this behaviour only occurs when the window is closed, but not when the window is minimized. This mimics how "tray and multi window applications" behave, and I noticed that Outlook also has a tray icon. Based on this, I added `OUTLOOK.EXE` to try tray and multi-window whitelist with this command: ``` komorebic identify-tray-application exe "OUTLOOK.EXE" ``` And since doing this, I am able to successfully close an email opened in a new window without leaving a ghost/zombie window tile behind. Try this out and let me know if it also resolves your issues. In the meantime, I will make an update to the configuration repo to ensure this rule is automatically populated the next time users generate fresh configs.
Author
Owner

@LGUG2Z commented on GitHub (Jun 17, 2022):

33baad11eb/applications.yaml (L101)=

@LGUG2Z commented on GitHub (Jun 17, 2022): https://github.com/LGUG2Z/komorebi-application-specific-configuration/blob/33baad11eb260bf6d921c596c8dcf238aa113aa2/applications.yaml#L101=
Author
Owner

@hughwilliams94 commented on GitHub (Jun 21, 2022):

This seems to have done the trick, thanks for investigating

@hughwilliams94 commented on GitHub (Jun 21, 2022): This seems to have done the trick, thanks for investigating
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/komorebi#96