// 重新啟用被軟體停用的顯示器（Jump Desktop 虛擬顯示器 bug 的善後）
// 用法：swift enable-display.swift <display id>
//
// display id 從 Jump 的 Agent 紀錄找：
//   grep "Disabling physical display" ~/Library/Logs/Jump\ Desktop/Agent_*.log
//   → "Disabling physical display 3 (uuid ...)" 的 3
//
// 以 .forSession 套用（與 Jump 停用時相同），登出或重開機後即失效，不寫入永久設定。
import AppKit

typealias ConfigureEnabled = @convention(c) (CGDisplayConfigRef?, CGDirectDisplayID, Bool) -> CGError
guard let h = dlopen("/System/Library/Frameworks/CoreGraphics.framework/CoreGraphics", RTLD_NOW),
      let sym = dlsym(h, "CGSConfigureDisplayEnabled") else { print("找不到 CGSConfigureDisplayEnabled"); exit(1) }
let configure = unsafeBitCast(sym, to: ConfigureEnabled.self)

guard CommandLine.arguments.count > 1, let n = UInt32(CommandLine.arguments[1]) else {
    print("用法：swift enable-display.swift <display id>"); exit(2)
}
var cfg: CGDisplayConfigRef?
print("Begin:", CGBeginDisplayConfiguration(&cfg).rawValue)
print("Enable id \(n):", configure(cfg, CGDirectDisplayID(n), true).rawValue)
print("Complete:", CGCompleteDisplayConfiguration(cfg, .forSession).rawValue, "（三個都是 0 才算成功）")
