A fast and minimalistic image viewer forked from the now discontinued emulsion.

Related tags

System tools alloy
Overview

Alloy

Image viewer based on (now-discontinued) Emulsion.

Alloy targets Windows, Mac, and Linux (with more targets to come!).

A note for Linux users: Wayland support is limited, so for example expect high CPU usage and the title text not being shown. However X is fully supported.

Releases will be made as needed, with no set schedule. Merging of bugfix PRs will warrant an immediate new release. Related features may be grouped together in a release.

Contribution is welcome. Feel free to post feature requests, bug reports, and make pull requests.

Building and Installing

Building requires the latest stable version of Rust.

In many cases it's a good start to try running cargo install emulsion. If that build fails or if emulsion panics on startup, look into the nix-example/emulsion/default.nix file and locate rpathLibs which lists the libraries that emulsion depends on. Install the dev version of those libraries then try running the build/install again. For example on Ubuntu one can install libXi by running

sudo apt install libXi-dev

For the Nix Package Manager users: The Nix expressions found within nix-example is in theory able to build a working executable from a state of the emulsion source code. There is no guarantee that the built executable will be identical to any released version of emulsion. The Nix expression is provided to find the dependencies and for those who like tinkering with Nix but otherwise I advise against using it.

Notes about Cargo Features

All packages on the website come with avif support, however it is not a default feature as the dependecies are not trivial to set up. If you are bulding from source (eg using cargo install) and would like emulsion to open avif files, I recommend taking a look at the release workflow for steps to install the avif development dependencies.

When installing Emulsion through the Windows installer, Emulsion will have networking enabled and will by default check for updates. However none of the other versions have networking and neither does the default feature-set. This also means that Emulsion will not have networking dependent capabilities when invoking

cargo install emulsion

To enable such features when installing with cargo, run

cargo install emulsion --features=networking

Reporting Bugs

If Emulsion closed unexpectedly please locate the "panic.txt" file. This file has a different location depending on the target platform.

  • Windows: %localappdata%\emulsion\data
  • MacOS: $HOME/Library/Application Support/emulsion
  • Linux: $XDG_DATA_HOME/emulsion or $HOME/.local/share/emulsion

When posting a bug report please upload the contents of this file to GitHub. If you deem it too large just paste the last panic entry between the rows of equal signs. If there's no "panic.txt" file, describe the scenario in which you experienced the faulty behaviour, and steps to reproduce it if you believe that could help.

