Compare commits
1 commit
master
...
login-seli
| Author | SHA1 | Date | |
|---|---|---|---|
| 4e91804f0a |
8 changed files with 33 additions and 118 deletions
|
|
@ -1,39 +0,0 @@
|
|||
From: Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com>
|
||||
Date: Thu, 2 Jul 2026 10:47:00 -0300
|
||||
Subject: [PATCH] desktoppackage: disable panel floating/opacity animations
|
||||
|
||||
Disable the floating and opacity transitions so the panel changes state instantly and stays fluid.
|
||||
This fixes the UI lag, when switching virtual desktops.
|
||||
|
||||
References: https://bugs.kde.org/show_bug.cgi?id=484501 and https://github.com/orgs/Sonic-DE/discussions/20
|
||||
---
|
||||
desktoppackage/contents/views/Panel.qml | 8 +++-----
|
||||
1 file changed, 3 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/desktoppackage/contents/views/Panel.qml b/desktoppackage/contents/views/Panel.qml
|
||||
--- a/desktoppackage/contents/views/Panel.qml
|
||||
+++ b/desktoppackage/contents/views/Panel.qml
|
||||
@@ -133,19 +133,15 @@
|
||||
}
|
||||
|
||||
// Floatingness is a value in [0, 1] that's multiplied to the floating margin; 0: not floating, 1: floating, between 0 and 1: animation between the two states
|
||||
- readonly property int floatingnessAnimationDuration: Kirigami.Units.longDuration
|
||||
+ // Disable the panel geometry animation: animated resizes of the panel
|
||||
+ // window cause synchronous compositor work that stalls the desktop during
|
||||
+ // virtual-desktop switches.
|
||||
+ readonly property int floatingnessAnimationDuration: 0
|
||||
property double floatingnessTarget: 0.0 // The animation is handled in panelview.cpp for efficiency
|
||||
property double floatingness: 0.0
|
||||
|
||||
// PanelOpacity is a value in [0, 1] that's used as the opacity of the opaque elements over the transparent ones; values between 0 and 1 are used for animations
|
||||
property double panelOpacity
|
||||
- Behavior on panelOpacity {
|
||||
- NumberAnimation {
|
||||
- duration: Kirigami.Units.longDuration
|
||||
- easing.type: Easing.OutCubic
|
||||
- }
|
||||
- }
|
||||
-
|
||||
KSvg.FrameSvgItem {
|
||||
id: translucentItem
|
||||
visible: root.floatingness === 0 && root.panelOpacity !== 1
|
||||
|
|
@ -11,7 +11,7 @@
|
|||
Name: sonic-desktop-interface
|
||||
Summary: Plasma Desktop shell
|
||||
Version: 6.6.4
|
||||
Release: 12%{?dist}
|
||||
Release: 11%{?dist}
|
||||
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only)
|
||||
#URL: https://invent.kde.org/plasma/%{name}
|
||||
|
|
@ -35,11 +35,6 @@ Source20: breeze-fedora-0.3.tar.gz
|
|||
# Do not remove this as it breaks Fedora's QA policy
|
||||
Patch101: hide-virtual-keyboard-indicator-on-sddm.patch
|
||||
|
||||
# Disable panel floating/opacity animations. Animated panel resizes cause
|
||||
# synchronous compositor work that stalls the desktop when switching virtual
|
||||
# desktops, so make the panel state changes instant instead.
|
||||
Patch102: sonic-desktop-interface-6.6.4-x11-panel-lag.patch
|
||||
|
||||
## upstreamable patches
|
||||
|
||||
BuildRequires: pkgconfig(libusb)
|
||||
|
|
@ -398,10 +393,6 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/kaccess.desktop
|
|||
|
||||
|
||||
%changelog
|
||||
* Thu Jul 02 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 6.6.4-12
|
||||
- Disable panel floating/opacity animations to avoid stutter when the panel
|
||||
changes state (e.g. switching virtual desktops).
|
||||
|
||||
* Fri Apr 10 2026 Steve Cossette <farchord@gmail.com> - 6.6.4-1
|
||||
- 6.6.4
|
||||
|
||||
|
|
|
|||
7
sonic-login-manager-selinux/plasmalogin-selinux.fc
Normal file
7
sonic-login-manager-selinux/plasmalogin-selinux.fc
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
# Label the plasmalogin daemon and helper binaries as X display manager
|
||||
# executables so they run in the xdm_t domain on SELinux enforcing systems.
|
||||
|
||||
/usr/bin/plasmalogin -- system_u:object_r:xdm_exec_t:s0
|
||||
/usr/libexec/plasmalogin-helper -- system_u:object_r:xdm_exec_t:s0
|
||||
/usr/libexec/plasmalogin-helper-start-x11user -- system_u:object_r:xdm_exec_t:s0
|
||||
/usr/libexec/plasma-login-greeter -- system_u:object_r:xdm_exec_t:s0
|
||||
|
|
@ -1,12 +1,10 @@
|
|||
module plasmalogin-selinux 1.0;
|
||||
|
||||
require {
|
||||
type unconfined_t;
|
||||
type xdm_exec_t;
|
||||
class file { entrypoint execute };
|
||||
}
|
||||
|
||||
# Allow the plasmalogin process to execute the X11 user helper binary
|
||||
# which is labeled as xdm_exec_t. This is needed when the plasmalogin
|
||||
# daemon is not running in the xdm_t domain on SELinux enforcing systems.
|
||||
allow unconfined_t xdm_exec_t:file { entrypoint execute };
|
||||
# File context rules for plasmalogin binaries are defined in the
|
||||
# accompanying .fc file. Labeling the daemon and helper binaries as
|
||||
# xdm_exec_t lets systemd transition plasmalogin into the xdm_t domain,
|
||||
# which already has the required permissions to run X11 user sessions.
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
Name: sonic-login-manager-selinux
|
||||
Version: 1.0
|
||||
Version: 1.0.1
|
||||
Release: 1%{?dist}
|
||||
Summary: SELinux policy module for Sonic Login Manager
|
||||
License: MIT
|
||||
URL: https://github.com/Sonic-DE/sonic-login-manager
|
||||
Source0: plasmalogin-selinux.te
|
||||
Source1: plasmalogin-selinux.fc
|
||||
|
||||
BuildArch: noarch
|
||||
|
||||
|
|
@ -15,34 +16,42 @@ Requires(post): policycoreutils
|
|||
Requires(postun): policycoreutils
|
||||
|
||||
%description
|
||||
SELinux policy module that allows Sonic Login Manager to launch
|
||||
X11 user sessions when running under SELinux enforcing mode.
|
||||
SELinux policy module that labels the Sonic Login Manager binaries as
|
||||
xdm_exec_t so systemd runs the daemon in the xdm_t domain. This lets
|
||||
Sonic Login Manager launch X11 user sessions under SELinux enforcing
|
||||
mode without granting broad unconfined_t permissions.
|
||||
|
||||
%prep
|
||||
%setup -c -T
|
||||
cp %{SOURCE0} .
|
||||
cp %{SOURCE1} .
|
||||
|
||||
%build
|
||||
# Compile the SELinux type enforcement file into a loadable module package
|
||||
# Compile the SELinux type enforcement file and file context rules into a loadable module package
|
||||
checkmodule -M -m -o plasmalogin-selinux.mod plasmalogin-selinux.te
|
||||
semodule_package -o plasmalogin-selinux.pp -m plasmalogin-selinux.mod
|
||||
semodule_package -o plasmalogin-selinux.pp -m plasmalogin-selinux.mod -f plasmalogin-selinux.fc
|
||||
|
||||
%install
|
||||
install -D -m 644 plasmalogin-selinux.pp %{buildroot}%{_datadir}/selinux/packages/targeted/plasmalogin-selinux.pp
|
||||
|
||||
%post
|
||||
# Load the SELinux policy module
|
||||
# Load the SELinux policy module and apply file contexts to the plasmalogin binaries
|
||||
semodule -i %{_datadir}/selinux/packages/targeted/plasmalogin-selinux.pp || :
|
||||
restorecon -Rv /usr/bin/plasmalogin /usr/libexec/plasmalogin-helper /usr/libexec/plasmalogin-helper-start-x11user /usr/libexec/plasma-login-greeter || :
|
||||
|
||||
%postun
|
||||
if [ $1 -eq 0 ]; then
|
||||
# Remove the SELinux policy module on package uninstall
|
||||
# Remove the SELinux policy module and restore default file contexts on uninstall
|
||||
semodule -r plasmalogin-selinux || :
|
||||
restorecon -Rv /usr/bin/plasmalogin /usr/libexec/plasmalogin-helper /usr/libexec/plasmalogin-helper-start-x11user /usr/libexec/plasma-login-greeter || :
|
||||
fi
|
||||
|
||||
%files
|
||||
%{_datadir}/selinux/packages/targeted/plasmalogin-selinux.pp
|
||||
|
||||
%changelog
|
||||
* Tue Jun 30 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 1.0.1-1
|
||||
- Use with file context rules labeling plasmalogin binaries as xdm_exec_t instead
|
||||
|
||||
* Tue Jun 30 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 1.0-1
|
||||
- Initial package with SELinux allow rule for plasmalogin-helper-start-x11user
|
||||
- Initial package with SELinux allow rule for plasmalogin-helper-start-x11user
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Name: sonic-login-manager
|
||||
Version: 6.6.4
|
||||
Release: 12%{?dist}
|
||||
Release: 13%{?dist}
|
||||
License: BSD-3-Clause and CC0-1.0 and (GPL-2.0-only or GPL-3.0-only) and GPL-2.0-or-later and LGPL-2.0-or-later and LGPL-2.1-or-later
|
||||
Summary: QML based login manager for SonicDE
|
||||
|
||||
|
|
@ -211,9 +211,8 @@ desktop-file-validate %{buildroot}/%{_datadir}/applications/kcm_plasmalogin.desk
|
|||
|
||||
|
||||
%changelog
|
||||
* Tue Jun 30 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 6.6.4-12
|
||||
- Add SELinux policy module to allow plasmalogin to launch X11 user sessions
|
||||
- Remove with_X11 condition since we will always be using X11
|
||||
* Tue Jun 30 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 6.6.4-13
|
||||
- Add SELinux policy dependency to label plasmalogin binaries as xdm_exec_t
|
||||
|
||||
* Fri Apr 10 2026 Steve Cossette <farchord@gmail.com> - 6.6.4-1
|
||||
- 6.6.4
|
||||
|
|
|
|||
|
|
@ -1,42 +0,0 @@
|
|||
From: Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com>
|
||||
Date: Thu, 2 Jul 2026 09:40:00 -0300
|
||||
Subject: [PATCH] shell: handle zero-duration floating panel animation
|
||||
|
||||
The QML side now disables the floating panel animation by setting
|
||||
floatingnessAnimationDuration to 0. With a zero-duration
|
||||
QPropertyAnimation the valueChanged signal may not be emitted, so update
|
||||
m_floatingness and the QML property synchronously before doing the
|
||||
geometry/mask/strut updates.
|
||||
|
||||
References: https://bugs.kde.org/show_bug.cgi?id=484501 and https://github.com/orgs/Sonic-DE/discussions/20
|
||||
---
|
||||
shell/panelview.cpp | 11 +++++++++++
|
||||
1 file changed, 11 insertions(+)
|
||||
|
||||
diff --git a/shell/panelview.cpp b/shell/panelview.cpp
|
||||
--- a/shell/panelview.cpp
|
||||
+++ b/shell/panelview.cpp
|
||||
@@ -1782,6 +1782,13 @@ void PanelView::updateFloating()
|
||||
m_topFloatingPadding = rootObject()->property("fixedTopFloatingPadding").toInt();
|
||||
m_bottomFloatingPadding = rootObject()->property("fixedBottomFloatingPadding").toInt();
|
||||
|
||||
+ const bool instantAnimation = m_floatingnessAnimation.duration() == 0;
|
||||
+ if (instantAnimation) {
|
||||
+ // Skip the animation; jump straight to the target value.
|
||||
+ m_floatingness = m_floatingnessAnimation.endValue().toDouble();
|
||||
+ rootObject()->setProperty("floatingness", m_floatingness);
|
||||
+ }
|
||||
+
|
||||
positionAndResizePanel();
|
||||
updateExclusiveZone();
|
||||
updateShadows();
|
||||
@@ -1789,6 +1796,10 @@ void PanelView::updateFloating()
|
||||
// positionPanel and updateMask are called by m_floatingnessAnimation
|
||||
if (m_floatingnessAnimation.targetObject()) {
|
||||
+ if (instantAnimation) {
|
||||
+ updateMask();
|
||||
+ return;
|
||||
+ }
|
||||
m_floatingnessAnimation.start();
|
||||
}
|
||||
}
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
Name: sonic-workspace
|
||||
Summary: Plasma workspace, applications and applets
|
||||
Version: 6.6.4
|
||||
Release: 14%{?dist}
|
||||
Release: 13%{?dist}
|
||||
|
||||
# Automatically converted from old format: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND LGPL-3.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT - review is highly recommended.
|
||||
License: BSD-2-Clause AND BSD-3-Clause AND CC0-1.0 AND GPL-2.0-only AND GPL-2.0-or-later AND GPL-3.0-only AND LGPL-2.0-only AND LGPL-2.0-or-later AND LGPL-2.1-only AND LGPL-2.1-or-later AND LGPL-3.0-only AND LGPL-3.0-or-later AND (GPL-2.0-only OR GPL-3.0-only) AND (LGPL-2.1-only OR LGPL-3.0-only) AND MIT
|
||||
|
|
@ -46,10 +46,6 @@ Patch106: plasma-workspace-5.27.80-enable-open-terminal-action.patch
|
|||
# default to enable the lock/logout actions
|
||||
Patch107: plasma-workspace-5.27.80-enable-lock-logout-action.patch
|
||||
|
||||
# Handle zero-duration floating panel animation now that the QML side disables
|
||||
# the animation entirely.
|
||||
Patch108: sonic-workspace-6.6.4-x11-panel-lag.patch
|
||||
|
||||
# udev
|
||||
BuildRequires: zlib-devel
|
||||
BuildRequires: libGL-devel
|
||||
|
|
@ -694,10 +690,6 @@ fi
|
|||
|
||||
|
||||
%changelog
|
||||
* Thu Jul 02 2026 Anders da Silva Rytter Hansen <andersrh@users.noreply.github.com> - 6.6.4-14
|
||||
- Handle zero-duration floating panel animation so the panel can switch states
|
||||
instantly without stutter.
|
||||
|
||||
* Fri Apr 10 2026 Steve Cossette <farchord@gmail.com> - 6.6.4-1
|
||||
- 6.6.4
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue