Add copy-on-select preference (#2282)

This commit is contained in:
Austin Wang 2026-03-29 18:16:05 -07:00 committed by GitHub
parent 94cc865e83
commit 35cb42fbc8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 178 additions and 14 deletions

View file

@ -584,6 +584,44 @@ final class GhosttyConfigTests: XCTestCase {
XCTAssertFalse(TelemetrySettings.isEnabled(defaults: defaults))
}
func testTerminalCopyOnSelectDefaultsToDisabledWhenUnset() {
let suiteName = "cmux.tests.copy-on-select.\(UUID().uuidString)"
guard let defaults = UserDefaults(suiteName: suiteName) else {
XCTFail("Failed to create isolated user defaults suite")
return
}
defer {
defaults.removePersistentDomain(forName: suiteName)
}
defaults.removeObject(forKey: TerminalCopyOnSelectSettings.enabledKey)
XCTAssertFalse(TerminalCopyOnSelectSettings.isEnabled(defaults: defaults))
XCTAssertEqual(
TerminalCopyOnSelectSettings.overrideConfigLine(defaults: defaults),
"copy-on-select = false"
)
}
func testTerminalCopyOnSelectUsesClipboardOverrideWhenEnabled() {
let suiteName = "cmux.tests.copy-on-select.\(UUID().uuidString)"
guard let defaults = UserDefaults(suiteName: suiteName) else {
XCTFail("Failed to create isolated user defaults suite")
return
}
defer {
defaults.removePersistentDomain(forName: suiteName)
}
defaults.set(true, forKey: TerminalCopyOnSelectSettings.enabledKey)
XCTAssertTrue(TerminalCopyOnSelectSettings.isEnabled(defaults: defaults))
XCTAssertEqual(
TerminalCopyOnSelectSettings.overrideConfigLine(defaults: defaults),
"copy-on-select = clipboard"
)
}
private func rgb255(_ color: NSColor) -> RGB {
let srgb = color.usingColorSpace(.sRGB)!
var red: CGFloat = 0