From c593d096638630991316f1e38c0591bc0f00bc73 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E6=9C=8B=E8=B1=AA?= Date: Fri, 22 Nov 2024 14:44:32 +0800 Subject: [PATCH] =?UTF-8?q?fix:greeter=E7=95=8C=E9=9D=A2=E8=A7=A6=E6=8E=A7?= =?UTF-8?q?=E6=9D=BF=E6=97=A0=E6=B3=95=E7=82=B9=E5=87=BB=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 有些厂商系统,未默认设置触控点击属性,致使greeter界面点击无效 Log: 修复greeter触控点击异常异常问题 Bug: https://pms.uniontech.com/task-view-368567.html Influence: 触控屏 Change-Id: I3ed0d90831ac8f849937982ba47e46bad8258e6f (cherry picked from commit ebb83b33e62ac41d4428977d1055755bd2d46696) --- files/wayland/lightdm-deepin-greeter-wayland | 33 ++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/files/wayland/lightdm-deepin-greeter-wayland b/files/wayland/lightdm-deepin-greeter-wayland index 5656b3c5..e9493a94 100755 --- a/files/wayland/lightdm-deepin-greeter-wayland +++ b/files/wayland/lightdm-deepin-greeter-wayland @@ -15,4 +15,37 @@ if [ -x $display_daemon ]; then fi +#在满足条件下,设置tapToClick=true +#解析dbus信息输出 +dbus_values_get_strings(){ + local input="$1" + echo "$input" | grep -oP 'string \K".*?"' | tr -d '"' +} +dbus_values_get_bool(){ + local input="$1" + echo "$input" | grep -oP 'boolean \Ktrue|false' | awk '{print $1}' +} + +#判断并设置设备属性 +device_handle(){ + local input="$1" + local dbus_touchpad=$(dbus-send --session --print-reply --dest=org.kde.KWin $input org.freedesktop.DBus.Properties.Get string:"org.kde.KWin.InputDevice" string:"touchpad") + local touchpad=$(dbus_values_get_bool "$dbus_touchpad") + + if [ "$touchpad" = "true" ]; then + dbus-send --session --dest=org.kde.KWin "$input" org.freedesktop.DBus.Properties.Set string:"org.kde.KWin.InputDevice" string:"tapToClick" variant:boolean:true + fi +} + +#获取设备列表 +dbus_devices=$(dbus-send --session --print-reply --dest=org.kde.KWin /org/kde/KWin/InputDevice org.freedesktop.DBus.Properties.Get string:"org.kde.KWin.InputDeviceManager" string:"devicesSysNames") +devices_strings=$(dbus_values_get_strings "$dbus_devices") + +#遍历设备列表 +device_path="/org/kde/KWin/InputDevice/" +for dev in $devices_strings; do + path="${device_path}${dev}" + device_handle "$path" +done + /usr/share/dde-session-shell/greeters.d/launch-binary