Brand containment metadata as SHIFT

Point homescreen and panel containment metadata at the Shift repository. Update the panel and task-panel descriptions from Plasma Mobile to SHIFT, and remove translated descriptions that would override the corrected base metadata.

Add a containment metadata guard while preserving the existing org.kde.plasma.mobile.* applet target IDs.
This commit is contained in:
Marco Allegretti 2026-05-17 16:27:48 +02:00
parent d0967c100f
commit 82316c393e
7 changed files with 75 additions and 79 deletions

View file

@ -5,7 +5,7 @@
# Folio Homescreen # Folio Homescreen
This is the paged homescreen for Plasma Mobile. This is the paged homescreen for SHIFT.
### How it works ### How it works

View file

@ -118,7 +118,7 @@
"Name[uk]": "Фоліо", "Name[uk]": "Фоліо",
"Name[zh_CN]": "Folio", "Name[zh_CN]": "Folio",
"Name[zh_TW]": "Folio", "Name[zh_TW]": "Folio",
"Website": "https://plasma-mobile.org" "Website": "https://invent.kde.org/marcoa/shift-shell"
}, },
"X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-API-Minimum-Version": "6.0",
"X-Plasma-ContainmentType": "Desktop", "X-Plasma-ContainmentType": "Desktop",

View file

@ -119,7 +119,7 @@
"Name[uk]": "Альціон", "Name[uk]": "Альціон",
"Name[zh_CN]": "Halcyon", "Name[zh_CN]": "Halcyon",
"Name[zh_TW]": "Halcyon", "Name[zh_TW]": "Halcyon",
"Website": "https://plasma-mobile.org" "Website": "https://invent.kde.org/marcoa/shift-shell"
}, },
"X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-API-Minimum-Version": "6.0",
"X-Plasma-ContainmentType": "Desktop", "X-Plasma-ContainmentType": "Desktop",

View file

@ -44,43 +44,7 @@
} }
], ],
"Category": "Containments", "Category": "Containments",
"Description": "Top panel for Plasma Mobile", "Description": "Top panel for SHIFT",
"Description[ar]": "اللوحة العلوية لبلازما الجوال",
"Description[ca@valencia]": "Quadro superior per a Plasma Mobile",
"Description[ca]": "Plafó superior per al Plasma Mobile",
"Description[cs]": "Horní panel pro Plasma Mobile",
"Description[de]": "Obere Kontrollleiste für Plasma Mobile",
"Description[en_GB]": "Top panel for Plasma Mobile",
"Description[eo]": "Supra panelo por Plasma Mobile",
"Description[es]": "Panel superior para Plasma Mobile",
"Description[eu]": "Plasma Mugikorrerako goiko panela",
"Description[fi]": "Yläpaneeli Plasma Mobileen",
"Description[fr]": "Panneau supérieur pour Plasma Mobile",
"Description[gl]": "Panel superior para Plasma Mobile.",
"Description[he]": "לוח עליון לפלזמה לניידים",
"Description[hu]": "Felső panel a Plasma Mobile-hoz",
"Description[ia]": "Pannello in alto per Plasma Mobile",
"Description[is]": "Toppspjald fyrir Plasma Mobile",
"Description[it]": "Pannello superiore per Plasma Mobile",
"Description[ka]": "Plasma Mobile-ის ზედა პანელი",
"Description[ko]": "Plasma 모바일의 최상위 패널",
"Description[lv]": "„Plasma Mobile“ augšējais panelis",
"Description[nl]": "Hoofdpaneel voor Plasma Mobile",
"Description[nn]": "Toppanel for Plasma Mobile",
"Description[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਸਿਖਰਲਾ ਪੈਨਲ",
"Description[pl]": "Górny panel dla Przenośnej Plazmy",
"Description[pt]": "Painel de topo do Plasma Mobile",
"Description[pt_BR]": "Painel superior do Plasma Mobile",
"Description[ru]": "Верхняя панель Plasma Mobile",
"Description[sa]": "प्लाज्मा मोबाईलस्य कृते शीर्षपटलम्",
"Description[sk]": "Horný panel pre Plasma Mobile",
"Description[sl]": "Vrhnja plošča za Plasma Mobile",
"Description[sv]": "Överpanel för Plasma mobil",
"Description[ta]": "பிளாஸ்மா கைபேசிக்கான மேலோரப் பலகை",
"Description[tr]": "Plasma Cep için üst panel",
"Description[uk]": "Верхня панель для мобільної Плазми",
"Description[zh_CN]": "Plasma Mobile 的顶部面板",
"Description[zh_TW]": "Plasma 行動的頂部面板",
"License": "GPLv2+", "License": "GPLv2+",
"Name": "Phone Panel", "Name": "Phone Panel",
"Name[ar]": "لوحة الهاتف", "Name[ar]": "لوحة الهاتف",
@ -126,7 +90,7 @@
"Name[uk]": "Панель телефону", "Name[uk]": "Панель телефону",
"Name[zh_CN]": "手机面板", "Name[zh_CN]": "手机面板",
"Name[zh_TW]": "手機面板", "Name[zh_TW]": "手機面板",
"Website": "https://plasma-mobile.org" "Website": "https://invent.kde.org/marcoa/shift-shell"
}, },
"X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-API-Minimum-Version": "6.0",
"X-Plasma-ContainmentType": "Panel" "X-Plasma-ContainmentType": "Panel"

