LGUG2Z
a29ab4cfb3
feat(wm): add monitor reconciliator module
...
This commit adds the monitor_reconciliator module which uses a tightly
bounded channel (cap: 1) to handle monitor connection and disconnection
events, as well as resolution and work area change events.
Before, all this logic lived in a the WindowManager.reconcile_monitors
function, which ran on pretty much every process_event iteration, and
sometimes led to undesirable behaviour, but now the logic is split up to
only run when the appropriate notifications are dispatched from the
hidden window which listens for monitor and display-related events.
The monitor cache has been moved out of WindowManager and into the
monitor_reconciliator module, and in addition to the previous behaviour
of attempting to cache monitors which had been identified as
disconnected, now when the static configuration file is loaded, if the
user has set display_index_preferences, the device IDs will be used to
pre-populate the cache for the event where a known monitor is connected
later in a session.
The monitor cache itself now uses the unique device ID as a key rather
than the hmonitor which is known to be inconsistent.
This commit also delegates all display monitor-related Win32 calls to
the "win32-display-data" crate, which was extracted from the larger
"brightness" crate for its use in komorebi.
As a result of these changes, "device" and "device_id" on Monitor have
been changed from Option<String> to String types, as failures in
retrieving these values with directly attached monitors has not been
possible to reproduce. However, it remains to be seen if this will
adversely impact users who use display docks which may prevent display
monitor device IDs from being read and stored by the operating system.
WindowManagerEvent::DisplayChange has been removed in favour of
the monitor_reconciliator::Notification enum, as these events are no
longer being handled in process_events.
Attempts are now made to eagerly update hmonitors both within the
monitor_reconciliator loop on DisplayConnectionChange notifications and
when failing to find a matching hmonitor in functions like
monitor_idx_from_current_pos and monitor_idx_from_window.
2024-05-19 06:26:45 -07:00
LGUG2Z
d2470b1f08
fix(cli): have log command lookup file w/ timestamp
2024-05-17 16:18:21 -07:00
dependabot[bot]
482a7b1d7f
chore(deps): bump schemars from 0.8.17 to 0.8.18
...
Bumps [schemars](https://github.com/GREsau/schemars ) from 0.8.17 to 0.8.18.
- [Release notes](https://github.com/GREsau/schemars/releases )
- [Changelog](https://github.com/GREsau/schemars/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GREsau/schemars/compare/v0.8.17...v0.8.18 )
---
updated-dependencies:
- dependency-name: schemars
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-05-06 20:32:36 -07:00
dependabot[bot]
d00ee82a9d
chore(deps): bump sysinfo from 0.30.11 to 0.30.12
...
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) from 0.30.11 to 0.30.12.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/commits )
---
updated-dependencies:
- dependency-name: sysinfo
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-05-06 20:32:19 -07:00
dependabot[bot]
9f01d8fa0f
chore(deps): bump serde from 1.0.199 to 1.0.200
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.199 to 1.0.200.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.199...v1.0.200 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-05-06 20:31:51 -07:00
LGUG2Z
185cb4d4a8
chore(dev): begin v0.1.26-dev
2024-04-30 15:02:48 -07:00
LGUG2Z
62900c59cb
chore(release): v0.1.25
2024-04-30 14:49:45 -07:00
dependabot[bot]
871a53821c
chore(deps): bump schemars from 0.8.16 to 0.8.17
...
Bumps [schemars](https://github.com/GREsau/schemars ) from 0.8.16 to 0.8.17.
- [Release notes](https://github.com/GREsau/schemars/releases )
- [Changelog](https://github.com/GREsau/schemars/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GREsau/schemars/compare/v0.8.16...v0.8.17 )
---
updated-dependencies:
- dependency-name: schemars
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-29 18:27:57 -07:00
dependabot[bot]
bcd1c50d82
chore(deps): bump parking_lot from 0.12.1 to 0.12.2
...
Bumps [parking_lot](https://github.com/Amanieu/parking_lot ) from 0.12.1 to 0.12.2.
- [Changelog](https://github.com/Amanieu/parking_lot/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Amanieu/parking_lot/compare/0.12.1...0.12.2 )
---
updated-dependencies:
- dependency-name: parking_lot
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-29 18:27:44 -07:00
dependabot[bot]
0c41d9ded2
chore(deps): bump serde from 1.0.197 to 1.0.199
...
Bumps [serde](https://github.com/serde-rs/serde ) from 1.0.197 to 1.0.199.
- [Release notes](https://github.com/serde-rs/serde/releases )
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.197...v1.0.199 )
---
updated-dependencies:
- dependency-name: serde
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-29 18:27:17 -07:00
dependabot[bot]
4af62fe97b
chore(deps): bump thiserror from 1.0.58 to 1.0.59
...
Bumps [thiserror](https://github.com/dtolnay/thiserror ) from 1.0.58 to 1.0.59.
- [Release notes](https://github.com/dtolnay/thiserror/releases )
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.58...1.0.59 )
---
updated-dependencies:
- dependency-name: thiserror
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-29 18:26:10 -07:00
dependabot[bot]
2b5f737d14
chore(deps): bump proc-macro2 from 1.0.80 to 1.0.81
...
Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2 ) from 1.0.80 to 1.0.81.
- [Release notes](https://github.com/dtolnay/proc-macro2/releases )
- [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.80...1.0.81 )
---
updated-dependencies:
- dependency-name: proc-macro2
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-22 17:16:27 -07:00
dependabot[bot]
8a455c8ab7
chore(deps): bump serde_json from 1.0.115 to 1.0.116
...
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.115 to 1.0.116.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.115...v1.0.116 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-22 17:16:14 -07:00
dependabot[bot]
3d9871c576
chore(deps): bump reqwest from 0.12.3 to 0.12.4
...
Bumps [reqwest](https://github.com/seanmonstar/reqwest ) from 0.12.3 to 0.12.4.
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.12.3...v0.12.4 )
---
updated-dependencies:
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-22 17:15:51 -07:00
dependabot[bot]
cafb8e9a48
chore(deps): bump sysinfo from 0.30.10 to 0.30.11
...
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) from 0.30.10 to 0.30.11.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.30.10...v0.30.11 )
---
updated-dependencies:
- dependency-name: sysinfo
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-22 17:15:26 -07:00
LGUG2Z
aff1081ccd
feat(cli): detailed start failure error feedback
...
This commit ensures that after 3 failures to start komorebi with
'komorebic start', 'komorebi.exe' will be run directly in order to show
the detailed error output to the end user.
2024-04-20 14:37:27 -07:00
LGUG2Z
1671f31e3e
feat(wm): add window debugging
...
This commit adds support for debugging windows and emitting information
about how they go through komorebi's decision making pipeline and rules
engines which ultimately decide how they are or aren't managed.
2024-04-15 15:05:20 -07:00
James Tucker
86b07f28dd
chore(deps): update deps, including miow
...
Fixes #696
2024-04-13 21:59:48 -07:00
LGUG2Z
862219b9a3
chore(dev): begin v0.1.25-dev
2024-04-11 16:59:01 -07:00
LGUG2Z
0fc75afb00
chore(release): v0.1.24
2024-04-09 17:57:41 -07:00
LGUG2Z
af6529851e
chore(dev): begin v0.1.24-dev
2024-04-07 14:18:29 -07:00
LGUG2Z
bea3d1fcbc
chore(release): v0.1.23
2024-04-07 13:34:18 -07:00
dependabot[bot]
6238d1f848
chore(deps): bump h2 from 0.4.3 to 0.4.4
...
Bumps [h2](https://github.com/hyperium/h2 ) from 0.4.3 to 0.4.4.
- [Release notes](https://github.com/hyperium/h2/releases )
- [Changelog](https://github.com/hyperium/h2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/hyperium/h2/compare/v0.4.3...v0.4.4 )
---
updated-dependencies:
- dependency-name: h2
dependency-type: indirect
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-05 08:37:53 -07:00
dependabot[bot]
dca32bead5
chore(deps): bump serde_json from 1.0.114 to 1.0.115
...
Bumps [serde_json](https://github.com/serde-rs/json ) from 1.0.114 to 1.0.115.
- [Release notes](https://github.com/serde-rs/json/releases )
- [Commits](https://github.com/serde-rs/json/compare/v1.0.114...v1.0.115 )
---
updated-dependencies:
- dependency-name: serde_json
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-01 12:10:17 -07:00
dependabot[bot]
77eaddca1e
chore(deps): bump reqwest from 0.11.27 to 0.12.2
...
Bumps [reqwest](https://github.com/seanmonstar/reqwest ) from 0.11.27 to 0.12.2.
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.27...v0.12.2 )
---
updated-dependencies:
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-04-01 12:10:08 -07:00
LGUG2Z
79fb098d04
docs(cli): add support + community links to start cmd
2024-03-25 17:55:28 -07:00
dependabot[bot]
d0bab4280a
chore(deps): bump heck from 0.4.1 to 0.5.0
...
Bumps [heck](https://github.com/withoutboats/heck ) from 0.4.1 to 0.5.0.
- [Changelog](https://github.com/withoutboats/heck/blob/master/CHANGELOG.md )
- [Commits](https://github.com/withoutboats/heck/commits )
---
updated-dependencies:
- dependency-name: heck
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-25 17:27:02 -07:00
dependabot[bot]
e616004da7
chore(deps): bump serde_yaml from 0.9.33 to 0.9.34+deprecated
...
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml ) from 0.9.33 to 0.9.34+deprecated.
- [Release notes](https://github.com/dtolnay/serde-yaml/releases )
- [Commits](https://github.com/dtolnay/serde-yaml/compare/0.9.33...0.9.34 )
---
updated-dependencies:
- dependency-name: serde_yaml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-25 17:26:43 -07:00
dependabot[bot]
50a851a660
chore(deps): bump which from 6.0.0 to 6.0.1
...
Bumps [which](https://github.com/harryfei/which-rs ) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/harryfei/which-rs/releases )
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/harryfei/which-rs/compare/6.0.0...6.0.1 )
---
updated-dependencies:
- dependency-name: which
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-25 11:20:18 -07:00
dependabot[bot]
8ad6f4be1f
chore(deps): bump regex from 1.10.3 to 1.10.4
...
Bumps [regex](https://github.com/rust-lang/regex ) from 1.10.3 to 1.10.4.
- [Release notes](https://github.com/rust-lang/regex/releases )
- [Changelog](https://github.com/rust-lang/regex/blob/master/CHANGELOG.md )
- [Commits](https://github.com/rust-lang/regex/compare/1.10.3...1.10.4 )
---
updated-dependencies:
- dependency-name: regex
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-25 11:19:46 -07:00
dependabot[bot]
dc38eae2af
chore(deps): bump serde_yaml from 0.9.32 to 0.9.33
...
Bumps [serde_yaml](https://github.com/dtolnay/serde-yaml ) from 0.9.32 to 0.9.33.
- [Release notes](https://github.com/dtolnay/serde-yaml/releases )
- [Commits](https://github.com/dtolnay/serde-yaml/compare/0.9.32...0.9.33 )
---
updated-dependencies:
- dependency-name: serde_yaml
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-18 13:24:46 -07:00
dependabot[bot]
66446f571c
chore(deps): bump os_info from 3.8.0 to 3.8.1
...
Bumps [os_info](https://github.com/stanislav-tkach/os_info ) from 3.8.0 to 3.8.1.
- [Release notes](https://github.com/stanislav-tkach/os_info/releases )
- [Changelog](https://github.com/stanislav-tkach/os_info/blob/master/CHANGELOG.md )
- [Commits](https://github.com/stanislav-tkach/os_info/compare/v3.8.0...v3.8.1 )
---
updated-dependencies:
- dependency-name: os_info
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-18 13:18:37 -07:00
LGUG2Z
45a3f2a6b5
chore(dev): begin v0.1.23-dev
2024-03-15 18:48:28 -07:00
dependabot[bot]
81dff3279c
chore(deps): bump clap from 4.5.1 to 4.5.2
...
Bumps [clap](https://github.com/clap-rs/clap ) from 4.5.1 to 4.5.2.
- [Release notes](https://github.com/clap-rs/clap/releases )
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md )
- [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.5.1...v4.5.2 )
---
updated-dependencies:
- dependency-name: clap
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-11 11:26:14 -07:00
dependabot[bot]
2f17e4bb29
chore(deps): bump reqwest from 0.11.24 to 0.11.25
...
Bumps [reqwest](https://github.com/seanmonstar/reqwest ) from 0.11.24 to 0.11.25.
- [Release notes](https://github.com/seanmonstar/reqwest/releases )
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md )
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.24...v0.11.25 )
---
updated-dependencies:
- dependency-name: reqwest
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-11 11:24:32 -07:00
dependabot[bot]
1b966d3731
chore(deps): bump ctrlc from 3.4.2 to 3.4.4
...
Bumps [ctrlc](https://github.com/Detegr/rust-ctrlc ) from 3.4.2 to 3.4.4.
- [Release notes](https://github.com/Detegr/rust-ctrlc/releases )
- [Commits](https://github.com/Detegr/rust-ctrlc/compare/3.4.2...3.4.4 )
---
updated-dependencies:
- dependency-name: ctrlc
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-11 11:24:14 -07:00
dependabot[bot]
e58d776f81
chore(deps): bump sysinfo from 0.30.6 to 0.30.7
...
Bumps [sysinfo](https://github.com/GuillaumeGomez/sysinfo ) from 0.30.6 to 0.30.7.
- [Changelog](https://github.com/GuillaumeGomez/sysinfo/blob/master/CHANGELOG.md )
- [Commits](https://github.com/GuillaumeGomez/sysinfo/compare/v0.30.6...v0.30.7 )
---
updated-dependencies:
- dependency-name: sysinfo
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-03-11 11:24:00 -07:00
LGUG2Z
40e77fddfe
chore(release): v0.1.22
2024-03-03 21:00:37 -08:00
LGUG2Z
d730c3c72d
feat(config): support parsing json w/ comments
...
This commit switches out the serde_json crate with the
serde_json_lenient crate, forked by Google, which allows for JSON files
with comments to be parsed properly.
Users can set the format of komorebi.json to "jsonc" in their editors in
order to write // comments without being faced with lint errors.
The expected file extension remains the same (json). komorebi and
komorebic will not look for files with the "jsonc" file extension or any
other JSON-variant file extension.
resolve #693
2024-02-29 17:35:47 -08:00
dependabot[bot]
b32bce8713
chore(deps): bump miette from 5.10.0 to 7.1.0
...
Bumps [miette](https://github.com/zkat/miette ) from 5.10.0 to 7.1.0.
- [Release notes](https://github.com/zkat/miette/releases )
- [Changelog](https://github.com/zkat/miette/blob/main/CHANGELOG.md )
- [Commits](https://github.com/zkat/miette/compare/miette-derive-v5.10.0...miette-derive-v7.1.0 )
---
updated-dependencies:
- dependency-name: miette
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-02-27 22:51:28 -08:00
dependabot[bot]
47af40cf9e
chore(deps): bump hotwatch from 0.4.6 to 0.5.0
...
Bumps [hotwatch](https://github.com/francesca64/hotwatch ) from 0.4.6 to 0.5.0.
- [Release notes](https://github.com/francesca64/hotwatch/releases )
- [Changelog](https://github.com/francesca64/hotwatch/blob/main/CHANGELOG.md )
- [Commits](https://github.com/francesca64/hotwatch/compare/v0.4.6...v0.5.0 )
---
updated-dependencies:
- dependency-name: hotwatch
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-02-27 21:55:12 -08:00
LGUG2Z
2b9fbc2074
chore(deps): bump windows-rs from 0.52 to 0.54
2024-02-27 18:33:29 -08:00
LGUG2Z
1a8b6a7398
feat(client): introduce komorebi-client crate
...
This commit introduces the komorebi-client library crate for other Rust
applications to interact with a running instance of komorebi over Unix
Domain Sockets.
Currently the crate re-exports everything one might find in the
komorebi::State struct and everything that is publicly exposed in
komorebi-core.
Public types and methods are still lacking documentation, and this crate
should not be published on crates.io until this is no longer the case.
2024-02-26 18:18:40 -08:00
dependabot[bot]
c3e39311c1
chore(deps): bump which from 5.0.0 to 6.0.0
...
Bumps [which](https://github.com/harryfei/which-rs ) from 5.0.0 to 6.0.0.
- [Release notes](https://github.com/harryfei/which-rs/releases )
- [Changelog](https://github.com/harryfei/which-rs/blob/master/CHANGELOG.md )
- [Commits](https://github.com/harryfei/which-rs/compare/5.0.0...6.0.0 )
---
updated-dependencies:
- dependency-name: which
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com >
2024-02-25 11:02:19 -08:00
LGUG2Z
e7d928a065
feat(config): allow colours in both rgb and hex
...
This commit introduces the ability for users to specify colours in the
static config file in either RGB or Hex format.
This is done by introducing a new enum, Colour, which provides variants
wrapping the internal Rgb type, and the HexColour type from the
hex_colour crate. HexColour itself is wrapped in a new struct, Hex, in
order to allow the implementation of the JsonSchema trait.
A number of From<T> implementations have been done in order to make
working with the Colour enum more ergonomic.
Ultimately, the core representation for colours in komorebi remains the
Rgb struct, any and Hex-specified colours will be converted to this Rgb
type before being converted to u32 to pass them on to various Win32 API
calls.
2024-02-25 10:37:00 -08:00
LGUG2Z
dee5842c9c
chore(deps): cargo update
2024-02-24 17:36:43 -08:00
LGUG2Z
549500887f
chore(dev): begin v0.1.22-dev
2024-02-16 13:04:51 -08:00
LGUG2Z
17a45804b4
chore(release): v0.1.21
2024-02-15 17:56:06 -08:00
LGUG2Z
380971edee
chore(dev): begin v0.1.21-dev
2024-02-15 14:05:49 -08:00
LGUG2Z
52122c401d
chore(release): v0.1.20
2024-02-15 12:55:01 -08:00