mirror of https://github.com/einverne/dotfiles.git
Ein Verne
4 years ago
5 changed files with 753 additions and 48 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,143 @@
|
||||
[ |
||||
{ |
||||
"Command": [], |
||||
"Constant": [], |
||||
"Constructor": [], |
||||
"Deprecated": [], |
||||
"Field": [], |
||||
"Function": [], |
||||
"Method": [ |
||||
{ |
||||
"def": "Caffeine:bindHotkeys(mapping)", |
||||
"desc": "Binds hotkeys for Caffeine", |
||||
"doc": "Binds hotkeys for Caffeine\n\nParameters:\n * mapping - A table containing hotkey modifier/key details for the following items:\n * toggle - This will toggle the state of display sleep prevention, and update the menubar graphic\n\nReturns:\n * The Caffeine object", |
||||
"name": "bindHotkeys", |
||||
"parameters": [ |
||||
" * mapping - A table containing hotkey modifier/key details for the following items:", |
||||
" * toggle - This will toggle the state of display sleep prevention, and update the menubar graphic" |
||||
], |
||||
"returns": [ |
||||
" * The Caffeine object" |
||||
], |
||||
"signature": "Caffeine:bindHotkeys(mapping)", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
}, |
||||
{ |
||||
"def": "Caffeine:setState(on)", |
||||
"desc": "Sets whether or not caffeination should be enabled", |
||||
"doc": "Sets whether or not caffeination should be enabled\n\nParameters:\n * on - A boolean, true if screens should be kept awake, false to let macOS send them to sleep\n\nReturns:\n * None", |
||||
"name": "setState", |
||||
"parameters": [ |
||||
" * on - A boolean, true if screens should be kept awake, false to let macOS send them to sleep" |
||||
], |
||||
"returns": [ |
||||
" * None" |
||||
], |
||||
"signature": "Caffeine:setState(on)", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
}, |
||||
{ |
||||
"def": "Caffeine:start()", |
||||
"desc": "Starts Caffeine", |
||||
"doc": "Starts Caffeine\n\nParameters:\n * None\n\nReturns:\n * The Caffeine object", |
||||
"name": "start", |
||||
"parameters": [ |
||||
" * None" |
||||
], |
||||
"returns": [ |
||||
" * The Caffeine object" |
||||
], |
||||
"signature": "Caffeine:start()", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
}, |
||||
{ |
||||
"def": "Caffeine:stop()", |
||||
"desc": "Stops Caffeine", |
||||
"doc": "Stops Caffeine\n\nParameters:\n * None\n\nReturns:\n * The Caffeine object", |
||||
"name": "stop", |
||||
"parameters": [ |
||||
" * None" |
||||
], |
||||
"returns": [ |
||||
" * The Caffeine object" |
||||
], |
||||
"signature": "Caffeine:stop()", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
} |
||||
], |
||||
"Variable": [], |
||||
"desc": "Prevent the screen from going to sleep", |
||||
"doc": "Prevent the screen from going to sleep\nDownload: [https://github.com/Hammerspoon/Spoons/raw/master/Spoons/Caffeine.spoon.zip](https://github.com/Hammerspoon/Spoons/raw/master/Spoons/Caffeine.spoon.zip)", |
||||
"items": [ |
||||
{ |
||||
"def": "Caffeine:bindHotkeys(mapping)", |
||||
"desc": "Binds hotkeys for Caffeine", |
||||
"doc": "Binds hotkeys for Caffeine\n\nParameters:\n * mapping - A table containing hotkey modifier/key details for the following items:\n * toggle - This will toggle the state of display sleep prevention, and update the menubar graphic\n\nReturns:\n * The Caffeine object", |
||||
"name": "bindHotkeys", |
||||
"parameters": [ |
||||
" * mapping - A table containing hotkey modifier/key details for the following items:", |
||||
" * toggle - This will toggle the state of display sleep prevention, and update the menubar graphic" |
||||
], |
||||
"returns": [ |
||||
" * The Caffeine object" |
||||
], |
||||
"signature": "Caffeine:bindHotkeys(mapping)", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
}, |
||||
{ |
||||
"def": "Caffeine:setState(on)", |
||||
"desc": "Sets whether or not caffeination should be enabled", |
||||
"doc": "Sets whether or not caffeination should be enabled\n\nParameters:\n * on - A boolean, true if screens should be kept awake, false to let macOS send them to sleep\n\nReturns:\n * None", |
||||
"name": "setState", |
||||
"parameters": [ |
||||
" * on - A boolean, true if screens should be kept awake, false to let macOS send them to sleep" |
||||
], |
||||
"returns": [ |
||||
" * None" |
||||
], |
||||
"signature": "Caffeine:setState(on)", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
}, |
||||
{ |
||||
"def": "Caffeine:start()", |
||||
"desc": "Starts Caffeine", |
||||
"doc": "Starts Caffeine\n\nParameters:\n * None\n\nReturns:\n * The Caffeine object", |
||||
"name": "start", |
||||
"parameters": [ |
||||
" * None" |
||||
], |
||||
"returns": [ |
||||
" * The Caffeine object" |
||||
], |
||||
"signature": "Caffeine:start()", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
}, |
||||
{ |
||||
"def": "Caffeine:stop()", |
||||
"desc": "Stops Caffeine", |
||||
"doc": "Stops Caffeine\n\nParameters:\n * None\n\nReturns:\n * The Caffeine object", |
||||
"name": "stop", |
||||
"parameters": [ |
||||
" * None" |
||||
], |
||||
"returns": [ |
||||
" * The Caffeine object" |
||||
], |
||||
"signature": "Caffeine:stop()", |
||||
"stripped_doc": "", |
||||
"type": "Method" |
||||
} |
||||
], |
||||
"name": "Caffeine", |
||||
"stripped_doc": "Download: [https://github.com/Hammerspoon/Spoons/raw/master/Spoons/Caffeine.spoon.zip](https://github.com/Hammerspoon/Spoons/raw/master/Spoons/Caffeine.spoon.zip)", |
||||
"submodules": [], |
||||
"type": "Module" |
||||
} |
||||
] |
@ -0,0 +1,119 @@
|
||||
--- === Caffeine === |
||||
--- |
||||
--- Prevent the screen from going to sleep |
||||
--- Download: [https://github.com/Hammerspoon/Spoons/raw/master/Spoons/Caffeine.spoon.zip](https://github.com/Hammerspoon/Spoons/raw/master/Spoons/Caffeine.spoon.zip) |
||||
local obj = { __gc = true } |
||||
--obj.__index = obj |
||||
setmetatable(obj, obj) |
||||
obj.__gc = function(t) |
||||
t:stop() |
||||
end |
||||
|
||||
-- Metadata |
||||
obj.name = "Caffeine" |
||||
obj.version = "1.0" |
||||
obj.author = "Chris Jones <[email protected]>" |
||||
obj.homepage = "https://github.com/Hammerspoon/Spoons" |
||||
obj.license = "MIT - https://opensource.org/licenses/MIT" |
||||
|
||||
obj.menuBarItem = nil |
||||
obj.hotkeyToggle = nil |
||||
|
||||
-- Internal function used to find our location, so we know where to load files from |
||||
local function script_path() |
||||
local str = debug.getinfo(2, "S").source:sub(2) |
||||
return str:match("(.*/)") |
||||
end |
||||
obj.spoonPath = script_path() |
||||
|
||||
function obj:init() |
||||
end |
||||
|
||||
--- Caffeine:bindHotkeys(mapping) |
||||
--- Method |
||||
--- Binds hotkeys for Caffeine |
||||
--- |
||||
--- Parameters: |
||||
--- * mapping - A table containing hotkey modifier/key details for the following items: |
||||
--- * toggle - This will toggle the state of display sleep prevention, and update the menubar graphic |
||||
--- |
||||
--- Returns: |
||||
--- * The Caffeine object |
||||
function obj:bindHotkeys(mapping) |
||||
if (self.hotkeyToggle) then |
||||
self.hotkeyToggle:delete() |
||||
end |
||||
local toggleMods = mapping["toggle"][1] |
||||
local toggleKey = mapping["toggle"][2] |
||||
self.hotkeyToggle = hs.hotkey.new(toggleMods, toggleKey, function() self.clicked() end) |
||||
|
||||
return self |
||||
end |
||||
|
||||
--- Caffeine:start() |
||||
--- Method |
||||
--- Starts Caffeine |
||||
--- |
||||
--- Parameters: |
||||
--- * None |
||||
--- |
||||
--- Returns: |
||||
--- * The Caffeine object |
||||
function obj:start() |
||||
if self.menuBarItem then self:stop() end |
||||
self.menuBarItem = hs.menubar.new() |
||||
self.menuBarItem:setClickCallback(self.clicked) |
||||
if (self.hotkeyToggle) then |
||||
self.hotkeyToggle:enable() |
||||
end |
||||
self.setDisplay(hs.caffeinate.get("displayIdle")) |
||||
|
||||
return self |
||||
end |
||||
|
||||
--- Caffeine:stop() |
||||
--- Method |
||||
--- Stops Caffeine |
||||
--- |
||||
--- Parameters: |
||||
--- * None |
||||
--- |
||||
--- Returns: |
||||
--- * The Caffeine object |
||||
function obj:stop() |
||||
if self.menuBarItem then self.menuBarItem:delete() end |
||||
if (self.hotkeyToggle) then |
||||
self.hotkeyToggle:disable() |
||||
end |
||||
self.menuBarItem = nil |
||||
return self |
||||
end |
||||
|
||||
function obj.setDisplay(state) |
||||
local result |
||||
if state then |
||||
result = obj.menuBarItem:setIcon(obj.spoonPath.."/caffeine-on.pdf") |
||||
else |
||||
result = obj.menuBarItem:setIcon(obj.spoonPath.."/caffeine-off.pdf") |
||||
end |
||||
end |
||||
|
||||
function obj.clicked() |
||||
obj.setDisplay(hs.caffeinate.toggle("displayIdle")) |
||||
end |
||||
|
||||
--- Caffeine:setState(on) |
||||
--- Method |
||||
--- Sets whether or not caffeination should be enabled |
||||
--- |
||||
--- Parameters: |
||||
--- * on - A boolean, true if screens should be kept awake, false to let macOS send them to sleep |
||||
--- |
||||
--- Returns: |
||||
--- * None |
||||
function obj:setState(on) |
||||
hs.caffeinate.set("displayIdle", on) |
||||
obj.setDisplay(on) |
||||
end |
||||
|
||||
return obj |
Loading…
Reference in new issue