View file

@ -44,43 +44,7 @@
} }
], ],
"Category": "Containments", "Category": "Containments",
"Description": "Navigation panel for Plasma Mobile", "Description": "Navigation panel for SHIFT",
"Description[ar]": "لوحة التنقل لبلازما الجوال",
"Description[ca@valencia]": "Quadro de navegació per a Plasma Mobile",
"Description[ca]": "Plafó de navegació per al Plasma Mobile",
"Description[cs]": "Navigační panel pro Plasma Mobile",
"Description[de]": "Navigationsleiste für Plasma Mobile",
"Description[en_GB]": "Navigation panel for Plasma Mobile",
"Description[eo]": "Navigada panelo por Plasma Mobile",
"Description[es]": "Panel de navegación para Plasma Mobile",
"Description[eu]": "Plasma Mugikorrerako nabigazio-panela",
"Description[fi]": "Navigointipaneeli Plasma Mobilelle",
"Description[fr]": "Panneau de navigation pour Plasma Mobile",
"Description[gl]": "Panel de navegación para Plasma Mobile.",
"Description[he]": "לוח ניווט לפלזמה לניידים",
"Description[hu]": "Navigációs panel a Plasma Mobile-hoz",
"Description[ia]": "Pannello de Navigation per Plasma Mobile",
"Description[is]": "Flakkspjald fyrir Plasma Mobile",
"Description[it]": "Pannello di navigazione per Plasma Mobile",
"Description[ka]": "Plasma Mobile-ის ნავიგაციის პანელი",
"Description[ko]": "Plasma 모바일의 탐색 패널",
"Description[lv]": "„Plasma Mobile“ navigācijas panelis",
"Description[nl]": "Navigatiepaneel voor Plasma Mobile",
"Description[nn]": "Navigasjonspanel for Plasma Mobile",
"Description[pa]": "ਪਲਾਜ਼ਮਾ ਮੋਬਾਈਲ ਲਈ ਨੇਵੀਗੇਸ਼ਨ ਪੈਨਲ",
"Description[pl]": "Pasek poruszania się dla Przenośnej Plazmy",
"Description[pt]": "Painel de navegação do Plasma Mobile",
"Description[pt_BR]": "Painel de navegação do Plasma Mobile",
"Description[ru]": "Панель навигации Plasma Mobile",
"Description[sa]": "प्लाज्मा मोबाईलस्य कृते नेविगेशन पैनल",
"Description[sk]": "Navigačný panel pre Plasma Mobile",
"Description[sl]": "Krmilna plošča za Plasma Mobile",
"Description[sv]": "Navigeringspanel för Plasma mobil",
"Description[ta]": "பிளாஸ்மா கைபேசிக்கான உலாவல் பலகை",
"Description[tr]": "Plasma Cep için dolaşım paneli",
"Description[uk]": "Панель навігації для мобільної Плазми",
"Description[zh_CN]": "Plasma 移动版导航面板",
"Description[zh_TW]": "Plasma 行動的導覽面板",
"License": "GPLv2+", "License": "GPLv2+",
"Name": "Phone Task panel", "Name": "Phone Task panel",
"Name[ar]": "لوحة مهمة الهاتف", "Name[ar]": "لوحة مهمة الهاتف",
@ -126,7 +90,7 @@
"Name[uk]": "Панель завдань телефону", "Name[uk]": "Панель завдань телефону",
"Name[zh_CN]": "手机任务面板", "Name[zh_CN]": "手机任务面板",
"Name[zh_TW]": "手機工作面板", "Name[zh_TW]": "手機工作面板",
"Website": "https://plasma-mobile.org" "Website": "https://invent.kde.org/marcoa/shift-shell"
}, },
"X-Plasma-API-Minimum-Version": "6.0", "X-Plasma-API-Minimum-Version": "6.0",
"X-Plasma-ContainmentType": "Panel" "X-Plasma-ContainmentType": "Panel"

