如何以编程方式将一个Terminal.app窗口移动到另一个空间?

Gav*_*ock 14 macos cocoa applescript spaces

如果我打开了几个OS-X Terminal.app窗口,如何将一个终端窗口移动到另一个空间?

我很高兴使用任何脚本或编程语言来实现这一点,但更喜欢AppleScript或调用标准框架.

(注意,这只是移动应用程序的一个窗口而不是所有窗口.)

cob*_*bal 8

使用Objective-C/C中的私人调用,在此处非正式列出

#import <Foundation/Foundation.h>

typedef int CGSConnection;
typedef int CGSWindow;

extern OSStatus CGSMoveWorkspaceWindowList(const CGSConnection connection,
                                       CGSWindow *wids,
                                       int count,
                                       int toWorkspace);
extern CGSConnection _CGSDefaultConnection(void);


int main(int argc, char **argv) {
    CGSConnection con = _CGSDefaultConnection();

    // replace 2004 with window number
    // see link for details on obtaining this number
    // 2004 just happened to be a window I had open to test with
    CGSWindow wids[] = {2004};

    // replace 4 with number of destination space
    CGSMoveWorkspaceWindowList(con, wids, 1, 4);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

标准警告适用于未记录的API:它们可能会中断.

  • 2015 年,这仍然是将窗口移动到另一个工作区的推荐方法吗? (2认同)