"Custom Move / Resize Window" BTT: 6.038 issue

After the update to BTT: 6.038 the following "Custom Move / Resize Window" action is having some weird behavior. The below doesn't move the window to the left (it does work in both directions), it's being triggered tho:

[
  {
    "BTTLastUpdatedAt" : 1768471924.745249,
    "BTTTriggerType" : 0,
    "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
    "BTTUUID" : "DAEE9EA9-A8D2-414F-A350-9BA00883693C",
    "BTTAdditionalConfiguration" : "1449994",
    "BTTShortcutScope" : 0,
    "BTTShortcutKeyboardType" : 2302,
    "BTTTriggerOnDown" : 1,
    "BTTLayoutIndependentChar" : "[",
    "BTTShortcutKeyCode" : 33,
    "BTTShortcutAdvancedModifierKeys" : "1449994",
    "BTTShortcutModifierKeys" : 1441792,
    "BTTOrder" : 3,
    "BTTAutoAdaptToKeyboardLayout" : 0,
    "BTTActionsToExecute" : [
      {
        "BTTLastUpdatedAt" : 1768471951.1716251,
        "BTTTriggerParentUUID" : "DAEE9EA9-A8D2-414F-A350-9BA00883693C",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
        "BTTUUID" : "D67C752D-175C-4705-9B40-5BCD4A9CD744",
        "BTTPredefinedActionType" : 251,
        "BTTPredefinedActionName" : "Custom Move  or  Resize Window",
        "BTTActionMoveResizeConfig" : "{\"BTTDirectionToMove\":1,\"BTTScreenOrigin\":0,\"BTTActiveOrHoveredWindow\":0,\"BTTScreensToMove\":1,\"BTTChangeXOriginRelative\":0,\"BTTOriginToUse\":0,\"BTTChangeYOriginRelative\":0,\"BTTOriginDisplay\":1,\"BTTUseVisibleFrame\":false,\"BTTCareForStageManager\":false}",
        "BTTActionMoveResizeName" : "move to left",
        "BTTShortcutKeyboardType" : 0,
        "BTTShortcutKeyCode" : -1,
        "BTTOrder" : 3,
        "BTTAutoAdaptToKeyboardLayout" : 0
      }
    ]
  }
]

If I specify the monitor identifier I see that the window moves, but it's immediately moved back to the right monitor and vise verse:

[
  {
    "BTTLastUpdatedAt" : 1768472158.7717009,
    "BTTTriggerType" : 0,
    "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
    "BTTUUID" : "DAEE9EA9-A8D2-414F-A350-9BA00883693C",
    "BTTAdditionalConfiguration" : "1449994",
    "BTTShortcutScope" : 0,
    "BTTShortcutKeyboardType" : 2302,
    "BTTTriggerOnDown" : 1,
    "BTTLayoutIndependentChar" : "[",
    "BTTShortcutKeyCode" : 33,
    "BTTShortcutAdvancedModifierKeys" : "1449994",
    "BTTShortcutModifierKeys" : 1441792,
    "BTTOrder" : 3,
    "BTTAutoAdaptToKeyboardLayout" : 0,
    "BTTActionsToExecute" : [
      {
        "BTTLastUpdatedAt" : 1768472174.367945,
        "BTTTriggerParentUUID" : "DAEE9EA9-A8D2-414F-A350-9BA00883693C",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
        "BTTUUID" : "D67C752D-175C-4705-9B40-5BCD4A9CD744",
        "BTTPredefinedActionType" : 251,
        "BTTPredefinedActionName" : "Custom Move  or  Resize Window",
        "BTTActionMoveResizeConfig" : "{\"BTTScreenUUID\":\"0D84F199-6D0A-4069-B9AD-EDD765A182E4\",\"BTTDirectionToMove\":2,\"BTTScreenOrigin\":0,\"BTTActiveOrHoveredWindow\":0,\"BTTScreensToMove\":-3,\"BTTChangeXOriginRelative\":0,\"BTTOriginToUse\":0,\"BTTChangeYOriginRelative\":0,\"BTTOriginDisplay\":1,\"BTTUseVisibleFrame\":false,\"BTTCareForStageManager\":false}",
        "BTTActionMoveResizeName" : "move to left",
        "BTTShortcutKeyboardType" : 0,
        "BTTShortcutKeyCode" : -1,
        "BTTOrder" : 3,
        "BTTAutoAdaptToKeyboardLayout" : 0
      }
    ],
    "BTTTriggerConfig" : {
      "BTTHUDText" : "tt",
      "BTTShowHUD" : 1
    }
  }
]

macOS 15.7.2 (24G325)

There hasn't been a change in 6.038 related to this, but I'll have a look at your config!

The behavior of your setup is kind of undefined because you don't have any of the checkboxes checked that would actually move the window:

It will probably still try to do something, but it might be kind of random

Hm, but I've never (just checked a random backup and BTTActionMoveResizeConfig is absolutely the same) configured this before. This is one (if not the first) actions I've setup and used. My previous version was BTT: 5.804.

