diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml index 6f48d78..a38fb21 100644 --- a/.github/workflows/checks.yml +++ b/.github/workflows/checks.yml @@ -68,9 +68,29 @@ jobs: run: | find $GITHUB_WORKSPACE -type f -and \( -name "*.sh" \) | xargs shellcheck + references: + name: Generate References + runs-on: ubuntu-22.04 + if: > + github.event_name == 'push' && contains(github.event.head_commit.message, '[generate-references]') + steps: + - uses: actions/checkout@v2 + - name: Download Dependencies + run: | + sudo apt update -qq + sudo apt install gettext -qq + - name: Build Burn-My-Windows + run: make + - name: Generate References + run: sudo make references + - uses: actions/upload-artifact@v3 + with: + name: references + path: tests/references/ + build: name: Run Tests - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 if: > github.event_name == 'pull_request' || ( contains(github.ref, 'main') && !contains(github.event.head_commit.message, '[no-ci]') ) || @@ -86,25 +106,20 @@ jobs: - '35' - '36' session: - #- 'gnome-xsession' Disabled for now as it miraculously fails on GitHub. Locally, all tests pass... + - 'gnome-xsession' - 'gnome-wayland-nested' steps: - uses: actions/checkout@v2 - name: Download Dependencies run: | sudo apt update -qq - sudo apt install gettext -qq + sudo apt install gettext imagemagick -qq - name: Build Burn-My-Windows run: make - name: Test Burn-My-Windows run: sudo $GITHUB_WORKSPACE/tests/run-test.sh -v ${{ matrix.version }} -s ${{ matrix.session }} - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 if: failure() with: - name: log_${{ matrix.version }}_${{ matrix.session }} - path: fail.log - - uses: actions/upload-artifact@v2 - if: failure() - with: - name: screen_${{ matrix.version }}_${{ matrix.session }} - path: fail.png \ No newline at end of file + name: result_${{ matrix.version }}_${{ matrix.session }} + path: tests/output/ \ No newline at end of file diff --git a/README.md b/README.md index cc3bc0d..7d3c84c 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ Effect | Preview -----|-------- **Apparition**
This effect hides your windows by violently sucking them into the void of magic! | **Broken Glass**
Shatter your windows into a shower sharp shards! This effect can be configured so that the shards fly away from your mouse pointer position!| +**Doom**
Melt your windows. Inspired by the legendary screen transitions of the original Doom. | **Energize A**
Beam your windows away! | **Energize B**
Using different transporter technology results in an alternative visual effect. | **Fire**
The classic effect inspired by Compiz. However, this is implemented using a GLSL shader and not with a particle system like in the old days. | @@ -51,6 +52,7 @@ Below is a table which summarizes the current availability for all effects. 3.363.384041425.25.0 Apparition ✅ ✅✅✅ Broken Glass ✅✅✅ +Doom ✅ ✅✅✅✅ Energize A ✅ ✅ ✅✅✅✅ Energize B ✅ ✅ ✅✅✅✅ Fire ✅ ✅ ✅✅✅✅ diff --git a/docs/changelog.md b/docs/changelog.md index 2daacdb..62d60de 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -6,11 +6,14 @@ #### New Features +* **New Effect: Doom.** Melt your windows. Inspired by the legendary screen transitions of the original Doom. * **New Effect: Pixelate.** Pixelate your windows and randomly hide pixels until the entire window is gone. #### Enhancements * Under KWin, the effects now use the same names as in the KDE store. +* The continuous integration tests now use a fuzzy search for the images targets. This way, the test work again on X11 and Wayland. +* A new GitHub Actions workflow has been added which is executed whenever a commit message includes the `[generate-references]` tag. This workflow re-creates all reference images for the continuous integration test. ## [Burn My Windows 19](https://github.com/schneegans/Burn-My-Windows/releases/tag/v19) diff --git a/docs/pics/doom.gif b/docs/pics/doom.gif new file mode 100644 index 0000000..a354e02 Binary files /dev/null and b/docs/pics/doom.gif differ diff --git a/extension.js b/extension.js index ae4452e..b13952d 100644 --- a/extension.js +++ b/extension.js @@ -52,6 +52,7 @@ class Extension { this._ALL_EFFECTS = [ new Me.imports.src.Apparition.Apparition(), new Me.imports.src.BrokenGlass.BrokenGlass(), + new Me.imports.src.Doom.Doom(), new Me.imports.src.EnergizeA.EnergizeA(), new Me.imports.src.EnergizeB.EnergizeB(), new Me.imports.src.Fire.Fire(), @@ -434,7 +435,7 @@ class Extension { // windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we tweak // the transitions so that nothing changes. The window stays opaque and is scaled to // actorScale. - const actorScale = effect.getActorScale(this._settings); + const actorScale = effect.getActorScale(this._settings, forOpening, actor); // To make things deterministic during testing, we set the effect duration to 5 // seconds. diff --git a/kwin/build.sh b/kwin/build.sh index fd6e2f3..e7678f7 100755 --- a/kwin/build.sh +++ b/kwin/build.sh @@ -130,6 +130,7 @@ generate() { generate "energize-a" "Energize A [Burn-My-Windows]" "Beam your windows away" generate "energize-b" "Energize B [Burn-My-Windows]" "Using different transporter technology results in an alternative visual effect" +generate "doom" "Doom [Burn-My-Windows]" "Melt your windows" generate "fire" "Fire [Burn-My-Windows]" "The classic effect inspired by Compiz" generate "hexagon" "Hexagon [Burn-My-Windows]" "With glowing lines and hexagon-shaped tiles, this effect looks very sci-fi" generate "incinerate" "Incinerate [Burn-My-Windows]" "A less snappy but definitely more fancy take on the fire effect" diff --git a/kwin/doom/config.ui b/kwin/doom/config.ui new file mode 100755 index 0000000..7c24788 --- /dev/null +++ b/kwin/doom/config.ui @@ -0,0 +1,113 @@ + + + BMWConfigForm + + + + 0 + 0 + 562 + 365 + + + + + + + 0 + + + 1.000000000000000 + + + 200.000000000000000 + + + + + + + Duration: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Horizontal Scale + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + Pixel Size + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + milliseconds + + + 100 + + + 9999 + + + 100 + + + + + + + 0 + + + 1.000000000000000 + + + 50.000000000000000 + + + + + + + 0 + + + 1.000000000000000 + + + 200.000000000000000 + + + + + + + Vertical Scale + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + + diff --git a/kwin/doom/main.xml b/kwin/doom/main.xml new file mode 100755 index 0000000..9860d47 --- /dev/null +++ b/kwin/doom/main.xml @@ -0,0 +1,19 @@ + + + + + + 500 + + + 10 + + + 50 + + + 10 + + + diff --git a/kwin/doom/onSettingsChanged.js b/kwin/doom/onSettingsChanged.js new file mode 100644 index 0000000..d9a9eef --- /dev/null +++ b/kwin/doom/onSettingsChanged.js @@ -0,0 +1,12 @@ +// This part is automatically included in the effect's source during the build process. +// The code below is called whenever the user changes something in the configuration of +// the effect. + +// I have not yet found a way to scaling the actor canvas on KWin. So this effect cannot +// look as good as on GNOME. +effect.setUniform(this.shader, 'uActorScale', 1.0); + +effect.setUniform(this.shader, 'uHorizontalScale', + effect.readConfig('HorizontalScale', 1.0)); +effect.setUniform(this.shader, 'uVerticalScale', effect.readConfig('VerticalScale', 1.0)); +effect.setUniform(this.shader, 'uPixelSize', effect.readConfig('PixelSize', 1.0)); diff --git a/kwin/pixelate/config.ui b/kwin/pixelate/config.ui index ef0b778..d494703 100755 --- a/kwin/pixelate/config.ui +++ b/kwin/pixelate/config.ui @@ -50,7 +50,7 @@ - Randomness + Noise Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -85,6 +85,6 @@ - - - + + + \ No newline at end of file diff --git a/prefs.js b/prefs.js index 64799c0..05b9d5d 100644 --- a/prefs.js +++ b/prefs.js @@ -48,6 +48,7 @@ var PreferencesDialog = class PreferencesDialog { this._ALL_EFFECTS = [ new Me.imports.src.Apparition.Apparition(), new Me.imports.src.BrokenGlass.BrokenGlass(), + new Me.imports.src.Doom.Doom(), new Me.imports.src.EnergizeA.EnergizeA(), new Me.imports.src.EnergizeB.EnergizeB(), new Me.imports.src.Fire.Fire(), diff --git a/resources/shaders/doom.frag b/resources/shaders/doom.frag new file mode 100644 index 0000000..cd25e0a --- /dev/null +++ b/resources/shaders/doom.frag @@ -0,0 +1,65 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The content from common.glsl is automatically prepended to each shader effect. + +uniform float uActorScale; +uniform float uHorizontalScale; +uniform float uVerticalScale; +uniform float uPixelSize; + +// This method returns a mask which smoothly transitions towards zero when approaching +// the window's top or bottom border. +float getEdgeMask(vec2 uv, float fadeWidth) { + float mask = 1.0; + mask *= smoothstep(0.0, 1.0, clamp(uv.y / fadeWidth, 0.0, 1.0)); + mask *= smoothstep(0.0, 1.0, clamp((1.0 - uv.y) / fadeWidth, 0.0, 1.0)); + return mask; +} + +void main() { + // We simply inverse the pixelation progress for opening windows. + float pixelateProgress = uForOpening ? 0.9 - uProgress : uProgress; + float pixelSize = max(1.0, ceil(uPixelSize * pixelateProgress + 1.0)); + vec2 pixelGrid = vec2(pixelSize) / uSize; + + // Snap texcoords to pixel grid. + vec2 texcoord = iTexCoord.st; + texcoord.y = texcoord.y * uActorScale + 0.5 - uActorScale * 0.5; + texcoord -= mod(iTexCoord.st, pixelGrid); + texcoord += pixelGrid * 0.5; + + // The pixel columns move vertically. The offset is generated with a random noise + // function. + float hScale = uHorizontalScale * uSize.x * 0.001; + float noise = simplex2DFractal(texcoord.xx * hScale) * 2.0 - 0.5; + + // Shift the pixel columns vertically over time. + float vScale = uVerticalScale * uSize.y * 0.00002 * uActorScale; + float shiftProgress = uForOpening ? mix(-vScale - 1.0, 0.0, uProgress) + : mix(-vScale, 1.0 + vScale, uProgress); + float shift = noise * vScale + shiftProgress; + + if (uForOpening) { + texcoord.y -= 0.5 * uActorScale * min(shift, 0.0); + } else { + texcoord.y -= 0.5 * uActorScale * max(shift, 0.0); + } + + vec4 oColor = getInputColor(texcoord); + + // Fade window texture at the top and bottom. + oColor.a *= getEdgeMask(iTexCoord.st, 0.1); + + setOutputColor(oColor); +} \ No newline at end of file diff --git a/resources/ui/gtk3/Doom.ui b/resources/ui/gtk3/Doom.ui new file mode 100644 index 0000000..acb69bd --- /dev/null +++ b/resources/ui/gtk3/Doom.ui @@ -0,0 +1,248 @@ + + + + + 10000 + 100 + 1 + 100 + + + + 50 + 1 + 1 + 10 + + + + 50 + 1 + 1 + 10 + + + + 50 + 1 + 1 + 10 + + + + vertical + + + + + + none + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Animation Time [ms] + 0 + start + center + 1 + + + + + end + center + 1 + 0 + left + 300 + doom-animation-time + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Horizontal Scale + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + doom-horizontal-scale + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Vertical Scale + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + doom-vertical-scale + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + 10 + 10 + 10 + 10 + 0 + + + 8 + + + Pixel Size + 0 + start + center + 1 + + + + + end + center + 1 + 0 + left + 300 + doom-pixel-size + + + + + + + edit-clear-symbolic + 1 + + + Reset to Default Value + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/ui/gtk3/Pixelate.ui b/resources/ui/gtk3/Pixelate.ui index e1691a1..1ef33b8 100644 --- a/resources/ui/gtk3/Pixelate.ui +++ b/resources/ui/gtk3/Pixelate.ui @@ -95,7 +95,7 @@ 8 - Scale + Noise 0 start center diff --git a/resources/ui/gtk4/Doom.ui b/resources/ui/gtk4/Doom.ui new file mode 100644 index 0000000..36ff248 --- /dev/null +++ b/resources/ui/gtk4/Doom.ui @@ -0,0 +1,209 @@ + + + + + vertical + + + + + + none + 1 + + + + + 0 + + + + + Animation Time [ms] + 0 + start + center + 1 + + + + + end + center + 1 + 0 + left + 300 + + + 10000 + 100 + 1 + 100 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + 0 + + + + + Horizontal Scale + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + + + 50 + 1 + 1 + 10 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + 0 + + + + + Vertical Scale + 0 + start + center + 1 + + + + + end + center + 1 + 2 + left + 300 + + + 50 + 1 + 1 + 10 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + 0 + + + + + Pixel Size + 0 + start + center + 1 + + + + + end + center + 1 + 0 + left + 300 + + + 50 + 1 + 1 + 10 + + + + + + + edit-clear-symbolic + Reset to Default Value + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/resources/ui/gtk4/Pixelate.ui b/resources/ui/gtk4/Pixelate.ui index 9098f61..4d34fd0 100644 --- a/resources/ui/gtk4/Pixelate.ui +++ b/resources/ui/gtk4/Pixelate.ui @@ -67,7 +67,7 @@ - Randomness + Noise 0 start center diff --git a/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml b/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml index 86cc161..b54d4e5 100644 --- a/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml +++ b/schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml @@ -118,6 +118,46 @@ The size of the maximum pixelation. + + + + + + false + Doom Close Effect + Use the Doom effect for window closing. + + + + false + Doom Open Effect + Use the Doom effect for window opening. + + + + 1000 + Doom Animation Time + The time the Doom effect takes. + + + + 10.0 + Doom Horizontal Scale + The X scale of the effect. + + + + 10.0 + Doom Vertical Scale + The Y scale of the effect. + + + + 10 + Doom Pixel Size + The size of the maximum pixelation. + + diff --git a/src/Doom.js b/src/Doom.js new file mode 100644 index 0000000..004a086 --- /dev/null +++ b/src/Doom.js @@ -0,0 +1,120 @@ +////////////////////////////////////////////////////////////////////////////////////////// +// ) ( // +// ( /( ( ( ) ( ( ( ( )\ ) ( ( // +// )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( // +// ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ // +// | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) // +// | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< // +// |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ // +// |__/ // +// Copyright (c) 2021 Simon Schneegans // +// Released under the GPLv3 or later. See LICENSE file for details. // +////////////////////////////////////////////////////////////////////////////////////////// + +'use strict'; + +const GObject = imports.gi.GObject; + +const _ = imports.gettext.domain('burn-my-windows').gettext; + +const ExtensionUtils = imports.misc.extensionUtils; +const Me = imports.misc.extensionUtils.getCurrentExtension(); +const utils = Me.imports.src.utils; +const ShaderFactory = Me.imports.src.ShaderFactory.ShaderFactory; + +////////////////////////////////////////////////////////////////////////////////////////// +// This effect melts your windows. Inspired by the legendary screen transitions of the // +// original Doom. // +////////////////////////////////////////////////////////////////////////////////////////// + +// The effect class can be used to get some metadata (like the effect's name or supported +// GNOME Shell versions), to initialize the respective page of the settings dialog, as +// well as to create the actual shader for the effect. +var Doom = class { + + // The constructor creates a ShaderFactory which will be used by extension.js to create + // shader instances for this effect. The shaders will be automagically created using the + // GLSL file in resources/shaders/.glsl. The callback will be called for each + // newly created shader instance. + constructor() { + this.shaderFactory = new ShaderFactory(this.getNick(), (shader) => { + // Store uniform locations of newly created shaders. + shader._uActorScale = shader.get_uniform_location('uActorScale'); + shader._uHorizontalScale = shader.get_uniform_location('uHorizontalScale'); + shader._uVerticalScale = shader.get_uniform_location('uVerticalScale'); + shader._uPixelSize = shader.get_uniform_location('uPixelSize'); + + // Write all uniform values at the start of each animation. + shader.connect('begin-animation', (shader, settings, forOpening, actor) => { + // For this effect, we scale the actor vertically so that it covers the entire + // screen. This ensures that the melted window will not be cut off. + let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height); + + // If we are currently performing integration test, nothing will be visible in the + // test images as the animation has passed the center of the window already. To + // fix this, we set the actor scale to a fixed low value when performing tests. + const testMode = settings.get_boolean('test-mode'); + + // clang-format off + shader.set_uniform_float(shader._uActorScale, 1, [testMode ? 1.0 : actorScale]); + shader.set_uniform_float(shader._uHorizontalScale, 1, [testMode ? 50.0 :settings.get_double('doom-horizontal-scale')]); + shader.set_uniform_float(shader._uVerticalScale, 1, [testMode ? 150.0 : settings.get_double('doom-vertical-scale')]); + shader.set_uniform_float(shader._uPixelSize, 1, [settings.get_int('doom-pixel-size')]); + // clang-format on + }); + }); + } + + // ---------------------------------------------------------------------------- metadata + + // The effect is not available on GNOME Shell 3.36 as it requires scaling of the window + // actor. + getMinShellVersion() { + return [3, 38]; + } + + // This will be called in various places where a unique identifier for this effect is + // required. It should match the prefix of the settings keys which store whether the + // effect is enabled currently (e.g. '*-close-effect'), and its animation time + // (e.g. '*-animation-time'). + getNick() { + return 'doom'; + } + + // This will be shown in the sidebar of the preferences dialog as well as in the + // drop-down menus where the user can choose the effect. + getLabel() { + return _('Doom'); + } + + // -------------------------------------------------------------------- API for prefs.js + + // This is called by the preferences dialog. It loads the settings page for this effect, + // and binds all properties to the settings. + getPreferences(dialog) { + + // Add the settings page to the builder. + dialog.getBuilder().add_from_resource(`/ui/${utils.getGTKString()}/Doom.ui`); + + // Bind all properties. + dialog.bindAdjustment('doom-animation-time'); + dialog.bindAdjustment('doom-horizontal-scale'); + dialog.bindAdjustment('doom-vertical-scale'); + dialog.bindAdjustment('doom-pixel-size'); + + // Finally, return the new settings page. + return dialog.getBuilder().get_object('doom-prefs'); + } + + // ---------------------------------------------------------------- API for extension.js + + // The getActorScale() is called from extension.js to adjust the actor's size during the + // animation. This is useful if the effect requires drawing something beyond the usual + // bounds of the actor. This only works for GNOME 3.38+. + // For this effect, we scale the actor vertically so that it covers the entire screen. + // This ensures that the melted window will not be cut off. + getActorScale(settings, forOpening, actor) { + let actorScale = 2.0 * Math.max(1.0, global.stage.height / actor.height); + return {x: 1.0, y: actorScale}; + } +} diff --git a/tests/find-target.sh b/tests/find-target.sh new file mode 100755 index 0000000..7ebafaf --- /dev/null +++ b/tests/find-target.sh @@ -0,0 +1,124 @@ +#!/bin/bash + +# -------------------------------------------------------------------------------------- # +# This script searches for a given image on the screen and prints the coordinates of the # +# upper left corner to STDOUT if it's found. If the image is not found, an exit code # +# of 1 is returned. # +# # +# -s scale_factor: In order to optimize the performance, both, the target image and the # +# screen capture is scaled down by 1 / scale_factor. Lower numbers can # +# help finding difficult targets but will also increase the calculation # +# time. Reasonable values are [1...10], default is 4. # +# -f fuzziness: A mean-squared-error threshold under which a location is considered # +# to be a match. Default is 0.01. Increase this to make finding a # +# target more likely but also increase the possibility of false # +# positives. # +# -------------------------------------------------------------------------------------- # + +usage() { + echo "Usage: $0 -s scale_factor -f fuzziness screen.png target.png" >&2 +} + +SCALE_FACTOR=4 +FUZZINESS=0.01 + +while getopts "s:f:h" opt; do + case $opt in + s) SCALE_FACTOR="${OPTARG}";; + f) FUZZINESS="${OPTARG}";; + h) usage; exit 0;; + *) usage; exit 1;; + esac +done + +shift $((OPTIND-1)) +SCREEN=$1 +TARGET=$2 + +# Make sure the screen image is given. +if [[ -z "${SCREEN}" ]]; then + usage + exit 1 +fi + +# Make sure the target image is given. +if [[ -z "${TARGET}" ]]; then + usage + exit 1 +fi + +# Create a temporary directory. +WORK_DIR=$(mktemp -d) +if [[ ! "${WORK_DIR}" || ! -d "${WORK_DIR}" ]]; then + echo "Failed to create tmp directory!" >&2 + exit 1 +fi + +# Deletes the temp directory on exit. +function cleanup { + rm -r "${WORK_DIR}" +} + +trap cleanup EXIT + +# Reduce the size of the screen capture and the target to optimize the search performance. +convert "${SCREEN}" -resize $((100 / SCALE_FACTOR))% "${WORK_DIR}/screen_small.png" +convert "${TARGET}" -resize $((100 / SCALE_FACTOR))% "${WORK_DIR}/target_small.png" + +# Make a search on the reduced images. +RESULT=$(compare -metric MSE -subimage-search \ + "${WORK_DIR}/screen_small.png" "${WORK_DIR}/target_small.png" "${WORK_DIR}/out.png" 2>&1) + +if [[ $RESULT == *"error"* ]]; then + echo "Failed to find the target: ${RESULT}" >&2 + exit 1 +fi + +# We use the position of match to crop the original screen capture tightly around the +# match. Some padding is added to make sure that the target is contained in the cropped +# screen capture. We then search one more in the full resolution to get the exact pixel +# location. + +# Here we extract the pixel location of the match in the scaled-down version. +CROP_X=$(echo "${RESULT}" | awk -F[\,\ ] '{print $4}') +CROP_Y=$(echo "${RESULT}" | awk -F[\,\ ] '{print $5}') + +# We add more padding if the images are more scaled down. +PADDING=$SCALE_FACTOR + +CROP_X=$((CROP_X * SCALE_FACTOR - PADDING)) +CROP_Y=$((CROP_Y * SCALE_FACTOR - PADDING)) + +# Clamp the result. +CROP_X=$((CROP_X < 0 ? 0 : CROP_X)) +CROP_Y=$((CROP_Y < 0 ? 0 : CROP_Y)) + +# The crop size depends on the target image size. +TARGET_WIDTH=$(identify -format "%[fx:w]" "${TARGET}") +TARGET_HEIGHT=$(identify -format "%[fx:h]" "${TARGET}") +CROP_WIDTH=$((TARGET_WIDTH + 2*PADDING)) +CROP_HEIGHT=$((TARGET_HEIGHT + 2*PADDING)) + +# Perform the crop. +convert "${SCREEN}" -crop ${CROP_WIDTH}x${CROP_HEIGHT}+${CROP_X}+${CROP_Y} \ + +repage "${WORK_DIR}/screen_cropped.png" + +# Search again on the full resolution. +RESULT=$(compare -metric MSE -dissimilarity-threshold "${FUZZINESS}" -subimage-search \ + "${WORK_DIR}/screen_cropped.png" "${TARGET}" "${WORK_DIR}/out.png" 2>&1) + +if [[ $RESULT == *"error"* ]]; then + echo "Failed to find the target: ${RESULT}" >&2 + exit 1 +fi + +# Extract the pixel location from the result. This is now relative to the crop position. +POS_X=$(echo "${RESULT}" | awk -F[\,\ ] '{print $4}') +POS_Y=$(echo "${RESULT}" | awk -F[\,\ ] '{print $5}') + +# Therefore we have to add the crop position to the result. +POS_X=$((POS_X + CROP_X)) +POS_Y=$((POS_Y + CROP_Y)) + +# Finally print our result. +echo "$POS_X $POS_Y" diff --git a/tests/generate-references.sh b/tests/generate-references.sh index a17f463..9810c6c 100755 --- a/tests/generate-references.sh +++ b/tests/generate-references.sh @@ -57,7 +57,7 @@ EXTENSION="burn-my-windows@schneegans.github.com" # All references images of the effects are captured at & cropped to this region # in the center of the screen. This is kind of arbitrary, but has been choosen so that # something is visible from each effect. -CROP="100x100+910+480" +CROP="100x100+900+500" # Run the container. For more info, visit https://github.com/Schneegans/gnome-shell-pod. POD=$(podman run --rm --cap-add=SYS_NICE --cap-add=IPC_LOCK -td "${IMAGE}") @@ -110,7 +110,8 @@ capture_effect() { set_setting "open-preview-effect" "${1}" set_setting "close-preview-effect" "${1}" - do_in_pod gnome-extensions prefs "${EXTENSION}" + sleep 1 + do_in_pod gnome-terminal sleep 3 capture "tests/references/${1}-open-${SESSION}-${FEDORA_VERSION}.png" send_keystroke "Alt+F4" @@ -132,6 +133,11 @@ podman cp "${EXTENSION}.zip" "${POD}:/home/gnomeshell" do_in_pod gnome-extensions install "${EXTENSION}.zip" +# ----------------------- install gnome-terminal (this is used for testing the animations) + +do_in_pod sudo dnf install -y gnome-terminal + + # ---------------------------------------------------------------------- start GNOME Shell # Starting with GNOME 40, there is a "Welcome Tour" dialog popping up at first launch. @@ -141,6 +147,9 @@ if [[ "${FEDORA_VERSION}" -gt 33 ]]; then do_in_pod gsettings set org.gnome.shell welcome-dialog-last-shown-version "999" || true fi +# Make sure that new windows are opened in the center. +do_in_pod gsettings set org.gnome.mutter center-new-windows true + echo "Starting $(do_in_pod gnome-shell --version)." do_in_pod systemctl --user start "${SESSION}@:99" sleep 10 @@ -161,10 +170,16 @@ sleep 3 # --------------------------------------------------------------------- capture the images +# First we open the preferences and capture a portion of the dialog +echo "Opening Preferences." +do_in_pod gnome-extensions prefs "${EXTENSION}" +sleep 3 +capture "tests/references/preferences-${SESSION}-${FEDORA_VERSION}.png" +send_keystroke "Alt+F4" + # The test mode ensures that the animations are "frozen" and do not change in time. echo "Entering test mode." set_setting "test-mode" true -do_in_pod gsettings set org.gnome.mutter center-new-windows true capture_effect "energize-a" capture_effect "energize-b" @@ -177,6 +192,7 @@ capture_effect "wisps" if [[ "${FEDORA_VERSION}" -gt 32 ]]; then capture_effect "apparition" + capture_effect "doom" fi if [[ "${FEDORA_VERSION}" -gt 33 ]]; then diff --git a/tests/references/apparition-close-gnome-wayland-nested-33.png b/tests/references/apparition-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index e3cc4e4..482d88e Binary files a/tests/references/apparition-close-gnome-wayland-nested-33.png and b/tests/references/apparition-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/apparition-close-gnome-wayland-nested-34.png b/tests/references/apparition-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index eaa22bc..1d406ca Binary files a/tests/references/apparition-close-gnome-wayland-nested-34.png and b/tests/references/apparition-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/apparition-close-gnome-wayland-nested-35.png b/tests/references/apparition-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index eaa22bc..e338448 Binary files a/tests/references/apparition-close-gnome-wayland-nested-35.png and b/tests/references/apparition-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/apparition-close-gnome-wayland-nested-36.png b/tests/references/apparition-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index b65e2fb..e338448 Binary files a/tests/references/apparition-close-gnome-wayland-nested-36.png and b/tests/references/apparition-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/apparition-close-gnome-xsession-33.png b/tests/references/apparition-close-gnome-xsession-33.png old mode 100644 new mode 100755 index e3cc4e4..91c319e Binary files a/tests/references/apparition-close-gnome-xsession-33.png and b/tests/references/apparition-close-gnome-xsession-33.png differ diff --git a/tests/references/apparition-close-gnome-xsession-34.png b/tests/references/apparition-close-gnome-xsession-34.png old mode 100644 new mode 100755 index ac9fd4e..d7bf222 Binary files a/tests/references/apparition-close-gnome-xsession-34.png and b/tests/references/apparition-close-gnome-xsession-34.png differ diff --git a/tests/references/apparition-close-gnome-xsession-35.png b/tests/references/apparition-close-gnome-xsession-35.png old mode 100644 new mode 100755 index ac9fd4e..63d0bd4 Binary files a/tests/references/apparition-close-gnome-xsession-35.png and b/tests/references/apparition-close-gnome-xsession-35.png differ diff --git a/tests/references/apparition-close-gnome-xsession-36.png b/tests/references/apparition-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 77a8ce2..63d0bd4 Binary files a/tests/references/apparition-close-gnome-xsession-36.png and b/tests/references/apparition-close-gnome-xsession-36.png differ diff --git a/tests/references/apparition-open-gnome-wayland-nested-33.png b/tests/references/apparition-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index e3cc4e4..482d88e Binary files a/tests/references/apparition-open-gnome-wayland-nested-33.png and b/tests/references/apparition-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/apparition-open-gnome-wayland-nested-34.png b/tests/references/apparition-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index eaa22bc..1d406ca Binary files a/tests/references/apparition-open-gnome-wayland-nested-34.png and b/tests/references/apparition-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/apparition-open-gnome-wayland-nested-35.png b/tests/references/apparition-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index eaa22bc..e338448 Binary files a/tests/references/apparition-open-gnome-wayland-nested-35.png and b/tests/references/apparition-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/apparition-open-gnome-wayland-nested-36.png b/tests/references/apparition-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index b65e2fb..e338448 Binary files a/tests/references/apparition-open-gnome-wayland-nested-36.png and b/tests/references/apparition-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/apparition-open-gnome-xsession-33.png b/tests/references/apparition-open-gnome-xsession-33.png old mode 100644 new mode 100755 index e3cc4e4..91c319e Binary files a/tests/references/apparition-open-gnome-xsession-33.png and b/tests/references/apparition-open-gnome-xsession-33.png differ diff --git a/tests/references/apparition-open-gnome-xsession-34.png b/tests/references/apparition-open-gnome-xsession-34.png old mode 100644 new mode 100755 index ac9fd4e..d7bf222 Binary files a/tests/references/apparition-open-gnome-xsession-34.png and b/tests/references/apparition-open-gnome-xsession-34.png differ diff --git a/tests/references/apparition-open-gnome-xsession-35.png b/tests/references/apparition-open-gnome-xsession-35.png old mode 100644 new mode 100755 index ac9fd4e..63d0bd4 Binary files a/tests/references/apparition-open-gnome-xsession-35.png and b/tests/references/apparition-open-gnome-xsession-35.png differ diff --git a/tests/references/apparition-open-gnome-xsession-36.png b/tests/references/apparition-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 77a8ce2..63d0bd4 Binary files a/tests/references/apparition-open-gnome-xsession-36.png and b/tests/references/apparition-open-gnome-xsession-36.png differ diff --git a/tests/references/broken-glass-close-gnome-wayland-nested-34.png b/tests/references/broken-glass-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 7f60f45..75f3e47 Binary files a/tests/references/broken-glass-close-gnome-wayland-nested-34.png and b/tests/references/broken-glass-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/broken-glass-close-gnome-wayland-nested-35.png b/tests/references/broken-glass-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 720c87b..2639ba3 Binary files a/tests/references/broken-glass-close-gnome-wayland-nested-35.png and b/tests/references/broken-glass-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/broken-glass-close-gnome-wayland-nested-36.png b/tests/references/broken-glass-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 543aed5..2639ba3 Binary files a/tests/references/broken-glass-close-gnome-wayland-nested-36.png and b/tests/references/broken-glass-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/broken-glass-close-gnome-xsession-34.png b/tests/references/broken-glass-close-gnome-xsession-34.png old mode 100644 new mode 100755 index fde4768..159064e Binary files a/tests/references/broken-glass-close-gnome-xsession-34.png and b/tests/references/broken-glass-close-gnome-xsession-34.png differ diff --git a/tests/references/broken-glass-close-gnome-xsession-35.png b/tests/references/broken-glass-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 19928dd..c635fbb Binary files a/tests/references/broken-glass-close-gnome-xsession-35.png and b/tests/references/broken-glass-close-gnome-xsession-35.png differ diff --git a/tests/references/broken-glass-close-gnome-xsession-36.png b/tests/references/broken-glass-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 180b488..c635fbb Binary files a/tests/references/broken-glass-close-gnome-xsession-36.png and b/tests/references/broken-glass-close-gnome-xsession-36.png differ diff --git a/tests/references/broken-glass-open-gnome-wayland-nested-34.png b/tests/references/broken-glass-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 585da59..471cb84 Binary files a/tests/references/broken-glass-open-gnome-wayland-nested-34.png and b/tests/references/broken-glass-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/broken-glass-open-gnome-wayland-nested-35.png b/tests/references/broken-glass-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 2a92457..d889869 Binary files a/tests/references/broken-glass-open-gnome-wayland-nested-35.png and b/tests/references/broken-glass-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/broken-glass-open-gnome-wayland-nested-36.png b/tests/references/broken-glass-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 3622103..d889869 Binary files a/tests/references/broken-glass-open-gnome-wayland-nested-36.png and b/tests/references/broken-glass-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/broken-glass-open-gnome-xsession-34.png b/tests/references/broken-glass-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 4337947..adbf0da Binary files a/tests/references/broken-glass-open-gnome-xsession-34.png and b/tests/references/broken-glass-open-gnome-xsession-34.png differ diff --git a/tests/references/broken-glass-open-gnome-xsession-35.png b/tests/references/broken-glass-open-gnome-xsession-35.png old mode 100644 new mode 100755 index eb6e783..6665439 Binary files a/tests/references/broken-glass-open-gnome-xsession-35.png and b/tests/references/broken-glass-open-gnome-xsession-35.png differ diff --git a/tests/references/broken-glass-open-gnome-xsession-36.png b/tests/references/broken-glass-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 76bb6b0..6665439 Binary files a/tests/references/broken-glass-open-gnome-xsession-36.png and b/tests/references/broken-glass-open-gnome-xsession-36.png differ diff --git a/tests/references/doom-close-gnome-wayland-nested-33.png b/tests/references/doom-close-gnome-wayland-nested-33.png new file mode 100755 index 0000000..2dd77ca Binary files /dev/null and b/tests/references/doom-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/doom-close-gnome-wayland-nested-34.png b/tests/references/doom-close-gnome-wayland-nested-34.png new file mode 100755 index 0000000..8879b22 Binary files /dev/null and b/tests/references/doom-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/doom-close-gnome-wayland-nested-35.png b/tests/references/doom-close-gnome-wayland-nested-35.png new file mode 100755 index 0000000..ac7b54b Binary files /dev/null and b/tests/references/doom-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/doom-close-gnome-wayland-nested-36.png b/tests/references/doom-close-gnome-wayland-nested-36.png new file mode 100755 index 0000000..84ea46d Binary files /dev/null and b/tests/references/doom-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/doom-close-gnome-xsession-33.png b/tests/references/doom-close-gnome-xsession-33.png new file mode 100755 index 0000000..b701718 Binary files /dev/null and b/tests/references/doom-close-gnome-xsession-33.png differ diff --git a/tests/references/doom-close-gnome-xsession-34.png b/tests/references/doom-close-gnome-xsession-34.png new file mode 100755 index 0000000..2966413 Binary files /dev/null and b/tests/references/doom-close-gnome-xsession-34.png differ diff --git a/tests/references/doom-close-gnome-xsession-35.png b/tests/references/doom-close-gnome-xsession-35.png new file mode 100755 index 0000000..8e2f7d0 Binary files /dev/null and b/tests/references/doom-close-gnome-xsession-35.png differ diff --git a/tests/references/doom-close-gnome-xsession-36.png b/tests/references/doom-close-gnome-xsession-36.png new file mode 100755 index 0000000..aa6aa94 Binary files /dev/null and b/tests/references/doom-close-gnome-xsession-36.png differ diff --git a/tests/references/doom-open-gnome-wayland-nested-33.png b/tests/references/doom-open-gnome-wayland-nested-33.png new file mode 100755 index 0000000..99f23b2 Binary files /dev/null and b/tests/references/doom-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/doom-open-gnome-wayland-nested-34.png b/tests/references/doom-open-gnome-wayland-nested-34.png new file mode 100755 index 0000000..cce83f4 Binary files /dev/null and b/tests/references/doom-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/doom-open-gnome-wayland-nested-35.png b/tests/references/doom-open-gnome-wayland-nested-35.png new file mode 100755 index 0000000..7d5fd80 Binary files /dev/null and b/tests/references/doom-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/doom-open-gnome-wayland-nested-36.png b/tests/references/doom-open-gnome-wayland-nested-36.png new file mode 100755 index 0000000..7d5fd80 Binary files /dev/null and b/tests/references/doom-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/doom-open-gnome-xsession-33.png b/tests/references/doom-open-gnome-xsession-33.png new file mode 100755 index 0000000..3eb5ded Binary files /dev/null and b/tests/references/doom-open-gnome-xsession-33.png differ diff --git a/tests/references/doom-open-gnome-xsession-34.png b/tests/references/doom-open-gnome-xsession-34.png new file mode 100755 index 0000000..a70227f Binary files /dev/null and b/tests/references/doom-open-gnome-xsession-34.png differ diff --git a/tests/references/doom-open-gnome-xsession-35.png b/tests/references/doom-open-gnome-xsession-35.png new file mode 100755 index 0000000..63a82cf Binary files /dev/null and b/tests/references/doom-open-gnome-xsession-35.png differ diff --git a/tests/references/doom-open-gnome-xsession-36.png b/tests/references/doom-open-gnome-xsession-36.png new file mode 100755 index 0000000..63a82cf Binary files /dev/null and b/tests/references/doom-open-gnome-xsession-36.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-32.png b/tests/references/energize-a-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 490c5ab..bade347 Binary files a/tests/references/energize-a-close-gnome-wayland-nested-32.png and b/tests/references/energize-a-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-33.png b/tests/references/energize-a-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 5b07c26..e505dd1 Binary files a/tests/references/energize-a-close-gnome-wayland-nested-33.png and b/tests/references/energize-a-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-34.png b/tests/references/energize-a-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index e40b7a7..0700ce9 Binary files a/tests/references/energize-a-close-gnome-wayland-nested-34.png and b/tests/references/energize-a-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-35.png b/tests/references/energize-a-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index e40b7a7..c583ff5 Binary files a/tests/references/energize-a-close-gnome-wayland-nested-35.png and b/tests/references/energize-a-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-a-close-gnome-wayland-nested-36.png b/tests/references/energize-a-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 32dc974..c583ff5 Binary files a/tests/references/energize-a-close-gnome-wayland-nested-36.png and b/tests/references/energize-a-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-32.png b/tests/references/energize-a-close-gnome-xsession-32.png old mode 100644 new mode 100755 index 490c5ab..e37596f Binary files a/tests/references/energize-a-close-gnome-xsession-32.png and b/tests/references/energize-a-close-gnome-xsession-32.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-33.png b/tests/references/energize-a-close-gnome-xsession-33.png old mode 100644 new mode 100755 index 5b07c26..3a16e34 Binary files a/tests/references/energize-a-close-gnome-xsession-33.png and b/tests/references/energize-a-close-gnome-xsession-33.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-34.png b/tests/references/energize-a-close-gnome-xsession-34.png old mode 100644 new mode 100755 index 9df91a4..3496f88 Binary files a/tests/references/energize-a-close-gnome-xsession-34.png and b/tests/references/energize-a-close-gnome-xsession-34.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-35.png b/tests/references/energize-a-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 9df91a4..0f2d371 Binary files a/tests/references/energize-a-close-gnome-xsession-35.png and b/tests/references/energize-a-close-gnome-xsession-35.png differ diff --git a/tests/references/energize-a-close-gnome-xsession-36.png b/tests/references/energize-a-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 6b17f98..0f2d371 Binary files a/tests/references/energize-a-close-gnome-xsession-36.png and b/tests/references/energize-a-close-gnome-xsession-36.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-32.png b/tests/references/energize-a-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index f9c8df6..3966031 Binary files a/tests/references/energize-a-open-gnome-wayland-nested-32.png and b/tests/references/energize-a-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-33.png b/tests/references/energize-a-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index cd6589e..b5f9df2 Binary files a/tests/references/energize-a-open-gnome-wayland-nested-33.png and b/tests/references/energize-a-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-34.png b/tests/references/energize-a-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index bf2c5b8..24b85b9 Binary files a/tests/references/energize-a-open-gnome-wayland-nested-34.png and b/tests/references/energize-a-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-35.png b/tests/references/energize-a-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index bf2c5b8..4024c33 Binary files a/tests/references/energize-a-open-gnome-wayland-nested-35.png and b/tests/references/energize-a-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-a-open-gnome-wayland-nested-36.png b/tests/references/energize-a-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 59ff769..4024c33 Binary files a/tests/references/energize-a-open-gnome-wayland-nested-36.png and b/tests/references/energize-a-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-32.png b/tests/references/energize-a-open-gnome-xsession-32.png old mode 100644 new mode 100755 index f9c8df6..b62ccba Binary files a/tests/references/energize-a-open-gnome-xsession-32.png and b/tests/references/energize-a-open-gnome-xsession-32.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-33.png b/tests/references/energize-a-open-gnome-xsession-33.png old mode 100644 new mode 100755 index cd6589e..fd25d0d Binary files a/tests/references/energize-a-open-gnome-xsession-33.png and b/tests/references/energize-a-open-gnome-xsession-33.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-34.png b/tests/references/energize-a-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 7ac05d8..7020eff Binary files a/tests/references/energize-a-open-gnome-xsession-34.png and b/tests/references/energize-a-open-gnome-xsession-34.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-35.png b/tests/references/energize-a-open-gnome-xsession-35.png old mode 100644 new mode 100755 index 7ac05d8..338becf Binary files a/tests/references/energize-a-open-gnome-xsession-35.png and b/tests/references/energize-a-open-gnome-xsession-35.png differ diff --git a/tests/references/energize-a-open-gnome-xsession-36.png b/tests/references/energize-a-open-gnome-xsession-36.png old mode 100644 new mode 100755 index c26f7a0..338becf Binary files a/tests/references/energize-a-open-gnome-xsession-36.png and b/tests/references/energize-a-open-gnome-xsession-36.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-32.png b/tests/references/energize-b-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 6d68c1f..8fa371a Binary files a/tests/references/energize-b-close-gnome-wayland-nested-32.png and b/tests/references/energize-b-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-33.png b/tests/references/energize-b-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 4cc14b0..5e6974b Binary files a/tests/references/energize-b-close-gnome-wayland-nested-33.png and b/tests/references/energize-b-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-34.png b/tests/references/energize-b-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 0da3426..8a27f10 Binary files a/tests/references/energize-b-close-gnome-wayland-nested-34.png and b/tests/references/energize-b-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-35.png b/tests/references/energize-b-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 0da3426..119f62b Binary files a/tests/references/energize-b-close-gnome-wayland-nested-35.png and b/tests/references/energize-b-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-b-close-gnome-wayland-nested-36.png b/tests/references/energize-b-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 6919274..119f62b Binary files a/tests/references/energize-b-close-gnome-wayland-nested-36.png and b/tests/references/energize-b-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-32.png b/tests/references/energize-b-close-gnome-xsession-32.png old mode 100644 new mode 100755 index 6d68c1f..095214e Binary files a/tests/references/energize-b-close-gnome-xsession-32.png and b/tests/references/energize-b-close-gnome-xsession-32.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-33.png b/tests/references/energize-b-close-gnome-xsession-33.png old mode 100644 new mode 100755 index 4cc14b0..642931e Binary files a/tests/references/energize-b-close-gnome-xsession-33.png and b/tests/references/energize-b-close-gnome-xsession-33.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-34.png b/tests/references/energize-b-close-gnome-xsession-34.png old mode 100644 new mode 100755 index 72d2fa8..506daac Binary files a/tests/references/energize-b-close-gnome-xsession-34.png and b/tests/references/energize-b-close-gnome-xsession-34.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-35.png b/tests/references/energize-b-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 72d2fa8..5d0f079 Binary files a/tests/references/energize-b-close-gnome-xsession-35.png and b/tests/references/energize-b-close-gnome-xsession-35.png differ diff --git a/tests/references/energize-b-close-gnome-xsession-36.png b/tests/references/energize-b-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 5c8ea85..5d0f079 Binary files a/tests/references/energize-b-close-gnome-xsession-36.png and b/tests/references/energize-b-close-gnome-xsession-36.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-32.png b/tests/references/energize-b-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index fb10327..0043ea6 Binary files a/tests/references/energize-b-open-gnome-wayland-nested-32.png and b/tests/references/energize-b-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-33.png b/tests/references/energize-b-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 23802d0..28a91e5 Binary files a/tests/references/energize-b-open-gnome-wayland-nested-33.png and b/tests/references/energize-b-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-34.png b/tests/references/energize-b-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 461c343..f9fa7c4 Binary files a/tests/references/energize-b-open-gnome-wayland-nested-34.png and b/tests/references/energize-b-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-35.png b/tests/references/energize-b-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 461c343..65a9f54 Binary files a/tests/references/energize-b-open-gnome-wayland-nested-35.png and b/tests/references/energize-b-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/energize-b-open-gnome-wayland-nested-36.png b/tests/references/energize-b-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index dc10d3b..65a9f54 Binary files a/tests/references/energize-b-open-gnome-wayland-nested-36.png and b/tests/references/energize-b-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-32.png b/tests/references/energize-b-open-gnome-xsession-32.png old mode 100644 new mode 100755 index fb10327..a581c15 Binary files a/tests/references/energize-b-open-gnome-xsession-32.png and b/tests/references/energize-b-open-gnome-xsession-32.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-33.png b/tests/references/energize-b-open-gnome-xsession-33.png old mode 100644 new mode 100755 index 23802d0..604f62e Binary files a/tests/references/energize-b-open-gnome-xsession-33.png and b/tests/references/energize-b-open-gnome-xsession-33.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-34.png b/tests/references/energize-b-open-gnome-xsession-34.png old mode 100644 new mode 100755 index fe2d269..a1d5516 Binary files a/tests/references/energize-b-open-gnome-xsession-34.png and b/tests/references/energize-b-open-gnome-xsession-34.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-35.png b/tests/references/energize-b-open-gnome-xsession-35.png old mode 100644 new mode 100755 index fe2d269..41e29ae Binary files a/tests/references/energize-b-open-gnome-xsession-35.png and b/tests/references/energize-b-open-gnome-xsession-35.png differ diff --git a/tests/references/energize-b-open-gnome-xsession-36.png b/tests/references/energize-b-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 991beb2..41e29ae Binary files a/tests/references/energize-b-open-gnome-xsession-36.png and b/tests/references/energize-b-open-gnome-xsession-36.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-32.png b/tests/references/fire-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 8bbece7..6333c92 Binary files a/tests/references/fire-close-gnome-wayland-nested-32.png and b/tests/references/fire-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-33.png b/tests/references/fire-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 7c816de..d18fd97 Binary files a/tests/references/fire-close-gnome-wayland-nested-33.png and b/tests/references/fire-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-34.png b/tests/references/fire-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 67ac459..eac730c Binary files a/tests/references/fire-close-gnome-wayland-nested-34.png and b/tests/references/fire-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-35.png b/tests/references/fire-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 67ac459..59eaa40 Binary files a/tests/references/fire-close-gnome-wayland-nested-35.png and b/tests/references/fire-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/fire-close-gnome-wayland-nested-36.png b/tests/references/fire-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index b14d60e..59eaa40 Binary files a/tests/references/fire-close-gnome-wayland-nested-36.png and b/tests/references/fire-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/fire-close-gnome-xsession-32.png b/tests/references/fire-close-gnome-xsession-32.png old mode 100644 new mode 100755 index 8bbece7..f502cc7 Binary files a/tests/references/fire-close-gnome-xsession-32.png and b/tests/references/fire-close-gnome-xsession-32.png differ diff --git a/tests/references/fire-close-gnome-xsession-33.png b/tests/references/fire-close-gnome-xsession-33.png old mode 100644 new mode 100755 index 7c816de..34d5179 Binary files a/tests/references/fire-close-gnome-xsession-33.png and b/tests/references/fire-close-gnome-xsession-33.png differ diff --git a/tests/references/fire-close-gnome-xsession-34.png b/tests/references/fire-close-gnome-xsession-34.png old mode 100644 new mode 100755 index 21279da..c6745eb Binary files a/tests/references/fire-close-gnome-xsession-34.png and b/tests/references/fire-close-gnome-xsession-34.png differ diff --git a/tests/references/fire-close-gnome-xsession-35.png b/tests/references/fire-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 21279da..992c9b6 Binary files a/tests/references/fire-close-gnome-xsession-35.png and b/tests/references/fire-close-gnome-xsession-35.png differ diff --git a/tests/references/fire-close-gnome-xsession-36.png b/tests/references/fire-close-gnome-xsession-36.png old mode 100644 new mode 100755 index d0e153f..992c9b6 Binary files a/tests/references/fire-close-gnome-xsession-36.png and b/tests/references/fire-close-gnome-xsession-36.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-32.png b/tests/references/fire-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 52b3104..839fafd Binary files a/tests/references/fire-open-gnome-wayland-nested-32.png and b/tests/references/fire-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-33.png b/tests/references/fire-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 630dd03..6a6506f Binary files a/tests/references/fire-open-gnome-wayland-nested-33.png and b/tests/references/fire-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-34.png b/tests/references/fire-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 95ef36a..c686ba1 Binary files a/tests/references/fire-open-gnome-wayland-nested-34.png and b/tests/references/fire-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-35.png b/tests/references/fire-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 95ef36a..7e2048b Binary files a/tests/references/fire-open-gnome-wayland-nested-35.png and b/tests/references/fire-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/fire-open-gnome-wayland-nested-36.png b/tests/references/fire-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 432c8c0..7e2048b Binary files a/tests/references/fire-open-gnome-wayland-nested-36.png and b/tests/references/fire-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/fire-open-gnome-xsession-32.png b/tests/references/fire-open-gnome-xsession-32.png old mode 100644 new mode 100755 index 52b3104..abe01eb Binary files a/tests/references/fire-open-gnome-xsession-32.png and b/tests/references/fire-open-gnome-xsession-32.png differ diff --git a/tests/references/fire-open-gnome-xsession-33.png b/tests/references/fire-open-gnome-xsession-33.png old mode 100644 new mode 100755 index 630dd03..0603ac3 Binary files a/tests/references/fire-open-gnome-xsession-33.png and b/tests/references/fire-open-gnome-xsession-33.png differ diff --git a/tests/references/fire-open-gnome-xsession-34.png b/tests/references/fire-open-gnome-xsession-34.png old mode 100644 new mode 100755 index c29e82a..fb51e2b Binary files a/tests/references/fire-open-gnome-xsession-34.png and b/tests/references/fire-open-gnome-xsession-34.png differ diff --git a/tests/references/fire-open-gnome-xsession-35.png b/tests/references/fire-open-gnome-xsession-35.png old mode 100644 new mode 100755 index c29e82a..24999d2 Binary files a/tests/references/fire-open-gnome-xsession-35.png and b/tests/references/fire-open-gnome-xsession-35.png differ diff --git a/tests/references/fire-open-gnome-xsession-36.png b/tests/references/fire-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 13f1679..24999d2 Binary files a/tests/references/fire-open-gnome-xsession-36.png and b/tests/references/fire-open-gnome-xsession-36.png differ diff --git a/tests/references/hexagon-close-gnome-wayland-nested-32.png b/tests/references/hexagon-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index fae638b..ffd6fb2 Binary files a/tests/references/hexagon-close-gnome-wayland-nested-32.png and b/tests/references/hexagon-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/hexagon-close-gnome-wayland-nested-33.png b/tests/references/hexagon-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index ee72221..3a65623 Binary files a/tests/references/hexagon-close-gnome-wayland-nested-33.png and b/tests/references/hexagon-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/hexagon-close-gnome-wayland-nested-34.png b/tests/references/hexagon-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 7f6661d..8d82404 Binary files a/tests/references/hexagon-close-gnome-wayland-nested-34.png and b/tests/references/hexagon-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/hexagon-close-gnome-wayland-nested-35.png b/tests/references/hexagon-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 7f6661d..1cbb519 Binary files a/tests/references/hexagon-close-gnome-wayland-nested-35.png and b/tests/references/hexagon-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/hexagon-close-gnome-wayland-nested-36.png b/tests/references/hexagon-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index e4cf475..1cbb519 Binary files a/tests/references/hexagon-close-gnome-wayland-nested-36.png and b/tests/references/hexagon-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/hexagon-close-gnome-xsession-32.png b/tests/references/hexagon-close-gnome-xsession-32.png old mode 100644 new mode 100755 index fae638b..ed84528 Binary files a/tests/references/hexagon-close-gnome-xsession-32.png and b/tests/references/hexagon-close-gnome-xsession-32.png differ diff --git a/tests/references/hexagon-close-gnome-xsession-33.png b/tests/references/hexagon-close-gnome-xsession-33.png old mode 100644 new mode 100755 index ee72221..0ac8061 Binary files a/tests/references/hexagon-close-gnome-xsession-33.png and b/tests/references/hexagon-close-gnome-xsession-33.png differ diff --git a/tests/references/hexagon-close-gnome-xsession-34.png b/tests/references/hexagon-close-gnome-xsession-34.png old mode 100644 new mode 100755 index e685569..02b1d7b Binary files a/tests/references/hexagon-close-gnome-xsession-34.png and b/tests/references/hexagon-close-gnome-xsession-34.png differ diff --git a/tests/references/hexagon-close-gnome-xsession-35.png b/tests/references/hexagon-close-gnome-xsession-35.png old mode 100644 new mode 100755 index e685569..0077804 Binary files a/tests/references/hexagon-close-gnome-xsession-35.png and b/tests/references/hexagon-close-gnome-xsession-35.png differ diff --git a/tests/references/hexagon-close-gnome-xsession-36.png b/tests/references/hexagon-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 5be0cc3..0077804 Binary files a/tests/references/hexagon-close-gnome-xsession-36.png and b/tests/references/hexagon-close-gnome-xsession-36.png differ diff --git a/tests/references/hexagon-open-gnome-wayland-nested-32.png b/tests/references/hexagon-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index fae638b..ffd6fb2 Binary files a/tests/references/hexagon-open-gnome-wayland-nested-32.png and b/tests/references/hexagon-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/hexagon-open-gnome-wayland-nested-33.png b/tests/references/hexagon-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index ee72221..3a65623 Binary files a/tests/references/hexagon-open-gnome-wayland-nested-33.png and b/tests/references/hexagon-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/hexagon-open-gnome-wayland-nested-34.png b/tests/references/hexagon-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 7f6661d..8d82404 Binary files a/tests/references/hexagon-open-gnome-wayland-nested-34.png and b/tests/references/hexagon-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/hexagon-open-gnome-wayland-nested-35.png b/tests/references/hexagon-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 7f6661d..1cbb519 Binary files a/tests/references/hexagon-open-gnome-wayland-nested-35.png and b/tests/references/hexagon-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/hexagon-open-gnome-wayland-nested-36.png b/tests/references/hexagon-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index e4cf475..1cbb519 Binary files a/tests/references/hexagon-open-gnome-wayland-nested-36.png and b/tests/references/hexagon-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/hexagon-open-gnome-xsession-32.png b/tests/references/hexagon-open-gnome-xsession-32.png old mode 100644 new mode 100755 index fae638b..ed84528 Binary files a/tests/references/hexagon-open-gnome-xsession-32.png and b/tests/references/hexagon-open-gnome-xsession-32.png differ diff --git a/tests/references/hexagon-open-gnome-xsession-33.png b/tests/references/hexagon-open-gnome-xsession-33.png old mode 100644 new mode 100755 index ee72221..0ac8061 Binary files a/tests/references/hexagon-open-gnome-xsession-33.png and b/tests/references/hexagon-open-gnome-xsession-33.png differ diff --git a/tests/references/hexagon-open-gnome-xsession-34.png b/tests/references/hexagon-open-gnome-xsession-34.png old mode 100644 new mode 100755 index e685569..02b1d7b Binary files a/tests/references/hexagon-open-gnome-xsession-34.png and b/tests/references/hexagon-open-gnome-xsession-34.png differ diff --git a/tests/references/hexagon-open-gnome-xsession-35.png b/tests/references/hexagon-open-gnome-xsession-35.png old mode 100644 new mode 100755 index e685569..0077804 Binary files a/tests/references/hexagon-open-gnome-xsession-35.png and b/tests/references/hexagon-open-gnome-xsession-35.png differ diff --git a/tests/references/hexagon-open-gnome-xsession-36.png b/tests/references/hexagon-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 5be0cc3..0077804 Binary files a/tests/references/hexagon-open-gnome-xsession-36.png and b/tests/references/hexagon-open-gnome-xsession-36.png differ diff --git a/tests/references/incinerate-close-gnome-wayland-nested-32.png b/tests/references/incinerate-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index a64987e..7503c19 Binary files a/tests/references/incinerate-close-gnome-wayland-nested-32.png and b/tests/references/incinerate-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/incinerate-close-gnome-wayland-nested-33.png b/tests/references/incinerate-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index bd400af..873daeb Binary files a/tests/references/incinerate-close-gnome-wayland-nested-33.png and b/tests/references/incinerate-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/incinerate-close-gnome-wayland-nested-34.png b/tests/references/incinerate-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 03f2b53..6ac74c7 Binary files a/tests/references/incinerate-close-gnome-wayland-nested-34.png and b/tests/references/incinerate-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/incinerate-close-gnome-wayland-nested-35.png b/tests/references/incinerate-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 03f2b53..e51bf15 Binary files a/tests/references/incinerate-close-gnome-wayland-nested-35.png and b/tests/references/incinerate-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/incinerate-close-gnome-wayland-nested-36.png b/tests/references/incinerate-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index a027162..e51bf15 Binary files a/tests/references/incinerate-close-gnome-wayland-nested-36.png and b/tests/references/incinerate-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/incinerate-close-gnome-xsession-32.png b/tests/references/incinerate-close-gnome-xsession-32.png old mode 100644 new mode 100755 index a64987e..507b3ce Binary files a/tests/references/incinerate-close-gnome-xsession-32.png and b/tests/references/incinerate-close-gnome-xsession-32.png differ diff --git a/tests/references/incinerate-close-gnome-xsession-33.png b/tests/references/incinerate-close-gnome-xsession-33.png old mode 100644 new mode 100755 index bd400af..645a151 Binary files a/tests/references/incinerate-close-gnome-xsession-33.png and b/tests/references/incinerate-close-gnome-xsession-33.png differ diff --git a/tests/references/incinerate-close-gnome-xsession-34.png b/tests/references/incinerate-close-gnome-xsession-34.png old mode 100644 new mode 100755 index c214b01..2b4f356 Binary files a/tests/references/incinerate-close-gnome-xsession-34.png and b/tests/references/incinerate-close-gnome-xsession-34.png differ diff --git a/tests/references/incinerate-close-gnome-xsession-35.png b/tests/references/incinerate-close-gnome-xsession-35.png old mode 100644 new mode 100755 index c214b01..d321ab5 Binary files a/tests/references/incinerate-close-gnome-xsession-35.png and b/tests/references/incinerate-close-gnome-xsession-35.png differ diff --git a/tests/references/incinerate-close-gnome-xsession-36.png b/tests/references/incinerate-close-gnome-xsession-36.png old mode 100644 new mode 100755 index a95fb9c..d321ab5 Binary files a/tests/references/incinerate-close-gnome-xsession-36.png and b/tests/references/incinerate-close-gnome-xsession-36.png differ diff --git a/tests/references/incinerate-open-gnome-wayland-nested-32.png b/tests/references/incinerate-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 93cda9e..8fa2157 Binary files a/tests/references/incinerate-open-gnome-wayland-nested-32.png and b/tests/references/incinerate-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/incinerate-open-gnome-wayland-nested-33.png b/tests/references/incinerate-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index f94b8a4..a4a7978 Binary files a/tests/references/incinerate-open-gnome-wayland-nested-33.png and b/tests/references/incinerate-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/incinerate-open-gnome-wayland-nested-34.png b/tests/references/incinerate-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 87f5233..f9ab93f Binary files a/tests/references/incinerate-open-gnome-wayland-nested-34.png and b/tests/references/incinerate-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/incinerate-open-gnome-wayland-nested-35.png b/tests/references/incinerate-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 87f5233..ff6ecb7 Binary files a/tests/references/incinerate-open-gnome-wayland-nested-35.png and b/tests/references/incinerate-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/incinerate-open-gnome-wayland-nested-36.png b/tests/references/incinerate-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index ce1d46c..ff6ecb7 Binary files a/tests/references/incinerate-open-gnome-wayland-nested-36.png and b/tests/references/incinerate-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/incinerate-open-gnome-xsession-32.png b/tests/references/incinerate-open-gnome-xsession-32.png old mode 100644 new mode 100755 index 2da2df2..e7206a4 Binary files a/tests/references/incinerate-open-gnome-xsession-32.png and b/tests/references/incinerate-open-gnome-xsession-32.png differ diff --git a/tests/references/incinerate-open-gnome-xsession-33.png b/tests/references/incinerate-open-gnome-xsession-33.png old mode 100644 new mode 100755 index 3cd2fad..3908b79 Binary files a/tests/references/incinerate-open-gnome-xsession-33.png and b/tests/references/incinerate-open-gnome-xsession-33.png differ diff --git a/tests/references/incinerate-open-gnome-xsession-34.png b/tests/references/incinerate-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 7a20201..ea7534b Binary files a/tests/references/incinerate-open-gnome-xsession-34.png and b/tests/references/incinerate-open-gnome-xsession-34.png differ diff --git a/tests/references/incinerate-open-gnome-xsession-35.png b/tests/references/incinerate-open-gnome-xsession-35.png old mode 100644 new mode 100755 index 7a20201..8b93c59 Binary files a/tests/references/incinerate-open-gnome-xsession-35.png and b/tests/references/incinerate-open-gnome-xsession-35.png differ diff --git a/tests/references/incinerate-open-gnome-xsession-36.png b/tests/references/incinerate-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 9bd9e09..8b93c59 Binary files a/tests/references/incinerate-open-gnome-xsession-36.png and b/tests/references/incinerate-open-gnome-xsession-36.png differ diff --git a/tests/references/matrix-close-gnome-wayland-nested-34.png b/tests/references/matrix-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 2a994e7..4816a0e Binary files a/tests/references/matrix-close-gnome-wayland-nested-34.png and b/tests/references/matrix-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/matrix-close-gnome-wayland-nested-35.png b/tests/references/matrix-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 89f7cb9..1235b09 Binary files a/tests/references/matrix-close-gnome-wayland-nested-35.png and b/tests/references/matrix-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/matrix-close-gnome-wayland-nested-36.png b/tests/references/matrix-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 81dd670..1235b09 Binary files a/tests/references/matrix-close-gnome-wayland-nested-36.png and b/tests/references/matrix-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/matrix-close-gnome-xsession-34.png b/tests/references/matrix-close-gnome-xsession-34.png old mode 100644 new mode 100755 index c41f746..626726d Binary files a/tests/references/matrix-close-gnome-xsession-34.png and b/tests/references/matrix-close-gnome-xsession-34.png differ diff --git a/tests/references/matrix-close-gnome-xsession-35.png b/tests/references/matrix-close-gnome-xsession-35.png old mode 100644 new mode 100755 index b29a8d9..d5aed0d Binary files a/tests/references/matrix-close-gnome-xsession-35.png and b/tests/references/matrix-close-gnome-xsession-35.png differ diff --git a/tests/references/matrix-close-gnome-xsession-36.png b/tests/references/matrix-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 1d01e7f..d5aed0d Binary files a/tests/references/matrix-close-gnome-xsession-36.png and b/tests/references/matrix-close-gnome-xsession-36.png differ diff --git a/tests/references/matrix-open-gnome-wayland-nested-34.png b/tests/references/matrix-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 52e841c..5f06f99 Binary files a/tests/references/matrix-open-gnome-wayland-nested-34.png and b/tests/references/matrix-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/matrix-open-gnome-wayland-nested-35.png b/tests/references/matrix-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 34fe217..22fe175 Binary files a/tests/references/matrix-open-gnome-wayland-nested-35.png and b/tests/references/matrix-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/matrix-open-gnome-wayland-nested-36.png b/tests/references/matrix-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index fce7b37..22fe175 Binary files a/tests/references/matrix-open-gnome-wayland-nested-36.png and b/tests/references/matrix-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/matrix-open-gnome-xsession-34.png b/tests/references/matrix-open-gnome-xsession-34.png old mode 100644 new mode 100755 index fd3cd00..2c84cb1 Binary files a/tests/references/matrix-open-gnome-xsession-34.png and b/tests/references/matrix-open-gnome-xsession-34.png differ diff --git a/tests/references/matrix-open-gnome-xsession-35.png b/tests/references/matrix-open-gnome-xsession-35.png old mode 100644 new mode 100755 index 7e8ec5d..27e18c8 Binary files a/tests/references/matrix-open-gnome-xsession-35.png and b/tests/references/matrix-open-gnome-xsession-35.png differ diff --git a/tests/references/matrix-open-gnome-xsession-36.png b/tests/references/matrix-open-gnome-xsession-36.png old mode 100644 new mode 100755 index c436851..27e18c8 Binary files a/tests/references/matrix-open-gnome-xsession-36.png and b/tests/references/matrix-open-gnome-xsession-36.png differ diff --git a/tests/references/pixelate-close-gnome-wayland-nested-32.png b/tests/references/pixelate-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index e545ebc..034ccf2 Binary files a/tests/references/pixelate-close-gnome-wayland-nested-32.png and b/tests/references/pixelate-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/pixelate-close-gnome-wayland-nested-33.png b/tests/references/pixelate-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 1b8becc..80c3859 Binary files a/tests/references/pixelate-close-gnome-wayland-nested-33.png and b/tests/references/pixelate-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/pixelate-close-gnome-wayland-nested-34.png b/tests/references/pixelate-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 114dced..d69f762 Binary files a/tests/references/pixelate-close-gnome-wayland-nested-34.png and b/tests/references/pixelate-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/pixelate-close-gnome-wayland-nested-35.png b/tests/references/pixelate-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 114dced..6998a1b Binary files a/tests/references/pixelate-close-gnome-wayland-nested-35.png and b/tests/references/pixelate-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/pixelate-close-gnome-wayland-nested-36.png b/tests/references/pixelate-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 7644aa2..6998a1b Binary files a/tests/references/pixelate-close-gnome-wayland-nested-36.png and b/tests/references/pixelate-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/pixelate-close-gnome-xsession-32.png b/tests/references/pixelate-close-gnome-xsession-32.png old mode 100644 new mode 100755 index e545ebc..512a1e6 Binary files a/tests/references/pixelate-close-gnome-xsession-32.png and b/tests/references/pixelate-close-gnome-xsession-32.png differ diff --git a/tests/references/pixelate-close-gnome-xsession-33.png b/tests/references/pixelate-close-gnome-xsession-33.png old mode 100644 new mode 100755 index 1b8becc..46e22b7 Binary files a/tests/references/pixelate-close-gnome-xsession-33.png and b/tests/references/pixelate-close-gnome-xsession-33.png differ diff --git a/tests/references/pixelate-close-gnome-xsession-34.png b/tests/references/pixelate-close-gnome-xsession-34.png old mode 100644 new mode 100755 index 1eff756..69b2720 Binary files a/tests/references/pixelate-close-gnome-xsession-34.png and b/tests/references/pixelate-close-gnome-xsession-34.png differ diff --git a/tests/references/pixelate-close-gnome-xsession-35.png b/tests/references/pixelate-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 1eff756..e186432 Binary files a/tests/references/pixelate-close-gnome-xsession-35.png and b/tests/references/pixelate-close-gnome-xsession-35.png differ diff --git a/tests/references/pixelate-close-gnome-xsession-36.png b/tests/references/pixelate-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 9a8c78f..e186432 Binary files a/tests/references/pixelate-close-gnome-xsession-36.png and b/tests/references/pixelate-close-gnome-xsession-36.png differ diff --git a/tests/references/pixelate-open-gnome-wayland-nested-32.png b/tests/references/pixelate-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index e545ebc..034ccf2 Binary files a/tests/references/pixelate-open-gnome-wayland-nested-32.png and b/tests/references/pixelate-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/pixelate-open-gnome-wayland-nested-33.png b/tests/references/pixelate-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 1b8becc..80c3859 Binary files a/tests/references/pixelate-open-gnome-wayland-nested-33.png and b/tests/references/pixelate-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/pixelate-open-gnome-wayland-nested-34.png b/tests/references/pixelate-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 114dced..d69f762 Binary files a/tests/references/pixelate-open-gnome-wayland-nested-34.png and b/tests/references/pixelate-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/pixelate-open-gnome-wayland-nested-35.png b/tests/references/pixelate-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 114dced..6998a1b Binary files a/tests/references/pixelate-open-gnome-wayland-nested-35.png and b/tests/references/pixelate-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/pixelate-open-gnome-wayland-nested-36.png b/tests/references/pixelate-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 7644aa2..6998a1b Binary files a/tests/references/pixelate-open-gnome-wayland-nested-36.png and b/tests/references/pixelate-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/pixelate-open-gnome-xsession-32.png b/tests/references/pixelate-open-gnome-xsession-32.png old mode 100644 new mode 100755 index e545ebc..512a1e6 Binary files a/tests/references/pixelate-open-gnome-xsession-32.png and b/tests/references/pixelate-open-gnome-xsession-32.png differ diff --git a/tests/references/pixelate-open-gnome-xsession-33.png b/tests/references/pixelate-open-gnome-xsession-33.png old mode 100644 new mode 100755 index 1b8becc..46e22b7 Binary files a/tests/references/pixelate-open-gnome-xsession-33.png and b/tests/references/pixelate-open-gnome-xsession-33.png differ diff --git a/tests/references/pixelate-open-gnome-xsession-34.png b/tests/references/pixelate-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 1eff756..69b2720 Binary files a/tests/references/pixelate-open-gnome-xsession-34.png and b/tests/references/pixelate-open-gnome-xsession-34.png differ diff --git a/tests/references/pixelate-open-gnome-xsession-35.png b/tests/references/pixelate-open-gnome-xsession-35.png old mode 100644 new mode 100755 index 1eff756..e186432 Binary files a/tests/references/pixelate-open-gnome-xsession-35.png and b/tests/references/pixelate-open-gnome-xsession-35.png differ diff --git a/tests/references/pixelate-open-gnome-xsession-36.png b/tests/references/pixelate-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 9a8c78f..e186432 Binary files a/tests/references/pixelate-open-gnome-xsession-36.png and b/tests/references/pixelate-open-gnome-xsession-36.png differ diff --git a/tests/references/preferences-gnome-wayland-nested-32.png b/tests/references/preferences-gnome-wayland-nested-32.png new file mode 100755 index 0000000..2c7169d Binary files /dev/null and b/tests/references/preferences-gnome-wayland-nested-32.png differ diff --git a/tests/references/preferences-gnome-wayland-nested-33.png b/tests/references/preferences-gnome-wayland-nested-33.png new file mode 100755 index 0000000..f8ea612 Binary files /dev/null and b/tests/references/preferences-gnome-wayland-nested-33.png differ diff --git a/tests/references/preferences-gnome-wayland-nested-34.png b/tests/references/preferences-gnome-wayland-nested-34.png new file mode 100755 index 0000000..db2b185 Binary files /dev/null and b/tests/references/preferences-gnome-wayland-nested-34.png differ diff --git a/tests/references/preferences-gnome-wayland-nested-35.png b/tests/references/preferences-gnome-wayland-nested-35.png new file mode 100755 index 0000000..db2b185 Binary files /dev/null and b/tests/references/preferences-gnome-wayland-nested-35.png differ diff --git a/tests/references/preferences-gnome-wayland-nested-36.png b/tests/references/preferences-gnome-wayland-nested-36.png new file mode 100755 index 0000000..f3e8eee Binary files /dev/null and b/tests/references/preferences-gnome-wayland-nested-36.png differ diff --git a/tests/references/preferences-gnome-xsession-32.png b/tests/references/preferences-gnome-xsession-32.png new file mode 100755 index 0000000..2c7169d Binary files /dev/null and b/tests/references/preferences-gnome-xsession-32.png differ diff --git a/tests/references/preferences-gnome-xsession-33.png b/tests/references/preferences-gnome-xsession-33.png new file mode 100755 index 0000000..f8ea612 Binary files /dev/null and b/tests/references/preferences-gnome-xsession-33.png differ diff --git a/tests/references/preferences-gnome-xsession-34.png b/tests/references/preferences-gnome-xsession-34.png new file mode 100755 index 0000000..add2dbd Binary files /dev/null and b/tests/references/preferences-gnome-xsession-34.png differ diff --git a/tests/references/preferences-gnome-xsession-35.png b/tests/references/preferences-gnome-xsession-35.png new file mode 100755 index 0000000..add2dbd Binary files /dev/null and b/tests/references/preferences-gnome-xsession-35.png differ diff --git a/tests/references/preferences-gnome-xsession-36.png b/tests/references/preferences-gnome-xsession-36.png new file mode 100755 index 0000000..6191d22 Binary files /dev/null and b/tests/references/preferences-gnome-xsession-36.png differ diff --git a/tests/references/snap-close-gnome-wayland-nested-34.png b/tests/references/snap-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 97887b5..a09d8c0 Binary files a/tests/references/snap-close-gnome-wayland-nested-34.png and b/tests/references/snap-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/snap-close-gnome-wayland-nested-35.png b/tests/references/snap-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index c037f7e..0fc91fb Binary files a/tests/references/snap-close-gnome-wayland-nested-35.png and b/tests/references/snap-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/snap-close-gnome-wayland-nested-36.png b/tests/references/snap-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 30ddd3c..0fc91fb Binary files a/tests/references/snap-close-gnome-wayland-nested-36.png and b/tests/references/snap-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/snap-close-gnome-xsession-34.png b/tests/references/snap-close-gnome-xsession-34.png old mode 100644 new mode 100755 index fe50435..34982be Binary files a/tests/references/snap-close-gnome-xsession-34.png and b/tests/references/snap-close-gnome-xsession-34.png differ diff --git a/tests/references/snap-close-gnome-xsession-35.png b/tests/references/snap-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 6d318d9..6c92eb3 Binary files a/tests/references/snap-close-gnome-xsession-35.png and b/tests/references/snap-close-gnome-xsession-35.png differ diff --git a/tests/references/snap-close-gnome-xsession-36.png b/tests/references/snap-close-gnome-xsession-36.png old mode 100644 new mode 100755 index aec3652..6c92eb3 Binary files a/tests/references/snap-close-gnome-xsession-36.png and b/tests/references/snap-close-gnome-xsession-36.png differ diff --git a/tests/references/snap-open-gnome-wayland-nested-34.png b/tests/references/snap-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 649660a..2c1d8c8 Binary files a/tests/references/snap-open-gnome-wayland-nested-34.png and b/tests/references/snap-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/snap-open-gnome-wayland-nested-35.png b/tests/references/snap-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 2119258..a913ef0 Binary files a/tests/references/snap-open-gnome-wayland-nested-35.png and b/tests/references/snap-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/snap-open-gnome-wayland-nested-36.png b/tests/references/snap-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 858d7c7..a913ef0 Binary files a/tests/references/snap-open-gnome-wayland-nested-36.png and b/tests/references/snap-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/snap-open-gnome-xsession-34.png b/tests/references/snap-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 78e0fe5..2821955 Binary files a/tests/references/snap-open-gnome-xsession-34.png and b/tests/references/snap-open-gnome-xsession-34.png differ diff --git a/tests/references/snap-open-gnome-xsession-35.png b/tests/references/snap-open-gnome-xsession-35.png old mode 100644 new mode 100755 index a858aed..e3bc2f3 Binary files a/tests/references/snap-open-gnome-xsession-35.png and b/tests/references/snap-open-gnome-xsession-35.png differ diff --git a/tests/references/snap-open-gnome-xsession-36.png b/tests/references/snap-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 86b61e6..e3bc2f3 Binary files a/tests/references/snap-open-gnome-xsession-36.png and b/tests/references/snap-open-gnome-xsession-36.png differ diff --git a/tests/references/trex-close-gnome-wayland-nested-34.png b/tests/references/trex-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index bf6dd24..86e4921 Binary files a/tests/references/trex-close-gnome-wayland-nested-34.png and b/tests/references/trex-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/trex-close-gnome-wayland-nested-35.png b/tests/references/trex-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 93be804..e962cf6 Binary files a/tests/references/trex-close-gnome-wayland-nested-35.png and b/tests/references/trex-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/trex-close-gnome-wayland-nested-36.png b/tests/references/trex-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 2949e4d..e962cf6 Binary files a/tests/references/trex-close-gnome-wayland-nested-36.png and b/tests/references/trex-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/trex-close-gnome-xsession-34.png b/tests/references/trex-close-gnome-xsession-34.png old mode 100644 new mode 100755 index 7eace4c..bad4616 Binary files a/tests/references/trex-close-gnome-xsession-34.png and b/tests/references/trex-close-gnome-xsession-34.png differ diff --git a/tests/references/trex-close-gnome-xsession-35.png b/tests/references/trex-close-gnome-xsession-35.png old mode 100644 new mode 100755 index abc3996..586ace3 Binary files a/tests/references/trex-close-gnome-xsession-35.png and b/tests/references/trex-close-gnome-xsession-35.png differ diff --git a/tests/references/trex-close-gnome-xsession-36.png b/tests/references/trex-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 60cdd1e..586ace3 Binary files a/tests/references/trex-close-gnome-xsession-36.png and b/tests/references/trex-close-gnome-xsession-36.png differ diff --git a/tests/references/trex-open-gnome-wayland-nested-34.png b/tests/references/trex-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 17d003a..b170588 Binary files a/tests/references/trex-open-gnome-wayland-nested-34.png and b/tests/references/trex-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/trex-open-gnome-wayland-nested-35.png b/tests/references/trex-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 9cdfdff..dd6cf50 Binary files a/tests/references/trex-open-gnome-wayland-nested-35.png and b/tests/references/trex-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/trex-open-gnome-wayland-nested-36.png b/tests/references/trex-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index f4e9368..dd6cf50 Binary files a/tests/references/trex-open-gnome-wayland-nested-36.png and b/tests/references/trex-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/trex-open-gnome-xsession-34.png b/tests/references/trex-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 7370c8d..665690c Binary files a/tests/references/trex-open-gnome-xsession-34.png and b/tests/references/trex-open-gnome-xsession-34.png differ diff --git a/tests/references/trex-open-gnome-xsession-35.png b/tests/references/trex-open-gnome-xsession-35.png old mode 100644 new mode 100755 index c2e1263..34172e9 Binary files a/tests/references/trex-open-gnome-xsession-35.png and b/tests/references/trex-open-gnome-xsession-35.png differ diff --git a/tests/references/trex-open-gnome-xsession-36.png b/tests/references/trex-open-gnome-xsession-36.png old mode 100644 new mode 100755 index a4f1b81..34172e9 Binary files a/tests/references/trex-open-gnome-xsession-36.png and b/tests/references/trex-open-gnome-xsession-36.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-32.png b/tests/references/tv-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 118a300..1259154 Binary files a/tests/references/tv-close-gnome-wayland-nested-32.png and b/tests/references/tv-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-33.png b/tests/references/tv-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 59affdb..42d17b9 Binary files a/tests/references/tv-close-gnome-wayland-nested-33.png and b/tests/references/tv-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-34.png b/tests/references/tv-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 658ddd4..4643947 Binary files a/tests/references/tv-close-gnome-wayland-nested-34.png and b/tests/references/tv-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-35.png b/tests/references/tv-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 658ddd4..7fce269 Binary files a/tests/references/tv-close-gnome-wayland-nested-35.png and b/tests/references/tv-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/tv-close-gnome-wayland-nested-36.png b/tests/references/tv-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index c16c106..7fce269 Binary files a/tests/references/tv-close-gnome-wayland-nested-36.png and b/tests/references/tv-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/tv-close-gnome-xsession-32.png b/tests/references/tv-close-gnome-xsession-32.png old mode 100644 new mode 100755 index 118a300..44b5ab3 Binary files a/tests/references/tv-close-gnome-xsession-32.png and b/tests/references/tv-close-gnome-xsession-32.png differ diff --git a/tests/references/tv-close-gnome-xsession-33.png b/tests/references/tv-close-gnome-xsession-33.png old mode 100644 new mode 100755 index 59affdb..c548854 Binary files a/tests/references/tv-close-gnome-xsession-33.png and b/tests/references/tv-close-gnome-xsession-33.png differ diff --git a/tests/references/tv-close-gnome-xsession-34.png b/tests/references/tv-close-gnome-xsession-34.png old mode 100644 new mode 100755 index 4489162..074b001 Binary files a/tests/references/tv-close-gnome-xsession-34.png and b/tests/references/tv-close-gnome-xsession-34.png differ diff --git a/tests/references/tv-close-gnome-xsession-35.png b/tests/references/tv-close-gnome-xsession-35.png old mode 100644 new mode 100755 index 4489162..4b7f36c Binary files a/tests/references/tv-close-gnome-xsession-35.png and b/tests/references/tv-close-gnome-xsession-35.png differ diff --git a/tests/references/tv-close-gnome-xsession-36.png b/tests/references/tv-close-gnome-xsession-36.png old mode 100644 new mode 100755 index d6a3ea8..4b7f36c Binary files a/tests/references/tv-close-gnome-xsession-36.png and b/tests/references/tv-close-gnome-xsession-36.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-32.png b/tests/references/tv-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index 8c00699..5c13ba7 Binary files a/tests/references/tv-open-gnome-wayland-nested-32.png and b/tests/references/tv-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-33.png b/tests/references/tv-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index 3eb88ef..5c13ba7 Binary files a/tests/references/tv-open-gnome-wayland-nested-33.png and b/tests/references/tv-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-34.png b/tests/references/tv-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 78c8130..5c13ba7 Binary files a/tests/references/tv-open-gnome-wayland-nested-34.png and b/tests/references/tv-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-35.png b/tests/references/tv-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 78c8130..5c13ba7 Binary files a/tests/references/tv-open-gnome-wayland-nested-35.png and b/tests/references/tv-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/tv-open-gnome-wayland-nested-36.png b/tests/references/tv-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 938fe28..5c13ba7 Binary files a/tests/references/tv-open-gnome-wayland-nested-36.png and b/tests/references/tv-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/tv-open-gnome-xsession-32.png b/tests/references/tv-open-gnome-xsession-32.png old mode 100644 new mode 100755 index 8c00699..5c13ba7 Binary files a/tests/references/tv-open-gnome-xsession-32.png and b/tests/references/tv-open-gnome-xsession-32.png differ diff --git a/tests/references/tv-open-gnome-xsession-33.png b/tests/references/tv-open-gnome-xsession-33.png old mode 100644 new mode 100755 index 3eb88ef..5c13ba7 Binary files a/tests/references/tv-open-gnome-xsession-33.png and b/tests/references/tv-open-gnome-xsession-33.png differ diff --git a/tests/references/tv-open-gnome-xsession-34.png b/tests/references/tv-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 5a9fcee..5c13ba7 Binary files a/tests/references/tv-open-gnome-xsession-34.png and b/tests/references/tv-open-gnome-xsession-34.png differ diff --git a/tests/references/tv-open-gnome-xsession-35.png b/tests/references/tv-open-gnome-xsession-35.png old mode 100644 new mode 100755 index 5a9fcee..5c13ba7 Binary files a/tests/references/tv-open-gnome-xsession-35.png and b/tests/references/tv-open-gnome-xsession-35.png differ diff --git a/tests/references/tv-open-gnome-xsession-36.png b/tests/references/tv-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 3d39e59..5c13ba7 Binary files a/tests/references/tv-open-gnome-xsession-36.png and b/tests/references/tv-open-gnome-xsession-36.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-32.png b/tests/references/wisps-close-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index e6a326e..dea82c3 Binary files a/tests/references/wisps-close-gnome-wayland-nested-32.png and b/tests/references/wisps-close-gnome-wayland-nested-32.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-33.png b/tests/references/wisps-close-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index bd90da1..cb69e57 Binary files a/tests/references/wisps-close-gnome-wayland-nested-33.png and b/tests/references/wisps-close-gnome-wayland-nested-33.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-34.png b/tests/references/wisps-close-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index 8c3cec8..d2478b9 Binary files a/tests/references/wisps-close-gnome-wayland-nested-34.png and b/tests/references/wisps-close-gnome-wayland-nested-34.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-35.png b/tests/references/wisps-close-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index 8c3cec8..b1428e3 Binary files a/tests/references/wisps-close-gnome-wayland-nested-35.png and b/tests/references/wisps-close-gnome-wayland-nested-35.png differ diff --git a/tests/references/wisps-close-gnome-wayland-nested-36.png b/tests/references/wisps-close-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index 4b0ca89..b1428e3 Binary files a/tests/references/wisps-close-gnome-wayland-nested-36.png and b/tests/references/wisps-close-gnome-wayland-nested-36.png differ diff --git a/tests/references/wisps-close-gnome-xsession-32.png b/tests/references/wisps-close-gnome-xsession-32.png old mode 100644 new mode 100755 index e6a326e..bafaabd Binary files a/tests/references/wisps-close-gnome-xsession-32.png and b/tests/references/wisps-close-gnome-xsession-32.png differ diff --git a/tests/references/wisps-close-gnome-xsession-33.png b/tests/references/wisps-close-gnome-xsession-33.png old mode 100644 new mode 100755 index bd90da1..30e96c7 Binary files a/tests/references/wisps-close-gnome-xsession-33.png and b/tests/references/wisps-close-gnome-xsession-33.png differ diff --git a/tests/references/wisps-close-gnome-xsession-34.png b/tests/references/wisps-close-gnome-xsession-34.png old mode 100644 new mode 100755 index e1aac2f..a13dd42 Binary files a/tests/references/wisps-close-gnome-xsession-34.png and b/tests/references/wisps-close-gnome-xsession-34.png differ diff --git a/tests/references/wisps-close-gnome-xsession-35.png b/tests/references/wisps-close-gnome-xsession-35.png old mode 100644 new mode 100755 index e1aac2f..0751740 Binary files a/tests/references/wisps-close-gnome-xsession-35.png and b/tests/references/wisps-close-gnome-xsession-35.png differ diff --git a/tests/references/wisps-close-gnome-xsession-36.png b/tests/references/wisps-close-gnome-xsession-36.png old mode 100644 new mode 100755 index 023342c..0751740 Binary files a/tests/references/wisps-close-gnome-xsession-36.png and b/tests/references/wisps-close-gnome-xsession-36.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-32.png b/tests/references/wisps-open-gnome-wayland-nested-32.png old mode 100644 new mode 100755 index ae913c3..3017f31 Binary files a/tests/references/wisps-open-gnome-wayland-nested-32.png and b/tests/references/wisps-open-gnome-wayland-nested-32.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-33.png b/tests/references/wisps-open-gnome-wayland-nested-33.png old mode 100644 new mode 100755 index f779c77..6551fbc Binary files a/tests/references/wisps-open-gnome-wayland-nested-33.png and b/tests/references/wisps-open-gnome-wayland-nested-33.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-34.png b/tests/references/wisps-open-gnome-wayland-nested-34.png old mode 100644 new mode 100755 index ebb152e..adfdd22 Binary files a/tests/references/wisps-open-gnome-wayland-nested-34.png and b/tests/references/wisps-open-gnome-wayland-nested-34.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-35.png b/tests/references/wisps-open-gnome-wayland-nested-35.png old mode 100644 new mode 100755 index ebb152e..9be7b85 Binary files a/tests/references/wisps-open-gnome-wayland-nested-35.png and b/tests/references/wisps-open-gnome-wayland-nested-35.png differ diff --git a/tests/references/wisps-open-gnome-wayland-nested-36.png b/tests/references/wisps-open-gnome-wayland-nested-36.png old mode 100644 new mode 100755 index be29e64..9be7b85 Binary files a/tests/references/wisps-open-gnome-wayland-nested-36.png and b/tests/references/wisps-open-gnome-wayland-nested-36.png differ diff --git a/tests/references/wisps-open-gnome-xsession-32.png b/tests/references/wisps-open-gnome-xsession-32.png old mode 100644 new mode 100755 index ae913c3..5064f3b Binary files a/tests/references/wisps-open-gnome-xsession-32.png and b/tests/references/wisps-open-gnome-xsession-32.png differ diff --git a/tests/references/wisps-open-gnome-xsession-33.png b/tests/references/wisps-open-gnome-xsession-33.png old mode 100644 new mode 100755 index f779c77..717d537 Binary files a/tests/references/wisps-open-gnome-xsession-33.png and b/tests/references/wisps-open-gnome-xsession-33.png differ diff --git a/tests/references/wisps-open-gnome-xsession-34.png b/tests/references/wisps-open-gnome-xsession-34.png old mode 100644 new mode 100755 index 7e6bafd..7a23583 Binary files a/tests/references/wisps-open-gnome-xsession-34.png and b/tests/references/wisps-open-gnome-xsession-34.png differ diff --git a/tests/references/wisps-open-gnome-xsession-35.png b/tests/references/wisps-open-gnome-xsession-35.png old mode 100644 new mode 100755 index 7e6bafd..925ff85 Binary files a/tests/references/wisps-open-gnome-xsession-35.png and b/tests/references/wisps-open-gnome-xsession-35.png differ diff --git a/tests/references/wisps-open-gnome-xsession-36.png b/tests/references/wisps-open-gnome-xsession-36.png old mode 100644 new mode 100755 index 39e56ea..925ff85 Binary files a/tests/references/wisps-open-gnome-xsession-36.png and b/tests/references/wisps-open-gnome-xsession-36.png differ diff --git a/tests/run-test.sh b/tests/run-test.sh index 7a3e1b8..f3690f7 100755 --- a/tests/run-test.sh +++ b/tests/run-test.sh @@ -58,11 +58,6 @@ cd "$( cd "$( dirname "$0" )" && pwd )/.." || \ IMAGE="ghcr.io/schneegans/gnome-shell-pod-${FEDORA_VERSION}" EXTENSION="burn-my-windows@schneegans.github.com" -# All references images of the effects are captured at & cropped to this region -# in the center of the screen. This is kind of arbitrary, but has been choosen so that -# something is visible from each effect. -CROP="100x100+910+480" - # Run the container. For more info, visit https://github.com/Schneegans/gnome-shell-pod. POD=$(podman run --rm --cap-add=SYS_NICE --cap-add=IPC_LOCK -td "${IMAGE}") @@ -89,29 +84,30 @@ do_in_pod() { podman exec --user gnomeshell --workdir /home/gnomeshell "${POD}" set-env.sh "$@" } -# This is called whenever a test fails. It prints an error message (given as first -# parameter), captures a screenshot to "fail.png" and stores a log in "fail.log". +# This is called whenever a test fails. It prints an error message (given as second +# parameter), saves a current screenshot, the current cropped target and a log to +# "tests/output/". fail() { - echo "${1}" - podman cp "${POD}:/opt/Xvfb_screen0" - | tar xf - --to-command 'convert xwd:- fail.png' + echo "${2}" + mkdir -p "tests/output" + mv "${WORK_DIR}/screen.png" "tests/output/${1}" LOG=$(do_in_pod sudo journalctl) - echo "${LOG}" > fail.log + echo "${LOG}" > tests/output/fail.log exit 1 } -# This captures the center of the virtual screen in the container and cmopares it to the -# given target image (first parameter). If it is not found, an error message (second -# paramter) is printed and the script exits via the fail() method above. -compare_with_target() { - echo "Looking for ${1} on the screen." +# This searches the virtual screen of the container for a given target image (first +# parameter). If it is not found, an error message (second paramter) is printed and the +# script exits via the fail() method above. +find_target() { + echo "Searching for ${1} on the screen." - do_in_pod import -window root -crop $CROP out.png - podman cp "${POD}":/home/gnomeshell/out.png "${WORK_DIR}/out.png" + podman cp "${POD}:/opt/Xvfb_screen0" - | tar xf - --to-command "convert xwd:- ${WORK_DIR}/screen.png" - DIFF=$(compare "${WORK_DIR}/out.png" "${1}" -metric NCC "${WORK_DIR}/diff.png" 2>&1) || true + POS=$(./tests/find-target.sh "${WORK_DIR}/screen.png" "tests/references/${1}") || true - if (( $(echo "$DIFF < 0.9" |bc -l) )); then - fail "${2}" + if [[ -z "${POS}" ]]; then + fail "${1}" "${2}" fi } @@ -141,14 +137,16 @@ test_effect() { set_setting "open-preview-effect" "${1}" set_setting "close-preview-effect" "${1}" - do_in_pod gnome-extensions prefs "${EXTENSION}" + sleep 1 + do_in_pod gnome-terminal sleep 3 - compare_with_target "tests/references/${1}-open-${SESSION}-${FEDORA_VERSION}.png" "Failed to test ${1} window open effect!" + find_target "${1}-open-${SESSION}-${FEDORA_VERSION}.png" "Failed to test ${1} window open effect!" send_keystroke "Alt+F4" sleep 3 - compare_with_target "tests/references/${1}-close-${SESSION}-${FEDORA_VERSION}.png" "Failed to test ${1} window close effect!" + find_target "${1}-close-${SESSION}-${FEDORA_VERSION}.png" "Failed to test ${1} window close effect!" } + # ----------------------------------------------------- wait for the container to start up echo "Waiting for D-Bus." @@ -158,10 +156,16 @@ do_in_pod wait-user-bus.sh > /dev/null 2>&1 # ----------------------------------------------------- install the to-be-tested extension echo "Installing extension." +podman cp "tests/references" "${POD}:/home/gnomeshell/references" podman cp "${EXTENSION}.zip" "${POD}:/home/gnomeshell" do_in_pod gnome-extensions install "${EXTENSION}.zip" +# ----------------------- install gnome-terminal (this is used for testing the animations) + +do_in_pod sudo dnf install -y gnome-terminal + + # ---------------------------------------------------------------------- start GNOME Shell # Starting with GNOME 40, there is a "Welcome Tour" dialog popping up at first launch. @@ -171,6 +175,9 @@ if [[ "${FEDORA_VERSION}" -gt 33 ]]; then do_in_pod gsettings set org.gnome.shell welcome-dialog-last-shown-version "999" || true fi +# Make sure that new windows are opened in the center. +do_in_pod gsettings set org.gnome.mutter center-new-windows true + echo "Starting $(do_in_pod gnome-shell --version)." do_in_pod systemctl --user start "${SESSION}@:99" sleep 10 @@ -190,10 +197,17 @@ sleep 3 # ---------------------------------------------------------------------- perform the tests +# First we open the preferences and check whether the window is shown on screen by +# searching for a small snippet of the preferences dialog. +echo "Opening Preferences." +do_in_pod gnome-extensions prefs "${EXTENSION}" +sleep 3 +find_target "preferences-${SESSION}-${FEDORA_VERSION}.png" "Failed to open preferences!" +send_keystroke "Alt+F4" + # The test mode ensures that the animations are "frozen" and do not change in time. echo "Entering test mode." set_setting "test-mode" true -do_in_pod gsettings set org.gnome.mutter center-new-windows true test_effect "energize-a" test_effect "energize-b" @@ -206,6 +220,7 @@ test_effect "wisps" if [[ "${FEDORA_VERSION}" -gt 32 ]]; then test_effect "apparition" + test_effect "doom" fi if [[ "${FEDORA_VERSION}" -gt 33 ]]; then