Skip to content

Commit 81f09b5

Browse files
committed
feat: sway support
- Add sway support, see changelog.md for details on how to migrate - add --verbose logging flag - Fix #34 - Deprecate --icons option Squashed commit of the following: commit 32f049a Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 19:14:32 2025 +0100 fix: handle eof from ipc on i3 restart Usually on restart, shutdown of wm/compositor commit c785c72 Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 18:47:52 2025 +0100 docs: add changelog for v3.1.0 commit 77dbfa9 Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 18:16:39 2025 +0100 chore(bump): clean up cargo, bump version commit fc29332 Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 18:12:18 2025 +0100 fix: add back in icons option + warning For backwards compatibility commit 49c108d Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 18:07:37 2025 +0100 docs: add missing display_prop app_id Only for wayland, not i3 or xwayland. Not really any need of setting it to app_id, but for completeness it should include it as a valid option. commit 171acb5 Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 17:47:07 2025 +0100 docs: update description, move preview up commit c9664d3 Author: Daniel Berg <mail@roosta.sh> Date: Wed Jan 22 17:26:00 2025 +0100 doc: fix license year, test badge branch commit d539401 Author: Daniel Berg <mail@roosta.sh> Date: Mon Jan 13 17:52:45 2025 +0100 chore(fmt): apply rust format commit ef182d2 Author: Daniel Berg <mail@roosta.sh> Date: Mon Jan 13 17:44:31 2025 +0100 fix: i3 title collection + tests Turns out i3 uses slightly different floating nodes structure, fixing it on sway would cause the integration tests to fail because it tests on an i3 environment. commit d54d83f Author: Daniel Berg <mail@roosta.sh> Date: Mon Jan 13 16:22:47 2025 +0100 fix: respond window floating change Sway doesn't create any events when dragging floating windows across workspaces, but this will at least update the tree when window is set to tiling again. commit 3332915 Author: Daniel Berg <mail@roosta.sh> Date: Mon Jan 13 15:01:09 2025 +0100 fix: correctly collect floating nodes My previous implementation broke at some point during the sway updating. Never much liked the way I did it back then, change it to a more function approach. commit bbfbc71 Author: Daniel Berg <mail@roosta.sh> Date: Wed Dec 25 22:16:39 2024 +0100 ci: fix missing update_tree flag commit 242fd40 Author: Daniel Berg <mail@roosta.sh> Date: Wed Dec 25 22:10:29 2024 +0100 fix: focus old on workspace focus events Same fix as in 299fc77, but only on focus events, seems to resolve the issue, without disrupting other functionality ref: #34 commit b87f411 Author: Daniel Berg <mail@roosta.sh> Date: Wed Dec 25 22:10:04 2024 +0100 ci: fix tests commit ab971f0 Author: Daniel Berg <mail@roosta.sh> Date: Tue Dec 24 22:09:57 2024 +0100 fix: revert focus fix, fix workspace assignment The fix worked when moving windows, but cause undesired behavior when renaming multiple workspaces, and with workspace assignment where a switch isn't desirable. commit c2f75e0 Author: Daniel Berg <mail@roosta.sh> Date: Tue Dec 24 22:07:44 2024 +0100 doc: add app_id example in main doc commit 8860cd8 Author: Daniel Berg <mail@roosta.sh> Date: Tue Dec 24 22:06:09 2024 +0100 fix: exit on abort on config reload This prevents multiple processes getting started when reloading sway config. commit 8dca090 Author: Daniel Berg <mail@roosta.sh> Date: Tue Dec 24 00:06:27 2024 +0100 docs: fix requirements commit f444700 Author: Daniel Berg <mail@roosta.sh> Date: Tue Dec 24 00:00:12 2024 +0100 docs: initial sway documentation Needs improving, but covers most of sway options commit ab49054 Author: Daniel Berg <mail@roosta.sh> Date: Mon Dec 23 23:35:22 2024 +0100 docs: remove unneeded disclaimer commit 2e031ab Author: Daniel Berg <mail@roosta.sh> Date: Mon Dec 23 23:35:01 2024 +0100 feat: add config support for wayland app_id/name Add app_id string map, works similar to class, but for wayland. Name works for both, instance only for i3. ```toml [alias.app_id] "^firefox$" = "Firefox" ``` commit 155e278 Author: Daniel Berg <mail@roosta.sh> Date: Mon Dec 23 22:35:53 2024 +0100 fix: change icons to string, move default back Unbreaking previous commit commit 9b8d18a Author: Daniel Berg <mail@roosta.sh> Date: Tue Dec 17 16:35:42 2024 +0100 docs: cleanup commit 299fc77 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 19:57:25 2024 +0100 fix: focus on old before renaming Fixes issue with multi-monitor dragging would cause the workspace to switch unexpectedly, possible fix for #34, but the reported issue is a bit different than what I was able to reproduce. Focus on the workspace about to be renamed before dispatching rename commands ensures that the rename operation has a clear, unambiguous target. refs: #34 i3/i3#5924 commit 49e3bf5 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 19:56:37 2024 +0100 fix: capture output (display) for debug info commit 167d8ca Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 18:35:36 2024 +0100 ci: fix tests commit 87bdd01 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 18:28:44 2024 +0100 fix: configure as binary package Let lib be named something different, mainly for documentation purposes commit cebebcd Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 18:28:23 2024 +0100 chore: update desc + categories commit 7b4d2b1 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 18:26:54 2024 +0100 docs: update main.rs docs Add a more extensive summary atop, as this is a bin package commit 92a7a31 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 18:20:59 2024 +0100 docs: rewrite into section in readme More approachable, no need to mention ipc, thats implementation commit 861d76b Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 18:20:33 2024 +0100 docs: document public lib functions commit bcaa8c4 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 17:02:29 2024 +0100 feat: add colored labels to verbose output commit b2a99e1 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 14:24:23 2024 +0100 ci: add integration tests, remove non-unit tests Added integration tests meant to run on an isolated system, interacting with an x server or wayland (later). Now I can run unit tests without having to spin up a vm every time. commit e2e2bcf Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 14:21:47 2024 +0100 ci: reintroduce clean op Thought it might have been a good idea on recurring test runs on a vagrant machine, but it caused dependency issues. commit cb5ee3e Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 14:13:23 2024 +0100 refactor: use iterator chaining, easier excludes Going to have a different name on sway, but I don't know what that is yet commit 0dc0584 Author: Daniel Berg <mail@roosta.sh> Date: Sun Dec 15 13:08:07 2024 +0100 docs: update readme with rebrand + wayland support commit 07f95a9 Author: Daniel Berg <mail@roosta.sh> Date: Sat Dec 14 12:47:42 2024 +0100 feat: add verbose logging with flag commit 14f8895 Author: Daniel Berg <mail@roosta.sh> Date: Sat Dec 14 12:17:43 2024 +0100 refactor: move AppError to lib Setup handle event functions to return AppError instead of generic commit 9ad80ba Author: Daniel Berg <mail@roosta.sh> Date: Sat Dec 14 00:42:20 2024 +0100 refactor: improve error handling commit f303e02 Author: Daniel Berg <mail@roosta.sh> Date: Sat Dec 14 00:06:23 2024 +0100 ci: fix tests Had to comment out one for the time being, due to incompatibility with i3ipc WindowProperty commit 4dbb60c Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 23:27:28 2024 +0100 feat: convert to using swayipc It is compatible with i3, so it can work for both sway and i3 commit 0359c53 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 23:09:00 2024 +0100 docs: remove mention of removed --icons preset commit 415e5d7 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 23:05:32 2024 +0100 feat!: remove holdover icons + merge This is an old, pretty useless icon set that was used for testing on earlier versions BREAKING CHANGE: `--icons` option removed commit 38dacea Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:56:19 2024 +0100 refactor: simplify and improve error handling commit 874757e Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:39:53 2024 +0100 ci: add addtional tests for update_tree helpers commit 3c633f7 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:27:56 2024 +0100 refactor: simplify regex mod Adjusting to new config getters commit 5a78d51 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:19:53 2024 +0100 refactor: split update_tree into multiple fns - process_titles: Handles title deduplication and filtering - get_split_char: Handles split character logic - format_workspace_name: Handles workspace name formatting commit e5124ed Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:13:09 2024 +0100 ci: fix ubuntu version commit cf0603c Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:12:54 2024 +0100 ci: add additional tests commit 942d7e4 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 22:07:40 2024 +0100 refactor!: split get_title into new functions BREAKING CHANGE: Moved the default icon to [icons] heading, this due to it's type, general config needs to be a string, but icons are char commit c480cb5 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 19:55:11 2024 +0100 refactor: use new config getters Replace direct HashMap access with the getter methods defined in config.rs commit 49a2307 Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 19:39:51 2024 +0100 refactor: improve error handling, add getters commit 78bf76c Author: Daniel Berg <mail@roosta.sh> Date: Fri Dec 13 16:32:30 2024 +0100 chore(deps): upgrade, remove patch semver Let Cargo.lock handle patch and minor versions, manual on major
1 parent f788100 commit 81f09b5

