mirror of
https://github.com/theupriser/steamify-cachyos.git
synced 2026-10-03 17:41:58 +02:00
feat: Wizard shortcut on the desktop and in the launcher
- Menu item: desktop icon + launcher entry that run the newest release in Konsole. - Icon: Valve's return icon with a gear (assets/steam-gaming-settings.svg), published with each release. - Desktop files are written already executable, so Plasma runs them. - VERSION 0.9.0.
This commit is contained in:
1 parent
528f46a35e
commit
0607be86ac
8 files changed
+336
-9
No files matched your search
@@ -72,7 +72,7 @@ jobs:
|
||||
|
||||
## Changes in v$VERSION
|
||||
$changes"
|
||||
gh release create "v$VERSION" dist/setup-gamescope-boot.sh \
|
||||
gh release create "v$VERSION" dist/setup-gamescope-boot.sh assets/steam-gaming-settings.svg \
|
||||
--target "$GITHUB_SHA" --title "v$VERSION" --notes "$notes" --latest
|
||||
|
||||
# "latest" follows the newest version tag, for the older install URL
|
||||
@@ -85,4 +85,4 @@ jobs:
|
||||
else
|
||||
gh release create latest --title "Latest (v$VERSION)" --notes "$latest_notes" --latest=false
|
||||
fi
|
||||
gh release upload latest dist/setup-gamescope-boot.sh --clobber
|
||||
gh release upload latest dist/setup-gamescope-boot.sh assets/steam-gaming-settings.svg --clobber
|
||||
@@ -149,6 +149,13 @@ gamescope and the Plasma desktop. Primary target: the Valve Steam Machine
|
||||
- The entry point loops: menu, run, "back to the menu" (or `[m]`/`[r]` when a
|
||||
restart is needed), until `q`; the restart question is asked once at the
|
||||
end. Scripted input that runs out ends the loop like `q`.
|
||||
- Wizard shortcut (`launcher`): the icon runs `curl | bash` of
|
||||
`releases/latest/download/setup-gamescope-boot.sh` in Konsole, so it's
|
||||
always the newest release. Its icon, `assets/steam-gaming-settings.svg`
|
||||
(Valve's GPL-2.0 return icon with a gear), is a release asset too, and is
|
||||
downloaded from there (Steam's icon if that fails). Desktop files are
|
||||
written with their mode already set (`install_executable`): Plasma opens a
|
||||
desktop icon it first saw non-executable in an editor.
|
||||
- `Relogin=true` means a gamescope that fails to start is relaunched in a
|
||||
tight loop; keep that in mind when changing session handling.
|
||||
|
||||
|
||||
+13
-2
@@ -5,7 +5,18 @@ All notable changes, per version and per commit. Versions follow
|
||||
`setup-gamescope-boot.sh`. Versions before 0.7.0 were numbered afterwards,
|
||||
one per merged pull request.
|
||||
|
||||
## 0.8.0 - 2026-09-24
|
||||
## 0.9.0 - 2026-09-24
|
||||
|
||||
- **feat: Wizard shortcut on the desktop and in the launcher**
|
||||
- New menu item: a "SteamOS Setup Wizard" desktop icon and app launcher entry
|
||||
that open the newest release of the wizard in Konsole (`curl | bash`).
|
||||
- Its icon: Valve's Return to Gaming Mode icon with a gear instead of the
|
||||
arrow (`assets/steam-gaming-settings.svg`), published with every release
|
||||
and downloaded from there.
|
||||
- Desktop files are written already executable, so Plasma runs them instead
|
||||
of opening them in an editor.
|
||||
|
||||
## 0.8.0 - 2026-09-24 (#8)
|
||||
|
||||
An opt-in BIOS update for the Steam Machine, and a menu that comes back after
|
||||
every run.
|
||||
@@ -40,7 +51,7 @@ every run.
|
||||
- "now F7F0107, newest F7F0108 (own risk)", "F7F0108 waits for a restart",
|
||||
"F7F0107 is up to date"; shorter dry-run line.
|
||||
- `99a95ab` **fix: Kernel legend only mentions the LEDs on a Steam Machine**
|
||||
- **docs: Last commit hash in the changelog; 0.7.0 was released on its own (#6, #7)**
|
||||
- `c0014ee` **docs: Last commit hash in the changelog; 0.7.0 was released on its own (#6, #7)**
|
||||
|
||||
## 0.7.0 - 2026-09-24 (#6, #7)
|
||||
|
||||
|
||||
@@ -24,10 +24,13 @@ Everything you turn off is put back the way it was.
|
||||
4. **Single user mode** - like SteamOS: never a login or lock screen, no
|
||||
user switching or logging out. Typing a password with a controller is no
|
||||
fun. (Needs 1.)
|
||||
5. **Steam Machine support** - only shown on a Valve Steam Machine: the
|
||||
5. **Wizard shortcut** - a "SteamOS Setup Wizard" icon on the desktop and in
|
||||
the app launcher (the Steam logo with a gear) that opens the newest version
|
||||
of this wizard in Konsole, so you don't need the install command again.
|
||||
6. **Steam Machine support** - only shown on a Valve Steam Machine: the
|
||||
driver for the front LED bar, and the hardware settings in Steam (fan,
|
||||
TV control over HDMI-CEC).
|
||||
6. **Update BIOS** - only on a Steam Machine, opt-in and at your own risk:
|
||||
7. **Update BIOS** - only on a Steam Machine, opt-in and at your own risk:
|
||||
installs the newest Steam Machine BIOS from Valve (see
|
||||
[BIOS updates](#bios-updates-steam-machine)).
|
||||
|
||||
@@ -359,6 +362,7 @@ gamescope-session, ...) stay installed.
|
||||
| `lib/vapor-theme.sh` | SteamOS theme: installs and switches to `cachyos-vapor` |
|
||||
| `lib/steamos-extras.sh` | SteamOS desktop extras from Valve's package (Add to Steam, Nested Desktop, icon, keyboard rule, KWallet) |
|
||||
| `lib/single-user.sh` | Single user mode: no lock screen, user switching or log out |
|
||||
| `lib/wizard-shortcut.sh` | Wizard shortcut: desktop icon and launcher entry that run the newest release |
|
||||
| `lib/bios.sh` | Update BIOS (Steam Machine, opt-in): current/newest version, double confirmation, fwupd |
|
||||
| `lib/steam-machine.sh` | Steam Machine support: LED driver, LED access, steamos-manager |
|
||||
| `.github/tools/bundle.sh` | Builds the single-file version (`dist/setup-gamescope-boot.sh`) |
|
||||
|
||||
@@ -0,0 +1,224 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Icon for the "SteamOS Setup Wizard" shortcut of cachyos-gamescope-boot.
|
||||
Derived from Valve's steam-gaming-return.svg (steamdeck-kde-presets,
|
||||
GPL-2.0): the Return to Gaming Mode arrow replaced by a gear. -->
|
||||
<svg
|
||||
width="48"
|
||||
height="48"
|
||||
viewBox="0 0 48 48"
|
||||
version="1.1"
|
||||
id="svg11"
|
||||
sodipodi:docname="steam-gaming-settings.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview11"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
showgrid="true"
|
||||
inkscape:zoom="8"
|
||||
inkscape:cx="16.6875"
|
||||
inkscape:cy="16.4375"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1014"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg11">
|
||||
<inkscape:grid
|
||||
id="grid11"
|
||||
units="px"
|
||||
originx="0"
|
||||
originy="0"
|
||||
spacingx="1"
|
||||
spacingy="1"
|
||||
empcolor="#3f3fff"
|
||||
empopacity="0.25098039"
|
||||
color="#3f3fff"
|
||||
opacity="0.1254902"
|
||||
empspacing="5"
|
||||
enabled="true"
|
||||
visible="true" />
|
||||
</sodipodi:namedview>
|
||||
<defs
|
||||
id="defs4">
|
||||
<linearGradient
|
||||
id="blue-gradient-5">
|
||||
<stop
|
||||
style="stop-color:#054e87;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop1" />
|
||||
<stop
|
||||
style="stop-color:#1d99f3;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop2" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="shadow-3">
|
||||
<stop
|
||||
style="stop-color:#31363b;stop-opacity:0.208"
|
||||
offset="0"
|
||||
id="stop3" />
|
||||
<stop
|
||||
style="stop-color:#31363b;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient4199"
|
||||
x1="21.969"
|
||||
y1="1035.362"
|
||||
x2="35.969"
|
||||
y2="1049.362"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(10,-1018.3622)" />
|
||||
<linearGradient
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient4203"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="23"
|
||||
y1="1035.362"
|
||||
x2="36"
|
||||
y2="1048.362"
|
||||
gradientTransform="translate(13,-1021.3622)" />
|
||||
<linearGradient
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient4227"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-15.75,-1005.8622)"
|
||||
x1="21.475"
|
||||
y1="1035.158"
|
||||
x2="34.475"
|
||||
y2="1048.158" />
|
||||
<linearGradient
|
||||
xlink:href="#blue-gradient-5"
|
||||
id="linearGradient4351"
|
||||
x1="24"
|
||||
y1="1008.362"
|
||||
x2="24"
|
||||
y2="1048.362"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(0,-1004.3622)" />
|
||||
<linearGradient
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient4373"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(5.9783302,-1021.8757)"
|
||||
x1="21.085"
|
||||
y1="1036.975"
|
||||
x2="35.969"
|
||||
y2="1049.362" />
|
||||
<linearGradient
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient4377"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-6.3297472,-1009.2141)"
|
||||
x1="21.085"
|
||||
y1="1036.975"
|
||||
x2="35.969"
|
||||
y2="1049.362" />
|
||||
<linearGradient
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient4381"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-2.8703079,-1005.5321)"
|
||||
x1="21.969"
|
||||
y1="1035.362"
|
||||
x2="35.969"
|
||||
y2="1049.362" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#blue-gradient-5"
|
||||
id="linearGradient12"
|
||||
x1="34.848072"
|
||||
y1="2.7402468"
|
||||
x2="35.248451"
|
||||
y2="46.980125"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient14"
|
||||
x1="34.345119"
|
||||
y1="37.896885"
|
||||
x2="42.498322"
|
||||
y2="45.409893"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#shadow-3"
|
||||
id="linearGradient16"
|
||||
x1="3.5050631"
|
||||
y1="46.96999"
|
||||
x2="3.6629491"
|
||||
y2="50.93874"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<circle
|
||||
style="fill:url(#linearGradient4351);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
cx="24"
|
||||
cy="23.999861"
|
||||
r="20"
|
||||
id="circle4" />
|
||||
<circle
|
||||
id="path43518"
|
||||
cx="34.995033"
|
||||
cy="34.995033"
|
||||
style="fill:url(#linearGradient12);fill-rule:evenodd;stroke-width:0.999996;fill-opacity:1"
|
||||
r="12" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4203);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 35.923828,13.330078 C 37.206994,14.675942 38,16.493653 38,18.5 c -10e-7,4.142136 -3.357865,7.5 -7.5,7.5 -0.203438,-0.0015 -0.406734,-0.01127 -0.609375,-0.0293 l -5.896484,5.111328 c -0.0083,0.739616 -0.153346,1.471317 -0.427735,2.158203 -1.23712,3.074359 -4.732395,4.563589 -7.80664,3.326172 -0.24293,-0.09775 -0.470788,-0.215212 -0.69336,-0.339844 -0.04331,-0.0244 -0.08621,-0.04875 -0.128906,-0.07422 -0.211403,-0.125374 -0.414371,-0.260582 -0.605469,-0.408203 -0.0063,-0.0049 -0.01326,-0.0088 -0.01953,-0.01367 l -0.01172,0.002 8.19336,8.193359 C 22.994984,43.969391 23.497293,43.994196 24,44 a 20,20 0 0 0 1.310547,-0.04687 c 0.06663,-0.0043 0.132772,-0.01066 0.199219,-0.01563 a 20,20 0 0 0 1.845703,-0.222656 c 0.03199,-0.0054 0.06377,-0.01202 0.0957,-0.01758 a 20,20 0 0 0 1.396484,-0.3125 c 0.240477,-0.05998 0.481808,-0.116947 0.71875,-0.185547 A 20,20 0 0 0 30.7832,42.79492 c 0.221103,-0.07984 0.444706,-0.154851 0.662109,-0.242188 a 20,20 0 0 0 1.148441,-0.51367 C 32.813074,41.93437 33.035177,41.835015 33.25,41.722656 a 20,20 0 0 0 1.03125,-0.591797 c 0.231705,-0.139379 0.46789,-0.271541 0.693359,-0.419921 a 20,20 0 0 0 0.953125,-0.685547 c 0.206289,-0.153802 0.419094,-0.299475 0.619141,-0.460938 a 20,20 0 0 0 0.908203,-0.796875 c 0.190109,-0.173313 0.387023,-0.339092 0.570313,-0.519531 a 20,20 0 0 0 0.833984,-0.892578 c 0.163426,-0.181706 0.335418,-0.355335 0.492187,-0.542969 a 20,20 0 0 0 0.863282,-1.136719 c 0.102363,-0.141895 0.215754,-0.275269 0.314453,-0.419922 a 20,20 0 0 0 3.371094,-9.257812 c 6.3e-5,-6.43e-4 -6.4e-5,-0.0013 0,-0.002 a 20,20 0 0 0 0,-0.0059 A 20,20 0 0 0 44,24 20,20 0 0 0 43.779297,21.185547 Z"
|
||||
id="path6" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4227);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 5.7695312,29.3125 19.363281,43.431641 a 20,20 0 0 0 3.13086,0.49414 l -8.19336,-8.193359 -2.001953,-4.97461 z"
|
||||
id="path9" />
|
||||
<g
|
||||
id="g11">
|
||||
<path
|
||||
d="m 26.586,23.6632 8.104641,-0.4201 1.91027,-6.7552 -5.59099,-4.4419 -6.871493,5.8329 z"
|
||||
style="fill:url(#linearGradient4373);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path4" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4199);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 31.027515,23.9946 35,23 l 1.976562,-2.9766 -4,-4 -4.949047,4.9712 z"
|
||||
id="path5" />
|
||||
<path
|
||||
style="fill:url(#linearGradient4377);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="M 15.316486,35.7061 21.675457,35.065 23.0333,27.5143 16.403747,25.7462 12.603749,30.3195 Z"
|
||||
id="path7" />
|
||||
<path
|
||||
d="m 16.985332,35.8717 3.972485,-0.4165 2.210937,-3.4453 -3.0625,-3.1563 -6.933422,3.9868 z"
|
||||
style="fill:url(#linearGradient4381);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="path8" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 30.5,11 c -4.142135,0 -7.499999,3.357864 -7.5,7.5 0.0017,0.201484 0.01143,0.402819 0.0293,0.603516 -1.289636,1.575722 -4.80544,5.546997 -5.113281,5.902343 -2.416761,0.03284 -4.577852,1.51258 -5.482422,3.753907 -1.237432,3.074241 0.2518,6.569519 3.326172,7.80664 3.074245,1.237417 6.56952,-0.251813 7.80664,-3.326172 0.274389,-0.686886 0.419405,-1.418587 0.427735,-2.158203 l 5.896484,-5.111328 C 30.093269,25.98873 30.296562,25.998503 30.5,26 34.642135,26 37.999999,22.642136 38,18.5 37.999999,14.357864 34.642135,11 30.5,11 Z m 0,3 c 2.48528,0 4.499999,2.014718 4.5,4.5 -10e-7,2.485282 -2.01472,4.5 -4.5,4.5 -2.48528,0 -4.499999,-2.014718 -4.5,-4.5 1e-6,-2.485282 2.01472,-4.5 4.5,-4.5 z M 18.046875,27 c 0.496175,0.0058 0.986949,0.103774 1.447266,0.289062 2.049689,0.825003 3.042263,3.155585 2.216797,5.205079 -0.825003,2.049668 -3.155579,3.04224 -5.205079,2.216797 C 14.45617,33.885935 13.463596,31.555353 14.289062,29.505859 14.905127,27.975627 16.397393,26.980525 18.046875,27 Z"
|
||||
id="path10" />
|
||||
<circle
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
cx="30.5"
|
||||
cy="18.4998"
|
||||
id="ellipse10"
|
||||
r="3.5" />
|
||||
<path
|
||||
style="fill:#ffffff;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 5.0722656,22.564453 A 19,19 0 0 0 5,24 19,19 0 0 0 5.7695312,29.3125 l 11.1113278,4.470703 a 3,3 0 0 0 3.902344,-1.664062 3,3 0 0 0 -1.664062,-3.902344 z"
|
||||
id="path11" />
|
||||
</g>
|
||||
|
||||
|
||||
|
||||
<path id="gear" style="fill:#ffffff;fill-rule:evenodd;stroke:none" d="M 40.440,33.688 L 42.527,33.983 L 42.527,36.007 L 40.440,36.302 L 39.770,37.921 L 41.037,39.606 L 39.606,41.037 L 37.921,39.770 L 36.302,40.440 L 36.007,42.527 L 33.983,42.527 L 33.688,40.440 L 32.069,39.770 L 30.384,41.037 L 28.953,39.606 L 30.220,37.921 L 29.550,36.302 L 27.463,36.007 L 27.463,33.983 L 29.550,33.688 L 30.220,32.069 L 28.953,30.384 L 30.384,28.953 L 32.069,30.220 L 33.688,29.550 L 33.983,27.463 L 36.007,27.463 L 36.302,29.550 L 37.921,30.220 L 39.606,28.953 L 41.037,30.384 L 39.770,32.069 Z M 37.395,34.995 A 2.4,2.4 0 1 0 32.595,34.995 A 2.4,2.4 0 1 0 37.395,34.995 Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 11 KiB |
+2
-1
@@ -5,7 +5,7 @@
|
||||
|
||||
# Menu order. Components are turned on in this order and off in reverse;
|
||||
# gaming must come first (single user builds on it).
|
||||
COMPONENTS=(gaming theme glyphs single machine bios)
|
||||
COMPONENTS=(gaming theme glyphs single launcher machine bios)
|
||||
# One-off actions rather than on/off components: never preselected, never
|
||||
# re-applied, not listed as on or off.
|
||||
ACTIONS=(bios)
|
||||
@@ -15,6 +15,7 @@ declare -A LABEL=(
|
||||
[theme]="Install SteamOS theme: Vapor look (cachyos-vapor)"
|
||||
[glyphs]="Install Steam Deck/Machine icons: Deck button icons in gaming mode"
|
||||
[single]="Single user mode: no password, lock screen or log out (SDDM)"
|
||||
[launcher]="Wizard shortcut: desktop icon to run this wizard again"
|
||||
[machine]="Steam Machine support: LED bar driver, hardware settings in Steam"
|
||||
[bios]="Update BIOS"
|
||||
)
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
#!/bin/bash
|
||||
# "Wizard shortcut" menu item: a desktop icon and an app launcher entry that
|
||||
# open the newest release of this wizard in Konsole (curl | bash, like the
|
||||
# install command in the README), so it's never out of date.
|
||||
# Sourced by setup-gamescope-boot.sh; not meant to be run on its own.
|
||||
|
||||
WIZARD_RELEASE="https://github.com/theupriser/cachyos-gamescope-boot/releases/latest/download"
|
||||
WIZARD_URL="$WIZARD_RELEASE/setup-gamescope-boot.sh"
|
||||
# Steam logo with a gear (assets/ in the repo, published with every release).
|
||||
WIZARD_ICON="${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor/scalable/apps/cachyos-gamescope-boot-wizard.svg"
|
||||
WIZARD_LAUNCHER="${XDG_DATA_HOME:-$HOME/.local/share}/cachyos-gamescope-boot/run-wizard"
|
||||
WIZARD_DESKTOP_NAME="cachyos-gamescope-boot-wizard.desktop"
|
||||
WIZARD_APP_ENTRY="${XDG_DATA_HOME:-$HOME/.local/share}/applications/$WIZARD_DESKTOP_NAME"
|
||||
|
||||
wizard_desktop_file() {
|
||||
echo "$(xdg-user-dir DESKTOP 2>/dev/null || echo "$HOME/Desktop")/$WIZARD_DESKTOP_NAME"
|
||||
}
|
||||
|
||||
install_executable() {
|
||||
# install_executable <dest> <mode>: stdin to <dest>, with its mode set
|
||||
# before it appears. Plasma treats a desktop icon it saw while it wasn't
|
||||
# executable yet as untrusted and opens it in an editor.
|
||||
local dest="$1" tmp
|
||||
mkdir -p "$(dirname "$dest")"
|
||||
tmp="$(mktemp "$(dirname "$dest")/.tmp.XXXXXX")"
|
||||
cat > "$tmp"
|
||||
chmod "$2" "$tmp"
|
||||
mv -f "$tmp" "$dest"
|
||||
}
|
||||
|
||||
launcher_status() {
|
||||
[[ -x "$WIZARD_LAUNCHER" && -f "$WIZARD_APP_ENTRY" ]]
|
||||
}
|
||||
|
||||
launcher_enable() {
|
||||
info "Adding the wizard shortcut (desktop icon and app launcher entry)..."
|
||||
install_executable "$WIZARD_LAUNCHER" 755 << EOF
|
||||
#!/bin/bash
|
||||
# Installed by cachyos-gamescope-boot: run the newest release of the wizard.
|
||||
if ! curl -fsSL --max-time 30 "$WIZARD_URL" | bash; then
|
||||
echo
|
||||
echo "Couldn't download or run the wizard. Are you connected to the internet?"
|
||||
fi
|
||||
echo
|
||||
read -rp "Press Enter to close this window... " _
|
||||
EOF
|
||||
|
||||
# The icon comes with the release; without it, Steam's own icon.
|
||||
local icon=steam tmp
|
||||
tmp="$(mktemp)"
|
||||
if curl -fsSL --max-time 20 "$WIZARD_RELEASE/steam-gaming-settings.svg" -o "$tmp" && grep -q '<svg' "$tmp"; then
|
||||
install -D -m 644 "$tmp" "$WIZARD_ICON"
|
||||
icon=cachyos-gamescope-boot-wizard
|
||||
gtk-update-icon-cache -q -f -t "${XDG_DATA_HOME:-$HOME/.local/share}/icons/hicolor" 2>/dev/null || true
|
||||
else
|
||||
warn "Couldn't download the shortcut's icon; using Steam's icon instead."
|
||||
fi
|
||||
rm -f "$tmp"
|
||||
|
||||
local entry
|
||||
entry="[Desktop Entry]
|
||||
Type=Application
|
||||
Name=SteamOS Setup Wizard
|
||||
Comment=Turn the SteamOS-style parts of this PC on or off (cachyos-gamescope-boot)
|
||||
Exec=konsole -e $WIZARD_LAUNCHER
|
||||
Icon=$icon
|
||||
Terminal=false
|
||||
Categories=System;Settings;"
|
||||
printf '%s\n' "$entry" | install_executable "$WIZARD_APP_ENTRY" 644
|
||||
printf '%s\n' "$entry" | install_executable "$(wizard_desktop_file)" 755
|
||||
kbuildsycoca6 >/dev/null 2>&1 || true
|
||||
ok "Wizard shortcut added: \"SteamOS Setup Wizard\" on the desktop and in the launcher."
|
||||
}
|
||||
|
||||
launcher_disable() {
|
||||
rm -f "$(wizard_desktop_file)" "$WIZARD_APP_ENTRY" "$WIZARD_LAUNCHER" "$WIZARD_ICON"
|
||||
rmdir "$(dirname "$WIZARD_LAUNCHER")" 2>/dev/null || true
|
||||
kbuildsycoca6 >/dev/null 2>&1 || true
|
||||
ok "Wizard shortcut removed."
|
||||
}
|
||||
@@ -15,11 +15,11 @@
|
||||
set -uo pipefail
|
||||
|
||||
# Release version, see CHANGELOG.md.
|
||||
VERSION=0.8.0
|
||||
VERSION=0.9.0
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
|
||||
for lib in common state packages login-manager single-user steam-desktop steam-machine vapor-theme steamos-extras bios desktop-shortcut menu; do
|
||||
for lib in common state packages login-manager single-user steam-desktop steam-machine vapor-theme steamos-extras bios desktop-shortcut wizard-shortcut menu; do
|
||||
# shellcheck source=/dev/null
|
||||
source "$SCRIPT_DIR/lib/$lib.sh"
|
||||
done
|
||||
|
||||
Reference in new issue
Block a user