I would like to run LACT to limit my laptop GPU frequency, and thus let it stay cooler.
Terminal logs
## zypper install
arthur@laptop:~> sudo zypper install lact
[sudo] password for root:
Refreshing service 'openSUSE'.
Loading repository data...
Reading installed packages...
Resolving package dependencies...
The following NEW package is going to be installed:
lact
1 new package to install.
Package download size: 3.7 MiB
Package install size change:
| 10.5 MiB required by packages that will be installed
10.5 MiB | - 0 B released by packages that will be removed
Backend: classic_rpmtrans
Continue? [y/n/v/...? shows all options] (y): y
Preloading: lact-0.9.0-1.1.x86_64.rpm [done]
Preload finished. [success (13.7 KiB/s) ] ....................................................[done]
Retrieving: lact-0.9.0-1.1.x86_64 (Main Repository (OSS)) (1/1), 3.7 MiB
Checking for file conflicts: .................................................................[done]
/usr/bin/systemd-sysusers --replace=/usr/lib/sysusers.d/lact-user.conf -
warning: /etc/lact/config.yaml created as /etc/lact/config.yaml.rpmnew
Removed '/etc/systemd/system/multi-user.target.wants/lactd.service'.
(1/1) Installing: lact-0.9.0-1.1.x86_64 ......................................................[done]
Running post-transaction scripts .............................................................[done]
arthur@laptop:~> lact
2026-06-18T21:31:33.703033Z INFO i18n_embed::requester: Current Locale: [LanguageIdentifier { language: Language(Some("en")), script: None, region: Some(Region("US")), variants: None }]
2026-06-18T21:31:33.703097Z INFO i18n_embed: Selecting translations for domain "lact_gui"
2026-06-18T21:31:33.703537Z INFO i18n_embed::requester: Current Locale: [LanguageIdentifier { language: Language(Some("en")), script: None, region: Some(Region("US")), variants: None }]
2026-06-18T21:31:33.703557Z INFO i18n_embed: Selecting translations for domain "lact_schema"
(process:76989): Gdk-WARNING **: 23:31:33.757: Cannot get portal org.freedesktop.portal.Settings version: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
(process:76989): Adwaita-WARNING **: 23:31:33.833: Using GtkSettings:gtk-application-prefer-dark-theme with libadwaita is unsupported. Please use AdwStyleManager:color-scheme instead.
(lact:76989): Gdk-WARNING **: 23:31:33.967: Cannot get portal org.freedesktop.host.portal.Registry version: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
(lact:76989): Gdk-WARNING **: 23:31:33.973: Cannot get portal org.freedesktop.portal.Inhibit version: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
2026-06-18T21:31:34.658513Z INFO lact_client::connection::unix: connecting to service at "/run/lactd.sock"
2026-06-18T21:31:34.658592Z INFO lact_gui::app: could not connect to socket: Permission denied (os error 13)
2026-06-18T21:31:34.658624Z INFO lact_gui::app: using a local daemon
2026-06-18T21:31:34.717370Z INFO lact_daemon::server::handler: Nvidia management library loaded
2026-06-18T21:31:34.722173Z INFO lact_daemon::server::handler: NvAPI library loaded
2026-06-18T21:31:34.744390Z INFO lact_daemon::server::handler: initialized nvidia controller for GPU 10DE:24DD-17AA:3A4F-0000:01:00.0 at '/sys/class/drm/card1/device'
2026-06-18T21:31:34.744430Z INFO lact_daemon::server::handler: initialized 1 GPUs
(lact:76989): Adwaita-WARNING **: 23:31:34.865: AdwNavigationPage 0x55db5cdaa1b0 is missing a title. To hide a header bar title, consider using AdwHeaderBar:show-title instead.
(lact:76989): Gdk-WARNING **: 23:31:34.944: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:34.972: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:36.098: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:36.190: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:36.201: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:37.135: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:37.342: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:76989): Gdk-WARNING **: 23:31:37.549: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
arthur@laptop:~> sudo systemctl enable --now lactd
Created symlink '/etc/systemd/system/multi-user.target.wants/lactd.service' → '/usr/lib/systemd/system/lactd.service'.
arthur@laptop:~> lact
2026-06-18T21:32:07.500088Z INFO i18n_embed::requester: Current Locale: [LanguageIdentifier { language: Language(Some("en")), script: None, region: Some(Region("US")), variants: None }]
2026-06-18T21:32:07.500193Z INFO i18n_embed: Selecting translations for domain "lact_gui"
2026-06-18T21:32:07.500639Z INFO i18n_embed::requester: Current Locale: [LanguageIdentifier { language: Language(Some("en")), script: None, region: Some(Region("US")), variants: None }]
2026-06-18T21:32:07.500660Z INFO i18n_embed: Selecting translations for domain "lact_schema"
(process:77828): Gdk-WARNING **: 23:32:07.516: Cannot get portal org.freedesktop.portal.Settings version: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
(process:77828): Adwaita-WARNING **: 23:32:07.592: Using GtkSettings:gtk-application-prefer-dark-theme with libadwaita is unsupported. Please use AdwStyleManager:color-scheme instead.
(lact:77828): Gdk-WARNING **: 23:32:07.726: Cannot get portal org.freedesktop.host.portal.Registry version: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
(lact:77828): Gdk-WARNING **: 23:32:07.733: Cannot get portal org.freedesktop.portal.Inhibit version: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
2026-06-18T21:32:08.396978Z INFO lact_client::connection::unix: connecting to service at "/run/lactd.sock"
2026-06-18T21:32:08.397069Z INFO lact_gui::app: could not connect to socket: Permission denied (os error 13)
2026-06-18T21:32:08.397099Z INFO lact_gui::app: using a local daemon
2026-06-18T21:32:08.444747Z INFO lact_daemon::server::handler: Nvidia management library loaded
2026-06-18T21:32:08.448495Z INFO lact_daemon::server::handler: NvAPI library loaded
2026-06-18T21:32:08.470526Z INFO lact_daemon::server::handler: initialized nvidia controller for GPU 10DE:24DD-17AA:3A4F-0000:01:00.0 at '/sys/class/drm/card1/device'
2026-06-18T21:32:08.470567Z INFO lact_daemon::server::handler: initialized 1 GPUs
(lact:77828): Adwaita-WARNING **: 23:32:08.589: AdwNavigationPage 0x564292fc67e0 is missing a title. To hide a header bar title, consider using AdwHeaderBar:show-title instead.
(lact:77828): Gdk-WARNING **: 23:32:08.666: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:08.732: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:08.733: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:09.351: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:09.800: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:09.843: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:09.850: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
2026-06-18T21:32:18.792691Z ERROR lact_daemon::server::handler: could not apply settings: Could not apply GPU locked clocks
Caused by:
the current user does not have permission to perform this operation
2026-06-18T21:32:18.802352Z WARN update_with_view{input=ApplyChanges component="lact_gui::app::AppModel" id="0x7ffdfc3632f8"}: lact_gui::app: Could not apply settings
Caused by:
0: Got error from daemon, end of client boundary
1: Could not apply settings
2: Could not apply GPU locked clocks
3: the current user does not have permission to perform this operation
(lact:77828): Gdk-WARNING **: 23:32:20.235: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:21.050: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:28.431: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:77828): Gdk-WARNING **: 23:32:31.949: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
## flatpak install
arthur@laptop:~> flatpak install lact
Looking for matches…
Found ref ‘app/io.github.ilya_zlobintsev.LACT/x86_64/stable’ in remote ‘flathub’ (system).
Use this ref? [Y/n]: y
Skipping: io.github.ilya_zlobintsev.LACT/x86_64/stable is already installed
arthur@laptop:~> flatpak run io.github.ilya_zlobintsev.LACT
2026-06-18T21:17:42.152586Z INFO i18n_embed::requester: Current Locale: [LanguageIdentifier { language: Language(Some("en")), script: None, region: Some(Region("US")), variants: None }]
2026-06-18T21:17:42.152664Z INFO i18n_embed: Selecting translations for domain "lact_gui"
2026-06-18T21:17:42.153117Z INFO i18n_embed::requester: Current Locale: [LanguageIdentifier { language: Language(Some("en")), script: None, region: Some(Region("US")), variants: None }]
2026-06-18T21:17:42.153139Z INFO i18n_embed: Selecting translations for domain "lact_schema"
(process:3): Gdk-WARNING **: 23:17:42.180: Failed to read portal settings: GDBus.Error:org.freedesktop.DBus.Error.NameHasNoOwner: Could not activate remote peer 'org.freedesktop.portal.Desktop': startup job failed
2026-06-18T21:17:42.837706Z INFO lact_client::connection::unix: connecting to service at "/run/lactd.sock"
2026-06-18T21:17:42.837806Z INFO lact_gui::app: could not connect to socket: Permission denied (os error 13)
2026-06-18T21:17:42.837832Z INFO lact_gui::app: using a local daemon
2026-06-18T21:17:42.882667Z INFO lact_daemon::server::handler: Nvidia management library loaded
2026-06-18T21:17:42.886859Z INFO lact_daemon::server::handler: NvAPI library loaded
2026-06-18T21:17:42.909517Z INFO lact_daemon::server::handler: initialized nvidia controller for GPU 10DE:24DD-17AA:3A4F-0000:01:00.0 at '/sys/class/drm/card1/device'
2026-06-18T21:17:42.909558Z INFO lact_daemon::server::handler: initialized 1 GPUs
(lact:3): Adwaita-WARNING **: 23:17:43.033: AdwNavigationPage 0x559ec0739510 is missing a title. To hide a header bar title, consider using AdwHeaderBar:show-title instead.
(lact:3): Gdk-WARNING **: 23:17:43.123: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.151: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.175: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.191: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.192: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.195: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.201: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:43.208: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:53.427: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:53.779: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:54.288: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:54.313: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:54.320: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:17:55.659: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:18:09.625: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
2026-06-18T21:21:30.380510Z ERROR lact_daemon::server::handler: could not apply settings: Could not set clock offset -239 for GPU pstate Zero
Caused by:
the current user does not have permission to perform this operation
2026-06-18T21:21:30.389322Z WARN update_with_view{input=ApplyChanges component="lact_gui::app::AppModel" id="0x7ffc86858e98"}: lact_gui::app: Could not apply settings
Caused by:
0: Got error from daemon, end of client boundary
1: Could not apply settings
2: Could not set clock offset -239 for GPU pstate Zero
3: the current user does not have permission to perform this operation
(lact:3): Gdk-WARNING **: 23:21:32.887: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:21:32.891: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:21:32.900: vkQueuePresentKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
(lact:3): Gdk-WARNING **: 23:21:32.909: vkAcquireNextImageKHR(): A swapchain no longer matches the surface properties exactly, but can still be used to present to the surface successfully. (VK_SUBOPTIMAL_KHR) (1000001003)
I tried both the zypper package and the Flathub package. I am curious what is going wrong. I am running Labwc, but I’m not sure that changes much except for maybe different rendering of GUIs. I did uninstall KDE, using Myrlyn and looking the KDE package patterns carefully, to not uninstall important stuff. At the moment I see there is a permission issue popping up and something to do with swapchains. I’m not sure what I can do to fix this except for maybe going into distrobox and using DistroShelf to set up a distrobox with a systemd init, and installing it there.
The GUI says I should sudo systemctl enable --now lactd, which it seemed to do succesfully.