mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-15 21:15:24 +02:00
Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
34babe8d47 | ||
|
|
b67c15b992 | ||
|
|
dbc0532f64 | ||
|
|
18d3659d36 | ||
|
|
916c3b67d5 | ||
|
|
0151b66144 | ||
|
|
200c15b257 | ||
|
|
063b5a8032 |
No files matched your search
@@ -19,6 +19,9 @@ one per merged pull request.
|
||||
- **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: 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**
|
||||
- **feat: the GNOME theme puts the dock at the bottom of the screen (Ubuntu's own default is the left); it can still be moved in GNOME Settings > GNOME Desktop (the Dock panel)**
|
||||
- **feat: the GNOME theme puts the desktop icons at the top right (Desktop Icons NG's start corner, like Ubuntu and macOS) and clears the saved positions of Steamify's own launchers (Return to Gaming Mode, Steamify, Steam) so they are placed from there, in name order; the user's own files keep theirs. Turning the theme off puts the start corner back**
|
||||
|
||||
## 2.12.0 - 2026-10-13
|
||||
|
||||
|
||||
@@ -141,3 +141,48 @@ gnome_extensions_enable() {
|
||||
gsettings set org.gnome.shell enabled-extensions "$enabled"
|
||||
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"
|
||||
}
|
||||
+30
-3
@@ -91,16 +91,20 @@ gnometheme_shell() {
|
||||
# The top bar and dash colors (the Steamify Vapor extension), and the dock beside it.
|
||||
gnometheme_extensions_install
|
||||
gnometheme_backgrounds
|
||||
# Like Ubuntu's dock: on the left, always there; its look is Ubuntu's own, left as it is. Its shape (a
|
||||
# panel to the screen edge or floating) is left to the user: Dock Settings.
|
||||
# Ubuntu's dock, always there, at the bottom (Ubuntu puts it on the left; on a wide screen the bottom is where the eye
|
||||
# and the pointer are); its look is Ubuntu's own, left as it is. Its shape (a panel to the screen edge or floating)
|
||||
# is left to the user: Dock Settings.
|
||||
local d=org.gnome.shell.extensions.dash-to-dock
|
||||
gset gnometheme $d dock-position "'LEFT'" || true
|
||||
gset gnometheme $d dock-position "'BOTTOM'" || true
|
||||
gset gnometheme $d dock-fixed true || true
|
||||
gset gnometheme $d running-indicator-style "'DOTS'" || true
|
||||
gset gnometheme $d click-action "'minimize-or-previews'" || true
|
||||
# Trash is in the dock, not on the desktop (Ubuntu does the same).
|
||||
gset gnometheme org.gnome.shell.extensions.ding show-trash false || true
|
||||
gset gnometheme $d show-trash true || true
|
||||
# Desktop icons from the top right, like Ubuntu's and macOS's desktops (Desktop Icons NG fills from the corner it starts at).
|
||||
gset gnometheme org.gnome.shell.extensions.ding start-corner "'top-right'" || true
|
||||
gnometheme_desktop_icons_reset
|
||||
local uuid enabled
|
||||
for uuid in "${GNOME_THEME_EXTENSIONS[@]}"; do
|
||||
enabled="$(gs get org.gnome.shell enabled-extensions 2>/dev/null)" || return 0
|
||||
@@ -111,6 +115,26 @@ gnometheme_shell() {
|
||||
done
|
||||
}
|
||||
|
||||
gnometheme_desktop_icons_reset() {
|
||||
# Steamify's own launchers on the desktop were placed (and their spot saved) from the left corner: without a saved
|
||||
# position Desktop Icons NG puts them where its start corner says, by name. Only these, never the user's files.
|
||||
local dir f
|
||||
dir="$(xdg-user-dir DESKTOP 2>/dev/null || echo "$HOME/Desktop")"
|
||||
for f in "$dir/Return to Gaming Mode.desktop" "$dir/io.github.theupriser.Steamify.desktop" "$dir/steam.desktop"; do
|
||||
[[ -e "$f" ]] && gio set -t unset "$f" metadata::nautilus-icon-position 2>/dev/null
|
||||
done
|
||||
return 0
|
||||
}
|
||||
|
||||
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() {
|
||||
# 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.
|
||||
@@ -186,6 +210,7 @@ gnometheme_enable() {
|
||||
fi
|
||||
{ echo "$GNOME_THEME_MARK"; patch_file steamify-gnome-gtk4.css; } > "$GNOME_THEME_CSS"
|
||||
gnometheme_shell
|
||||
gnometheme_extras_install
|
||||
gnometheme_settings_install
|
||||
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.)
|
||||
@@ -227,5 +252,7 @@ gnometheme_disable() {
|
||||
info "Keeping GNOME Settings with the Desktop panel (the stock one couldn't be installed)."
|
||||
fi
|
||||
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."
|
||||
}
|
||||
@@ -153,6 +153,7 @@ gaming_disable() {
|
||||
os_name_disable
|
||||
# NVIDIA with single user mode still on: nothing else logs in by itself any more.
|
||||
nvidia_present && single_status && single_login_enable
|
||||
gnome_extras_release
|
||||
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
|
||||
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[*]}"
|
||||
sudo pacman -S --needed --noconfirm "${MISSING[@]}" || { err "Package installation failed."; return 1; }
|
||||
else
|
||||
|
||||
Reference in new issue
Block a user