This is a layout manager for the River window
manager. It's a drop-in replacement for rivertile
, but with a few things
added and configuration per tag/output.
After you install, you can simply replace all instances of rivertile
with
filtile
in your config to keep everything the same (but switch to per-tag
configuration). If you want more than that, keep reading.
All numbers will set the value, but also support a prefix of either +
or -
for adjustment.
Following are the commands that can be sent to riverctl send-layout-cmd filtile ...
:
All commands can be prefaced with one or both of the following options. Either can be "all". Both set to "all" changes the default.
Commands can also be sent to the executable on startup, separated by commas, as shown below.
riverctl map normal Super Z send-layout-cmd filtile "flip"
riverctl map normal Super C send-layout-cmd filtile "pad"
riverctl map normal Super F send-layout-cmd filtile "monocle"
# Move the split locations around
riverctl map normal Super LEFT send-layout-cmd filtile "move-split-left 5"
riverctl map normal Super RIGHT send-layout-cmd filtile "move-split-right 5"
riverctl map normal Super UP send-layout-cmd filtile "diminish -20"
riverctl map normal Super DOWN send-layout-cmd filtile "diminish +20"
riverctl map normal Super+Shift UP send-layout-cmd filtile "diminish -200"
riverctl map normal Super+Shift DOWN send-layout-cmd filtile "diminish +200"
# Set the default layout generator to be filtile and start it.
riverctl default-layout filtile
# - Smart gaps on the sides of every tag (on the larger monitor), to keep
# single windows from being gigantic.
#
# - A scratch pad on tag 7 with pad (to keep the first window from resizing
# a bunch) and giant gaps for bling.
#
# - Tag 1 usually has a browser, which is usually easier to read when it's on
# the right.
filtile \
--output HDMI-A-1 smart-padding-h 384, \
--tags $((1 << 6)) pad on, \
--tags $((1 << 6)) view-padding 64, \
--tags $((1 << 6)) outer-padding 64, \
--output HDMI-A-1 --tags 1 main-location right &
You can install from source by cloning the repo and running:
cargo install
Or, if you run NixOS, you can install from NixPkgs
(river-filtile
).