fix: Steam's HDMI-CEC settings reach cecd on a first run

HDMI-CEC runs before Steam Machine support, which installs steamos-manager,
so its configure-cecd unit couldn't be enabled. Link them from Steam Machine
support too.
This commit is contained in:
theupriser committed 2026-09-25 11:13:53 +02:00
1 parent 87162efaa2
commit f7aa2412df
4 files changed
+26 -9

No files matched your search

+8
View File
@@ -5,6 +5,14 @@ All notable changes, per version and per commit. Versions follow
`steamify.sh`. Versions before 0.7.0 were numbered afterwards, `steamify.sh`. Versions before 0.7.0 were numbered afterwards,
one per merged pull request. one per merged pull request.
## 1.1.2 - 2026-09-25
- **fix: Steam's HDMI-CEC settings reach cecd on a first run**
- HDMI-CEC runs before Steam Machine support, which installs
steamos-manager; so steamos-manager's `configure-cecd` unit couldn't be
enabled and cecd ran without Steam's settings. Steam Machine support now
links them once steamos-manager is there.
## 1.1.1 - 2026-09-25 ## 1.1.1 - 2026-09-25
- **perf: Pinned kernel before the LED driver** - **perf: Pinned kernel before the LED driver**
+15 -8
View File
@@ -12,11 +12,18 @@ CEC_PKGS=(cecd cec-audio-control inputattach-cec-units)
# after cecd so it never misses it at login. # after cecd so it never misses it at login.
CEC_ORDER_DROPIN=/etc/systemd/user/steamos-manager.service.d/10-steamify-after-cecd.conf CEC_ORDER_DROPIN=/etc/systemd/user/steamos-manager.service.d/10-steamify-after-cecd.conf
restart_steamos_manager() { cec_link_steamos_manager() {
# steamos-manager only offers its HDMI-CEC interface (Steam's CEC # On a Steam Machine: steamos-manager writes cecd's config from Steam's
# settings) when cecd was there at its start. # CEC settings (its configure-cecd unit, run before cecd), and only
systemctl --user is-active -q steamos-manager.service 2>/dev/null && # offers Steam those settings when cecd was there at its start. Also
systemctl --user restart steamos-manager.service # called by Steam Machine support, which installs steamos-manager after
# this item ran.
pacman -Q steamos-manager >/dev/null 2>&1 || return 0
systemctl --user daemon-reload
systemctl --user enable steamos-manager-configure-cecd.service 2>/dev/null
systemctl --user start steamos-manager-configure-cecd.service 2>/dev/null
systemctl --user restart cecd.service 2>/dev/null
systemctl --user restart steamos-manager.service 2>/dev/null
return 0 return 0
} }
@@ -71,10 +78,9 @@ cec_enable() {
printf '%s\n' "# Written by Steamify: steamos-manager only sees cecd if it runs at its start." \ printf '%s\n' "# Written by Steamify: steamos-manager only sees cecd if it runs at its start." \
'[Unit]' 'After=cecd.service' | sudo tee "$CEC_ORDER_DROPIN" >/dev/null '[Unit]' 'After=cecd.service' | sudo tee "$CEC_ORDER_DROPIN" >/dev/null
systemctl --user daemon-reload systemctl --user daemon-reload
systemctl --user enable steamos-manager-configure-cecd.service 2>/dev/null cec_link_steamos_manager
if compgen -G "/dev/cec*" >/dev/null; then if compgen -G "/dev/cec*" >/dev/null; then
systemctl --user restart cecd.service 2>/dev/null systemctl --user restart cecd.service 2>/dev/null
restart_steamos_manager
ok "HDMI-CEC on ($(cd /dev && echo cec*)). Turn on CEC on your TV too (e.g. Sony: BRAVIA Sync, Samsung: Anynet+, LG: SimpLink)." ok "HDMI-CEC on ($(cd /dev && echo cec*)). Turn on CEC on your TV too (e.g. Sony: BRAVIA Sync, Samsung: Anynet+, LG: SimpLink)."
else else
warn "No CEC device (/dev/cec*) found: your GPU may not support CEC. A USB CEC adapter" warn "No CEC device (/dev/cec*) found: your GPU may not support CEC. A USB CEC adapter"
@@ -95,7 +101,8 @@ cec_disable() {
state_clear cec state_clear cec
fi fi
sudo udevadm control --reload sudo udevadm control --reload
restart_steamos_manager systemctl --user is-active -q steamos-manager.service 2>/dev/null &&
systemctl --user restart steamos-manager.service
ok "HDMI-CEC removed." ok "HDMI-CEC removed."
} }
+2
View File
@@ -395,6 +395,8 @@ EOF
sudo systemctl enable --now inputplumber.service sudo systemctl enable --now inputplumber.service
sudo systemctl enable --now steamos-manager.service sudo systemctl enable --now steamos-manager.service
systemctl --user enable steamos-manager.service 2>/dev/null systemctl --user enable steamos-manager.service 2>/dev/null
# HDMI-CEC ran before this and couldn't link cecd to steamos-manager yet.
cec_status && cec_link_steamos_manager
# Console-like power handling, as SteamOS's powerdevilrc (mains-power # Console-like power handling, as SteamOS's powerdevilrc (mains-power
# part; there is no battery): the power button sleeps instead of showing # part; there is no battery): the power button sleeps instead of showing
+1 -1
View File
@@ -15,7 +15,7 @@
set -uo pipefail set -uo pipefail
# Release version, see CHANGELOG.md. # Release version, see CHANGELOG.md.
VERSION=1.1.1 VERSION=1.1.2
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"