Comments
  • Bump image from 0.23.14 to 0.24.2

    Bump image from 0.23.14 to 0.24.2

    Bumps image from 0.23.14 to 0.24.2.

    Changelog

    Sourced from image's changelog.

    Version 0.24.2

    Structural changes:

    • CI now runs cargo-deny, checking dependent crates to an OSS license list and against RUSTSEC advisories.

    New Features:

    • The WebP decoder recognizes and decodes images with VP8X header.
    • The DDS decoder recognizes and decodes images with DX10 headers.

    Bug fixes:

    • Calling DynamicImage/ImageBuffer's methods write_to and save will now work properly even if the backing container is larger than the image layout requires. Only the relevant slice of pixel data is passed to the encoder.
    • Fixed a OOM-panic caused by malformed images in the gif decoder.

    Version 0.24.1

    Bug Fixes:

    • ImageBuffer::get_pixel_checked would sometimes return the incorrect pixel.
    • PNG encoding would sometimes not recognize unsupported color.

    Version 0.24.0

    Breaking changes

    Structural changes:

    • Minimum Rust version is now 1.56 and may change in minor versions until further notice. It is now tracked in the library's Cargo.toml, instead, by the standard [package.rust-version] field. Note: this applies to the library itself. You may need different version resolutions for dependencies when using a non-stable version of Rust.
    • The math::utils::{nq, utils} modules have been removed. These are better served through the color_quant crate and the standard library respectively.
    • All codecs are now available through image::codecs, no longer top-level.
    • ExtendedColorType and DynamicImage have been made #[non_exhaustive], providing more methods instead of exhaustive matching.
    • Reading images through the generic io::Reader, as well as generic convenience interfaces, now requires the underlying reader to be BufRead + Seek. This allows more efficient support more formats. Similarly, writing now requires writers to be Write + Seek.
    • The Bgra* variants of buffers, which were only half-supported, have been removed. The owning buffer types ImageBuffer and DynamicImage fundamentally already make a choice in supported pixel representations. This allows for more consistent internal behavior. Callers are expected to convert formats when using those buffers, which they are required to do in any case already, and which is routinely performed by decoders.

    Trait reworks:

    • The Pixel trait is no longer implemented quite as liberally for structs

    ... (truncated)

    Commits
    • e42b402 Change notes and metadata for 0.24.2
    • f2855f1 Merge pull request #1696 from 5225225/fix-gif-oom
    • 95b53b9 Use free_usize instead of a u64::try_from in gif.rs
    • b41b4bb Fix OOM when decoding gif with very large buffer
    • ae1e661 Merge pull request #1703 from johannesvollmer/update-exrs-license
    • 035778d update openexr (exr crate license was updated)
    • 2f6d97a Merge pull request #1702 from gents83/master
    • a7f080b Fixing clippy warnings
    • 5fe5764 Merge pull request #1700 from linkmauve/direct-rgba
    • 3862f76 avif-decoder: Convert directly to RGBA
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 3
  • Bump glium from 0.29.1 to 0.32.1

    Bump glium from 0.29.1 to 0.32.1

    Bumps glium from 0.29.1 to 0.32.1.

    Changelog

    Sourced from glium's changelog.

    Version 0.32.1 (2022-07-31)

    • Bugfix release to not panic when given multiple vertex attributes with unspecified location numbers.

    Version 0.32.0 (2022-07-30)

    • Updated glutin to version 0.29.0. See the glutin release notes here.
    • Support for location binding for Vertex attributes.

    Version 0.31 (2021-12-11)

    • Updated glutin to version 0.28.0. See the glutin release notes here.
    • Use mdbook for the book.

    Version 0.30.2 (2021-09-06)

    • Added depth and stencil buffer blitting.
    • Added dual source blending.
    • Implemented AsUniformValue for Texture2d directly.

    Version 0.30.1 (2021-07-12)

    • Added ClientFormat::U1U5U5U5Reversed.
    • Updated ouroboros to 0.10.

    Version 0.30.0 (2021-06-23)

    • Updated glutin to version 0.27.0. See the glutin release notes here.
    • Replaced unmaintained rental with ouroboros.
    • Allow instancing on GLES3 or later.
    • Support for importing and using Vulkan semaphores.
    • Made Content::read an unsafe API.
    • Modernized and fixed the third chapter of the tutorial.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump winit from 0.26.1 to 0.27.1

    Bump winit from 0.26.1 to 0.27.1

    Bumps winit from 0.26.1 to 0.27.1.

    Release notes

    Sourced from winit's releases.

    Winit Version v0.27.1

    • The minimum supported Rust version was lowered to 1.57.0 and now explicitly tested.
    • On X11, fix crash on start due to inability to create an IME context without any preedit.

    Winit Version v0.27.0

    • On Windows, fix hiding a maximized window.
    • On Android, ndk-glue's NativeWindow lock is now held between Event::Resumed and Event::Suspended.
    • On Web, added EventLoopExtWebSys with a spawn method to start the event loop without throwing an exception.
    • Added WindowEvent::Occluded(bool), currently implemented on macOS and X11.
    • On X11, fix events for caps lock key not being sent
    • Build docs on docs.rs for iOS and Android as well.
    • Breaking: Removed the WindowAttributes struct, since all its functionality is accessible from WindowBuilder.
    • Added WindowBuilder::transparent getter to check if the user set transparent attribute.
    • On macOS, Fix emitting Event::LoopDestroyed on CMD+Q.
    • On macOS, fixed an issue where having multiple windows would prevent run_return from ever returning.
    • On Wayland, fix bug where the cursor wouldn't hide in GNOME.
    • On macOS, Windows, and Wayland, add set_cursor_hittest to let the window ignore mouse events.
    • On Windows, added WindowExtWindows::set_skip_taskbar and WindowBuilderExtWindows::with_skip_taskbar.
    • On Windows, added EventLoopBuilderExtWindows::with_msg_hook.
    • On Windows, remove internally unique DC per window.
    • On macOS, remove the need to call set_ime_position after moving the window.
    • Added Window::is_visible.
    • Added Window::is_resizable.
    • Added Window::is_decorated.
    • On X11, fix for repeated event loop iteration when ControlFlow was Wait
    • On X11, fix scale factor calculation when the only monitor is reconnected
    • On Wayland, report unaccelerated mouse deltas in DeviceEvent::MouseMotion.
    • On Web, a focused event is manually generated when a click occurs to emulate behaviour of other backends.
    • Breaking: Bump ndk version to 0.6, ndk-sys to v0.3, ndk-glue to 0.6.
    • Remove no longer needed WINIT_LINK_COLORSYNC environment variable.
    • Breaking: Rename the Exit variant of ControlFlow to ExitWithCode, which holds a value to control the exit code after running. Add an Exit constant which aliases to ExitWithCode(0) instead to avoid major breakage. This shouldn't affect most existing programs.
    • Add EventLoopBuilder, which allows you to create and tweak the settings of an event loop before creating it.
    • Deprecated EventLoop::with_user_event; use EventLoopBuilder::with_user_event instead.
    • Breaking: Replaced EventLoopExtMacOS with EventLoopBuilderExtMacOS (which also has renamed methods).
    • Breaking: Replaced EventLoopExtWindows with EventLoopBuilderExtWindows (which also has renamed methods).
    • Breaking: Replaced EventLoopExtUnix with EventLoopBuilderExtUnix (which also has renamed methods).
    • Breaking: The platform specific extensions for Windows winit::platform::windows have changed. All HANDLE-like types e.g. HWND and HMENU were converted from winapi types or *mut c_void to isize. This was done to be consistent with the type definitions in windows-sys and to not expose internal dependencies.
    • The internal bindings to the Windows API were changed from the unofficial winapi bindings to the official Microsoft windows-sys bindings.
    • On Wayland, fix polling during consecutive EventLoop::run_return invocations.
    • On Windows, fix race issue creating fullscreen windows with WindowBuilder::with_fullscreen
    • On Android, virtual_keycode for KeyboardInput events is now filled in where a suitable match is found.
    • Added helper methods on ControlFlow to set its value.
    • On Wayland, fix TouchPhase::Ended always reporting the location of the first touch down, unless the compositor sent a cancel or frame event.
    • On iOS, send RedrawEventsCleared even if there are no redraw events, consistent with other platforms.
    • Breaking: Replaced Window::with_app_id and Window::with_class with Window::with_name on WindowBuilderExtUnix.
    • On Wayland, fallback CSD was replaced with proper one:
      • WindowBuilderExtUnix::with_wayland_csd_theme to set color theme in builder.
      • WindowExtUnix::wayland_set_csd_theme to set color theme when creating a window.
      • WINIT_WAYLAND_CSD_THEME env variable was added, it can be used to set "dark"/"light" theme in apps that don't expose theme setting.

    ... (truncated)

    Changelog

    Sourced from winit's changelog.

    0.27.1 (2022-07-30)

    • The minimum supported Rust version was lowered to 1.57.0 and now explicitly tested.
    • On X11, fix crash on start due to inability to create an IME context without any preedit.

    0.27.0 (2022-07-26)

    • On Windows, fix hiding a maximized window.
    • On Android, ndk-glue's NativeWindow lock is now held between Event::Resumed and Event::Suspended.
    • On Web, added EventLoopExtWebSys with a spawn method to start the event loop without throwing an exception.
    • Added WindowEvent::Occluded(bool), currently implemented on macOS and X11.
    • On X11, fix events for caps lock key not being sent
    • Build docs on docs.rs for iOS and Android as well.
    • Breaking: Removed the WindowAttributes struct, since all its functionality is accessible from WindowBuilder.
    • Added WindowBuilder::transparent getter to check if the user set transparent attribute.
    • On macOS, Fix emitting Event::LoopDestroyed on CMD+Q.
    • On macOS, fixed an issue where having multiple windows would prevent run_return from ever returning.
    • On Wayland, fix bug where the cursor wouldn't hide in GNOME.
    • On macOS, Windows, and Wayland, add set_cursor_hittest to let the window ignore mouse events.
    • On Windows, added WindowExtWindows::set_skip_taskbar and WindowBuilderExtWindows::with_skip_taskbar.
    • On Windows, added EventLoopBuilderExtWindows::with_msg_hook.
    • On Windows, remove internally unique DC per window.
    • On macOS, remove the need to call set_ime_position after moving the window.
    • Added Window::is_visible.
    • Added Window::is_resizable.
    • Added Window::is_decorated.
    • On X11, fix for repeated event loop iteration when ControlFlow was Wait
    • On X11, fix scale factor calculation when the only monitor is reconnected
    • On Wayland, report unaccelerated mouse deltas in DeviceEvent::MouseMotion.
    • On Web, a focused event is manually generated when a click occurs to emulate behaviour of other backends.
    • Breaking: Bump ndk version to 0.6, ndk-sys to v0.3, ndk-glue to 0.6.
    • Remove no longer needed WINIT_LINK_COLORSYNC environment variable.
    • Breaking: Rename the Exit variant of ControlFlow to ExitWithCode, which holds a value to control the exit code after running. Add an Exit constant which aliases to ExitWithCode(0) instead to avoid major breakage. This shouldn't affect most existing programs.
    • Add EventLoopBuilder, which allows you to create and tweak the settings of an event loop before creating it.
    • Deprecated EventLoop::with_user_event; use EventLoopBuilder::with_user_event instead.
    • Breaking: Replaced EventLoopExtMacOS with EventLoopBuilderExtMacOS (which also has renamed methods).
    • Breaking: Replaced EventLoopExtWindows with EventLoopBuilderExtWindows (which also has renamed methods).
    • Breaking: Replaced EventLoopExtUnix with EventLoopBuilderExtUnix (which also has renamed methods).
    • Breaking: The platform specific extensions for Windows winit::platform::windows have changed. All HANDLE-like types e.g. HWND and HMENU were converted from winapi types or *mut c_void to isize. This was done to be consistent with the type definitions in windows-sys and to not expose internal dependencies.
    • The internal bindings to the Windows API were changed from the unofficial winapi bindings to the official Microsoft windows-sys bindings.
    • On Wayland, fix polling during consecutive EventLoop::run_return invocations.
    • On Windows, fix race issue creating fullscreen windows with WindowBuilder::with_fullscreen
    • On Android, virtual_keycode for KeyboardInput events is now filled in where a suitable match is found.
    • Added helper methods on ControlFlow to set its value.
    • On Wayland, fix TouchPhase::Ended always reporting the location of the first touch down, unless the compositor sent a cancel or frame event.
    • On iOS, send RedrawEventsCleared even if there are no redraw events, consistent with other platforms.
    • Breaking: Replaced Window::with_app_id and Window::with_class with Window::with_name on WindowBuilderExtUnix.
    • On Wayland, fallback CSD was replaced with proper one:
      • WindowBuilderExtUnix::with_wayland_csd_theme to set color theme in builder.

    ... (truncated)

    Commits
    • c53a574 Release 0.27.1 version
    • 95246d8 On X11, fix crash when can't disable IME
    • bf53700 Explicitly specify minimum supported rust version
    • 5003564 Release 0.27.0 version
    • 64c22f9 Fix changelog entry wrt scrolling
    • 4895a29 ci: manually point ANDROID_NDK_ROOT to latest supplied version
    • 6cdb317 Consistently deliver a Resumed event on all platforms
    • 4fd52af Fix type hint reference for xlib hook
    • 5a0bad1 Bump ndk and ndk-glue dependencies to stable 0.7.0 release (#2392)
    • 08d0259 Fix hiding a maximized window On Windows (#2336)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump winit from 0.26.1 to 0.27.0

    Bump winit from 0.26.1 to 0.27.0

    Bumps winit from 0.26.1 to 0.27.0.

    Release notes

    Sourced from winit's releases.

    Winit Version v0.27.0

    • On Windows, fix hiding a maximized window.
    • On Android, ndk-glue's NativeWindow lock is now held between Event::Resumed and Event::Suspended.
    • On Web, added EventLoopExtWebSys with a spawn method to start the event loop without throwing an exception.
    • Added WindowEvent::Occluded(bool), currently implemented on macOS and X11.
    • On X11, fix events for caps lock key not being sent
    • Build docs on docs.rs for iOS and Android as well.
    • Breaking: Removed the WindowAttributes struct, since all its functionality is accessible from WindowBuilder.
    • Added WindowBuilder::transparent getter to check if the user set transparent attribute.
    • On macOS, Fix emitting Event::LoopDestroyed on CMD+Q.
    • On macOS, fixed an issue where having multiple windows would prevent run_return from ever returning.
    • On Wayland, fix bug where the cursor wouldn't hide in GNOME.
    • On macOS, Windows, and Wayland, add set_cursor_hittest to let the window ignore mouse events.
    • On Windows, added WindowExtWindows::set_skip_taskbar and WindowBuilderExtWindows::with_skip_taskbar.
    • On Windows, added EventLoopBuilderExtWindows::with_msg_hook.
    • On Windows, remove internally unique DC per window.
    • On macOS, remove the need to call set_ime_position after moving the window.
    • Added Window::is_visible.
    • Added Window::is_resizable.
    • Added Window::is_decorated.
    • On X11, fix for repeated event loop iteration when ControlFlow was Wait
    • On X11, fix scale factor calculation when the only monitor is reconnected
    • On Wayland, report unaccelerated mouse deltas in DeviceEvent::MouseMotion.
    • On Web, a focused event is manually generated when a click occurs to emulate behaviour of other backends.
    • Breaking: Bump ndk version to 0.6, ndk-sys to v0.3, ndk-glue to 0.6.
    • Remove no longer needed WINIT_LINK_COLORSYNC environment variable.
    • Breaking: Rename the Exit variant of ControlFlow to ExitWithCode, which holds a value to control the exit code after running. Add an Exit constant which aliases to ExitWithCode(0) instead to avoid major breakage. This shouldn't affect most existing programs.
    • Add EventLoopBuilder, which allows you to create and tweak the settings of an event loop before creating it.
    • Deprecated EventLoop::with_user_event; use EventLoopBuilder::with_user_event instead.
    • Breaking: Replaced EventLoopExtMacOS with EventLoopBuilderExtMacOS (which also has renamed methods).
    • Breaking: Replaced EventLoopExtWindows with EventLoopBuilderExtWindows (which also has renamed methods).
    • Breaking: Replaced EventLoopExtUnix with EventLoopBuilderExtUnix (which also has renamed methods).
    • Breaking: The platform specific extensions for Windows winit::platform::windows have changed. All HANDLE-like types e.g. HWND and HMENU were converted from winapi types or *mut c_void to isize. This was done to be consistent with the type definitions in windows-sys and to not expose internal dependencies.
    • The internal bindings to the Windows API were changed from the unofficial winapi bindings to the official Microsoft windows-sys bindings.
    • On Wayland, fix polling during consecutive EventLoop::run_return invocations.
    • On Windows, fix race issue creating fullscreen windows with WindowBuilder::with_fullscreen
    • On Android, virtual_keycode for KeyboardInput events is now filled in where a suitable match is found.
    • Added helper methods on ControlFlow to set its value.
    • On Wayland, fix TouchPhase::Ended always reporting the location of the first touch down, unless the compositor sent a cancel or frame event.
    • On iOS, send RedrawEventsCleared even if there are no redraw events, consistent with other platforms.
    • Breaking: Replaced Window::with_app_id and Window::with_class with Window::with_name on WindowBuilderExtUnix.
    • On Wayland, fallback CSD was replaced with proper one:
      • WindowBuilderExtUnix::with_wayland_csd_theme to set color theme in builder.
      • WindowExtUnix::wayland_set_csd_theme to set color theme when creating a window.
      • WINIT_WAYLAND_CSD_THEME env variable was added, it can be used to set "dark"/"light" theme in apps that don't expose theme setting.
      • wayland-csd-adwaita feature that enables proper CSD with title rendering using FreeType system library.
      • wayland-csd-adwaita-notitle feature that enables CSD but without title rendering.
    • On Wayland and X11, fix window not resizing with Window::set_inner_size after calling Window:set_resizable(false).
    • On Windows, fix wrong fullscreen monitors being recognized when handling WM_WINDOWPOSCHANGING messages

    ... (truncated)

    Changelog

    Sourced from winit's changelog.

    0.27.0 (2022-07-26)

    • On Windows, fix hiding a maximized window.
    • On Android, ndk-glue's NativeWindow lock is now held between Event::Resumed and Event::Suspended.
    • On Web, added EventLoopExtWebSys with a spawn method to start the event loop without throwing an exception.
    • Added WindowEvent::Occluded(bool), currently implemented on macOS and X11.
    • On X11, fix events for caps lock key not being sent
    • Build docs on docs.rs for iOS and Android as well.
    • Breaking: Removed the WindowAttributes struct, since all its functionality is accessible from WindowBuilder.
    • Added WindowBuilder::transparent getter to check if the user set transparent attribute.
    • On macOS, Fix emitting Event::LoopDestroyed on CMD+Q.
    • On macOS, fixed an issue where having multiple windows would prevent run_return from ever returning.
    • On Wayland, fix bug where the cursor wouldn't hide in GNOME.
    • On macOS, Windows, and Wayland, add set_cursor_hittest to let the window ignore mouse events.
    • On Windows, added WindowExtWindows::set_skip_taskbar and WindowBuilderExtWindows::with_skip_taskbar.
    • On Windows, added EventLoopBuilderExtWindows::with_msg_hook.
    • On Windows, remove internally unique DC per window.
    • On macOS, remove the need to call set_ime_position after moving the window.
    • Added Window::is_visible.
    • Added Window::is_resizable.
    • Added Window::is_decorated.
    • On X11, fix for repeated event loop iteration when ControlFlow was Wait
    • On X11, fix scale factor calculation when the only monitor is reconnected
    • On Wayland, report unaccelerated mouse deltas in DeviceEvent::MouseMotion.
    • On Web, a focused event is manually generated when a click occurs to emulate behaviour of other backends.
    • Breaking: Bump ndk version to 0.6, ndk-sys to v0.3, ndk-glue to 0.6.
    • Remove no longer needed WINIT_LINK_COLORSYNC environment variable.
    • Breaking: Rename the Exit variant of ControlFlow to ExitWithCode, which holds a value to control the exit code after running. Add an Exit constant which aliases to ExitWithCode(0) instead to avoid major breakage. This shouldn't affect most existing programs.
    • Add EventLoopBuilder, which allows you to create and tweak the settings of an event loop before creating it.
    • Deprecated EventLoop::with_user_event; use EventLoopBuilder::with_user_event instead.
    • Breaking: Replaced EventLoopExtMacOS with EventLoopBuilderExtMacOS (which also has renamed methods).
    • Breaking: Replaced EventLoopExtWindows with EventLoopBuilderExtWindows (which also has renamed methods).
    • Breaking: Replaced EventLoopExtUnix with EventLoopBuilderExtUnix (which also has renamed methods).
    • Breaking: The platform specific extensions for Windows winit::platform::windows have changed. All HANDLE-like types e.g. HWND and HMENU were converted from winapi types or *mut c_void to isize. This was done to be consistent with the type definitions in windows-sys and to not expose internal dependencies.
    • The internal bindings to the Windows API were changed from the unofficial winapi bindings to the official Microsoft windows-sys bindings.
    • On Wayland, fix polling during consecutive EventLoop::run_return invocations.
    • On Windows, fix race issue creating fullscreen windows with WindowBuilder::with_fullscreen
    • On Android, virtual_keycode for KeyboardInput events is now filled in where a suitable match is found.
    • Added helper methods on ControlFlow to set its value.
    • On Wayland, fix TouchPhase::Ended always reporting the location of the first touch down, unless the compositor sent a cancel or frame event.
    • On iOS, send RedrawEventsCleared even if there are no redraw events, consistent with other platforms.
    • Breaking: Replaced Window::with_app_id and Window::with_class with Window::with_name on WindowBuilderExtUnix.
    • On Wayland, fallback CSD was replaced with proper one:
      • WindowBuilderExtUnix::with_wayland_csd_theme to set color theme in builder.
      • WindowExtUnix::wayland_set_csd_theme to set color theme when creating a window.
      • WINIT_WAYLAND_CSD_THEME env variable was added, it can be used to set "dark"/"light" theme in apps that don't expose theme setting.
      • wayland-csd-adwaita feature that enables proper CSD with title rendering using FreeType system library.
      • wayland-csd-adwaita-notitle feature that enables CSD but without title rendering.
    • On Wayland and X11, fix window not resizing with Window::set_inner_size after calling Window:set_resizable(false).

    ... (truncated)

    Commits
    • 5003564 Release 0.27.0 version
    • 64c22f9 Fix changelog entry wrt scrolling
    • 4895a29 ci: manually point ANDROID_NDK_ROOT to latest supplied version
    • 6cdb317 Consistently deliver a Resumed event on all platforms
    • 4fd52af Fix type hint reference for xlib hook
    • 5a0bad1 Bump ndk and ndk-glue dependencies to stable 0.7.0 release (#2392)
    • 08d0259 Fix hiding a maximized window On Windows (#2336)
    • 1cd0e94 Windows: apply skip taskbar state when taskbar is restarted (#2380)
    • 1ec976f Add method to hook xlib error handler
    • f10ef5f On macOS, fix confirmed character inserted
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump tiny-skia from 0.6.5 to 0.7.0

    Bump tiny-skia from 0.6.5 to 0.7.0

    Bumps tiny-skia from 0.6.5 to 0.7.0.

    Changelog

    Sourced from tiny-skia's changelog.

    [0.7.0] - 2022-07-03

    Added

    • tiny-skia-path dependency that can be used independently from tiny-skia. It contains the tiny-skia Bezier path implementation, including stroking and dashing. As well as all the geometry primitives (like Point and Rect).

    Changed

    • When disabling the std feature, one have to enable no-std-float feature instead of libm now.

    [0.6.6] - 2022-06-23

    Fixed

    • Panic in Rect::round and Rect::round_out. Thanks to @​Wardenfar
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump usvg from 0.22.0 to 0.23.0

    Bump usvg from 0.22.0 to 0.23.0

    Bumps usvg from 0.22.0 to 0.23.0.

    Release notes

    Sourced from usvg's releases.

    v0.23.0

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer
    Changelog

    Sourced from usvg's changelog.

    [0.23.0] - 2022-06-11

    Added

    • #RRGGBBAA and #RGBA color notation support. Thanks to demurgos.

    Fixed

    • Panic during recursive pattern resolving. Thanks to FylmTM.
    • Spurious warning when using --export-id. Thanks to benoit-pierre.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump glium from 0.29.1 to 0.31.0

    Bump glium from 0.29.1 to 0.31.0

    Bumps glium from 0.29.1 to 0.31.0.

    Changelog

    Sourced from glium's changelog.

    Changelog

    Version 0.31 (2021-12-11)

    • Updated glutin to version 0.31.0. See the glutin release notes here.
    • Use mdbook for the book.

    Version 0.30.2 (2021-09-06)

    • Added depth and stencil buffer blitting.
    • Added dual source blending.
    • Implemented AsUniformValue for Texture2d directly.

    Version 0.30.1 (2021-07-12)

    • Added ClientFormat::U1U5U5U5Reversed.
    • Updated ouroboros to 0.10.

    Version 0.30.0 (2021-06-23)

    • Updated glutin to version 0.30.0. See the glutin release notes here.
    • Replaced unmaintained rental with ouroboros.
    • Allow instancing on GLES3 or later.
    • Support for importing and using Vulkan semaphores.
    • Made Content::read an unsafe API.
    • Modernized and fixed the third chapter of the tutorial.
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 2
  • Bump serde from 1.0.150 to 1.0.151

    Bump serde from 1.0.150 to 1.0.151

    Bumps serde from 1.0.150 to 1.0.151.

    Release notes

    Sourced from serde's releases.

    v1.0.151

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#2344)
    Commits
    • 44bf363 Release 1.0.151
    • f261184 Merge pull request #2344 from dtolnay/coreerror
    • df40f80 Make StdError identical to core::error::Error on feature="unstable"
    • e7060ba Merge pull request #2342 from atouchet/badges
    • d98f0ee Update build status badge
    • 4f157a8 Prevent build.rs rerunning unnecessarily on all source changes
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump serde from 1.0.147 to 1.0.149

    Bump serde from 1.0.147 to 1.0.149

    Bumps serde from 1.0.147 to 1.0.149.

    Release notes

    Sourced from serde's releases.

    v1.0.149

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#2333, thanks @​jonasbb)

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)
    Commits
    • 0353354 Release 1.0.149
    • 34ae042 Merge pull request #2333 from jonasbb/remove-trait-bounds
    • cc128fe Remove some Serialize trait bounds
    • 7766103 Release 1.0.148
    • 30f7c71 Merge pull request #2331 from dtolnay/remote
    • 50354c2 Improve error message on remote derive duplicate generics
    • c4f67e6 Add ui test of duplicate generics in remote derive
    • 0daafe4 Merge pull request #2330 from dtolnay/remote
    • 3702191 Fix Into conversion involving generic remote derive with getter
    • 7328b34 Add test of generic remote derive with getter
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump serde from 1.0.147 to 1.0.148

    Bump serde from 1.0.147 to 1.0.148

    Bumps serde from 1.0.147 to 1.0.148.

    Release notes

    Sourced from serde's releases.

    v1.0.148

    • Support remote derive for generic types that have private fields (#2327)
    Commits
    • 7766103 Release 1.0.148
    • 30f7c71 Merge pull request #2331 from dtolnay/remote
    • 50354c2 Improve error message on remote derive duplicate generics
    • c4f67e6 Add ui test of duplicate generics in remote derive
    • 0daafe4 Merge pull request #2330 from dtolnay/remote
    • 3702191 Fix Into conversion involving generic remote derive with getter
    • 7328b34 Add test of generic remote derive with getter
    • fabbd2b Merge pull request #2329 from dtolnay/safety
    • 6814f97 Revert Buf::as_str safety change from PR 2319
    • 4ea403c Merge pull request #2328 from dtolnay/remote
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump usvg from 0.25.0 to 0.27.0

    Bump usvg from 0.25.0 to 0.27.0

    Bumps usvg from 0.25.0 to 0.27.0.

    Release notes

    Sourced from usvg's releases.

    v0.27.0

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer

    v0.26.1

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer

    v0.26.0

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer
    Changelog

    Sourced from usvg's changelog.

    [0.27.0] - 2022-11-27

    Added

    • lengthAdjust and textLength attributes support.
    • Support automatic image size detection. width and height attributes can be omitted or set to auto on image now. SVG2

    Fixed

    • --query-all flag in resvg CLI.
    • Percentage values resolving.

    [0.26.1] - 2022-11-21

    Fixed

    • Allow dominant-baseline and alignment-baseline to be set via CSS.

    [0.26.0] - 2022-11-20

    Added

    • Minimal dominant-baseline and alignment-baseline support.
    • mix-blend-mode and isolation support. SVG2
    • Allow writing resvg output to stdout.
    • Allow disabling text kerning using kerning="0" and style="font-kerning:none". SVG2
    • Allow <percentage> values for opacity, fill-opacity, stroke-opacity, flood-opacity and stop-opacity attributes. You can write opacity="50%" now. SVG2

    Changed

    • Disable focal point correction on radial gradients to conform with SVG 2. SVG2
    • Update feMorphology radius value resolving.

    Fixed

    • Do not clip nested svg when only the viewBox attribute is present.
    Commits
    • a030481 Version bump.
    • 72fcaee Support automatic image size detection.
    • 570e952 Fix percentage values resolving.
    • 6b6b46f Fix --query-all flag in resvg CLI.
    • 5fa084d Add lengthAdjust and textLength attributes support.
    • b79e57d Version bump.
    • 22960e4 Allow dominant-baseline and alignment-baseline to be set via CSS.
    • b9f40cf Version bump.
    • b65d8b0 Allow percentage opacity values.
    • eeeace7 Update feMorphology radius value resolving.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 1
  • Bump ureq from 2.5.0 to 2.6.1

    Bump ureq from 2.5.0 to 2.6.1

    Bumps ureq from 2.5.0 to 2.6.1.

    Changelog

    Sourced from ureq's changelog.

    2.6.1

    Fixed

    • gzip: examine Content-Length header before removing (#578)

    2.6.0

    Added

    • Response::remote_addr() (#489)
    • Request::query_pairs() - make query params from an Iterator of pairs (#519)

    Fixed

    • Gzip responses with chunked encoding now work with connection pooling (#560)
    • Don't panic when rustls-native-certs errors (#564)
    • Responses with zero-length body now work with connection pooling (#565)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump usvg from 0.25.0 to 0.28.0

    Bump usvg from 0.25.0 to 0.28.0

    Bumps usvg from 0.25.0 to 0.28.0.

    Release notes

    Sourced from usvg's releases.

    v0.28.0

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer

    v0.27.0

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer

    v0.26.1

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer

    v0.26.0

    • viewsvg is a simple application that showcases resvg capabilities
    • resvg-0.*.0.tar.xz is a sources archive with vendored Rust dependencies
    • resvg-explorer-extension.exe is an SVG thumbnailer for Windows Explorer
    Changelog

    Sourced from usvg's changelog.

    [0.28.0] - 2022-12-03

    Added

    • usvg::Text and usvg::NodeKind::Text.

    Changed

    • usvg isn't converting text to paths by default now. A caller must call usvg::Tree::convert_text or usvg::Text::convert from usvg-text-layout crate on demand.
    • usvg text layout implementation moved into usvg-text-layout crate.
    • During SVG size recovery, when no width, height and viewBox attributes have been set, text nodes are no longer taken into an account. This is because a text node has no bbox before conversion into path(s), which we no longer doing during parsing.
    • usvg is purely an SVG parser now. It doesn't convert text to paths and doesn't write SVG anymore.
    • usvg::filter::ConvolveMatrixData methods are fields now.

    Removed

    • usvg CLI binary. No alternatives for now.
    • All usvg build features.
      • filter. Filter elements are always parsed by usvg now.
      • text. Text elements are always parsed by usvg now.
      • export. usvg cannot write an SVG anymore.
    • usvg::Tree::to_string. usvg cannot write an SVG anymore.
    • usvg::TransformFromBBox trait. This is just a regular usvg::Transform method now.
    • usvg::OptionsRef. usvg::Options is enough from now.
    • usvg::Options::fontdb. Used only by usvg-text-layout now.
    • --dump-svg from resvg.

    [0.27.0] - 2022-11-27

    Added

    • lengthAdjust and textLength attributes support.
    • Support automatic image size detection. width and height attributes can be omitted or set to auto on image now. SVG2

    Fixed

    • --query-all flag in resvg CLI.
    • Percentage values resolving.

    [0.26.1] - 2022-11-21

    Fixed

    • Allow dominant-baseline and alignment-baseline to be set via CSS.

    [0.26.0] - 2022-11-20

    Added

    • Minimal dominant-baseline and alignment-baseline support.
    • mix-blend-mode and isolation support. SVG2
    • Allow writing resvg output to stdout.
    • Allow disabling text kerning using kerning="0" and style="font-kerning:none". SVG2
    • Allow <percentage> values for opacity, fill-opacity, stroke-opacity, flood-opacity and stop-opacity attributes. You can write opacity="50%" now. SVG2

    ... (truncated)

    Commits
    • 9e856a5 Version bump.
    • 5913354 Improve --perf output.
    • 36b0e0b Revert usvg::Options::font_family removal.
    • 11ec031 Restructure filters parsing.
    • 95bef32 Fix win build.
    • 5769dfb Update CI.
    • 910ed01 usvg text layout implementation moved into usvg-text-layout crate.
    • 6b73d2a Allow converting text to paths on-demand.
    • a030481 Version bump.
    • 72fcaee Support automatic image size detection.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump trash from 2.1.5 to 3.0.0

    Bump trash from 2.1.5 to 3.0.0

    Bumps trash from 2.1.5 to 3.0.0.

    Release notes

    Sourced from trash's releases.

    v3.0.0

    Chore (BREAKING)

    • Upgrade from windows v0.37 to v0.43.

    Commit Statistics

    • 4 commits contributed to the release over the course of 132 calendar days.
    • 145 days passed between releases.
    • 1 commit was understood as conventional.
    • 0 issues like '(#ID)' were seen in commit messages

    Commit Details

    • Uncategorized
      • Upgrade from windows v0.37 to v0.43. (a024b44)
      • Fix Clippy failures on Linux (538dea0)
      • Upgrade windows crate from v0.37 to v0.43 (48cdc67)
      • derive Clone for TrashItem (fcf6bb5)
    Changelog

    Sourced from trash's changelog.

    3.0.0 (2022-11-27)

    Chore (BREAKING)

    • Upgrade from windows v0.37 to v0.43.

    Commit Statistics

    • 4 commits contributed to the release over the course of 132 calendar days.
    • 145 days passed between releases.
    • 1 commit was understood as conventional.
    • 0 issues like '(#ID)' were seen in commit messages

    Commit Details

    • Uncategorized
      • Upgrade from windows v0.37 to v0.43. (a024b44)
      • Fix Clippy failures on Linux (538dea0)
      • Upgrade windows crate from v0.37 to v0.43 (48cdc67)
      • derive Clone for TrashItem (fcf6bb5)
    Commits
    • 1fb5ad6 Release trash v3.0.0
    • a024b44 chore!: Upgrade from windows v0.37 to v0.43.
    • 538dea0 Fix Clippy failures on Linux
    • 48cdc67 Upgrade windows crate from v0.37 to v0.43
    • fcf6bb5 derive Clone for TrashItem
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump env_logger from 0.9.3 to 0.10.0

    Bump env_logger from 0.9.3 to 0.10.0

    Bumps env_logger from 0.9.3 to 0.10.0.

    Changelog

    Sourced from env_logger's changelog.

    [0.10.0] - 2022-11-24

    MSRV changed to 1.60 to hide optional dependencies

    Fixes

    • Resolved soundness issue by switching from atty to is-terminal

    Breaking Changes

    To open room for changing dependencies:

    • Renamed termcolor feature to color
    • Renamed atty feature to auto-color
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump typed-builder from 0.10.0 to 0.11.0

    Bump typed-builder from 0.10.0 to 0.11.0

    Bumps typed-builder from 0.10.0 to 0.11.0.

    Changelog

    Sourced from typed-builder's changelog.

    0.11.0 - 2022-10-29

    Added

    • #[builder(build_method(vis="pub", name=build))] for customizing visibility and fn name of the final build method (the default visibility is pub, and default build name is build)
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • strace alloy indicates constant invocations of getpid() and ioctl() in infinite loop

    strace alloy indicates constant invocations of getpid() and ioctl() in infinite loop

    Having been curious as to why task switching from/to alloy and resizing of alloy windows seem so choppy, I instinctively did an »strace alloy 1.png« (1.png is one of the small images in alloy's resource directory making up its UI), which causes a constant flood of messages, seemingly without any intermittent delays.

    All those rapid syscalls also explain the 1.5% CPU load with any open alloy window (emulsion too, both debug and release build). I did it on Linux (Kernel 5.18.1; on the same machine, gwenview, eog and feh use 0% CPU and radio silent on strace -- except when animating GIFs, which is fair).

    Just 2 snippets of a typical alloy strace:

    .
    .
    .
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    poll([{fd=3, events=0}], 1, 0)          = 0 (Timeout)
    poll([{fd=16, events=POLLIN|POLLPRI}], 1, 1000) = 1 ([{fd=16, revents=POLLIN|POLLPRI}])
    ioctl(16, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x52, 0x10), 0x7ffe113bee30) = 0
    sched_yield()                           = 0
    ioctl(9, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x2a, 0x20), 0x7ffe113bcf30) = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    epoll_pwait(4, [], 8, 0, NULL, 8)       = 0
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
    writev(3, [{iov_base="\22\0\f\0\2\0\300\2'\0\0\0\37\0\0\0\10\0\0\0\27\0\0\0001.png : "..., iov_len=96}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 96
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    recvmsg(3, {msg_namelen=0}, 0)          = -1 EAGAIN (Resource temporarily unavailable)
    poll([{fd=3, events=POLLIN|POLLOUT}], 1, -1) = 1 ([{fd=3, revents=POLLOUT}])
    writev(3, [{iov_base="\16\0\2\0\2\0\300\2", iov_len=8}, {iov_base=NULL, iov_len=0}, {iov_base="", iov_len=0}], 3) = 8
    poll([{fd=3, events=POLLIN}], 1, -1)    = 1 ([{fd=3, revents=POLLIN}])
    recvmsg(3, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="\1\30b\1\0\0\0\0\315\1\0\0\0\0\0\0\314\4\26\4\0\0\0\0\0\0\0\0\0\0\0\0", iov_len=4096}], msg_iovlen=1, msg_controllen=0, msg_flags=0}, 0) = 32
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    getpid()                                = 29005
    .
    .
    .
    

    ...and other times, like this:

    .
    .
    .
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    sched_yield()                           = 0
    munmap(0x7fd5bf0b0000, 8192)            = 0
    munmap(0x408b7000, 8192)                = 0
    ioctl(9, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0x4f, 0x20), 0x7ffe113bf590) = 0
    munmap(0x7fd5bef73000, 12288)           = 0
    munmap(0x413db000, 716032)              = 0
    ioctl(16, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0xcf, 0x10), 0x7ffe113bf5f0) = 0
    close(16)                               = 0
    ioctl(17, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0xcf, 0x10), 0x7ffe113bf5f0) = 0
    close(17)                               = 0
    ioctl(18, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0xcf, 0x10), 0x7ffe113bf5f0) = 0
    close(18)                               = 0
    ioctl(19, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0xcf, 0x10), 0x7ffe113bf5f0) = 0
    close(19)                               = 0
    ioctl(20, _IOC(_IOC_READ|_IOC_WRITE, 0x46, 0xcf, 0x10), 0x7ffe113bf5f0) = 0
    close(20)       
    .
    .
    .
    

    Edited to add: I like pure image viewers like alloy as well as the fact that alloy is written in Rust. I have been unable to localize those incessant syscalls above, though. They don't seem to reside in any of the alloy or emulsion source files but rather in one of those uncounted Cargo dependencies.

    I wouldn't be surprised if a multithreading-nonblocking messaging-I/O library like Tokio was the cause.

    bug 
    opened by mh3663 1
Owner
Ardaku Systems
Multimedia & WebAssembly
Ardaku Systems
minimalistic command launcher in rust

rrun Note: Apart from the occasional fix, this project is not actively developed anymore. rrun works fine and should run/compile for the time being on

null 105 Nov 18, 2022
Small command-line JSON Log viewer

fblog A small tool to view json log files. Filter To filter log messages it is possible to use lua fblog -f 'level ~= "info"' # will print all message

null 256 Jan 2, 2023
OCI Runtime, Image and Distribution Spec in Rust

oci-spec-rs Open Container Initiative (OCI) Specifications for Rust This library provides a convenient way to interact with the specifications defined

Containers 119 Dec 29, 2022
A simple and fast download accelerator, written in Rust

zou A simple and fast download accelerator, written in Rust Zou is a Snatch fork by @k0pernicus. Snatch is a fast and interruptable download accelerat

Antonin Carette 173 Dec 4, 2022
A simple, fast and user-friendly alternative to 'find'

fd [中文] [한국어] fd is a program to find entries in your filesytem. It is a simple, fast and user-friendly alternative to find. While it does not aim to

David Peter 25.8k Dec 30, 2022
A fast duplicate file finder

The Directory Differential hTool DDH traverses input directories and their subdirectories. It also hashes files as needed and reports findings. The H

Jon Moroney 384 Dec 24, 2022
Blazing 💥 fast terminal-ui for git written in rust 🦀

Blazing fast terminal client for git written in Rust Features Fast and intuitive keyboard only control Context based help (no need to memorize tons of

Stephan Dilly 11.8k Jan 5, 2023
Super-fast command aliases with arguments.

Bonnie Bonnie is a command aliasing tool. If you have a super-long command that you have to run all the time, Bonnie is for you! Just define the comma

arctic_hen7 58 Dec 22, 2022
GTK application for browsing and installing fonts from Google's font archive

Font Finder This project is a from-scratch implementation of TypeCatcher in Rust. It is a GTK3 application for browsing through and installing fonts f

Michael Murphy 252 Dec 26, 2022
Linux Kernel Manager and Activity Monitor 🐧💻

Linux Kernel Manager and Activity Monitor ?? ?? The kernel is the part of the operating system that facilitates interactions between hardware and soft

Orhun Parmaksız 1.7k Jan 5, 2023
A project for automatically generating and maintaining Debian repositories from a TOML spec.

Debian Repository Builder A simple utility for constructing and maintaining Debian repositories. Configuration of a repo is based on the directory hie

Pop!_OS 52 Feb 7, 2022
Utility that takes logs from anywhere and sends them to Telegram.

logram Utility that takes logs from anywhere and sends them to Telegram. Supports log collection from files, journald and docker containers. More abou

Max Eliseev 85 Dec 22, 2022
A safe and ergonomic alternative to rm

rip (Rm ImProved) rip is a command-line deletion tool focused on safety, ergonomics, and performance. It favors a simple interface, and does not imple

Kevin Liu 781 Jan 7, 2023
Untrusted IPC with maximum performance and minimum latency. On Rust, on Linux.

Untrusted IPC with maximum performance and minimum latency. On Rust, on Linux. When is this Rust crate useful? Performance or latency is crucial, and

null 72 Jan 3, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
A tool to simplify reprovisioning a fresh OS. Installs packages and manages dotfiles.

[[TOC]] Comtrya This is better, yes? Warning This tool is ridiculously early in its development. I'm building out features as I migrate my dotfiles ov

David McKay 2 Dec 29, 2022
A tool to simplify reprovisioning a fresh OS. Installs packages and manages dotfiles.

Comtrya This is better, yes? Warning This tool is ridiculously early in its development. I'm building out features as I migrate my dotfiles over. Thos

Comtrya 272 Jan 7, 2023
Parallel finance a decentralized lending protocol built on top of the Polkadot ecosystem. Our unique approach will allow users to earn "double interests" from staking and lending their tokens simultaneously.

Parallel Finance A new Cumulus-based Substrate node, ready for hacking ?? Getting Started Follow these steps to get started with the Cumulus Template

parallel-finance 100 Dec 17, 2022
idf-env tool helps set up and manage ESP-IDF installations

idf-env Tool for maintaining ESP-IDF environment. Quick start Install serial drivers for ESP boards on Windows. Execute following command in PowerShel

Espressif Systems 19 Dec 4, 2022