shikane(1)

πŸ“¦
version 1.1.1 Β· 3 versions
, in arch rolling

πŸ’– shikane(1) πŸ’–

okay so bestie, welcome to shikane β€” that's pronounced /ΚƒiˈkaːnΙ™/ btw, say it with me β€” and it's a general commands manual page, which is just fancy speak for "here's how to use this thing from ur terminal." buckle up, she's iconic ✨


🌸 NAME 🌸

shikane β€” deterministic dynamic output configuration. yes. all of those words. she's giving accuracy, she's giving determinism, she's giving main character energy πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

shikane
shikane [-hV] [-o] [-c file]
shikane [--oneshot] [--config file]

✨ DESCRIPTION ✨

so shikane (/ΚƒiˈkaːnΙ™/) is a dynamic output configuration tool and her whole personality is accuracy and determinism. no cap.

she automatically detects and configures ur connected displays based on a set of profiles. each profile specifies a set of outputs plus extra parameters (like mode, position, scale β€” the works). a profile gets applied automatically if all the specified outputs and modes can be perfectly matched to whatever displays are currently connected and what they're capable of. (peep shikane(5) for the deets, iykyk 🫢)

basically she's the Wayland equivalent of tools like autorandr. her goal? fully replace kanshi, surpass its inaccuracies, and add new features while she's at it. queen behavior honestly πŸ‘‘. shikane works with Wayland compositors that support versions >=3 of the wlr-output-management protocol (e.g., compositors using wlroots v0.16).


πŸŽ€ OPTIONS πŸŽ€

  • -h, --help β€” prints help information. ur little "what does this do again" button πŸ’–
  • -c, --config file β€” the path to a config file. tell her where ur settings live.
  • -o, --oneshot β€” turns on oneshot mode. she exits after a profile has been applied, or if no profile was matched at all. one and done, periodt ✨
  • -s, --socket path β€” overrides the default path of the IPC socket. for when u wanna be picky about where the socket lives πŸ”₯
  • -T, --timeout timeout β€” waits for timeout milliseconds before processing changes [default: 0]. patience is a virtue ig 🌸
  • -V, --version β€” prints version information. know ur queen's era πŸ’…

🌈 ENVIRONMENT 🌈

  • SHIKANE_LOG β€” controls at what log level shikane and her modules print messages to stderr. the available log levels are error, warn, info, debug and trace; sorted from highest to lowest priority. a lower log level includes messages from higher ones. setting SHIKANE_LOG to trace will let you see everything. setting it to off disables all logging entirely.

this variable also lets u filter by modules, and it accepts a comma-separated list:

SHIKANE_LOG=shikane=warn,shikane::matching=debug

the example above will only show warnings and errors from shikane except for the matching module, where log messages of level debug and above are shown. very demure, very mindful 🧚

Note: the logging output and filtering is not a stable interface and may be subject to change at any time. so don't get too attached bestie 😭
  • SHIKANE_LOG_STYLE β€” controls if colors and styles with ANSI characters are used for log output. possible values are auto, always and never. defaults to auto. aesthetic choices are valid πŸ’œ
  • SHIKANE_LOG_TIME β€” enables logging of prefixed timestamps if set to 1. time stamps for the girlies ⭐

πŸ“ FILES πŸ“

shikane reads her configuration from $XDG_CONFIG_HOME/shikane/config.toml by default. the program exits with an error if no config file is found β€” so like, she needs her config, don't leave her hanging πŸ™ˆ. the config file format is documented in shikane(5).


πŸ’€ BUGS πŸ’€

hopefully less than 4.

(i'm not kidding, that's genuinely what it says. iconic.)


πŸ‘‘ AUTHORS πŸ‘‘

Hendrik Wolff hendrik.wolff@agdsn.me


πŸ’– SEE ALSO πŸ’–

shikane(5), shikanectl(1)


okay that's the whole page bestie, go configure ur displays and slay πŸ’…βœ¨

β€” this edition of the manual was brought to you by shikane 1.1.1, dated 2026-06-23. take care of her, she's a 1.1.1 girlie πŸŽ€πŸŒ·

πŸ“¦ where this page comes from