Created
April 4, 2016 15:30
-
-
Save sixfeetover/7966e327f913e50e0ab1de8419a5eeaf to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local application = require "mjolnir.application" | |
local fnutils = require "mjolnir.fnutils" | |
local hotkey = require "mjolnir.hotkey" | |
local window = require "mjolnir.window" | |
local alert = require "mjolnir.alert" | |
hotkey.bind({"cmd", "alt", "ctrl"}, "D", function() | |
local win = window.focusedwindow() | |
local f = win:frame() | |
f.x = f.x + 10 | |
win:setframe(f) | |
end) | |
-- Move the window to a particular 1/4 of the screen | |
local quarter = function(x, y, keycode) | |
hotkey.bind({'ctrl', 'alt', 'cmd'}, keycode, function() | |
local win = window.focusedwindow() | |
win:movetounit{x = x, y = y, w = 0.5, h = 0.5} | |
end) | |
end | |
local third = function(x, y, keycode, factor) | |
hotkey.bind({'ctrl', 'alt', 'cmd'}, keycode, function() | |
local win = window.focusedwindow() | |
win:movetounit{x = x, y = y, w = 1/3 * factor, h = 1} | |
end) | |
end | |
-- Move the window to a particular half of the screen | |
local horizontal_half = function(x, y, keycode) | |
hotkey.bind({'ctrl', 'alt', 'cmd'}, keycode, function() | |
local win = window.focusedwindow() | |
win:movetounit{x = x, y = y, w = 0.5, h = 1} | |
end) | |
end | |
local vertical_half = function(x, y, keycode) | |
hotkey.bind({'ctrl', 'alt', 'cmd'}, keycode, function() | |
local win = window.focusedwindow() | |
win:movetounit{x = x, y = y, w = 1, h = 0.5} | |
end) | |
end | |
-- centered, big, not quite full screen | |
hotkey.bind({'ctrl', 'alt', 'cmd'}, 'c', function() | |
local win = window.focusedwindow() | |
win:movetounit{x = 1/10, y = 1/10, w = 0.8, h = 0.8} | |
end) | |
-- These next four commands create a 2x2 grid, which matches the keyboard: | |
-- U I | |
-- J K | |
quarter(0.0, 0.0, 'u') -- top left | |
quarter(0.5, 0.0, 'i') -- top right | |
quarter(0.0, 0.5, 'j') -- bottom left | |
quarter(0.5, 0.5, 'k') -- bottom right | |
third(0.0, 0.0, 'o', 1) -- left third | |
third(0.0, 0.0, 'p', 2) -- left two-thirds | |
third(2/3, 0.0, ']', 1) -- right third | |
third(1/3, 0.0, '[', 2) -- right two-thirds | |
-- Move to half of the screen | |
horizontal_half(0, 0, 'left') -- left | |
horizontal_half(0.5, 0, 'right') -- right | |
vertical_half(0, 0, 'up') -- top | |
vertical_half(0, 0.5, 'down') -- bottom | |
-- Maximize | |
hotkey.bind({'cmd', 'alt', 'ctrl'}, 'M', function() | |
local win = window.focusedwindow() | |
win:maximize() --movetounit{x = 0.01, y = 0.01, w = 0.95, h = 0.95} | |
end) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment