1 diff --git a/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in b/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in
2 index 0de6973e..30035768 100644
3 --- a/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in
4 +++ b/kcms/kwinsupportinfo/kcm_kwinsupportinfo.json.in
6 "Name[zh_CN]": "窗口管理器",
9 - "TryExec": "@QtBinariesDir@/qdbus",
10 + "TryExec": "@qdbus@",
11 "X-KDE-KInfoCenter-Category": "graphical_information"
13 diff --git a/kcms/kwinsupportinfo/main.cpp b/kcms/kwinsupportinfo/main.cpp
14 index 6ae168b5..89d0a2ff 100644
15 --- a/kcms/kwinsupportinfo/main.cpp
16 +++ b/kcms/kwinsupportinfo/main.cpp
17 @@ -18,7 +18,7 @@ public:
18 explicit KCMKWinSupportInfo(QObject *parent, const KPluginMetaData &data)
19 : KQuickConfigModule(parent, data)
21 - m_outputContext = new CommandOutputContext(QLibraryInfo::path(QLibraryInfo::BinariesPath) + QStringLiteral("/qdbus"),
22 + m_outputContext = new CommandOutputContext(QStringLiteral("@qdbus@"),
23 {QStringLiteral("org.kde.KWin"), QStringLiteral("/KWin"), QStringLiteral("supportInformation")},
26 diff --git a/kcms/about-distro/src/dmidecode-helper/helper.cpp b/kcms/about-distro/src/dmidecode-helper/helper.cpp
27 index 396b2d74..615e1057 100644
28 --- a/kcms/about-distro/src/dmidecode-helper/helper.cpp
29 +++ b/kcms/about-distro/src/dmidecode-helper/helper.cpp
30 @@ -20,13 +20,6 @@ KAuth::ActionReply DMIDecodeHelper::systeminformation(const QVariantMap &args)
34 - // PATH is super minimal when invoked through dbus
35 - setenv("PATH", "/usr/sbin:/sbin:/usr/local/sbin", 1);
36 - const QString dmidecode = QStandardPaths::findExecutable("dmidecode");
37 - if (dmidecode.isEmpty()) {
38 - return KAuth::ActionReply::HelperErrorReply();
41 // NB: Microsoft also outlines a limited set of DMI values to be required for IOT OEM licensing, as such we
42 // can rely on the same fields to have sound content . Since this only applies to OEMs we still need to filter
43 // out dummy values though and because of that we can grab more fields, since we'll filter them anyway.
44 @@ -38,7 +31,7 @@ KAuth::ActionReply DMIDecodeHelper::systeminformation(const QVariantMap &args)
45 QStringLiteral("system-version"),
46 QStringLiteral("system-serial-number")}) {
48 - proc.start(dmidecode, {QStringLiteral("--string"), key});
49 + proc.start("@dmidecode@", {QStringLiteral("--string"), key});
50 proc.waitForFinished();
51 const QByteArray output = proc.readAllStandardOutput().trimmed();
53 diff --git a/kcms/audio_information/main.cpp b/kcms/audio_information/main.cpp
54 index adb196fd..9d6c8675 100644
55 --- a/kcms/audio_information/main.cpp
56 +++ b/kcms/audio_information/main.cpp
57 @@ -16,7 +16,7 @@ class KCMAudioInformation : public KQuickConfigModule
58 explicit KCMAudioInformation(QObject *parent, const KPluginMetaData &data)
59 : KQuickConfigModule(parent, data)
61 - m_outputContext = new CommandOutputContext(QStringLiteral("pactl"), {"list"}, parent);
62 + m_outputContext = new CommandOutputContext(QStringLiteral("@pactl@"), {"list"}, parent);
64 CommandOutputContext *outputContext() const
66 diff --git a/kcms/block_devices/main.cpp b/kcms/block_devices/main.cpp
67 index 2de923f3..6b14f7fb 100644
68 --- a/kcms/block_devices/main.cpp
69 +++ b/kcms/block_devices/main.cpp
70 @@ -20,7 +20,7 @@ class KCMBlockDevices : public KQuickConfigModule
72 // NOTE: careful when using -o, it tends to incorrectly print multiple mountpoints as a single path
73 // (e.g. when different btrfs subvolumes are mounted at various points in the system it ought to enumerate all mountpoints)
74 - m_outputContext = new CommandOutputContext(u"lsblk"_s, {}, parent);
75 + m_outputContext = new CommandOutputContext(u"@lsblk@"_s, {}, parent);
77 CommandOutputContext *outputContext() const
79 diff --git a/kcms/cpu/main.cpp b/kcms/cpu/main.cpp
80 index 608381eb..8fd7914f 100644
81 --- a/kcms/cpu/main.cpp
82 +++ b/kcms/cpu/main.cpp
83 @@ -16,7 +16,7 @@ class KCMCPU : public KQuickConfigModule
84 explicit KCMCPU(QObject *parent, const KPluginMetaData &data)
85 : KQuickConfigModule(parent, data)
87 - m_outputContext = new CommandOutputContext(QStringLiteral("lscpu"), {}, parent);
88 + m_outputContext = new CommandOutputContext(QStringLiteral("@lscpu@"), {}, parent);
90 CommandOutputContext *outputContext() const
92 diff --git a/kcms/egl/main.cpp b/kcms/egl/main.cpp
93 index 1a509dac..886a62d8 100644
94 --- a/kcms/egl/main.cpp
95 +++ b/kcms/egl/main.cpp
96 @@ -16,7 +16,7 @@ class KCMXServer : public KQuickConfigModule
97 explicit KCMXServer(QObject *parent, const KPluginMetaData &data)
98 : KQuickConfigModule(parent, data)
100 - m_outputContext = new CommandOutputContext(QStringLiteral("eglinfo"), {}, parent);
101 + m_outputContext = new CommandOutputContext(QStringLiteral("@eglinfo@"), {}, parent);
103 CommandOutputContext *outputContext() const
105 diff --git a/kcms/firmware_security/main.cpp b/kcms/firmware_security/main.cpp
106 index 58e25458..890772c8 100644
107 --- a/kcms/firmware_security/main.cpp
108 +++ b/kcms/firmware_security/main.cpp
109 @@ -20,7 +20,7 @@ class KCMFirmwareSecurity : public KQuickConfigModule
110 const QString executable = QStandardPaths::locate(QStandardPaths::GenericDataLocation,
111 QStringLiteral("kinfocenter/firmware_security/fwupdmgr.sh"),
112 QStandardPaths::LocateFile);
113 - m_outputContext = new CommandOutputContext({QStringLiteral("fwupdmgr"), QStringLiteral("aha")}, QStringLiteral("/bin/sh"), {executable}, parent);
114 + m_outputContext = new CommandOutputContext({QStringLiteral("fwupdmgr"), QStringLiteral("@aha@")}, QStringLiteral("/bin/sh"), {executable}, parent);
116 CommandOutputContext *outputContext() const
118 diff --git a/kcms/glx/main.cpp b/kcms/glx/main.cpp
119 index a7317411..a6c5621d 100644
120 --- a/kcms/glx/main.cpp
121 +++ b/kcms/glx/main.cpp
122 @@ -16,7 +16,7 @@ class KCMXServer : public KQuickConfigModule
123 explicit KCMXServer(QObject *parent, const KPluginMetaData &data)
124 : KQuickConfigModule(parent, data)
126 - m_outputContext = new CommandOutputContext(QStringLiteral("glxinfo"), {}, parent);
127 + m_outputContext = new CommandOutputContext(QStringLiteral("@glxinfo@"), {}, parent);
129 CommandOutputContext *outputContext() const
131 diff --git a/kcms/network/main.cpp b/kcms/network/main.cpp
132 index f02577a3..479e18df 100644
133 --- a/kcms/network/main.cpp
134 +++ b/kcms/network/main.cpp
135 @@ -18,7 +18,7 @@ class KCMNetwork : public KQuickConfigModule
136 explicit KCMNetwork(QObject *parent, const KPluginMetaData &data)
137 : KQuickConfigModule(parent, data)
139 - m_outputContext = new CommandOutputContext(u"ip"_s, {u"address"_s}, parent);
140 + m_outputContext = new CommandOutputContext(u"@ip@"_s, {u"address"_s}, parent);
142 CommandOutputContext *outputContext() const
144 diff --git a/kcms/opencl/main.cpp b/kcms/opencl/main.cpp
145 index d58728ab..88733d46 100644
146 --- a/kcms/opencl/main.cpp
147 +++ b/kcms/opencl/main.cpp
148 @@ -18,7 +18,7 @@ class KCMOpenCL : public KQuickConfigModule
149 explicit KCMOpenCL(QObject *parent, const KPluginMetaData &data)
150 : KQuickConfigModule(parent, data)
152 - m_outputContext = new CommandOutputContext(QStringLiteral("clinfo"), {}, parent);
153 + m_outputContext = new CommandOutputContext(QStringLiteral("@clinfo@"), {}, parent);
155 CommandOutputContext *outputContext() const
157 diff --git a/kcms/vulkan/main.cpp b/kcms/vulkan/main.cpp
158 index 5665d9d2..008f1bf0 100644
159 --- a/kcms/vulkan/main.cpp
160 +++ b/kcms/vulkan/main.cpp
161 @@ -16,7 +16,7 @@ class KCMVulkan : public KQuickConfigModule
162 explicit KCMVulkan(QObject *parent, const KPluginMetaData &data)
163 : KQuickConfigModule(parent, data)
165 - m_outputContext = new CommandOutputContext(QStringLiteral("vulkaninfo"), {}, parent);
166 + m_outputContext = new CommandOutputContext(QStringLiteral("@vulkaninfo@"), {}, parent);
168 CommandOutputContext *outputContext() const
170 diff --git a/kcms/wayland/main.cpp b/kcms/wayland/main.cpp
171 index 3a4825c7..2c6a6c43 100644
172 --- a/kcms/wayland/main.cpp
173 +++ b/kcms/wayland/main.cpp
174 @@ -16,7 +16,7 @@ class KCMWayland : public KQuickConfigModule
175 explicit KCMWayland(QObject *parent, const KPluginMetaData &data)
176 : KQuickConfigModule(parent, data)
178 - m_outputContext = new CommandOutputContext(QStringLiteral("wayland-info"), {}, parent);
179 + m_outputContext = new CommandOutputContext(QStringLiteral("@waylandinfo@"), {}, parent);
181 CommandOutputContext *outputContext() const
183 diff --git a/kcms/xserver/main.cpp b/kcms/xserver/main.cpp
184 index df9af24a..e5983e22 100644
185 --- a/kcms/xserver/main.cpp
186 +++ b/kcms/xserver/main.cpp
187 @@ -16,7 +16,7 @@ class KCMXServer : public KQuickConfigModule
188 explicit KCMXServer(QObject *parent, const KPluginMetaData &data)
189 : KQuickConfigModule(parent, data)
191 - m_outputContext = new CommandOutputContext(QStringLiteral("xdpyinfo"), {}, parent);
192 + m_outputContext = new CommandOutputContext(QStringLiteral("@xdpyinfo@"), {}, parent);
194 CommandOutputContext *outputContext() const
196 diff --git a/kcms/pci/CMakeLists.txt b/kcms/pci/CMakeLists.txt
197 index 36d82ef8..16ce2703 100644
198 --- a/kcms/pci/CMakeLists.txt
199 +++ b/kcms/pci/CMakeLists.txt
200 @@ -19,7 +19,7 @@ else()
202 set_package_properties(lspci PROPERTIES TYPE RUNTIME)
204 - set(PCI_BACKEND lspci)
205 + set(PCI_BACKEND @lspci@)
206 set(PCI_BACKEND_ARGUMENTS "-v")