All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog. This project adheres to Semantic Versioning regarding documented command line interfaces and configuration files.
1.1.1 - 2026-06-10
- settings: Read config.toml without write permission
1.1.0 - 2026-05-31
- settings: Create config directory and empty config.toml if they do not exist
- logging: Change timestamp precision to nanoseconds
1.0.1 - 2024-05-28
- Set
SHIKANE_LOG_TIMEenvironment variable to1to enable timestamps in logs. By default no timestamps are logged. - Document the
SHIKANE_LOG,SHIKANE_LOG_STYLESandSHIKANE_LOG_TIMEenv vars.
- Change log filter to print state machine changes by default
- daemon in oneshot mode not shutting down on NoVariantApplied state
1.0.0 - 2024-05-27
shikanectl exportexport current display setup as shikane configshikanectl reloadinstruct the daemon to reread the config fileshikanectl switchad-hoc profile switching
- Overhauled, more complex matching procedure which enables the generation of all possible profile variants based on connected displays and sorting those variants by exactness.
- config: Add
searchfield to replace thematchfield- Compare
searchpatterns against specific display attributes - Define multiple
searches per output - New search kind substring matching in
searches
- Compare
- config: Add parsing of
positions in the formx,y - config: Add parsing of
modes like1920x1080@60Hz - Selecting and setting of
bestandpreferredmodes - Optional
timeoutto wait after certain events from the compositor
- Use the kanshi-converter snippet to convert kanshi config to shikanes config.toml.
- Testing for parts of the config parser (e.g.
search,mode) - flake.nix for building shikane and documentation with nix
- HTML documentation
- Automated deployment of HTML documentation using .gitlab-ci.yml
- Regex comparison behavior.
Previously, display attributes were concatenated to a single string before
being checked against a regex. Now, display attributes are independently
compared with the regex. Refer to the
documentation of the
searchfield for usage instructions. - Parsing of regexes in config.toml.
Previously ignored trailing slashes will now be seen as part of the regex.
See below on how to migrate to the new
searchfield syntax. - Update documentation to describe variants,
searches andmodeparsing. - Default log level to
warn - Accept an empty config.toml file
- Update MSRV to 1.70
- config: Defining a
positionas a table{ x = 0, y = 0 }. Use a string instead"x,y".
- config: The
matchfield has been replaced by thesearchfield.
Migration from 0.2.0
Use the commands below in order to migrate from the match field syntax
to the search field syntax.
Note: Due to the mentioned changes in how display attributes are supplied to regexes, your regexes might not work even after removing the trailing slashes.
# First, remove the trailing slash from regexes in the toml file.
sed -r -i 's#match.*=.*"/(.*)/"#match = "/\1"#' path/to/shikane/config.toml
# Second, rename all match fields to search fields.
sed -r -i 's#match.*=.*"(.*)"#search = "\1"#' path/to/shikane/config.toml0.2.0 - 2023-04-30
- Support for
adaptive_syncoption
0.1.2 - 2023-04-29
- docs: Missing version increment
0.1.1 - 2023-04-29
- docs: Add acknowledgements, usage and feature comparison
0.1.0 - 2023-02-10
- shikane daemon
- documentation in man pages
- MIT License