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 arboard from 2.1.1 to 3.0.0

    Bump arboard from 2.1.1 to 3.0.0

    Bumps arboard from 2.1.1 to 3.0.0.

    Release notes

    Sourced from arboard's releases.

    v3.0.0

    Added

    • Support for clearing the clipboard.
    • Spport for excluding Windows clipboard data from cliboard history and OneDrive.
    • Support waiting for another process to read clipboard data before returning from a write call to a X11 and Wayland or clipboard

    Changed

    • Updated wl-clipboard-rs to the version 0.6.
    • Updated x11rb to the version 0.10.
    • Cleaned up spelling in documentation
    • (Breaking) Functions that used to accept String now take Into<Cow<'a>, str> instead. This avoids cloning the string more times then necessary on platforms that can.
    • (Breaking) Error is now marked as #[non_exhaustive].
    • (Breaking) Removed all platform specific modules and clipboard structures from the public API. If you were using these directly, the recommended replacement is using arboard::Clipboard and the new platform-specific extension traits instead.
    Changelog

    Sourced from arboard's changelog.

    Changelog

    3.0 on 2022-19-09

    Added

    • Support for clearing the clipboard.
    • Spport for excluding Windows clipboard data from cliboard history and OneDrive.
    • Support waiting for another process to read clipboard data before returning from a write call to a X11 and Wayland or clipboard

    Changed

    • Updated wl-clipboard-rs to the version 0.6.
    • Updated x11rb to the version 0.10.
    • Cleaned up spelling in documentation
    • (Breaking) Functions that used to accept String now take Into<Cow<'a>, str> instead. This avoids cloning the string more times then necessary on platforms that can.
    • (Breaking) Error is now marked as #[non_exhaustive].
    • (Breaking) Removed all platform specific modules and clipboard structures from the public API. If you were using these directly, the recommended replacement is using arboard::Clipboard and the new platform-specific extension traits instead.
    Commits
    • b60d44e Release 3.0.0
    • ee80bc3 Update x11rb to 0.10
    • 12664f2 Redo API for clipboard clearing
    • 2256b4e Fix unneeded return in Linux wayland implementation
    • 2042cef Add missing markdown fixes
    • fd30758 Merge pull request #73 from kianmeng/fix-typos-and-markdowns
    • 51102d1 Fix typos and markdowns
    • 2442c1d Update README.md
    • 7fd3f07 Accept optionally borrowed data instead of String for setting text
    • b3e11c6 Fix spelling of 'panicked' (#65)
    • 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.140 to 1.0.141

    Bump serde from 1.0.140 to 1.0.141

    Bumps serde from 1.0.140 to 1.0.141.

    Release notes

    Sourced from serde's releases.

    v1.0.141

    • Add no-std category to crates.io metadata
    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] 1
  • Bump clap from 3.2.10 to 3.2.12

    Bump clap from 3.2.10 to 3.2.12

    Bumps clap from 3.2.10 to 3.2.12.

    Release notes

    Sourced from clap's releases.

    v3.2.12

    [3.2.12] - 2022-07-14

    Fixes

    • Allow an arg to declare a conflict with a group

    v3.2.11

    [3.2.11] - 2022-07-13

    Features

    • Added Arg::get_all_short_aliaes and Arg::get_all_aliases
    Changelog

    Sourced from clap's changelog.

    [3.2.12] - 2022-07-14

    Fixes

    • Allow an arg to declare a conflict with a group

    [3.2.11] - 2022-07-13

    Features

    • Added Arg::get_all_short_aliaes and Arg::get_all_aliases
    Commits
    • a8a7a61 chore: Release
    • ed8837f docs: Update changelog
    • afc5401 Merge pull request #3902 from tmccombs/get-conflicts-with-group
    • f27f1f5 fix: Include groups in get_arg_conflicts_with
    • 2df0732 chore: Release
    • 1c22422 docs: Update changelog
    • e8374e3 Merge pull request #3913 from emersonford/expose-non-visible-arg-aliases
    • e39156e feat: Add method to get non-visible arg aliases
    • 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 clap from 3.2.10 to 3.2.11

    Bump clap from 3.2.10 to 3.2.11

    Bumps clap from 3.2.10 to 3.2.11.

    Release notes

    Sourced from clap's releases.

    v3.2.11

    [3.2.11] - 2022-07-13

    Features

    • Added Arg::get_all_short_aliaes and Arg::get_all_aliases
    Changelog

    Sourced from clap's changelog.

    [3.2.11] - 2022-07-13

    Features

    • Added Arg::get_all_short_aliaes and Arg::get_all_aliases
    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] 1
  • Bump serde from 1.0.144 to 1.0.145

    Bump serde from 1.0.144 to 1.0.145

    Bumps serde from 1.0.144 to 1.0.145.

    Release notes

    Sourced from serde's releases.

    v1.0.145

    • Allow RefCell<T>, Mutex<T>, and RwLock<T> to be serialized regardless of whether T is Sized (#2282, thanks @​ChayimFriedman2)
    Commits
    • 8c036ee Release 1.0.145
    • d99009f Merge pull request #2282 from ChayimFriedman2/sized-mutex-refcell-rwlock
    • be3c37e Serialize unsized RefCell, Mutex and RwLock
    • f0346ae Merge pull request #2281 from dtolnay/try
    • fa6ce42 Redefine 'try' macro to omit From::from error conversion
    • a9320db Consistently avoid '?' throughout serde crate
    • d208762 Command-line ignore let_underscore_drop clippy lint
    • 5386897 Merge pull request #2273 from sashashura/patch-1
    • 68eb59d Update ci.yml
    • a7f4551 Add dev-dependencies keyword for serde_test
    • 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 arboard from 2.1.1 to 3.1.0

    Bump arboard from 2.1.1 to 3.1.0

    Bumps arboard from 2.1.1 to 3.1.0.

    Release notes

    Sourced from arboard's releases.

    v3.1.0

    Changed

    • Updated image to the version 0.24.
    • Lowered Wayland clipboard initialization log level.

    v3.0.0

    Added

    • Support for clearing the clipboard.
    • Spport for excluding Windows clipboard data from cliboard history and OneDrive.
    • Support waiting for another process to read clipboard data before returning from a write call to a X11 and Wayland or clipboard

    Changed

    • Updated wl-clipboard-rs to the version 0.6.
    • Updated x11rb to the version 0.10.
    • Cleaned up spelling in documentation
    • (Breaking) Functions that used to accept String now take Into<Cow<'a>, str> instead. This avoids cloning the string more times then necessary on platforms that can.
    • (Breaking) Error is now marked as #[non_exhaustive].
    • (Breaking) Removed all platform specific modules and clipboard structures from the public API. If you were using these directly, the recommended replacement is using arboard::Clipboard and the new platform-specific extension traits instead.
    Changelog

    Sourced from arboard's changelog.

    Changelog

    3.1 on 2022-20-09

    Changed

    • Updated image to the version 0.24.
    • Lowered Wayland clipboard initialization log level.

    3.0 on 2022-19-09

    Added

    • Support for clearing the clipboard.
    • Spport for excluding Windows clipboard data from cliboard history and OneDrive.
    • Support waiting for another process to read clipboard data before returning from a write call to a X11 and Wayland or clipboard

    Changed

    • Updated wl-clipboard-rs to the version 0.6.
    • Updated x11rb to the version 0.10.
    • Cleaned up spelling in documentation
    • (Breaking) Functions that used to accept String now take Into<Cow<'a>, str> instead. This avoids cloning the string more times then necessary on platforms that can.
    • (Breaking) Error is now marked as #[non_exhaustive].
    • (Breaking) Removed all platform specific modules and clipboard structures from the public API. If you were using these directly, the recommended replacement is using arboard::Clipboard and the new platform-specific extension traits instead.
    Commits
    • 9a75a62 Release 3.1.0
    • a33cea4 Update image crate to 0.24 (#75)
    • 8e08a0b Demote Linux + Wayland "Successfully initialized" log from info to trace
    • b60d44e Release 3.0.0
    • ee80bc3 Update x11rb to 0.10
    • 12664f2 Redo API for clipboard clearing
    • 2256b4e Fix unneeded return in Linux wayland implementation
    • 2042cef Add missing markdown fixes
    • fd30758 Merge pull request #73 from kianmeng/fix-typos-and-markdowns
    • 51102d1 Fix typos and markdowns
    • 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 env_logger from 0.9.0 to 0.9.1

    Bump env_logger from 0.9.0 to 0.9.1

    Bumps env_logger from 0.9.0 to 0.9.1.

    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 tiny-skia from 0.6.6 to 0.8.1

    Bump tiny-skia from 0.6.6 to 0.8.1

    Bumps tiny-skia from 0.6.6 to 0.8.1.

    Changelog

    Sourced from tiny-skia's changelog.

    [0.8.1] - 2022-08-29

    Fixed

    • Conditional compilation of FasterMinMax on fallback platforms. Thanks to @​CryZe

    [0.8.0] - 2022-08-27

    Added

    • AArch64 Neon SIMD support. Up to 3x faster on Apple M1. Thanks to @​CryZe

    Changed

    • FiniteF32, NormalizedF32 and NonZeroPositiveF32 types have been moved to the strict-num crate.
    • Rename NormalizedF32::from_u8 into NormalizedF32::new_u8.
    • Rename NormalizedF32::new_bounded into NormalizedF32::new_clamped.
    • Use explicit SIMD intrinsic instead of relying on safe_arch.
    • MSRV bumped to 1.51

    [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.
    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 103 Jun 5, 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 236 Sep 20, 2022
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 103 Sep 10, 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 172 Jul 23, 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 24.6k Sep 22, 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 358 Sep 9, 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 9k Sep 17, 2022
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 52 Sep 15, 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 243 Sep 13, 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.6k Sep 25, 2022
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 82 Sep 20, 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 658 Sep 26, 2022
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 60 Aug 27, 2022
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 1 Aug 12, 2021
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 245 Sep 12, 2022
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 89 Sep 20, 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 20 Jun 1, 2022