View file

@ -29,4 +29,9 @@ if(BASH_EXECUTABLE)
NAME shift-quicksettings-metadata NAME shift-quicksettings-metadata
COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-quicksettings-metadata.sh COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-quicksettings-metadata.sh
) )
add_test(
NAME shift-containment-metadata
COMMAND ${BASH_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/check-shift-containment-metadata.sh
)
endif() endif()

View file

@ -0,0 +1,63 @@
#!/usr/bin/env bash
# SPDX-FileCopyrightText: 2026 Marco Allegretti <mightymarco4@gmail.com>
# SPDX-License-Identifier: EUPL-1.2
set -euo pipefail
repo_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$repo_dir"
fail() {
printf '%s\n' "$1" >&2
exit 1
}
require_line() {
local file="$1"
local pattern="$2"
local message="$3"
grep -Eq "$pattern" "$file" || fail "$message"
}
reject_line() {
local file="$1"
local pattern="$2"
local message="$3"
! grep -Eq "$pattern" "$file" || fail "$message"
}
mapfile -t metadata_files < <(find containments -name metadata.json | sort)
[[ "${#metadata_files[@]}" -eq 4 ]] || fail "unexpected containment metadata file count"
for metadata_file in "${metadata_files[@]}"; do
require_line "$metadata_file" '"Website": "https://invent\.kde\.org/marcoa/shift-shell"' \
"$metadata_file must point at the Shift repository"
reject_line "$metadata_file" 'Plasma Mobile|plasma-mobile\.org|bugs\.kde\.org|"Website": "https://kde\.org"' \
"$metadata_file must not expose upstream Plasma Mobile product metadata"
done
require_line containments/panel/metadata.json '"Description": "Top panel for SHIFT"' \
"panel containment description must be branded SHIFT"
require_line containments/taskpanel/metadata.json '"Description": "Navigation panel for SHIFT"' \
"task panel containment description must be branded SHIFT"
reject_line containments/panel/metadata.json '"Description\[[^]]+\]"' \
"panel containment must not keep translated descriptions that can override the base description"
reject_line containments/taskpanel/metadata.json '"Description\[[^]]+\]"' \
"task panel containment must not keep translated descriptions that can override the base description"
require_line containments/panel/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.panel' \
"panel containment package id must stay stable until a namespace migration is planned"
require_line containments/taskpanel/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.taskpanel' \
"task panel containment package id must stay stable until a namespace migration is planned"
require_line containments/homescreens/folio/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.homescreen\.folio' \
"Folio containment package id must stay stable until a namespace migration is planned"
require_line containments/homescreens/halcyon/CMakeLists.txt 'plasma_add_applet\(org\.kde\.plasma\.mobile\.homescreen\.halcyon' \
"Halcyon containment package id must stay stable until a namespace migration is planned"
reject_line containments/homescreens/folio/README.md 'Plasma Mobile' \
"Folio README must not describe the homescreen as Plasma Mobile"
printf 'shift-containment-metadata-ok\n'