v0.1.14 — change Gaming Mode launch keybind from Super+Shift+S to Super+Shift+G
Super+Shift+S collided with other uses; move the enter-Gaming-Mode bind to Super+Shift+G. Updates the Hyprland bindd line, all comments/messages, and the README usage references. Adds in-place migration so re-running the installer rewrites an existing Super+Shift+S bind to Super+Shift+G (the idempotency check previously skipped because the switch-to-gaming line already existed). Also syncs the README version header (was 0.1.9) to match. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d45f81be36
commit
0844f02a8c
2 changed files with 24 additions and 18 deletions
12
README.md
12
README.md
|
|
@ -1,6 +1,6 @@
|
||||||
# DeckShift
|
# DeckShift
|
||||||
|
|
||||||
**Version 0.1.9** — Steam Deck-style gaming mode for [Omarchy](https://omarchy.com). Press `Super+Shift+S` to enter Gaming Mode (Steam Big Picture in Gamescope), `Super+Shift+R` to return to your desktop.
|
**Version 0.1.14** — Steam Deck-style gaming mode for [Omarchy](https://omarchy.com). Press `Super+Shift+G` to enter Gaming Mode (Steam Big Picture in Gamescope), `Super+Shift+R` to return to your desktop.
|
||||||
|
|
||||||
Lineage: forked from [Super-Shift-S-Omarchy-Deck-Mode](https://git.no-signal.uk/nosignal/Super-Shift-S-Omarchy-Deck-Mode), briefly renamed Omarchy Deck, then renamed DeckShift.
|
Lineage: forked from [Super-Shift-S-Omarchy-Deck-Mode](https://git.no-signal.uk/nosignal/Super-Shift-S-Omarchy-Deck-Mode), briefly renamed Omarchy Deck, then renamed DeckShift.
|
||||||
|
|
||||||
|
|
@ -108,7 +108,7 @@ After install, launch `DeckShift Settings` from Walker (or run `deckshift-settin
|
||||||
|
|
||||||
The `[hybrid-*]` options only appear when the relevant GPU pair is detected.
|
The `[hybrid-*]` options only appear when the relevant GPU pair is detected.
|
||||||
|
|
||||||
The TUI launches as a floating window via Omarchy's `TUI.float` pattern. Selections are **buffered** — nothing is written to disk until you pick **Save and exit**. **Cancel** discards unsaved changes. Saved changes apply next time you enter Gaming Mode (`Super+Shift+S`).
|
The TUI launches as a floating window via Omarchy's `TUI.float` pattern. Selections are **buffered** — nothing is written to disk until you pick **Save and exit**. **Cancel** discards unsaved changes. Saved changes apply next time you enter Gaming Mode (`Super+Shift+G`).
|
||||||
|
|
||||||
## What It Does
|
## What It Does
|
||||||
|
|
||||||
|
|
@ -148,13 +148,13 @@ After install, open `DeckShift Settings` from Walker and pick:
|
||||||
- A resolution / refresh rate
|
- A resolution / refresh rate
|
||||||
- A GPU mode — for hybrid laptops, prefer `[hybrid-nvidia]` or `[hybrid-amd]` over the direct options
|
- A GPU mode — for hybrid laptops, prefer `[hybrid-nvidia]` or `[hybrid-amd]` over the direct options
|
||||||
|
|
||||||
Save, then `Super+Shift+S` to launch Gaming Mode.
|
Save, then `Super+Shift+G` to launch Gaming Mode.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
| Action | How |
|
| Action | How |
|
||||||
|---|---|
|
|---|---|
|
||||||
| Enter Gaming Mode | `Super + Shift + S` |
|
| Enter Gaming Mode | `Super + Shift + G` |
|
||||||
| Return to Desktop | `Super + Shift + R` *(global keybind monitor catches it inside Gamescope)* |
|
| Return to Desktop | `Super + Shift + R` *(global keybind monitor catches it inside Gamescope)* |
|
||||||
| Return to Desktop (alternative) | Steam → Power → **Switch to Desktop** |
|
| Return to Desktop (alternative) | Steam → Power → **Switch to Desktop** |
|
||||||
| Open settings | Walker → `DeckShift Settings`, or run `deckshift-settings` |
|
| Open settings | Walker → `DeckShift Settings`, or run `deckshift-settings` |
|
||||||
|
|
@ -281,7 +281,7 @@ Package installs use Omarchy's `omarchy-pkg-add` (idempotent, double-checks pacm
|
||||||
| Path | Purpose |
|
| Path | Purpose |
|
||||||
|---|---|
|
|---|---|
|
||||||
| `~/.config/environment.d/gamescope-session-plus.conf` | Gamescope session config (display + GPU keys) — managed via the Settings TUI |
|
| `~/.config/environment.d/gamescope-session-plus.conf` | Gamescope session config (display + GPU keys) — managed via the Settings TUI |
|
||||||
| `~/.config/hypr/bindings.conf` | Hyprland keybind for `Super+Shift+S` (appended) |
|
| `~/.config/hypr/bindings.conf` | Hyprland keybind for `Super+Shift+G` (appended) |
|
||||||
| `~/.cache/deckshift/saved-state` | Pre-Gaming-Mode CPU governor + power profile (created on entry, cleaned up on exit) |
|
| `~/.cache/deckshift/saved-state` | Pre-Gaming-Mode CPU governor + power profile (created on entry, cleaned up on exit) |
|
||||||
|
|
||||||
#### Settings TUI
|
#### Settings TUI
|
||||||
|
|
@ -297,7 +297,7 @@ Package installs use Omarchy's `omarchy-pkg-add` (idempotent, double-checks pacm
|
||||||
```
|
```
|
||||||
Desktop Mode (Hyprland)
|
Desktop Mode (Hyprland)
|
||||||
│
|
│
|
||||||
├─ Super+Shift+S pressed
|
├─ Super+Shift+G pressed
|
||||||
│ └─ switch-to-gaming runs:
|
│ └─ switch-to-gaming runs:
|
||||||
│ ├─ Masks suspend targets (prevents sleep during switch)
|
│ ├─ Masks suspend targets (prevents sleep during switch)
|
||||||
│ ├─ Updates SDDM config to gaming session
|
│ ├─ Updates SDDM config to gaming session
|
||||||
|
|
|
||||||
30
deckshift.sh
30
deckshift.sh
|
|
@ -19,7 +19,7 @@
|
||||||
# - Installing all Steam/gaming dependencies and GPU drivers
|
# - Installing all Steam/gaming dependencies and GPU drivers
|
||||||
# - Configuring NVIDIA kernel parameters (nvidia-drm.modeset=1)
|
# - Configuring NVIDIA kernel parameters (nvidia-drm.modeset=1)
|
||||||
# - Setting up session switching between Hyprland and Gamescope via SDDM
|
# - Setting up session switching between Hyprland and Gamescope via SDDM
|
||||||
# - Creating keybinds (Super+Shift+S to enter, Super+Shift+R to exit)
|
# - Creating keybinds (Super+Shift+G to enter, Super+Shift+R to exit)
|
||||||
# - Configuring NetworkManager handoff (iwd <-> NM) for Steam network access
|
# - Configuring NetworkManager handoff (iwd <-> NM) for Steam network access
|
||||||
# - Setting up performance tuning (CPU governor, GPU power, kernel sysctl)
|
# - Setting up performance tuning (CPU governor, GPU power, kernel sysctl)
|
||||||
# - Auto-mounting external drives with Steam libraries
|
# - Auto-mounting external drives with Steam libraries
|
||||||
|
|
@ -34,7 +34,7 @@ set -Euo pipefail
|
||||||
# -u: Treat unset variables as errors (catches typos in variable names)
|
# -u: Treat unset variables as errors (catches typos in variable names)
|
||||||
# -o pipefail: A pipeline fails if ANY command in it fails, not just the last one
|
# -o pipefail: A pipeline fails if ANY command in it fails, not just the last one
|
||||||
|
|
||||||
DECKSHIFT_VERSION="0.1.13"
|
DECKSHIFT_VERSION="0.1.14"
|
||||||
|
|
||||||
# Resolve the directory this script lives in so we can find sibling files like
|
# Resolve the directory this script lives in so we can find sibling files like
|
||||||
# bin/deckshift-settings and applications/deckshift-settings.desktop when
|
# bin/deckshift-settings and applications/deckshift-settings.desktop when
|
||||||
|
|
@ -1322,7 +1322,7 @@ setup_settings_tui() {
|
||||||
# (Gamescope + Steam Big Picture).
|
# (Gamescope + Steam Big Picture).
|
||||||
#
|
#
|
||||||
# The switching mechanism works through SDDM (the display/login manager):
|
# The switching mechanism works through SDDM (the display/login manager):
|
||||||
# 1. User presses Super+Shift+S in Hyprland
|
# 1. User presses Super+Shift+G in Hyprland
|
||||||
# 2. switch-to-gaming script updates SDDM config to point to Gaming session
|
# 2. switch-to-gaming script updates SDDM config to point to Gaming session
|
||||||
# 3. SDDM restarts and auto-logs into the Gaming Mode session
|
# 3. SDDM restarts and auto-logs into the Gaming Mode session
|
||||||
# 4. gamescope-session-nm-wrapper starts performance tuning, NetworkManager,
|
# 4. gamescope-session-nm-wrapper starts performance tuning, NetworkManager,
|
||||||
|
|
@ -1337,7 +1337,7 @@ setup_settings_tui() {
|
||||||
# - Steam library auto-mount daemon
|
# - Steam library auto-mount daemon
|
||||||
# - SDDM session entry and config
|
# - SDDM session entry and config
|
||||||
# - Polkit and sudoers rules for passwordless operation
|
# - Polkit and sudoers rules for passwordless operation
|
||||||
# - Hyprland keybind for Super+Shift+S
|
# - Hyprland keybind for Super+Shift+G
|
||||||
#
|
#
|
||||||
# It also installs ChimeraOS's gamescope-session packages from AUR, which
|
# It also installs ChimeraOS's gamescope-session packages from AUR, which
|
||||||
# provide the base session framework that the Steam Deck uses.
|
# provide the base session framework that the Steam Deck uses.
|
||||||
|
|
@ -1458,7 +1458,7 @@ setup_session_switching() {
|
||||||
|
|
||||||
echo " This will:"
|
echo " This will:"
|
||||||
echo " - Install gamescope-session-git and gamescope-session-steam-git from AUR"
|
echo " - Install gamescope-session-git and gamescope-session-steam-git from AUR"
|
||||||
echo " - Configure Super+Shift+S to switch to Gaming Mode"
|
echo " - Configure Super+Shift+G to switch to Gaming Mode"
|
||||||
echo " - Configure Steam's 'Exit to Desktop' to return to Hyprland"
|
echo " - Configure Steam's 'Exit to Desktop' to return to Hyprland"
|
||||||
echo ""
|
echo ""
|
||||||
read -p "Set up session switching? [Y/n]: " -n 1 -r
|
read -p "Set up session switching? [Y/n]: " -n 1 -r
|
||||||
|
|
@ -2330,7 +2330,7 @@ OS_SESSION_SELECT
|
||||||
sudo chmod +x "$os_session_select"
|
sudo chmod +x "$os_session_select"
|
||||||
info "Created $os_session_select"
|
info "Created $os_session_select"
|
||||||
|
|
||||||
# switch-to-gaming — Called when Super+Shift+S is pressed in Hyprland
|
# switch-to-gaming — Called when Super+Shift+G is pressed in Hyprland
|
||||||
#
|
#
|
||||||
# This script handles the transition from Desktop to Gaming Mode:
|
# This script handles the transition from Desktop to Gaming Mode:
|
||||||
# 1. Masks suspend targets — prevents the system from sleeping when the
|
# 1. Masks suspend targets — prevents the system from sleeping when the
|
||||||
|
|
@ -2772,14 +2772,20 @@ SUDOERS_SWITCH
|
||||||
|
|
||||||
if [[ ! -f "$hypr_bindings_conf" ]]; then
|
if [[ ! -f "$hypr_bindings_conf" ]]; then
|
||||||
warn "bindings.conf not found at $hypr_bindings_conf - skipping keybind setup"
|
warn "bindings.conf not found at $hypr_bindings_conf - skipping keybind setup"
|
||||||
warn "You can manually add: bindd = SUPER SHIFT, S, Gaming Mode, exec, /usr/local/bin/switch-to-gaming"
|
warn "You can manually add: bindd = SUPER SHIFT, G, Gaming Mode, exec, /usr/local/bin/switch-to-gaming"
|
||||||
else
|
else
|
||||||
if grep -q "switch-to-gaming" "$hypr_bindings_conf" 2>/dev/null; then
|
if grep -q "switch-to-gaming" "$hypr_bindings_conf" 2>/dev/null; then
|
||||||
info "Gaming Mode keybind already exists in bindings.conf"
|
# Migrate the legacy Super+Shift+S bind from older installs to Super+Shift+G.
|
||||||
|
if grep -qE '^bindd = SUPER SHIFT, S, Gaming Mode, exec, /usr/local/bin/switch-to-gaming' "$hypr_bindings_conf" 2>/dev/null; then
|
||||||
|
sed -i 's|^bindd = SUPER SHIFT, S, Gaming Mode, exec, /usr/local/bin/switch-to-gaming|bindd = SUPER SHIFT, G, Gaming Mode, exec, /usr/local/bin/switch-to-gaming|' "$hypr_bindings_conf"
|
||||||
|
info "Migrated Gaming Mode keybind from Super+Shift+S to Super+Shift+G"
|
||||||
|
else
|
||||||
|
info "Gaming Mode keybind already exists in bindings.conf"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
cat >> "$hypr_bindings_conf" << 'HYPR_GAMING'
|
cat >> "$hypr_bindings_conf" << 'HYPR_GAMING'
|
||||||
|
|
||||||
bindd = SUPER SHIFT, S, Gaming Mode, exec, /usr/local/bin/switch-to-gaming
|
bindd = SUPER SHIFT, G, Gaming Mode, exec, /usr/local/bin/switch-to-gaming
|
||||||
HYPR_GAMING
|
HYPR_GAMING
|
||||||
info "Added Gaming Mode keybind to bindings.conf"
|
info "Added Gaming Mode keybind to bindings.conf"
|
||||||
fi
|
fi
|
||||||
|
|
@ -2835,7 +2841,7 @@ HYPR_GAMING
|
||||||
echo "================================================================"
|
echo "================================================================"
|
||||||
echo ""
|
echo ""
|
||||||
echo " Usage:"
|
echo " Usage:"
|
||||||
echo " - Press Super+Shift+S in Hyprland to switch to Gaming Mode"
|
echo " - Press Super+Shift+G in Hyprland to switch to Gaming Mode"
|
||||||
echo " - Press Super+Shift+R in Gaming Mode to return to Hyprland"
|
echo " - Press Super+Shift+R in Gaming Mode to return to Hyprland"
|
||||||
echo " - (Steam's Power > Exit to Desktop also works as fallback)"
|
echo " - (Steam's Power > Exit to Desktop also works as fallback)"
|
||||||
echo ""
|
echo ""
|
||||||
|
|
@ -2983,7 +2989,7 @@ verify_installation() {
|
||||||
local hypr_bindings="$HOME/.config/hypr/bindings.conf"
|
local hypr_bindings="$HOME/.config/hypr/bindings.conf"
|
||||||
if [[ -f "$hypr_bindings" ]]; then
|
if [[ -f "$hypr_bindings" ]]; then
|
||||||
if grep -q "switch-to-gaming" "$hypr_bindings" 2>/dev/null; then
|
if grep -q "switch-to-gaming" "$hypr_bindings" 2>/dev/null; then
|
||||||
echo " ✓ Gaming Mode keybind (Super+Shift+S) configured"
|
echo " ✓ Gaming Mode keybind (Super+Shift+G) configured"
|
||||||
else
|
else
|
||||||
echo " ✗ Gaming Mode keybind NOT found in bindings.conf"
|
echo " ✗ Gaming Mode keybind NOT found in bindings.conf"
|
||||||
all_ok=false
|
all_ok=false
|
||||||
|
|
@ -3233,7 +3239,7 @@ execute_setup() {
|
||||||
echo ""
|
echo ""
|
||||||
echo " Dependencies, GPU configuration, and session switching are ready."
|
echo " Dependencies, GPU configuration, and session switching are ready."
|
||||||
echo ""
|
echo ""
|
||||||
echo " To switch to Gaming Mode: Press Super+Shift+S"
|
echo " To switch to Gaming Mode: Press Super+Shift+G"
|
||||||
echo " To return to Desktop: Press Super+Shift+R"
|
echo " To return to Desktop: Press Super+Shift+R"
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue