paperwm.lua (2844B)
1 return { 2 setup = function(mods) 3 PaperWM = hs.loadSpoon("PaperWM") 4 local paperWmMod = mods.paperWmMod 5 local paperWmMoveMod = mods.paperWmMoveMod 6 7 PaperWM.window_ratios = { 1 / 3, 1 / 2, 2 / 3 } 8 PaperWM:bindHotkeys({ 9 -- switch to a new focused window in tiled grid 10 focus_left = { paperWmMod, "left" }, 11 focus_right = { paperWmMod, "right" }, 12 focus_up = { paperWmMod, "up" }, 13 focus_down = { paperWmMod, "down" }, 14 15 -- switch windows by cycling forward/backward 16 -- (forward = down or right, backward = up or left) 17 focus_prev = { paperWmMod, "k" }, 18 focus_next = { paperWmMod, "j" }, 19 20 -- move windows around in tiled grid 21 swap_left = { paperWmMoveMod, "left" }, 22 swap_left = { paperWmMoveMod, "h" }, 23 swap_right = { paperWmMoveMod, "right" }, 24 swap_right = { paperWmMoveMod, "l" }, 25 swap_up = { paperWmMoveMod, "up" }, 26 swap_up = { paperWmMoveMod, "k" }, 27 swap_down = { paperWmMoveMod, "down" }, 28 swap_down = { paperWmMoveMod, "j" }, 29 30 -- alternative: swap entire columns, rather than 31 -- individual windows (to be used instead of 32 -- swap_left / swap_right bindings) 33 -- swap_column_left = {{"alt", "cmd", "shift"}, "left"}, 34 -- swap_column_right = {{"alt", "cmd", "shift"}, "right"}, 35 36 -- position and resize focused window 37 center_window = { paperWmMod, "c" }, 38 full_width = { paperWmMod, "f" }, 39 cycle_width = { paperWmMod, "r" }, 40 reverse_cycle_width = { paperWmMoveMod, "r" }, 41 42 -- increase/decrease width 43 increase_width = { paperWmMod, "l" }, 44 decrease_width = { paperWmMod, "h" }, 45 46 -- move focused window into / out of a column 47 slurp_in = { paperWmMod, "i" }, 48 barf_out = { paperWmMod, "o" }, 49 50 -- move the focused window into / out of the tiling layer 51 toggle_floating = { { "alt", "cmd", "shift" }, "escape" }, 52 53 -- move focused window to a new space and tile 54 move_window_1 = { paperWmMoveMod, "1" }, 55 move_window_2 = { paperWmMoveMod, "2" }, 56 move_window_3 = { paperWmMoveMod, "3" }, 57 move_window_4 = { paperWmMoveMod, "4" }, 58 move_window_5 = { paperWmMoveMod, "5" }, 59 move_window_6 = { paperWmMoveMod, "6" }, 60 move_window_7 = { paperWmMoveMod, "7" }, 61 move_window_8 = { paperWmMoveMod, "8" }, 62 move_window_9 = { paperWmMoveMod, "9" }, 63 }) 64 PaperWM:start() 65 66 local set_window_width = function(width) 67 local old_ratios = PaperWM.window_ratios 68 PaperWM.window_ratios = { width } 69 PaperWM.windows.cycleWindowSize(PaperWM.windows.Direction.WIDTH, PaperWM.windows.Direction.ASCENDING) 70 PaperWM.window_ratios = old_ratios 71 end 72 73 -- set to equal size 74 hs.hotkey.bind(paperWmMod, "=", function() 75 set_window_width(1 / 2) 76 end) 77 end, 78 }