dotfiles

My personal shell configs and stuff
git clone git://git.alex.balgavy.eu/dotfiles.git
Log | Files | Refs | Submodules | README | LICENSE

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 }