mirror of
https://github.com/neon443/DockPhobia.git
synced 2026-03-11 06:49:12 +00:00
YESSS
This commit is contained in:
@@ -32,10 +32,10 @@ struct DPSettings: Codable {
|
|||||||
NSScreen.mainFrameHeight*insetVertical
|
NSScreen.mainFrameHeight*insetVertical
|
||||||
}
|
}
|
||||||
var mouseInsetTop: CGFloat {
|
var mouseInsetTop: CGFloat {
|
||||||
NSScreen.mainFrameHeight*(1-(2*insetVertical))
|
NSScreen.mainFrameHeight*(1-(insetVertical))
|
||||||
}
|
}
|
||||||
var mouseInsetTrailing: CGFloat {
|
var mouseInsetTrailing: CGFloat {
|
||||||
NSScreen.mainFrameWidth*(1-(2*insetHorizontal))
|
NSScreen.mainFrameWidth*(1-(insetHorizontal))
|
||||||
}
|
}
|
||||||
|
|
||||||
var insetHorizontal: CGFloat
|
var insetHorizontal: CGFloat
|
||||||
@@ -45,8 +45,8 @@ struct DPSettings: Codable {
|
|||||||
return CGRect(
|
return CGRect(
|
||||||
x: mouseInsetLeading,
|
x: mouseInsetLeading,
|
||||||
y: mouseInsetBottom,
|
y: mouseInsetBottom,
|
||||||
width: mouseInsetTrailing,
|
width: mouseInsetTrailing - mouseInsetLeading,
|
||||||
height: mouseInsetTop
|
height: mouseInsetTop - mouseInsetBottom
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,6 +10,14 @@ import AppKit
|
|||||||
import Cocoa
|
import Cocoa
|
||||||
import ApplicationServices
|
import ApplicationServices
|
||||||
|
|
||||||
|
extension NSEvent {
|
||||||
|
var mouseLocationCG: CGPoint {
|
||||||
|
var loc = NSEvent.mouseLocation
|
||||||
|
loc.y = NSScreen.mainFrameHeight - loc.y
|
||||||
|
return loc
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
struct Screen {
|
struct Screen {
|
||||||
var width: CGFloat
|
var width: CGFloat
|
||||||
var height: CGFloat
|
var height: CGFloat
|
||||||
@@ -25,6 +33,9 @@ class MouseTracker {
|
|||||||
var settings: DPSettingsModel
|
var settings: DPSettingsModel
|
||||||
var skyHigh: SkyHigh
|
var skyHigh: SkyHigh
|
||||||
|
|
||||||
|
private var timer: Timer?
|
||||||
|
private var loopIteration: Double = 0
|
||||||
|
|
||||||
init(settings: DPSettingsModel) {
|
init(settings: DPSettingsModel) {
|
||||||
print(DockSide())
|
print(DockSide())
|
||||||
|
|
||||||
@@ -135,11 +146,33 @@ class MouseTracker {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func moveMouse() {
|
func moveMouse() {
|
||||||
|
let prevPoint = NSEvent().mouseLocationCG
|
||||||
let rangeW = settings.settings.mouseInsetLeading...settings.settings.mouseInsetTrailing
|
let rangeW = settings.settings.mouseInsetLeading...settings.settings.mouseInsetTrailing
|
||||||
let posX = CGFloat.random(in: rangeW)
|
let posX = CGFloat.random(in: rangeW)
|
||||||
let rangeH = settings.settings.mouseInsetBottom...settings.settings.mouseInsetTop
|
let rangeH = settings.settings.mouseInsetBottom...settings.settings.mouseInsetTop
|
||||||
let posY = CGFloat.random(in: rangeH)
|
let posY = CGFloat.random(in: rangeH)
|
||||||
CGDisplayMoveCursorToPoint(0, CGPoint(x: posX, y: posY))
|
print(prevPoint)
|
||||||
|
print(posX, posY)
|
||||||
|
|
||||||
|
timer?.invalidate()
|
||||||
|
loopIteration = 0
|
||||||
|
timer = Timer(timeInterval: 0.001, repeats: true) { [weak self] _ in
|
||||||
|
guard let self = self else { return }
|
||||||
|
guard NSEvent().mouseLocationCG != CGPoint(x: posX, y: posX) else {
|
||||||
|
timer?.invalidate()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
guard loopIteration < 1000 else {
|
||||||
|
timer?.invalidate()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
let newPosX = (prevPoint.x > posX ? prevPoint.x-loopIteration : prevPoint.x+loopIteration)
|
||||||
|
let newPosY = (prevPoint.y > posY ? prevPoint.y-loopIteration : prevPoint.y+loopIteration)
|
||||||
|
CGWarpMouseCursorPosition(CGPoint(x: newPosX, y: newPosY))
|
||||||
|
|
||||||
|
self.loopIteration += 4
|
||||||
|
}
|
||||||
|
RunLoop.main.add(timer!, forMode: .common)
|
||||||
}
|
}
|
||||||
|
|
||||||
func moveDock(_ toSide: DockSide) {
|
func moveDock(_ toSide: DockSide) {
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ class SkyHigh {
|
|||||||
backing: .buffered,
|
backing: .buffered,
|
||||||
defer: false
|
defer: false
|
||||||
)
|
)
|
||||||
window.backgroundColor = .init(srgbRed: 1, green: 1, blue: 1, alpha: 0.1)
|
window.backgroundColor = .init(srgbRed: 0.5, green: 0.5, blue: 0.5, alpha: 0.05)
|
||||||
window.isOpaque = false
|
window.isOpaque = false
|
||||||
window.level = NSWindow.Level.statusBar + 1
|
window.level = NSWindow.Level.statusBar + 1
|
||||||
window.ignoresMouseEvents = true
|
window.ignoresMouseEvents = true
|
||||||
|
|||||||
Reference in New Issue
Block a user