I've tested now that if I check the suggested checkboxes and enter some values indeed the window is moving, but is there a way to make it work without enabling/configuring those?
I'm mostly curious why it did stopped work all of the sudden.

Most likely because I upgraded to a newer Xcode version to build the latest BTT alphas. The behavior in this case is undefined as I don't really handle that code path - so e.g. a compiler change could change the behavior.

I want to change this UI to make it more clear what options to check, but I haven't come up with a good structure for that yet

Interesting. Thanks for this explanation. Is there a way for you to check also the 2nd example where I specify the screen specific identifier and in which case I see the window moving to the correct display but it's then moved back? Basically this is what I want but without moving back the window to it's original position.

That should also work once you check the "really move" checkboxes

It is, but if I specify any value all of the windows I move will end up at the same X Y coordinates, but previously the windows were moved to the same (or almost the same) coordinates from the source to the destination displays.

Maybe I'll need to play around with the "Assume the window's" and "Is Moved To The" dropdowns and will make it work, but previously this behavior was similar (if not the same) how it is on Linux and Windows.

That is what I added this option for:

However this did not work well with the "specific name" display option. I just fixed that in 6.039! (uploading)

Nice, thanks!

I'm however not able to "properly" configure this I think. Once I've select "Current Position (Keep window coordinates)" what values should I use in the text boxes? I'm not able to configure it to move the window to the same position from source to destination displays. Is this is possible with this new config or it is useful in other use-cases?

in addition to selecting that option you'd just need to check the really move checkboxes

[
  {
    "BTTLastUpdatedAt" : 1768475552.2865028,
    "BTTTriggerType" : 0,
    "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
    "BTTUUID" : "DAEE9EA9-A8D2-414F-A350-9BA00883693C",
    "BTTAdditionalConfiguration" : "1449994",
    "BTTShortcutScope" : 0,
    "BTTShortcutKeyboardType" : 2302,
    "BTTTriggerOnDown" : 1,
    "BTTLayoutIndependentChar" : "[",
    "BTTShortcutKeyCode" : 33,
    "BTTShortcutAdvancedModifierKeys" : "1449994",
    "BTTShortcutModifierKeys" : 1441792,
    "BTTOrder" : 3,
    "BTTAutoAdaptToKeyboardLayout" : 0,
    "BTTActionsToExecute" : [
      {
        "BTTLastUpdatedAt" : 1768479289.5697651,
        "BTTTriggerParentUUID" : "DAEE9EA9-A8D2-414F-A350-9BA00883693C",
        "BTTIsPureAction" : true,
        "BTTTriggerClass" : "BTTTriggerTypeKeyboardShortcut",
        "BTTUUID" : "D67C752D-175C-4705-9B40-5BCD4A9CD744",
        "BTTPredefinedActionType" : 251,
        "BTTPredefinedActionName" : "Custom Move  or  Resize Window",
        "BTTActionMoveResizeConfig" : "{\"BTTOriginToUse\":0,\"BTTChangeYOrigin\":1,\"BTTCareForStageManager\":false,\"BTTNewYAbsolute\":0,\"BTTActiveOrHoveredWindow\":0,\"BTTNewXRelative\":0,\"BTTOriginDisplay\":1,\"BTTChangeXOriginRelative\":0,\"BTTNewXAbsolute\":0,\"BTTChangeXOrigin\":1,\"BTTChangeYOriginRelative\":0,\"BTTUseVisibleFrame\":false,\"BTTScreenOrigin\":6,\"BTTNewYRelative\":0,\"BTTDirectionToMove\":1,\"BTTScreensToMove\":1}",
        "BTTActionMoveResizeName" : "move to left",
        "BTTShortcutKeyboardType" : 0,
        "BTTShortcutKeyCode" : -1,
        "BTTOrder" : 3,
        "BTTAutoAdaptToKeyboardLayout" : 0
      }
    ],
    "BTTTriggerConfig" : {
      "BTTHUDText" : "tt",
      "BTTShowHUD" : 1
    }
  }
]

This is my current config, but it is not doing anything, trigger is triggered.

Do these displays have the same resolution? (Keeping the position only really works if they do)

It seems yes:

$ system_profiler SPDisplaysDataType | grep Resolution
          Resolution: 4096 x 2304
          Resolution: 3456 x 2234 Retina
          Resolution: 4096 x 2304

If I use the display identifier it is working as expected.

Ah weird, then for some reason BTT identifies the incorrect display with the "1 screen left" option for some reason (maybe because they are the same model), I'll check!

Could you check whether the "1 display left" option works with your setup in 6.040?

Right after the update to BTT: 6.040 it was not working, but then I've made my built-in display the main one and for the left monitor I did "Mirror for Built-in Display" and everything started working. Then reverted back left one to be main, built-in and right one to be extended and it started working. Let's see if this will continue to work after macOS restart (will test tonight/tomorrow probably)

Appreciate this Andreas!