Commit graph

84 commits

Author SHA1 Message Date
Vicki Pfau
35c90bf55a manager/user: Only expose ScreenReader0 if /usr/bin/orca exists 2025-06-27 17:15:12 -07:00
Vicki Pfau
f65b49c3de Merge branch 'endrift/sysfs-writer' into 'master'
Add sysfs writer task

See merge request holo/steamos-manager!11
2025-06-18 16:30:33 -07:00
Jeremy Whiting
42e89ef342 Draft: screenreader: Add TriggerAction functionality.
Add functionality for various actions by sending left control key
press and release events.
Also add to steamosctl trigger_action support.
NOTE: Stop Speaking action should be changed to use orca's new dbus
api once that's packaged.
2025-06-17 09:18:22 -06:00
Vicki Pfau
0b3c66e924 manager: Set up signal relay service, use it for MaxChargeLevelChanged 2025-06-12 22:22:56 -07:00
Vicki Pfau
631f30bc94 Merge branch 'endrift/cleanup' into 'master'
hardware: Move DeviceConfig and allow for auto-matching based on file contents

See merge request holo/steamos-manager!10
2025-06-12 18:46:29 -07:00
Jeremy Whiting
2d91104c66 screenreader: Use uinput to send keyboard events.
Orca has no API, so use keyboard events to trigger specific actions
like sticking to focus mode, browse mode, etc.
Also add new get and set methods to steamosctl for mode.
2025-06-12 09:48:09 -06:00
Vicki Pfau
dd9b000e4b hardware: Move DeviceConfig and allow for auto-matching based on file contents 2025-06-11 18:54:28 -07:00
Vicki Pfau
e3ce1853e9 platform: Split out DeviceConfig from PlatformConfig 2025-06-11 15:41:43 -07:00
Vicki Pfau
d5d2d2c9a3 platform: Improve validation of platform config items 2025-06-10 18:33:53 -07:00
Vicki Pfau
d62b515c48 manager/user: Fix hang when setting power profile if TDP management is disabled 2025-06-10 15:29:01 -07:00
Jeremy Whiting
d6d8b0e336 screenreader: Change to ScreenReader0 since it's not stable yet.
Added a note to the xml stating we will bump to ScreenReader1 once
the API becomes stable.
2025-05-28 20:17:41 -06:00
Vicki Pfau
7d838ae6f6 Fix review comments, add range testing 2025-05-28 20:16:23 -06:00
Jeremy Whiting
4fd9ccdd2e Add screenreader support to steamos-manager.
Add ScreenReader1 interface to xml to enable/disable using screen
reader.
Implements getting and setting pitch, rate, volume, enabled.
Restarts orca when any of the above properties are changed.
Load values from orca user-settings.conf
Use systemd unit to start/stop/restart orca.
2025-05-28 20:16:23 -06:00
Vicki Pfau
88c2a0af96 daemon/user: Fix ObjectManager location and initialization 2025-05-16 18:22:31 -07:00
Vicki Pfau
ea4a6d0764 Run cargo fmt 2025-05-15 17:53:24 -07:00
Vicki Pfau
fcdcd435d6 manager/user: Register ObjectManager 2025-05-15 17:51:50 -07:00
Vicki Pfau
4eeffda8ef power: Replace LenovoWmiTdpLimiter with FirmwareAttributeTdpLimiter
It seems several devices use a firmware-attribute interface to do TDP limiting.
This turns LenovoWmiTdpLimiter into a generic interface that can be configured
to use an arbitrary firmware-attribute name and check for an arbitrary power
profile.
2025-05-13 18:03:02 -07:00
Vicki Pfau
752fe5df6a clippy: Fix warnings 2025-05-13 16:36:19 -07:00
Vicki Pfau
0f156ef49f manager/user: Emit signals when we change properties 2025-05-08 17:48:38 -07:00
Vicki Pfau
65a81cee47 power: Add LowPowerMode1 service
Add a new service to limit the platform TDP while handles are still held. This
feature is currently limited to the Steam Deck.
2025-04-30 18:53:08 -07:00
Vicki Pfau
c8eb661bec manager/user: Dynamically add or remove the TdpLimit1 interface if needed 2025-04-11 18:43:30 -07:00
Vicki Pfau
a3125be955 power: Refactor TDP limiting to allow for different backends 2025-04-09 17:50:36 -07:00
Vicki Pfau
45edfe2c7c power: Add interface for accessing platform-profiles 2025-04-09 17:50:33 -07:00
Vicki Pfau
93a78041fb power: Change range values from tuple to RangeInclusive 2025-03-20 17:34:57 -07:00
Vicki Pfau
2555b95258 manager/user: Expose device and variant info over DBus 2025-03-13 16:30:08 -07:00
Vicki Pfau
7d8bd602a7 hardware: Split out device type detection, add initial identification of Legion Go S 2025-03-11 17:35:52 -07:00
Vicki Pfau
af61f76b89 platform: Add flag for testing validity of executable in root remote 2025-02-25 21:44:58 -08:00
Vicki Pfau
485ee209e2 manager/user: Check some validity of config before creating interfaces 2025-02-25 01:04:47 -08:00
Vicki Pfau
9ab3f939a0 manager/user: Move adding interfaces that need a config to a separate function 2025-02-25 01:04:08 -08:00
Vicki Pfau
c19a488b62 manager: Hold onto an extra JobManagerMessage sender
Currently the only interfaces that use the job manager are Deck-specific, which
will cause the channel to be dropped early on other hardware. Since it exits
early, the manager sees this as an error condition and exits with a failure
status. By keeping an unused reference to it we can prevent it from being
dropped early.
2025-02-17 19:18:47 -08:00
Vicki Pfau
dedbfd4207 manager: Remove HardwareCurrentlySupported
This value only makes sense for Steam, and since Steam can query it directly,
this removes it from the DBus interface.
2025-02-05 18:11:32 -08:00
Vicki Pfau
6596176836 manager/user: Fix set/get_wifi_backend 2025-01-21 18:53:14 -08:00
Vicki Pfau
91890e5948 manager/user: Add BatteryChargeLimit1 interface (#12) 2025-01-21 17:31:51 -08:00
Vicki Pfau
54351414fa wifi: Add method for generating and capturing an ath11k dump 2025-01-21 16:45:33 -08:00
Vicki Pfau
7b7afffc46 manager: Expose new CaptureDebugTraceOutput method 2025-01-21 16:45:33 -08:00
Vicki Pfau
a2af4d1bc5 Cargo.toml: Update to zbus 5 2024-11-13 23:27:19 -08:00
Jeremy Whiting
f7bfdd7d7a Add steamos-reset-tool usage.
Instead of using steamos-factory-reset-config which resets both
the OS and the user home partitions use steamos-reset-tool which
has arguments for each or resetting both.
2024-10-24 12:55:53 -06:00
Jeremy Whiting
a386aaafb5 Fix new warning from upcoming deprecation.
Since new rustc warns that ! will not decay into () anymore, we need
to help the compiler know what types it will be getting from method!
macro in 2 places where we call it from set_wifi_debug_mode.

https://doc.rust-lang.org/edition-guide/rust-2024/never-type-fallback.html
has information about the new warning.

Here's the warning we hit without this change:

warning: this function depends on never type fallback being `()`
   --> src/manager/user.rs:189:5
    |
189 | /     async fn set_wifi_debug_mode(
190 | |         &self,
191 | |         mode: u32,
192 | |         buffer_size: u32,
193 | |         #[zbus(signal_context)] ctx: SignalContext<'_>,
194 | |     ) -> fdo::Result<()> {
    | |________________________^
    |
    = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
    = note: for more information, see issue #123748 <https://github.com/rust-lang/rust/issues/123748>
    = help: specify the types explicitly
note: in edition 2024, the requirement `!: zbus::zvariant::Type` will fail
   --> src/manager/user.rs:40:14
    |
40  |             .call($method, &($($args,)*))
    |              ^^^^
...
195 |         method!(self, "SetWifiDebugMode", mode, buffer_size)?;
    |         ---------------------------------------------------- in this macro invocation
    = note: `#[warn(dependency_on_unit_never_type_fallback)]` on by default
    = note: this warning originates in the macro `method` (in Nightly builds, run with -Z macro-backtrace for more info)
2024-10-07 18:36:59 -06:00
Vicki Pfau
111498513b Run cargo fmt 2024-09-09 20:05:02 -07:00
Vicki Pfau
fb6e86d5e8 Fix some clippy warnings 2024-09-09 20:00:53 -07:00
Vicki Pfau
bdd095860e power: Allow returned GPU clocks range to overridden by a platform config 2024-09-06 16:35:18 -07:00
Vicki Pfau
7c3f2baa05 power: Expose TDP limit range as platform config 2024-09-06 16:35:18 -07:00
Vicki Pfau
127eab4863 Fix some clippy::pedantic warnings 2024-08-30 16:52:17 -07:00
Vicki Pfau
2d4647a918 manager/user: Rename GpuTdpLimit1 to TdpLimit1 2024-08-29 01:48:06 +00:00
Vicki Pfau
39ea3b0d41 Clean up flaky tests to be more reliable 2024-08-24 00:32:56 -07:00
Vicki Pfau
95e4e30fdc manager/user: Only enable WifiPowerManagement1 if a wireless interface exists 2024-08-22 03:27:17 +00:00
Vicki Pfau
4f9f0f8e1d manager/user: Only enable WifiDebug1 if running on Galileo 2024-08-22 03:27:17 +00:00
Vicki Pfau
1de2109c6d manager/user: Only enable HdmiCec1 if plasma-remotecontrollers.service exists 2024-08-22 03:27:17 +00:00
Vicki Pfau
7dc0d0969d hardware: Let fan control be configured and disabled 2024-08-22 03:27:17 +00:00
Vicki Pfau
92235d0f47 manager/user: Remove GetAlsIntegrationTimeFileDescriptor for now
It is currently unused and unknown if it will be used. We can add it back later
if we need to, but cannot remove it after stabilizing the API, so let's just
remove it for now
2024-08-20 20:12:08 -07:00