Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@

version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"

# Rust projects
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
# Rust projects
- package-ecosystem: "cargo"
directory: "/"
schedule:
interval: "weekly"
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ jobs:

- name: Install wayland dependencies
run: |
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo libjxl
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo

- name: Build (${{ matrix.name }})
run: cargo build ${{ matrix.cargo_args }}
4 changes: 2 additions & 2 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:

- name: Install wayland dependencies
run: |
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo libjxl github-cli git
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo github-cli git

- name: Build
run: cargo build --workspace --release
Expand All @@ -55,7 +55,7 @@ jobs:

- name: Install wayland dependencies
run: |
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo libjxl github-cli git
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo github-cli git

- name: Obtain crates.io token
uses: rust-lang/crates-io-auth-action@bbd81622f20ce9e2dd9622e3218b975523e45bbe # v1.0.4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ jobs:
uses: Swatinem/rust-cache@v2
- name: Install system dependencies
run: |
pacman -Syu --noconfirm git egl-wayland egl-gbm wayland base-devel mesa pango cairo libjxl
pacman -Syu --noconfirm git egl-wayland egl-gbm wayland base-devel mesa pango cairo
- name: Doc
run: cargo doc --workspace --no-deps --all-features
env:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/fmt-clippy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ jobs:

- name: Install wayland dependencies
run: |
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo libjxl
pacman -Syu --noconfirm egl-wayland egl-gbm wayland base-devel mesa pango cairo

- name: Clippy (${{ matrix.features }})
run: cargo clippy ${{ matrix.features }} -- -D warnings
2 changes: 1 addition & 1 deletion .github/workflows/test-coverage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:

- name: Install wayland dependencies
run: |
pacman -Syu --noconfirm git egl-wayland egl-gbm wayland base-devel mesa pango cairo libjxl
pacman -Syu --noconfirm git egl-wayland egl-gbm wayland base-devel mesa pango cairo

