File kscreen6.spec of Package kscreen6

#
# spec file for package kscreen6
#
# Copyright (c) 2025 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via https://bugs.opensuse.org/
#


%global __requires_exclude qt6qmlimport\\(org\\.kde\\.private\\.kscreen.*

%define kf6_version 6.18.0
%define qt6_version 6.9.0

%define rname kscreen
%bcond_without released
Name:           kscreen6
Version:        6.5.1
Release:        kf.74.1
# Full Plasma 6 version (e.g. 6.0.0)
%{!?_plasma6_bugfix: %define _plasma6_bugfix %{version}}
# Latest ABI-stable Plasma (e.g. 6.0 in KF6, but 6.0.80 in KUF)
%{!?_plasma6_version: %define _plasma6_version %(echo %{_plasma6_bugfix} | awk -F. '{print $1"."$2}')}
Summary:        Screen management software by KDE
License:        GPL-2.0-or-later
URL:            https://www.kde.org
Source:         https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz
%if %{with released}
Source1:        https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz.sig
Source2:        plasma.keyring
%endif
BuildRequires:  fdupes
BuildRequires:  kf6-extra-cmake-modules >= %{kf6_version}
BuildRequires:  pkgconfig
BuildRequires:  qt6-gui-private-devel >= %{qt6_version}
BuildRequires:  qt6-waylandclient-private-devel >= %{qt6_version}
BuildRequires:  cmake(KF6Config) >= %{kf6_version}
BuildRequires:  cmake(KF6Crash) >= %{kf6_version}
BuildRequires:  cmake(KF6DBusAddons) >= %{kf6_version}
BuildRequires:  cmake(KF6GlobalAccel) >= %{kf6_version}
BuildRequires:  cmake(KF6I18n) >= %{kf6_version}
BuildRequires:  cmake(KF6IconThemes) >= %{kf6_version}
BuildRequires:  cmake(KF6KCMUtils) >= %{kf6_version}
BuildRequires:  cmake(KF6Screen) >= %{_plasma6_bugfix}
BuildRequires:  cmake(KF6Svg) >= %{kf6_version}
BuildRequires:  cmake(KF6XmlGui) >= %{kf6_version}
BuildRequires:  cmake(LayerShellQt) >= %{_plasma6_bugfix}
BuildRequires:  cmake(Plasma) >= %{_plasma6_bugfix}
BuildRequires:  cmake(PlasmaQuick) >= %{_plasma6_bugfix}
BuildRequires:  cmake(Qt6QuickControls2) >= %{qt6_version}
BuildRequires:  cmake(Qt6Sensors) >= %{qt6_version}
BuildRequires:  cmake(Qt6Test) >= %{qt6_version}
BuildRequires:  pkgconfig(wayland-protocols) >= 1.41
BuildRequires:  pkgconfig(xcb-atom)
BuildRequires:  pkgconfig(xi)
Requires:       kf6-kded
Requires:       libkscreen6-plugin >= %{_plasma6_bugfix}
# For graz.avif
Requires:       kf6-kimageformats
Requires:       xrdb
Supplements:    (libkscreen6-plugin and plasma6-workspace)
Obsoletes:      kscreen5 < %{version}
Obsoletes:      kscreen5-lang < %{version}
Obsoletes:      kscreen5-plasmoid < %{version}
Provides:       kscreen6-plasmoid < %{version}
Obsoletes:      kscreen6-plasmoid < %{version}

%description
KScreen handles screen management for both X11 and Wayland sessions, including rotation, size, refresh rate, and scaling.

%lang_package

%prep
%autosetup -p1 -n %{rname}-%{version}

%build
%cmake_kf6

%kf6_build

%install
%kf6_install

%find_lang %{name} --all-name

%post
%{systemd_user_post plasma-kscreen-osd.service}

%preun
%{systemd_user_preun plasma-kscreen-osd.service}

%postun
%{systemd_user_postun plasma-kscreen-osd.service}

%files
%license LICENSES/*
%{_kf6_applicationsdir}/kcm_kscreen.desktop
%{_kf6_bindir}/hdrcalibrator
%{_kf6_bindir}/kscreen-console
%{_kf6_debugdir}/kscreen.categories
%{_kf6_plugindir}/kf6/kded/kscreen.so
%{_kf6_plugindir}/plasma/applets/org.kde.kscreen.so
%{_kf6_plugindir}/plasma/kcms/systemsettings/kcm_kscreen.so
%{_kf6_sharedir}/dbus-1/services/org.kde.kscreen.osdService.service
%{_kf6_sharedir}/kglobalaccel/org.kde.kscreen.desktop
%{_libexecdir}/kscreen_osd_service
%{_userunitdir}/plasma-kscreen-osd.service

%files lang -f kscreen6.lang

%changelog
* Tue Oct 28 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.5.1:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.5.1
- Changes since 6.5.0:
  * Update version for new release 6.5.1
  * hdrcalibrator: Dont try to set image description on windows without a surface (kde#510789)
* Thu Oct 16 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.5.0:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.5.0
- Changes since 6.4.91:
  * Update version for new release 6.5.0
* Thu Oct  2 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.91:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.91
- Changes since 6.4.90:
  * Update version for new release 6.4.91
* Tue Sep 23 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.90:
  * New feature release
  * For more details see https://kde.org/announcements/plasma/6/6.4.90
- Too many changes to list here
- Drop patches, now upstream:
  * 0001-Revert-hdrcalibrator-install-the-image-instead-of-in.patch
* Tue Sep  9 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.5:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.5
- Changes since 6.4.4:
  * Update version for new release 6.4.5
* Wed Aug  6 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.4:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.4
- Changes since 6.4.3:
  * Update version for new release 6.4.4
* Tue Jul 15 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.3:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.3
- Changes since 6.4.2:
  * Update version for new release 6.4.3
  * hdrcalibrator: enable kcrash
* Tue Jul  1 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.2:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.2
- Changes since 6.4.1:
  * Update version for new release 6.4.2
  * kcm: round brightness value (kde#505763)
* Tue Jun 24 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.1:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.1
- Changes since 6.4.0:
  * Update version for new release 6.4.1
  * Fix Qt.binding argument
  * KCM: highlight current item in color combobox popup (kde#505795)
  * KCM: limit spinbox length (kde#505766)
* Thu Jun 12 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.4.0:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.4.0
- Changes since 6.3.91:
  * Update version for new release 6.4.0
  * Add tests for OSD actions
  * Reapply rotation on X11 when applying osd action
  * Move output to common
  * Make common a library
  * Reset replication before applying osdAction
  * Take rotation into account when applying osd actions
  * hdrcalibrator: bundle plasma-symbolic icon from breeze (kde#505078)
  * kcm: Disable snapping to center
  * kcm: add highlighted property to combobox delegate
  * kcm: also hide contextually irrelevant bits per color options
  * kcm: hide color resolution selection if only one value is supported
  * kcm: improve presentation of the color resolution combobox
- Rebase 0001-Revert-hdrcalibrator-install-the-image-instead-of-in.patch
* Thu May 29 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.91:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.3.91
- Changes since 6.3.90:
  * Update version for new release 6.3.91
  * kcm: hide color profile selection entirely with HDR (kde#502675)
  * kcm: reload kwin config when tearing option is changed (kde#504634,kde#496970)
  * hdrcalibrator: work around QWindow::requestUpdate not working with basic render loop (kde#504347)
  * hdrcalibrator: install the image instead of including it in the module
  * hdrcalibrator: prevent applying output configurations more often than necessary
- Revert upstream commit to get same behaviour as git master:
  * 0001-Revert-hdrcalibrator-install-the-image-instead-of-in.patch
* Mon May 19 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.90:
  * New feature release
  * For more details see https://kde.org/announcements/plasma/6/6.3.90
- Too many changes to list here
* Tue May  6 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.5:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.3.5
- Changes since 6.3.4:
  * update version for new release
  * osd: Create OsdManager after QGuiApplication (kde#502486)
  * kcm: Fix wrong settings shown when reverting changes When reverting display changes, due to model changes, the StackLayout's currentIndex is changed by the stackLayout. This is a behaviour added in Qt 6.5, and requires working around to ensure we keep it the same as selectedOutput. (kde#490586)
  * update version for new release
* Wed Apr  2 2025 Christophe Marin <christophe@krop.fr>
- Update to 6.3.4
  * New bugfix release
  * For more details please see:
  * https://kde.org/announcements/plasma/6/6.3.4
- Changes since 6.3.3:
  * update version for new release
* Tue Mar 11 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.3:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.3.3
- Changes since 6.3.2:
  * update version for new release
* Tue Feb 25 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.2:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.3.2
- Changes since 6.3.1:
  * update version for new release
  * kcm: Support scaling with denominator of 120 (kde#500531)
  * update version for new release
* Tue Feb 18 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.1:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.3.1
- Changes since 6.3.0:
  * update version for new release
  * kcm: re-enable revert message for color power preference
* Thu Feb  6 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.3.0:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.3.0
- Changes since 6.2.91:
  * update version for new release
  * osd: workaround wrong geometry on X11
* Thu Jan 23 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.91:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.91
- Changes since 6.2.90:
  * update version for new release
  * console: don't print xrandr output on Wayland
  * console: make kscreen-console print the correct config on Wayland
* Sat Jan 11 2025 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.90:
  * New feature release
  * For more details see https://kde.org/announcements/plasma/6/6.2.90
- Changes since 6.2.5:
  * update version for new release
  * kcm: Add mnemonics
  * Use QTest directly
  * Remove unimplemented methods
  * kcm: show an error message when applying the configuration fails (kde#482151)
  * kcm/ui: remove duplicated connections block
  * Show headers in qtc
  * It compiles without deprecated methods
  * const'ify pointer or using nullptr
  * kcm: add color vs power usage preference
  * kcm: don't show revert prompt for a few settings
  * kcm: show the normal brightness slider too
  * Explicitly set Kirigami.Dialog padding to 0
  * Use output vendor and model instead pulling from the edid
  * kcm: remove warning about HDR being experimental
  * kcm: allow setting sRGB color intensity in SDR mode too
  * update version for new release
* Tue Dec 31 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.5:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.5
- Changes since 6.2.4:
  * update version for new release
* Tue Nov 26 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.4:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.4
- Changes since 6.2.3:
  * update version for new release
* Tue Nov  5 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.3:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.3
- Changes since 6.2.2:
  * update version for new release
* Tue Oct 22 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.2:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.2
- Changes since 6.2.1:
  * update version for new release
* Tue Oct 15 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.1:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.1
- Changes since 6.2.0:
  * update version for new release
* Sat Oct  5 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.2.0:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.2.0
- Changes since 6.1.90:
  * update version for new release
* Tue Sep 17 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.90:
  * New feature release
  * For more details see https://kde.org/announcements/plasma/6/6.1.90
- Changes since 6.1.5:
  * update version for new release
  * kcm: use sentence case for color profile combobox
  * [applet] Drop unused DBus dependency
  * Emit OrientationSensor::availableChanged() when needed (kde#488764)
  * kcm: make representation in sliders percentages
  * kcm: set a11y name and role for orientation buttons
  * kcm: use ContextualHelpButton from Kirigami
  * plasmoid: Move actions filtering logic from UI to backend
  * plasmoid: Mark property as FINAL
  * plasmoid: Port to pragma ComponentBehavior: Bound
  * plasmoid: Drop icon-only button hacks
  * plasmoid: Drop unused property for laptop detection
  * plasmoid: Use proper (typed, qualified) property access
  * plasmoid: Sort QML imports, add conventional import aliases, drop unused ones
  * plasmoid: Drop QML import versions
  * plasmoid: Drop unnecessary qualified property access
  * plasmoid: Port Switch to use a proper signal handler for user interactions
  * PresentationModeItem.qml: fix logic bug that would not allow turning Presentation Mode off (kde#487706)
  * kcm: Add "refresh rate" as a keyword
  * kcm: port InlineMessages to frameless style
  * update version for new release
* Tue Sep 10 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.5:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.1.5
- Changes since 6.1.4:
  * update version for new release
* Tue Aug  6 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.4:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.1.4
- Changes since 6.1.3:
  * update version for new release
  * Emit OrientationSensor::availableChanged() when needed (kde#488764)
* Tue Jul 16 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.3:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.1.3
- Changes since 6.1.2:
  * update version for new release
  * kcm: use ContextualHelpButton from Kirigami
  * update version for new release
* Tue Jul  2 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.2:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.1.2
- Changes since 6.1.1:
  * update version for new release
* Tue Jun 25 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.1:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.1.1
- Changes since 6.1.0:
  * update version for new release
* Thu Jun 13 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.1.0:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.1.0
- Changes since 6.0.90:
  * update version for new release
  * PresentationModeItem.qml: fix logic bug that would not allow turning Presentation Mode off (kde#487706)
* Sat May 25 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.90:
  * New feature release
  * For more details see https://kde.org/announcements/plasma/6/6.0.90
- Too many changes to list here
* Wed May 22 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.5:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.0.5
- Changes since 6.0.4:
  * update version for new release
  * Output: Use dedicated Rectangle for panel orientation indicator
  * osd: Make dbus-send wait for a reply
  * osd: fix actions not being applied in OSD (kde#482642)
* Wed Apr 17 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.4:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.0.4
- Changes since 6.0.3:
  * update version for new release
* Tue Mar 26 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.3:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.0.3
- Changes since 6.0.2:
  * update version for new release
  * plasmoid: adapt to changed inhibition request handling (kde#477355)
  * OsdAction: fix finding best mode
  * OsdAction: fix applying mode on X11 (kde#482642)
* Wed Mar 13 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.2:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.0.2
- Changes since 6.0.1:
  * update version for new release
  * KCM: Make sure HDR UI elements aren't shown when HDR isn't available (kde#482748)
  * update version for new release
* Wed Mar  6 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.1:
  * New bugfix release
  * For more details see https://kde.org/announcements/plasma/6/6.0.1
- Changes since 6.0.0:
  * update version for new release
  * Properly restore "Device" combobox when the output model resets
* Tue Mar  5 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Merge kscreen6-plasmoid into kscreen6
* Wed Feb 21 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 6.0.0:
  * New bugfix release
  * Release announcement not available yet
- Changes since 5.93.0:
  * update version for new release
  * kcm: Change template literal strings to normal ones so they're translatable
  * kcm: port remaining kcm.outputModel.rowCount() (kde#481072)
  * Sort enabled outputs first
  * kcm/output_model: basic mode matching in mirroring
  * common/osdaction: correct extend left/right being swapped around (kde#480993)
  * common: make OrientationSensor::available work
  * kcm: hide "only in tablet mode" checkbox when tablet mode isn't available
  * update version for new release
* Wed Jan 31 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.93.0 (6.0 RC 2):
  * New bugfix release
  * See https://kde.org/announcements/megarelease/6/rc2/ for details
- Changes since 5.92.0:
  * RC 1 version dep
  * add a version for dependencies so it does not break CI
  * Fix X-KDE-Shortcuts declaration
  * kded: Drop Daemon::displayButton()
  * Define display switcher shortcut via desktop file instead of at runtime (kde#479647)
* Mon Jan 15 2024 Fabian Vogt <fabian@ritter-vogt.de>
- Update to 5.92.0 (6.0 RC 1)
  * For more details please see:
    https://kde.org/announcements/megarelease/6/rc1/
* Fri Jun 30 2023 Christophe Marin <christophe@krop.fr>
- Init kscreen6
openSUSE Build Service is sponsored by