mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e09fe1609b | ||
|
|
9dcac5cf08 | ||
|
|
f91dd1f0b1 | ||
|
|
0411429654 | ||
|
|
1aa5e955fe | ||
|
|
ce75e895c4 |
No files matched your search
@@ -5,6 +5,23 @@ 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.4 - 2026-09-25
|
||||||
|
|
||||||
|
- **fix: No lock screen in single user mode before a restart**
|
||||||
|
- The screen locker only read the new settings at the next login, so the
|
||||||
|
PC still locked after 5 minutes idle until then. Turning single user
|
||||||
|
mode on or off now tells it to reload them right away.
|
||||||
|
|
||||||
|
## 1.1.3 - 2026-09-25
|
||||||
|
|
||||||
|
- **fix: HDMI-CEC settings shown in Steam**
|
||||||
|
- CachyOS's gaming mode script sets `STEAM_ENABLE_CEC=0`, which hides
|
||||||
|
Steam's HDMI-CEC settings (and its CEC volume buttons). HDMI-CEC now adds
|
||||||
|
a drop-in for `steam-launcher.service` that overrides it with
|
||||||
|
`STEAM_ENABLE_CEC=1` (`/etc/steamify/steam-cec.env`).
|
||||||
|
- HDMI-CEC set up by 1.1.0-1.1.2 shows as off and ticked, so a normal run
|
||||||
|
(Enter) adds this.
|
||||||
|
|
||||||
## 1.1.2 - 2026-09-25
|
## 1.1.2 - 2026-09-25
|
||||||
|
|
||||||
- **fix: Steam's HDMI-CEC settings reach cecd on a first run**
|
- **fix: Steam's HDMI-CEC settings reach cecd on a first run**
|
||||||
|
|||||||
@@ -192,6 +192,13 @@ devices found. Also turn on CEC on the TV
|
|||||||
`steamos-manager` writes cecd's settings from Steam's (wake the TV, put it to
|
`steamos-manager` writes cecd's settings from Steam's (wake the TV, put it to
|
||||||
sleep), in `~/.config/cecd/config.d/`, and Steam shows its HDMI-CEC
|
sleep), in `~/.config/cecd/config.d/`, and Steam shows its HDMI-CEC
|
||||||
settings; the wizard restarts steamos-manager so that happens right away.
|
settings; the wizard restarts steamos-manager so that happens right away.
|
||||||
|
CachyOS's gaming mode script (`/usr/lib/steamos/gamescope-session`) sets
|
||||||
|
`STEAM_ENABLE_CEC=0`, which hides those settings; Steam reads the script's
|
||||||
|
variables from `$XDG_RUNTIME_DIR/gamescope-environment`. HDMI-CEC adds a
|
||||||
|
drop-in for `steam-launcher.service`
|
||||||
|
(`/etc/systemd/user/steam-launcher.service.d/10-steamify-cec.conf`) with a
|
||||||
|
second `EnvironmentFile=` (`/etc/steamify/steam-cec.env`,
|
||||||
|
`STEAM_ENABLE_CEC=1`), which overrides it from the next gaming mode start.
|
||||||
|
|
||||||
It's experimental: on SteamOS itself CEC can wake the Steam Machine right
|
It's experimental: on SteamOS itself CEC can wake the Steam Machine right
|
||||||
after it goes to sleep (Samsung TVs,
|
after it goes to sleep (Samsung TVs,
|
||||||
|
|||||||
+19
-4
@@ -11,6 +11,11 @@ CEC_PKGS=(cecd cec-audio-control inputattach-cec-units)
|
|||||||
# steamos-manager checks once, at its start, whether cecd runs; order it
|
# steamos-manager checks once, at its start, whether cecd runs; order it
|
||||||
# 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
|
||||||
|
# CachyOS's gaming mode script exports STEAM_ENABLE_CEC=0, which hides
|
||||||
|
# Steam's HDMI-CEC settings; Steam reads it from the gamescope environment
|
||||||
|
# file. A later EnvironmentFile= overrides it.
|
||||||
|
CEC_STEAM_ENV=/etc/steamify/steam-cec.env
|
||||||
|
CEC_STEAM_DROPIN=/etc/systemd/user/steam-launcher.service.d/10-steamify-cec.conf
|
||||||
|
|
||||||
cec_link_steamos_manager() {
|
cec_link_steamos_manager() {
|
||||||
# On a Steam Machine: steamos-manager writes cecd's config from Steam's
|
# On a Steam Machine: steamos-manager writes cecd's config from Steam's
|
||||||
@@ -27,7 +32,11 @@ cec_link_steamos_manager() {
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
cec_status() { pacman -Q "${CEC_PKGS[@]}" >/dev/null 2>&1; }
|
cec_installed() { pacman -Q "${CEC_PKGS[@]}" >/dev/null 2>&1; }
|
||||||
|
# On = installed and Steam told to show its CEC settings. An install from
|
||||||
|
# before 1.1.3 lacks the latter; the menu then ticks it (see cec_repair).
|
||||||
|
cec_status() { cec_installed && [[ -f "$CEC_STEAM_DROPIN" ]]; }
|
||||||
|
cec_repair() { cec_installed && ! cec_status; }
|
||||||
|
|
||||||
fetch_holo_pkg() {
|
fetch_holo_pkg() {
|
||||||
# fetch_holo_pkg <dir> <package>: download the newest <package> from
|
# fetch_holo_pkg <dir> <package>: download the newest <package> from
|
||||||
@@ -77,11 +86,17 @@ cec_enable() {
|
|||||||
sudo mkdir -p "$(dirname "$CEC_ORDER_DROPIN")"
|
sudo mkdir -p "$(dirname "$CEC_ORDER_DROPIN")"
|
||||||
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
|
||||||
|
sudo mkdir -p "$(dirname "$CEC_STEAM_ENV")" "$(dirname "$CEC_STEAM_DROPIN")"
|
||||||
|
printf '%s\n' "# Written by Steamify: Steam's HDMI-CEC settings in gaming mode." 'STEAM_ENABLE_CEC=1' |
|
||||||
|
sudo tee "$CEC_STEAM_ENV" >/dev/null
|
||||||
|
printf '%s\n' "# Written by Steamify: overrides STEAM_ENABLE_CEC=0 from the gaming mode script." \
|
||||||
|
'[Service]' "EnvironmentFile=-$CEC_STEAM_ENV" | sudo tee "$CEC_STEAM_DROPIN" >/dev/null
|
||||||
systemctl --user daemon-reload
|
systemctl --user daemon-reload
|
||||||
cec_link_steamos_manager
|
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
|
||||||
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*)); Steam shows its settings from the next gaming mode start."
|
||||||
|
info "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"
|
||||||
warn "(e.g. Pulse-Eight) works too. Check again after a restart with: ls /dev/cec*"
|
warn "(e.g. Pulse-Eight) works too. Check again after a restart with: ls /dev/cec*"
|
||||||
@@ -93,8 +108,8 @@ cec_disable() {
|
|||||||
systemctl --user disable --now cecd.service cec-audio-control.socket cec-audio-control.service 2>/dev/null
|
systemctl --user disable --now cecd.service cec-audio-control.socket cec-audio-control.service 2>/dev/null
|
||||||
systemctl --user disable steamos-manager-configure-cecd.service 2>/dev/null
|
systemctl --user disable steamos-manager-configure-cecd.service 2>/dev/null
|
||||||
sudo pacman -Rns --noconfirm "${CEC_PKGS[@]}" 2>/dev/null
|
sudo pacman -Rns --noconfirm "${CEC_PKGS[@]}" 2>/dev/null
|
||||||
sudo rm -f "$CEC_ORDER_DROPIN"
|
sudo rm -f "$CEC_ORDER_DROPIN" "$CEC_STEAM_DROPIN" "$CEC_STEAM_ENV"
|
||||||
sudo rmdir "$(dirname "$CEC_ORDER_DROPIN")" 2>/dev/null
|
sudo rmdir "$(dirname "$CEC_ORDER_DROPIN")" "$(dirname "$CEC_STEAM_DROPIN")" "$(dirname "$CEC_STEAM_ENV")" 2>/dev/null
|
||||||
systemctl --user daemon-reload
|
systemctl --user daemon-reload
|
||||||
if [[ -n "$(state_get cec installed_linuxconsole)" ]]; then
|
if [[ -n "$(state_get cec installed_linuxconsole)" ]]; then
|
||||||
sudo pacman -Rns --noconfirm linuxconsole 2>/dev/null
|
sudo pacman -Rns --noconfirm linuxconsole 2>/dev/null
|
||||||
|
|||||||
@@ -67,6 +67,8 @@ detect_components() {
|
|||||||
if "${c}_status"; then CURRENT[$c]=1; any=true; else CURRENT[$c]=0; fi
|
if "${c}_status"; then CURRENT[$c]=1; any=true; else CURRENT[$c]=0; fi
|
||||||
WANTED[$c]=${CURRENT[$c]}
|
WANTED[$c]=${CURRENT[$c]}
|
||||||
done
|
done
|
||||||
|
# HDMI-CEC set up by an older version: tick it, so a normal run fixes it.
|
||||||
|
component_available cec && cec_repair && WANTED[cec]=1
|
||||||
# Shows the current and newest BIOS version.
|
# Shows the current and newest BIOS version.
|
||||||
bios_available && { bios_lookup_newest; LABEL[bios]="$(bios_label)"; }
|
bios_available && { bios_lookup_newest; LABEL[bios]="$(bios_label)"; }
|
||||||
# First run: preselect the full SteamOS experience (never an action).
|
# First run: preselect the full SteamOS experience (never an action).
|
||||||
|
|||||||
@@ -81,6 +81,13 @@ single_wallet_disable() {
|
|||||||
ok "Your own wallet is back (the empty one is kept as kdewallet.kwl$WALLET_OURS)."
|
ok "Your own wallet is back (the empty one is kept as kdewallet.kwl$WALLET_OURS)."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
reload_screen_locker() {
|
||||||
|
# The screen locker only reads kscreenlockerrc when the session starts:
|
||||||
|
# without this it keeps locking after idling until the next login.
|
||||||
|
qdbus6 org.freedesktop.ScreenSaver /ScreenSaver org.kde.screensaver.configure >/dev/null 2>&1 ||
|
||||||
|
busctl --user call org.freedesktop.ScreenSaver /ScreenSaver org.kde.screensaver configure >/dev/null 2>&1 || true
|
||||||
|
}
|
||||||
|
|
||||||
single_launcher() {
|
single_launcher() {
|
||||||
# Launcher: only Sleep / Restart / Shut Down, no Session dropdown (where
|
# Launcher: only Sleep / Restart / Shut Down, no Session dropdown (where
|
||||||
# Log Out lives). Restricting action/logout instead would also hide
|
# Log Out lives). Restricting action/logout instead would also hide
|
||||||
@@ -114,6 +121,7 @@ single_enable() {
|
|||||||
single_launcher
|
single_launcher
|
||||||
|
|
||||||
restart_plasmashell_if_stopped
|
restart_plasmashell_if_stopped
|
||||||
|
reload_screen_locker
|
||||||
single_wallet_enable
|
single_wallet_enable
|
||||||
ok "Single user: no lock screen, user switching or log out."
|
ok "Single user: no lock screen, user switching or log out."
|
||||||
}
|
}
|
||||||
@@ -143,6 +151,7 @@ single_disable() {
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
restart_plasmashell_if_stopped
|
restart_plasmashell_if_stopped
|
||||||
|
reload_screen_locker
|
||||||
single_wallet_disable
|
single_wallet_disable
|
||||||
ok "KDE's normal lock screen and user switching are back."
|
ok "KDE's normal lock screen and user switching are back."
|
||||||
}
|
}
|
||||||
@@ -351,7 +351,7 @@ kernel_overview() {
|
|||||||
fi
|
fi
|
||||||
echo -e " ${running}${line}"
|
echo -e " ${running}${line}"
|
||||||
done
|
done
|
||||||
cec_status && { echo; echo -e " $(cec_overview)"; }
|
cec_installed && { echo; echo -e " $(cec_overview)"; }
|
||||||
if [[ "$leds" == true ]]; then
|
if [[ "$leds" == true ]]; then
|
||||||
local loaded="$miss" nodes
|
local loaded="$miss" nodes
|
||||||
lsmod | grep -q '^leds_valve' && loaded="$mark"
|
lsmod | grep -q '^leds_valve' && loaded="$mark"
|
||||||
|
|||||||
+1
-1
@@ -15,7 +15,7 @@
|
|||||||
set -uo pipefail
|
set -uo pipefail
|
||||||
|
|
||||||
# Release version, see CHANGELOG.md.
|
# Release version, see CHANGELOG.md.
|
||||||
VERSION=1.1.2
|
VERSION=1.1.4
|
||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user