mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-06-11 00:47:22 +00:00
60 lines
No EOL
2.3 KiB
Bash
60 lines
No EOL
2.3 KiB
Bash
#!/usr/bin/env bash
|
|
# SPDX-FileCopyrightText: 2026 Marco Allegretti <mightymarco4@gmail.com>
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
set -euo pipefail
|
|
|
|
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
effect_qml="$repo_root/kwin/effects/shift-tile-preview/contents/ui/main.qml"
|
|
effect_metadata="$repo_root/kwin/effects/shift-tile-preview/metadata.json"
|
|
effects_cmake="$repo_root/kwin/effects/CMakeLists.txt"
|
|
tiling_script="$repo_root/kwin/scripts/shift-tiling/contents/ui/main.qml"
|
|
env_config="$repo_root/envmanager/config.h"
|
|
|
|
require_line() {
|
|
local file="$1"
|
|
local needle="$2"
|
|
|
|
if ! grep -Fq -- "$needle" "$file"; then
|
|
echo "Missing dynamic tile motion invariant in ${file#$repo_root/}: $needle" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
reject_line() {
|
|
local file="$1"
|
|
local needle="$2"
|
|
|
|
if grep -Fq -- "$needle" "$file"; then
|
|
echo "Rejected dynamic tile motion pattern in ${file#$repo_root/}: $needle" >&2
|
|
exit 1
|
|
fi
|
|
}
|
|
|
|
require_line "$effects_cmake" "add_kwin_effect(shift-tile-preview shift-tile-preview)"
|
|
require_line "$effect_metadata" '"Id": "shift-tile-preview"'
|
|
require_line "$effect_metadata" '"X-Plasma-API": "declarativescript"'
|
|
|
|
require_line "$env_config" '{"shift-tilingEnabled", convergenceModeEnabled}'
|
|
require_line "$env_config" '{"shift-tile-previewEnabled", convergenceModeEnabled}'
|
|
require_line "$env_config" '"shift-tile-preview"'
|
|
require_line "$env_config" '"shift-tiling"'
|
|
|
|
require_line "$effect_qml" "KWinComponents.SceneEffect"
|
|
require_line "$effect_qml" "ShellSettings.Settings.dynamicTilingEnabled"
|
|
require_line "$effect_qml" "interactiveMoveResizeStarted.connect"
|
|
require_line "$effect_qml" "interactiveMoveResizeStepped.connect"
|
|
require_line "$effect_qml" "interactiveMoveResizeFinished.connect"
|
|
require_line "$effect_qml" "Behavior on x"
|
|
require_line "$effect_qml" "Behavior on y"
|
|
require_line "$effect_qml" "Behavior on width"
|
|
require_line "$effect_qml" "Behavior on height"
|
|
require_line "$effect_qml" "showPreview(\"insert\""
|
|
require_line "$effect_qml" "showPreview(\"float\""
|
|
require_line "$effect_qml" "showPreview(\"restore\""
|
|
|
|
reject_line "$tiling_script" "KWinComponents.Workspace.showOutline(dragOutlineRect)"
|
|
reject_line "$tiling_script" "KWinComponents.Workspace.hideOutline()"
|
|
|
|
printf '%s\n' 'dynamic-tiles-motion-ok' |