- name: Install cargo-llvm-cov
uses: taiki-e/install-action@v2
Expand Down
22 changes: 11 additions & 11 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ Changes on `main` since **[1.4.6](https://github.com/waycrate/wayshot/releases/t

- **Nix** flake dev shell and package ([#336](https://github.com/waycrate/wayshot/pull/336), [@saghen](https://github.com/saghen)).
- CI split into workflow files, plus **`cargo deny`** and related checks ([#315](https://github.com/waycrate/wayshot/pull/315), [@Gigas002](https://github.com/Gigas002)).
- JPEG XL (**`jxl`** feature): **[jxl-encoder](https://github.com/imazen/jxl-encoder)** (pure Rust, **AGPL-3.0-or-later**) replaces **jpegxl-rs** and system **libjxl**. **`[encoding.jxl]`** keys (`lossless`, `distance`, `effort`) are unchanged; encoded files may differ slightly from libjxl at the same settings. CI and the Nix flake no longer install **libjxl**.

#### Fixed

Expand All @@ -51,9 +52,9 @@ Changes on `main` since **[1.4.6](https://github.com/waycrate/wayshot/releases/t
#### Breaking Changes

- **wayshot** and **waymirror-egl** are **GPL-3.0**; **libwayshot** stays **BSD-2-Clause** ([#311](https://github.com/waycrate/wayshot/pull/311), [@Gigas002](https://github.com/Gigas002)).
- **Migration:** confirm licensing and redistribution obligations for anything you ship or vendor; see `LICENSE-GPL` and `LICENSE-BSD`.
- **Migration:** confirm licensing and redistribution obligations for anything you ship or vendor; see `LICENSE-GPL` and `LICENSE-BSD`.
- **`-g` / `--geometry`** accepts an optional **geometry string** (e.g. from slurp / `waysip -d`); a token immediately after **`-g`** is now treated as that string, not the output file ([#333](https://github.com/waycrate/wayshot/pull/333), [@Gigas002](https://github.com/Gigas002)).
- **Migration:** if you relied on **`wayshot -g FILE`** (output path right after **`-g`**), use **`wayshot FILE -g`** instead. Invocations like **`wayshot -g --clipboard`** are unchanged.
- **Migration:** if you relied on **`wayshot -g FILE`** (output path right after **`-g`**), use **`wayshot FILE -g`** instead. Invocations like **`wayshot -g --clipboard`** are unchanged.

## [1.4.6] - 2026-03-09

Expand Down Expand Up @@ -124,11 +125,11 @@ Changes on `main` since **[1.4.6](https://github.com/waycrate/wayshot/releases/t
#### Breaking Changes

- Many capture / screenshot entry points now take arguments in a fixed order: **target → options → cursor → optional region** ([#270](https://github.com/waycrate/wayshot/pull/270), [@Decodetalkers](https://github.com/Decodetalkers)).
- **Migration:** update call sites to the new parameter order; consult current `libwayshot` method signatures.
- **Migration:** update call sites to the new parameter order; consult current `libwayshot` method signatures.
- **`WayshotTarget`** / foreign toplevel handles must be chosen from targets libwayshot already knows about (not an arbitrary foreign id alone) ([#270](https://github.com/waycrate/wayshot/pull/270), [@Decodetalkers](https://github.com/Decodetalkers)).
- **Migration:** enumerate toplevels via libwayshot, then select the matching target.
- **Migration:** enumerate toplevels via libwayshot, then select the matching target.
- **`try_init_buf`** no longer returns the initialized buffer from the same return channel; use `()` / `Error` only ([#270](https://github.com/waycrate/wayshot/pull/270), [@Decodetalkers](https://github.com/Decodetalkers)).
- **Migration:** follow the updated init + capture flow in the docs / examples.
- **Migration:** follow the updated init + capture flow in the docs / examples.

### wayshot

Expand Down Expand Up @@ -178,7 +179,7 @@ Changes on `main` since **[1.4.6](https://github.com/waycrate/wayshot/releases/t
#### Breaking Changes

- `Size` is now generic (`Size<T = u32>`) ([`279896a`](https://github.com/waycrate/wayshot/commit/279896a060adaa385a8c6b59a38864468c2a18d8), [@Decodetalkers](https://github.com/Decodetalkers)).
- **Migration:** specify `Size<u32>` (or another `T`) where type inference no longer resolves, and update patterns that assumed a non-generic `Size`.
- **Migration:** specify `Size<u32>` (or another `T`) where type inference no longer resolves, and update patterns that assumed a non-generic `Size`.

[1.4.1]: https://github.com/waycrate/wayshot/compare/1.4.0...v1.4.1

Expand Down Expand Up @@ -215,9 +216,9 @@ Changes on `main` since **[1.4.6](https://github.com/waycrate/wayshot/releases/t
#### Breaking Changes

- legacy `screenshot` APIs deprecated or restricted where **ext-image-copy** differs from **zwlr-screencopy**; use **`screenshot_freeze`** instead ([`c0065d3`](https://github.com/waycrate/wayshot/commit/c0065d37547bc18729d052a6e89628c34c3d3097), [`21cfa0f`](https://github.com/waycrate/wayshot/commit/21cfa0f36c7c3b7ce6ba4998f0e9ae6808d93ec0), [@Decodetalkers](https://github.com/Decodetalkers)). Some paths (e.g. color picker) keep the old API on purpose ([`73df58e`](https://github.com/waycrate/wayshot/commit/73df58ef030c97e89d2b77f0a3788ef26ef00b83)).
- **Migration:** move affected call sites to **`screenshot_freeze`**; re-read deprecation on the symbols you use.
- **Migration:** move affected call sites to **`screenshot_freeze`**; re-read deprecation on the symbols you use.
- `FrameGuard` carries side / transform metadata ([`1af8f788`](https://github.com/waycrate/wayshot/commit/1af8f78840c3f20b74e0225a747505f8a4eaf73f), [@Decodetalkers](https://github.com/Decodetalkers)).
- **Migration:** update construction and pattern matches to include the new fields.
- **Migration:** update construction and pattern matches to include the new fields.

### wayshot

Expand All @@ -239,15 +240,14 @@ Changes on `main` since **[1.4.6](https://github.com/waycrate/wayshot/releases/t
#### Breaking Changes

- colored output, help text, and option renames (“friendly CLI”) ([#134](https://github.com/waycrate/wayshot/pull/134), [@Gigas002](https://github.com/Gigas002)).
- **Migration:** update scripts and wrappers that parse `--help`, grep for old long option names, or assume plain stderr; use the current kebab-case flags and check `wayshot --help` for aliases where the old spellings still work.
- **Migration:** update scripts and wrappers that parse `--help`, grep for old long option names, or assume plain stderr; use the current kebab-case flags and check `wayshot --help` for aliases where the old spellings still work.
- region selection uses **libwaysip** in-process instead of spawning **slurp** ([#152](https://github.com/waycrate/wayshot/pull/152), [`586ee25`](https://github.com/waycrate/wayshot/commit/586ee258f824a6fc71d796272ffa9635236cc226), [@Decodetalkers](https://github.com/Decodetalkers)).
- **Migration:** drop expectations that `slurp` is run externally or that `-s` forwards arguments to slurp; adjust automation that wrapped or mocked slurp; rely on wayshot’s built-in selector (and libwaysip behavior) only.
- **Migration:** drop expectations that `slurp` is run externally or that `-s` forwards arguments to slurp; adjust automation that wrapped or mocked slurp; rely on wayshot’s built-in selector (and libwaysip behavior) only.

#### Fixed

- `-` / stdout no longer creates an empty file in cwd ([`a5575b6`](https://github.com/waycrate/wayshot/commit/a5575b6c9c3f12426309ac0309ce6f012cf4d729), [@uncomfyhalomacro](https://github.com/uncomfyhalomacro)).
- embedded region selection on adjacent outputs ([#199](https://github.com/waycrate/wayshot/pull/199), [@Pestdoktor](https://github.com/Pestdoktor)).

[1.4.0]: https://github.com/waycrate/wayshot/compare/1.3.1...v1.4.0

[Unreleased]: https://github.com/waycrate/wayshot/compare/v1.4.6...HEAD
22 changes: 11 additions & 11 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,23 +17,23 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
- Demonstrating empathy and kindness toward other people
- Being respectful of differing opinions, viewpoints, and experiences
- Giving and gracefully accepting constructive feedback
- Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
- Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
- The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
- Trolling, insulting or derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities
Expand Down Expand Up @@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
Expand Down
7 changes: 6 additions & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,22 @@
# Contributing to wayshot

1. Fork the repo and create your branch from `main`.
1. Create your changes.
1. Test your changes in all possible permutations and combinations.
1. Send a pull request upstream!

## Any contributions you make will be under the BSD-2-Clause Software License

In short, when you submit code changes, your submissions are understood to be under the same BSD-2-Clause License that covers the project. Feel free to contact the maintainers if that's a concern.

## Use a Consistent Coding Style
* You can run `make check` for style unification.

- You can run `make check` for style unification.

## Proper Commit Messages

Make sure to write proper commit messages with `conventional commits` syntax.

## License

By contributing, you agree that your contributions will be licensed under its BSD-2-Clause License.
Loading