File tree

13 files changed

+1320
-793
lines changed

13 files changed

+1320
-793
lines changed

CHANGELOG.md

Lines changed: 43 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,43 @@
22

33
All notable changes to this project will be documented in this file.
44

5-
## [3.0.0] - 2024-02-19
5+
## [v3.1.0] - 2025-01-22
6+
7+
### Bug Fixes
8+
9+
- Fix [multi-monitor window dragging issue specific to i3](https://github.com/roosta/i3wsr/issues/34)
10+
- Sway doesn't trigger any events on window drag
11+
12+
### Features
13+
14+
- Add sway support
15+
- Add `--verbose` cmdline flag for easier debugging in case of issues
16+
17+
#### Sway
18+
19+
Support for [Sway](https://github.com/swaywm/sway) is added, new config key
20+
addition `app_id` in place of `class` when running native Wayland applications:
21+
22+
```
23+
[aliases.app_id]
24+
firefox-developer-edition = "Firefox Developer"
25+
```
26+
`i3wsr` will still check for `name`, `instance`, and `class` for `Xwayland`
27+
windows, where applicable. So some rules can be preserved. To migrate replace
28+
`[aliases.class]` with `[aliases.app_id]`, keep in mind that `app_id` and
29+
`class` aren't always interchangeable , so some additional modifications is
30+
usually needed.
31+
32+
> A useful script figuring out `app_id` can be found [here](https://gist.github.com/crispyricepc/f313386043395ff06570e02af2d9a8e0#file-wlprop-sh), it works like `xprop` but for Wayland.
33+
34+
### Deprecations
35+
36+
I've flagged `--icons` as deprecated, it will not exit the application but it
37+
no longer works. I'd be surprised if anyone actually used that preset, as it
38+
was only ever for demonstration purposes, and kept around as a holdover from
39+
previous versions.
40+
41+
## [v3.0.0] - 2024-02-19
642

743
**BREAKING**: Config syntax changes, see readme for new syntax but in short
844
`wm_property` is no longer, and have been replaced by scoped aliases that are
@@ -97,13 +133,13 @@ display_property = "instance" # class, instance, name
97133
- Pin regex to 1.9.1
98134
- Pin endoing to 0.2.33
99135

100-
## [2.1.1] - 2022-03-15
136+
## [v2.1.1] - 2022-03-15
101137

102138
### Bug Fixes
103139

104140
- Use with_context() instead of context()
105141

106-
## [2.1.0] - 2022-03-14
142+
## [v2.1.0] - 2022-03-14
107143

108144
### Bug Fixes
109145

@@ -114,10 +150,13 @@ display_property = "instance" # class, instance, name
114150
- Add examples of workspace assignment
115151
- Document about the default config file
116152

117-
## [1.0.0] - 2017-12-19
153+
## [v1.0.0] - 2017-12-19
118154

119155
### WIP
120156

121157
- Attempt to use xlib FFI to get win props
122158

123159
<!-- generated by git-cliff -->
160+
161+
[v3.1.0]: https://github.com/roosta/i3wsr/compare/v3.0.0...v3.1.0
162+
[v3.0.0]: https://github.com/roosta/herb/compare/v2.1.1...v3.0.0

0 commit comments

Comments
 (0)