Initial Version
This commit is contained in:
@@ -0,0 +1,38 @@
|
|||||||
|
-- FocusMode.lua
|
||||||
|
|
||||||
|
local obj = {}
|
||||||
|
obj.isActive = false
|
||||||
|
|
||||||
|
-- Load the native C-optimized window highlighting extension
|
||||||
|
local hl = require("hs.window.highlight")
|
||||||
|
|
||||||
|
-- Configure the native isolation overlay properties
|
||||||
|
-- 78% black mask for deep workspace distraction isolation
|
||||||
|
hl.ui.isolateColor = {0, 0, 0, 0.78}
|
||||||
|
|
||||||
|
-- Start the background layout tracking engine loop natively
|
||||||
|
hl.start()
|
||||||
|
|
||||||
|
function obj.toggle()
|
||||||
|
-- Native switch to toggle isolate highlight state instantly
|
||||||
|
hl.toggleIsolate()
|
||||||
|
|
||||||
|
obj.isActive = not obj.isActive
|
||||||
|
if obj.isActive then
|
||||||
|
hs.alert.show("Focus Mode Active", 1.5)
|
||||||
|
else
|
||||||
|
hs.alert.show("Focus Mode Disabled", 1.5)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Native Hotkey Binding (Maps to your global hyper + F layout configuration)
|
||||||
|
if hyper then
|
||||||
|
hs.hotkey.bind(hyper, "F", function()
|
||||||
|
obj.toggle()
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Export module instance globally for our external Raycast script runner triggers
|
||||||
|
FocusMode = obj
|
||||||
|
|
||||||
|
return obj
|
||||||
Reference in New Issue
Block a user