shikane
A dynamic output configuration tool that automatically detects and configures connected outputs based on a set of profiles.
Each profile specifies a set of outputs with additional parameters (e.g., mode). A profile will be applied automatically if all specified outputs and modes can be perfectly matched to the currently connected outputs and their capabilities.
This is a Wayland equivalent for tools like autorandr. shikane works with Wayland compositors supporting version 3 of the wlr-output-management protocol (e.g., compositors using wlroots v0.16).
Features
- regex based output matching
- execute commands after a profile has been applied
- output names are provided to executed commands
Installation
Via cargo from crates.io:
Via your $AURhelper
from the AUR:
Documentation
Documentation is provided as man pages:
Building
Dependencies:
- a rust toolchain >=1.60
- pandoc (for building the man pages)
Building shikane:
Building the man pages:
Configuration
shikane uses the TOML file format for its configuration file
and contains an array of profiles. Each profile is a table containing an
array of output tables. The configuration file should be placed at
$XDG_CONFIG_HOME/shikane/config.toml
.
[[]]
= "dual_foo"
= ["notify-send shikane \"Profile $SHIKANE_PROFILE_NAME has been applied\""]
[[]]
= "Company Foo"
= true
= { = 1920, = 1080, = 50 }
= { = 0, = 0 }
= 1.3
[[]]
= "/HDMI-[ABC]-[1-9]/"
= true
= ["echo This is output $SHIKANE_OUTPUT_NAME"]
= { = 2560, = 1440, = 75 }
= { = 1920, = 0 }
= "270"
License
MIT