diff options
Diffstat (limited to 'osdep/mac/swift_extensions.swift')
-rw-r--r-- | osdep/mac/swift_extensions.swift | 21 |
1 files changed, 19 insertions, 2 deletions
diff --git a/osdep/mac/swift_extensions.swift b/osdep/mac/swift_extensions.swift index ed6c86cd2a..e49806aaa0 100644 --- a/osdep/mac/swift_extensions.swift +++ b/osdep/mac/swift_extensions.swift @@ -24,9 +24,26 @@ extension NSDeviceDescriptionKey { extension NSScreen { public var displayID: CGDirectDisplayID { - get { - return deviceDescription[.screenNumber] as? CGDirectDisplayID ?? 0 + return deviceDescription[.screenNumber] as? CGDirectDisplayID ?? 0 + } + + public var serialNumber: String { + return String(CGDisplaySerialNumber(displayID)) + } + + public var name: String { + guard let regex = try? NSRegularExpression(pattern: " \\(\\d+\\)$", options: .caseInsensitive) else { + return localizedName } + return regex.stringByReplacingMatches( + in: localizedName, + range: NSRange(location: 0, length: localizedName.count), + withTemplate: "" + ) + } + + public var uniqueName: String { + return name + " (\(serialNumber))" } } |