Add tiling window management powers to your mjolnir.
- Different layouts per space (with this magic)
- Multi-monitor supported
- Custom layouts
First up, install Mjolnir if you haven't already.
Then install mjolnir.tiling
using luarocks: luarocks install mjolnir.tiling
In your ~/.mjolnir/init.lua
:
local tiling = require "mjolnir.tiling"
local mash = {"ctrl", "cmd"}
hotkey.bind(mash, "c", function() tiling.cyclelayout() end)
hotkey.bind(mash, "j", function() tiling.cycle(1) end)
hotkey.bind(mash, "k", function() tiling.cycle(-1) end)
hotkey.bind(mash, "space", function() tiling.promote() end)
-- If you want to set the layouts that are enabled
tiling.set('layouts', {
'fullscreen', 'main-vertical'
})
To update to the latest mjolnir.tiling
, just run: luarocks install mjolnir.tiling
You can define your own layouts like so (please see layouts.lua for definition examples:)
tiling.addlayout('custom', function(windows)
fnutils.each(windows, function(window)
window:maximize()
end)
end)
Using tiling.togglefloat
you can toggle whether or not a window that is on your desktop will be
included in your tiling calculations. You can optionally pass in a function as a callback to process
the window if it was tiled.
-- Push the window into the exact center of the screen
local function center(window)
frame = window:screen():frame()
frame.x = (frame.w / 2) - (frame.w / 4)
frame.y = (frame.h / 2) - (frame.h / 4)
frame.w = frame.w / 2
frame.h = frame.h / 2
window:setframe(frame)
end
hotkey.bind(mash, "f", function() tiling.togglefloat(center) end)
These are the layouts that come with mjolnir.tiling
:
Name | Screenshot |
---|---|
fullscreen |
|
main-vertical |
|
main-horizontal |
|
rows |
|
columns |
|
gp-vertical |
|
gp-horizontal |
Yes! Please :)
git clone https://github.com/nathankot/mjolnir.tiling.git
cd mjolnir.tiling
luarocks make <latest .rockspec name>
Thanks <3
- Better documentation
- More layouts
- Allow globally enabling/disabling layouts
- Functions to move windows across spaces
- Event-based tiling, although requires sdegutis/mjolnir#72