dotfiles

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

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 }