Move window between desktops?

My original implementation (and I assume @tiffle's original implementation) seemed to be a little buggy on a few fronts:

  1. It didn't always bring the window. The click and hold seemed to be missed.
  2. It didn't always leave the window/application focussed depending on the state of the space it was throwing to.

Adding a small 0.1 second pause and restoring whatever the current application was seems to be working a bit more consistently.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Actions</key>
	<array>
		<dict>
			<key>ActionUID</key>
			<integer>3183</integer>
			<key>MacroActionType</key>
			<string>SetVariableToText</string>
			<key>Text</key>
			<string>%Application%1%</string>
			<key>Variable</key>
			<string>Current Application</string>
		</dict>
		<dict>
			<key>ActionUID</key>
			<integer>2791</integer>
			<key>MacroActionType</key>
			<string>SetVariableToCalculation</string>
			<key>Text</key>
			<string>MOUSEX(), MOUSEY()</string>
			<key>UseFormat</key>
			<false/>
			<key>Variable</key>
			<string>Mouse Position</string>
		</dict>
		<dict>
			<key>Action</key>
			<string>MoveAndClick</string>
			<key>ActionUID</key>
			<integer>2347</integer>
			<key>Button</key>
			<integer>0</integer>
			<key>ClickCount</key>
			<integer>1</integer>
			<key>DisplayMatches</key>
			<false/>
			<key>DragHorizontalPosition</key>
			<string>-100</string>
			<key>DragVerticalPosition</key>
			<string>100</string>
			<key>Fuzz</key>
			<integer>15</integer>
			<key>HorizontalPositionExpression</key>
			<string>15</string>
			<key>MacroActionType</key>
			<string>MouseMoveAndClick</string>
			<key>Modifiers</key>
			<integer>0</integer>
			<key>MouseDrag</key>
			<string>Hold</string>
			<key>Relative</key>
			<string>Window</string>
			<key>RelativeCorner</key>
			<string>TopLeft</string>
			<key>RestoreMouseLocation</key>
			<false/>
			<key>VerticalPositionExpression</key>
			<string>5</string>
		</dict>
		<dict>
			<key>ActionUID</key>
			<integer>3185</integer>
			<key>MacroActionType</key>
			<string>Pause</string>
			<key>Time</key>
			<string>0.1</string>
			<key>TimeOutAbortsMacro</key>
			<true/>
		</dict>
		<dict>
			<key>ActionUID</key>
			<integer>2778</integer>
			<key>CaseEntries</key>
			<array>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2348</integer>
							<key>KeyCode</key>
							<integer>122</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F1</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2779</integer>
							<key>KeyCode</key>
							<integer>120</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F2</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2780</integer>
							<key>KeyCode</key>
							<integer>99</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F3</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2781</integer>
							<key>KeyCode</key>
							<integer>118</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F4</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2782</integer>
							<key>KeyCode</key>
							<integer>96</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F5</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2783</integer>
							<key>KeyCode</key>
							<integer>97</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F6</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2784</integer>
							<key>KeyCode</key>
							<integer>98</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F7</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2785</integer>
							<key>KeyCode</key>
							<integer>100</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F8</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2786</integer>
							<key>KeyCode</key>
							<integer>101</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F9</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2787</integer>
							<key>KeyCode</key>
							<integer>109</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F10</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2788</integer>
							<key>KeyCode</key>
							<integer>103</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F11</string>
				</dict>
				<dict>
					<key>Actions</key>
					<array>
						<dict>
							<key>ActionUID</key>
							<integer>2789</integer>
							<key>KeyCode</key>
							<integer>111</integer>
							<key>MacroActionType</key>
							<string>SimulateKeystroke</string>
							<key>Modifiers</key>
							<integer>133120</integer>
							<key>ReleaseAll</key>
							<false/>
							<key>TargetApplication</key>
							<dict/>
							<key>TargetingType</key>
							<string>Front</string>
						</dict>
					</array>
					<key>ConditionType</key>
					<string>EndsWith</string>
					<key>TestValue</key>
					<string>F12</string>
				</dict>
			</array>
			<key>MacroActionType</key>
			<string>Switch</string>
			<key>Source</key>
			<string>Text</string>
			<key>Text</key>
			<string>%TriggerValue%</string>
		</dict>
		<dict>
			<key>Action</key>
			<string>MoveAndClick</string>
			<key>ActionUID</key>
			<integer>2349</integer>
			<key>Button</key>
			<integer>0</integer>
			<key>ClickCount</key>
			<integer>-1</integer>
			<key>DisplayMatches</key>
			<false/>
			<key>DragHorizontalPosition</key>
			<string>0</string>
			<key>DragVerticalPosition</key>
			<string>0</string>
			<key>Fuzz</key>
			<integer>15</integer>
			<key>HorizontalPositionExpression</key>
			<string>0</string>
			<key>MacroActionType</key>
			<string>MouseMoveAndClick</string>
			<key>Modifiers</key>
			<integer>0</integer>
			<key>MouseDrag</key>
			<string>None</string>
			<key>Relative</key>
			<string>Window</string>
			<key>RelativeCorner</key>
			<string>TopLeft</string>
			<key>RestoreMouseLocation</key>
			<false/>
			<key>VerticalPositionExpression</key>
			<string>100</string>
		</dict>
		<dict>
			<key>Action</key>
			<string>SetMouse</string>
			<key>ActionUID</key>
			<integer>2792</integer>
			<key>MacroActionType</key>
			<string>UseVariable</string>
			<key>Variable</key>
			<string>Mouse Position</string>
		</dict>
		<dict>
			<key>Action</key>
			<string>SetApplicationByName</string>
			<key>ActionUID</key>
			<integer>3184</integer>
			<key>MacroActionType</key>
			<string>UseVariable</string>
			<key>Variable</key>
			<string>Current Application</string>
		</dict>
	</array>
	<key>CreationDate</key>
	<real>752869222.298648</real>
	<key>ModificationDate</key>
	<real>753018936.33725595</real>
	<key>Name</key>
	<string>Throw Window to Space</string>
	<key>Triggers</key>
	<array>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>122</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>120</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>99</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>118</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>96</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>97</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>98</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>100</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>101</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>109</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>103</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
		<dict>
			<key>FireType</key>
			<string>Pressed</string>
			<key>KeyCode</key>
			<integer>111</integer>
			<key>MacroTriggerType</key>
			<string>HotKey</string>
			<key>Modifiers</key>
			<integer>6656</integer>
		</dict>
	</array>
	<key>UID</key>
	<string>56B129B1-C3C7-456C-917A-C05744EC046E</string>
</dict>
</plist>

Throw Window to Space.kmmacros (15.7 KB)

1 Like