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