mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-15 21:15:24 +02:00
Compare commits
4
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
063b5a8032 | ||
|
|
e9b7031bec | ||
|
|
7dce8295c1 | ||
|
|
80d44a3475 |
No files matched your search
@@ -18,6 +18,8 @@ one per merged pull request.
|
|||||||
- **fix: in the app a click on a row only selects it (a second click on the selected row used to flip it, so a click on a switch needed two); a click on the switch itself, or on the BIOS update button, acts at once and selects the row too**
|
- **fix: in the app a click on a row only selects it (a second click on the selected row used to flip it, so a click on a switch needed two); a click on the switch itself, or on the BIOS update button, acts at once and selects the row too**
|
||||||
- **feat: a run that only needs a new GNOME login (the theme, no reboot) ends with a countdown on the done screen ("Restarting GNOME in 10 s", with Restart GNOME now and Cancel) and then logs in again by itself, the counterpart of KDE restarting plasmashell (GNOME Shell on Wayland is the compositor too and can't restart in place). A run that needs a reboot keeps "Restart now" (it loads GNOME fresh): before, the Restart GNOME button was hidden then, and nothing started by itself**
|
- **feat: a run that only needs a new GNOME login (the theme, no reboot) ends with a countdown on the done screen ("Restarting GNOME in 10 s", with Restart GNOME now and Cancel) and then logs in again by itself, the counterpart of KDE restarting plasmashell (GNOME Shell on Wayland is the compositor too and can't restart in place). A run that needs a reboot keeps "Restart now" (it loads GNOME fresh): before, the Restart GNOME button was hidden then, and nothing started by itself**
|
||||||
- **fix: Restart GNOME logs in to GNOME: after the SteamOS conversion the account's session is gaming mode, and the relogin went there (a restart that took a minute: Steam starting in gaming mode). `steamify-gdm-relogin` takes the session to log in to (the one the app runs in) for this login only and puts the account's session, the one the next boot goes to, back once the new session is up**
|
- **fix: Restart GNOME logs in to GNOME: after the SteamOS conversion the account's session is gaming mode, and the relogin went there (a restart that took a minute: Steam starting in gaming mode). `steamify-gdm-relogin` takes the session to log in to (the one the app runs in) for this login only and puts the account's session, the one the next boot goes to, back once the new session is up**
|
||||||
|
- **fix: turning the GNOME theme off also removes the dock's and tiling's settings schemas that were copied to `~/.local/share/glib-2.0/schemas` for GNOME Settings' panel (they stayed behind, for extensions that were gone). Desktop Icons NG and AppIndicator stay: they belong to the SteamOS conversion (the desktop shortcut and Steam's tray icon)**
|
||||||
|
- **fix: turning everything off gives GNOME back what Steamify added for the desktop and tray icons: Desktop Icons NG and AppIndicator (and Extension Manager), which the SteamOS conversion and now the GNOME theme both need. When the last of the two is turned off, the two extensions leave the user's list of enabled extensions and the packages Steamify installed (noted in `gnomeextras.list` before installing, so packages the user had stay) are removed; while the other one is still on they stay, and are enabled again (the theme's undo puts back the list it found). Before, nothing removed them. The theme installs them itself too**
|
||||||
|
|
||||||
## 2.12.0 - 2026-10-13
|
## 2.12.0 - 2026-10-13
|
||||||
|
|
||||||
|
|||||||
@@ -141,3 +141,48 @@ gnome_extensions_enable() {
|
|||||||
gsettings set org.gnome.shell enabled-extensions "$enabled"
|
gsettings set org.gnome.shell enabled-extensions "$enabled"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# The packages behind them. Needed by the SteamOS conversion (the desktop shortcut's icon, Steam's tray icon) and by the
|
||||||
|
# GNOME theme (its desktop and tray icons); a PC that has neither any more gets back what Steamify added.
|
||||||
|
GNOME_EXTRA_PKGS=(gnome-shell-extension-desktop-icons-ng gnome-shell-extension-appindicator extension-manager)
|
||||||
|
|
||||||
|
gnome_extras_note_missing() {
|
||||||
|
# Before they are installed: which of them Steamify brings itself (the others were the user's: they stay), one name per
|
||||||
|
# line in a file of its own, not a state value: kwriteconfig6 (kconfig) is one of the packages installed in that step.
|
||||||
|
# Already noted ones stay noted (they are installed by then, so they aren't "missing" again).
|
||||||
|
local p list="$STATE_DIR/gnomeextras.list"
|
||||||
|
mkdir -p "$STATE_DIR"
|
||||||
|
for p in "${GNOME_EXTRA_PKGS[@]}"; do
|
||||||
|
pacman -Q "$p" >/dev/null 2>&1 || grep -qxF "$p" "$list" 2>/dev/null || echo "$p" >> "$list"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
gnome_extensions_disable() {
|
||||||
|
# The two out of the user's list of enabled extensions again.
|
||||||
|
user_session && command -v gsettings >/dev/null || return 0
|
||||||
|
local uuid enabled
|
||||||
|
for uuid in "${GNOME_EXTENSIONS[@]}"; do
|
||||||
|
enabled="$(gsettings get org.gnome.shell enabled-extensions 2>/dev/null)" || return 0
|
||||||
|
[[ "$enabled" == *"$uuid"* ]] || continue
|
||||||
|
enabled="$(sed -e "s/'$uuid', //; s/, '$uuid'//; s/'$uuid'//" <<<"$enabled")"
|
||||||
|
[[ "$enabled" == "[]" ]] && enabled="@as []"
|
||||||
|
gsettings set org.gnome.shell enabled-extensions "$enabled"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
gnome_extras_release() {
|
||||||
|
# Called when the SteamOS conversion or the GNOME theme was turned off, after its own undoing. While the other one is
|
||||||
|
# still on, the extensions stay (and are enabled again: the theme's undo puts back the list it found). When neither is:
|
||||||
|
# they are disabled, and the packages Steamify installed are removed (a failed removal, because something else needs a
|
||||||
|
# package, keeps it).
|
||||||
|
[[ "$(desktop_kind)" == gnome ]] || return 0
|
||||||
|
if gaming_status || gnometheme_status; then gnome_extensions_enable; return 0; fi
|
||||||
|
gnome_extensions_disable
|
||||||
|
local p list="$STATE_DIR/gnomeextras.list"
|
||||||
|
for p in "${GNOME_EXTRA_PKGS[@]}"; do
|
||||||
|
grep -qxF "$p" "$list" 2>/dev/null || continue
|
||||||
|
pacman -Q "$p" >/dev/null 2>&1 || continue
|
||||||
|
sudo pacman -R --noconfirm "$p" >/dev/null 2>&1 || info "Keeping $p installed (another package needs it)."
|
||||||
|
done
|
||||||
|
rm -f "$list"
|
||||||
|
}
|
||||||
@@ -111,6 +111,15 @@ gnometheme_shell() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
gnometheme_extras_install() {
|
||||||
|
# The desktop icons and the tray icons of the Ubuntu-style look: Desktop Icons NG and AppIndicator (and Extension Manager
|
||||||
|
# for them), the same the SteamOS conversion needs (lib/desktop-shortcut.sh). Not fatal: the theme works without them.
|
||||||
|
gnome_extras_note_missing
|
||||||
|
sudo pacman -S --needed --noconfirm "${GNOME_EXTRA_PKGS[@]}" >/dev/null 2>&1 ||
|
||||||
|
{ warn "Couldn't install Desktop Icons NG and AppIndicator: the desktop and the tray show no icons."; return 0; }
|
||||||
|
gnome_extensions_enable
|
||||||
|
}
|
||||||
|
|
||||||
gnometheme_relogin_needed() {
|
gnometheme_relogin_needed() {
|
||||||
# A GNOME session is running and this run changed the theme: GNOME Shell on Wayland can't be restarted in place, so
|
# A GNOME session is running and this run changed the theme: GNOME Shell on Wayland can't be restarted in place, so
|
||||||
# the new extensions, the dock and the Settings panel show after the user logs in again.
|
# the new extensions, the dock and the Settings panel show after the user logs in again.
|
||||||
@@ -186,6 +195,7 @@ gnometheme_enable() {
|
|||||||
fi
|
fi
|
||||||
{ echo "$GNOME_THEME_MARK"; patch_file steamify-gnome-gtk4.css; } > "$GNOME_THEME_CSS"
|
{ echo "$GNOME_THEME_MARK"; patch_file steamify-gnome-gtk4.css; } > "$GNOME_THEME_CSS"
|
||||||
gnometheme_shell
|
gnometheme_shell
|
||||||
|
gnometheme_extras_install
|
||||||
gnometheme_settings_install
|
gnometheme_settings_install
|
||||||
ok "SteamOS theme for GNOME on (apps pick up the colors when they start again)."
|
ok "SteamOS theme for GNOME on (apps pick up the colors when they start again)."
|
||||||
# (GNOME Shell on Wayland can't restart in place: the app offers "Restart GNOME", which is this.)
|
# (GNOME Shell on Wayland can't restart in place: the app offers "Restart GNOME", which is this.)
|
||||||
@@ -198,6 +208,18 @@ gnometheme_disable() {
|
|||||||
# (The Dock/Desktop Icons/Tiling Settings launchers of earlier prototypes.)
|
# (The Dock/Desktop Icons/Tiling Settings launchers of earlier prototypes.)
|
||||||
rm -f "${XDG_DATA_HOME:-$HOME/.local/share}"/applications/steamify-{dock,icons,tiling}-settings.desktop \
|
rm -f "${XDG_DATA_HOME:-$HOME/.local/share}"/applications/steamify-{dock,icons,tiling}-settings.desktop \
|
||||||
"${XDG_DATA_HOME:-$HOME/.local/share}/gnome-background-properties/steamify-steamos.xml"
|
"${XDG_DATA_HOME:-$HOME/.local/share}/gnome-background-properties/steamify-steamos.xml"
|
||||||
|
# The schemas of the dock and of tiling that were copied next to the user's own for GNOME Settings' panel
|
||||||
|
# (gnometheme_extensions_install): they go with the extensions, or settings schemas of nothing are left behind.
|
||||||
|
local schemas="${XDG_DATA_HOME:-$HOME/.local/share}/glib-2.0/schemas" ext f
|
||||||
|
for ext in ubuntu-dock@ubuntu.com tiling-assistant@ubuntu.com; do
|
||||||
|
for f in "$GNOME_USER_EXTENSIONS/$ext"/schemas/*.gschema.xml; do
|
||||||
|
[[ -e "$f" ]] && rm -f "$schemas/$(basename "$f")"
|
||||||
|
done
|
||||||
|
done
|
||||||
|
# (Also by name: the extension folders may be gone already.)
|
||||||
|
rm -f "$schemas"/org.gnome.shell.extensions.{dash-to-dock,tiling-assistant}.gschema.xml
|
||||||
|
if compgen -G "$schemas/*.gschema.xml" >/dev/null; then glib-compile-schemas "$schemas" 2>/dev/null
|
||||||
|
else rm -f "$schemas/gschemas.compiled"; rmdir "$schemas" 2>/dev/null; fi
|
||||||
rm -rf "$GNOME_USER_EXTENSIONS/steamify-vapor@steamify.github.io" "$GNOME_USER_EXTENSIONS/ubuntu-dock@ubuntu.com" "$GNOME_USER_EXTENSIONS/tiling-assistant@ubuntu.com"
|
rm -rf "$GNOME_USER_EXTENSIONS/steamify-vapor@steamify.github.io" "$GNOME_USER_EXTENSIONS/ubuntu-dock@ubuntu.com" "$GNOME_USER_EXTENSIONS/tiling-assistant@ubuntu.com"
|
||||||
if [[ -f "$STATE_DIR/gnometheme-gtk4.css" ]]; then
|
if [[ -f "$STATE_DIR/gnometheme-gtk4.css" ]]; then
|
||||||
mv -f "$STATE_DIR/gnometheme-gtk4.css" "$GNOME_THEME_CSS"
|
mv -f "$STATE_DIR/gnometheme-gtk4.css" "$GNOME_THEME_CSS"
|
||||||
@@ -215,5 +237,7 @@ gnometheme_disable() {
|
|||||||
info "Keeping GNOME Settings with the Desktop panel (the stock one couldn't be installed)."
|
info "Keeping GNOME Settings with the Desktop panel (the stock one couldn't be installed)."
|
||||||
fi
|
fi
|
||||||
state_clear gnometheme
|
state_clear gnometheme
|
||||||
|
# (After the state is cleared and the stylesheet is gone: the theme itself is off for gnome_extras_release's check.)
|
||||||
|
gnome_extras_release
|
||||||
ok "Previous GNOME look restored."
|
ok "Previous GNOME look restored."
|
||||||
}
|
}
|
||||||
@@ -153,6 +153,7 @@ gaming_disable() {
|
|||||||
os_name_disable
|
os_name_disable
|
||||||
# NVIDIA with single user mode still on: nothing else logs in by itself any more.
|
# NVIDIA with single user mode still on: nothing else logs in by itself any more.
|
||||||
nvidia_present && single_status && single_login_enable
|
nvidia_present && single_status && single_login_enable
|
||||||
|
gnome_extras_release
|
||||||
ok "The PC boots to the normal login screen again (from the next boot)."
|
ok "The PC boots to the normal login screen again (from the next boot)."
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,6 +92,8 @@ install_required_packages() {
|
|||||||
|
|
||||||
if [[ ${#MISSING[@]} -gt 0 ]]; then
|
if [[ ${#MISSING[@]} -gt 0 ]]; then
|
||||||
python_hid_shim_ensure || return 1
|
python_hid_shim_ensure || return 1
|
||||||
|
# (What the GNOME extensions need is noted first: turning everything off removes what Steamify installed.)
|
||||||
|
[[ "$(desktop_kind)" == gnome ]] && gnome_extras_note_missing
|
||||||
info "Installing missing packages: ${MISSING[*]}"
|
info "Installing missing packages: ${MISSING[*]}"
|
||||||
sudo pacman -S --needed --noconfirm "${MISSING[@]}" || { err "Package installation failed."; return 1; }
|
sudo pacman -S --needed --noconfirm "${MISSING[@]}" || { err "Package installation failed."; return 1; }
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in new issue
Block a user