Skip to content

Releases: jasperaelvoet/vaporos

VaporOS 20261012.163641 (main)

Choose a tag to compare

@github-actions github-actions released this 12 Oct 17:07

VaporOS 20261012.163641, built from main at ee040c1.

  • Install: write vaporos-20261012.163641.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • ee040c1 Hold Sunshine's capture restart until gamescope scans out on one plane and check a fresh run's KMS monitor index on every poll, since the restart at boot landed while gamescope still lit two planes, mapped DP-1 to monitor 1, and the first streams after boot failed with error 503 until Sunshine was restarted by hand
  • 41d3ad4 Measure the heat contrast again when new text lands over a heat field between hiding the runs and the shot, since extensions-installing's download finishing turned Ready to stream into Restart to finish mid-check and the new words read 1:1 against their own colour
  • 9e92987 Keep Steam's idle sleep at Never and wake its interface when it is stuck in its suspend screen, through Steam's debugger, since Steam's hour-idle sleep asked logind to suspend, logind refuses vapor, no resume ever came, and every stream after that showed a black screen with only a cursor until Steam restarted
  • ac2858d Read the state of vapor's user units by running systemctl --user as vapor against its manager's private socket, since -M vapor@ opened a PAM login session for every poll and the user journal, flooded with a session close every 3 s, rotated gamescope's and Steam's boot logs away within hours
  • 8303a35 Run each case of TestPassFailsAStalePendingFirst as a subtest and let the power flow's clock carry a weekday, since the first case's helper installs outlived it into the second case's path swap under -race, and keep-awake ending after midnight UTC failed the e2e matrix
  • c691b87 Restart Sunshine while idle when its KMS monitor index no longer names the virtual display's plane, since a run started while gamescope still scanned out on two planes kept index 1 after composition left one, and every first stream after a clean boot failed with error 503 until Sunshine was restarted by hand
  • c01a251 Start Star Citizen with GAMESCOPE_WSI_FORCE_BYPASS=1, since gamescope's WSI layer put the Vulkan renderer's swapchain on the Xwayland fallback while the window was mid-resize, refused its R8G8B8A8 format there, and the game stopped with Failed to create swapchain when its resolution went to 4K
  • c27857c Keep Home's streaming fault when a pairing.state or session.end arrives without a sunshine part from /status, and let the selftest's awk read vos-firewall's whole output, since the shell made up a Sunshine answer from the event and the early exit could SIGPIPE the firewall
  • c6093bf Size Steam's interface and the games' DPI to each streaming device's screen, through Steam's own scale setting over its root-only debugger, since gamepadui's automatic scale gave every client a TV's density and looked oversized on monitors, laptops and tablets
  • 4e81c09 Link drive_c into Star Citizen's Proton prefix and let TruckersMP sync again once a game it lacks is installed, since the RSI Launcher's Launch Game failed with Game Files Not Found and multiplayer refused a newly installed game for up to an hour
  • a29fd8e Give each installed game whose Deck profile picks Valve's generic Proton its own copy of the default compatibility tool, since Steam ranks that pick above the "0" default and games like Cyberpunk 2077 ran with Proton Experimental instead of CachyOS Proton
  • f3639f0 Ship a steamos-session-select stub that refuses to switch sessions, since Steam's Switch to Desktop has no desktop to go to on VaporOS and no flag hides the entry
  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release

VaporOS 20261004.113712 (main)

Choose a tag to compare

@github-actions github-actions released this 04 Oct 12:07

VaporOS 20261004.113712, built from main at 41d3ad4.

  • Install: write vaporos-20261004.113712.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • 41d3ad4 Measure the heat contrast again when new text lands over a heat field between hiding the runs and the shot, since extensions-installing's download finishing turned Ready to stream into Restart to finish mid-check and the new words read 1:1 against their own colour
  • 9e92987 Keep Steam's idle sleep at Never and wake its interface when it is stuck in its suspend screen, through Steam's debugger, since Steam's hour-idle sleep asked logind to suspend, logind refuses vapor, no resume ever came, and every stream after that showed a black screen with only a cursor until Steam restarted
  • ac2858d Read the state of vapor's user units by running systemctl --user as vapor against its manager's private socket, since -M vapor@ opened a PAM login session for every poll and the user journal, flooded with a session close every 3 s, rotated gamescope's and Steam's boot logs away within hours
  • 8303a35 Run each case of TestPassFailsAStalePendingFirst as a subtest and let the power flow's clock carry a weekday, since the first case's helper installs outlived it into the second case's path swap under -race, and keep-awake ending after midnight UTC failed the e2e matrix
  • c691b87 Restart Sunshine while idle when its KMS monitor index no longer names the virtual display's plane, since a run started while gamescope still scanned out on two planes kept index 1 after composition left one, and every first stream after a clean boot failed with error 503 until Sunshine was restarted by hand
  • c01a251 Start Star Citizen with GAMESCOPE_WSI_FORCE_BYPASS=1, since gamescope's WSI layer put the Vulkan renderer's swapchain on the Xwayland fallback while the window was mid-resize, refused its R8G8B8A8 format there, and the game stopped with Failed to create swapchain when its resolution went to 4K
  • c27857c Keep Home's streaming fault when a pairing.state or session.end arrives without a sunshine part from /status, and let the selftest's awk read vos-firewall's whole output, since the shell made up a Sunshine answer from the event and the early exit could SIGPIPE the firewall
  • c6093bf Size Steam's interface and the games' DPI to each streaming device's screen, through Steam's own scale setting over its root-only debugger, since gamepadui's automatic scale gave every client a TV's density and looked oversized on monitors, laptops and tablets
  • 4e81c09 Link drive_c into Star Citizen's Proton prefix and let TruckersMP sync again once a game it lacks is installed, since the RSI Launcher's Launch Game failed with Game Files Not Found and multiplayer refused a newly installed game for up to an hour
  • a29fd8e Give each installed game whose Deck profile picks Valve's generic Proton its own copy of the default compatibility tool, since Steam ranks that pick above the "0" default and games like Cyberpunk 2077 ran with Proton Experimental instead of CachyOS Proton
  • f3639f0 Ship a steamos-session-select stub that refuses to switch sessions, since Steam's Switch to Desktop has no desktop to go to on VaporOS and no flag hides the entry
  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help

VaporOS 20261003.224811 (extensions)

Pre-release

Choose a tag to compare

@github-actions github-actions released this 03 Oct 23:12

VaporOS 20261003.224811, built from extensions at 8303a35.

  • Install: write vaporos-20261003.224811.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the extensions channel pull ghcr.io/jasperaelvoet/vaporos:extensions.

Recent commits

  • 8303a35 Run each case of TestPassFailsAStalePendingFirst as a subtest and let the power flow's clock carry a weekday, since the first case's helper installs outlived it into the second case's path swap under -race, and keep-awake ending after midnight UTC failed the e2e matrix
  • c691b87 Restart Sunshine while idle when its KMS monitor index no longer names the virtual display's plane, since a run started while gamescope still scanned out on two planes kept index 1 after composition left one, and every first stream after a clean boot failed with error 503 until Sunshine was restarted by hand
  • c01a251 Start Star Citizen with GAMESCOPE_WSI_FORCE_BYPASS=1, since gamescope's WSI layer put the Vulkan renderer's swapchain on the Xwayland fallback while the window was mid-resize, refused its R8G8B8A8 format there, and the game stopped with Failed to create swapchain when its resolution went to 4K
  • c27857c Keep Home's streaming fault when a pairing.state or session.end arrives without a sunshine part from /status, and let the selftest's awk read vos-firewall's whole output, since the shell made up a Sunshine answer from the event and the early exit could SIGPIPE the firewall
  • c6093bf Size Steam's interface and the games' DPI to each streaming device's screen, through Steam's own scale setting over its root-only debugger, since gamepadui's automatic scale gave every client a TV's density and looked oversized on monitors, laptops and tablets
  • 4e81c09 Link drive_c into Star Citizen's Proton prefix and let TruckersMP sync again once a game it lacks is installed, since the RSI Launcher's Launch Game failed with Game Files Not Found and multiplayer refused a newly installed game for up to an hour
  • a29fd8e Give each installed game whose Deck profile picks Valve's generic Proton its own copy of the default compatibility tool, since Steam ranks that pick above the "0" default and games like Cyberpunk 2077 ran with Proton Experimental instead of CachyOS Proton
  • f3639f0 Ship a steamos-session-select stub that refuses to switch sessions, since Steam's Switch to Desktop has no desktop to go to on VaporOS and no flag hides the entry
  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help
  • 8651c21 Make going back's unwrap the last vos steam prepare before the restart, since the dispatcher-off run could still put Steam's mappings and shortcuts back right after it
  • 7970979 Take VaporOS's compatibility tool mappings and shortcut dispatcher out of Steam right before every restart or power off vosd performs whose next start goes back to an image built before extensions, by holding the display, stopping gamescope and running vos steam prepare --unwrap as vapor, since that image lacks proton-cachyos-slr and vos ext launch and nothing ran the unwrap
  • c24ea2b Refuse TruckersMP's multiplayer start with steam-pending until prepare's record shows the game's launch options wrapped for every Steam account, since steam.json's dispatcher turning true reaches Steam only at the next prepare and ETS2 and ATS meanwhile started in single-player without a word

VaporOS 20261003.200639 (main)

Choose a tag to compare

@github-actions github-actions released this 03 Oct 20:38

VaporOS 20261003.200639, built from main at c01a251.

  • Install: write vaporos-20261003.200639.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • c01a251 Start Star Citizen with GAMESCOPE_WSI_FORCE_BYPASS=1, since gamescope's WSI layer put the Vulkan renderer's swapchain on the Xwayland fallback while the window was mid-resize, refused its R8G8B8A8 format there, and the game stopped with Failed to create swapchain when its resolution went to 4K
  • c27857c Keep Home's streaming fault when a pairing.state or session.end arrives without a sunshine part from /status, and let the selftest's awk read vos-firewall's whole output, since the shell made up a Sunshine answer from the event and the early exit could SIGPIPE the firewall
  • c6093bf Size Steam's interface and the games' DPI to each streaming device's screen, through Steam's own scale setting over its root-only debugger, since gamepadui's automatic scale gave every client a TV's density and looked oversized on monitors, laptops and tablets
  • 4e81c09 Link drive_c into Star Citizen's Proton prefix and let TruckersMP sync again once a game it lacks is installed, since the RSI Launcher's Launch Game failed with Game Files Not Found and multiplayer refused a newly installed game for up to an hour
  • a29fd8e Give each installed game whose Deck profile picks Valve's generic Proton its own copy of the default compatibility tool, since Steam ranks that pick above the "0" default and games like Cyberpunk 2077 ran with Proton Experimental instead of CachyOS Proton
  • f3639f0 Ship a steamos-session-select stub that refuses to switch sessions, since Steam's Switch to Desktop has no desktop to go to on VaporOS and no flag hides the entry
  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help
  • 8651c21 Make going back's unwrap the last vos steam prepare before the restart, since the dispatcher-off run could still put Steam's mappings and shortcuts back right after it
  • 7970979 Take VaporOS's compatibility tool mappings and shortcut dispatcher out of Steam right before every restart or power off vosd performs whose next start goes back to an image built before extensions, by holding the display, stopping gamescope and running vos steam prepare --unwrap as vapor, since that image lacks proton-cachyos-slr and vos ext launch and nothing ran the unwrap
  • c24ea2b Refuse TruckersMP's multiplayer start with steam-pending until prepare's record shows the game's launch options wrapped for every Steam account, since steam.json's dispatcher turning true reaches Steam only at the next prepare and ETS2 and ATS meanwhile started in single-player without a word
  • 40f75ab Move the choice of the entry a restart starts into internal/boot (NextEntry, SlotEntry), so vosd's extensions can read which slot boots next the way GET /update does, with no change to it
  • 5bd06de Refuse TruckersMP's multiplayer start and say so on the cards of extensions with launch hooks while steam.json's dispatcher is off, since a box updated from an image built before extensions has no game launch options wrapped until its next update, so ETS2 and ATS silently started in single-player and hooks never ran

VaporOS 20261003.184803 (main)

Choose a tag to compare

@github-actions github-actions released this 03 Oct 19:15

VaporOS 20261003.184803, built from main at c27857c.

  • Install: write vaporos-20261003.184803.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • c27857c Keep Home's streaming fault when a pairing.state or session.end arrives without a sunshine part from /status, and let the selftest's awk read vos-firewall's whole output, since the shell made up a Sunshine answer from the event and the early exit could SIGPIPE the firewall
  • c6093bf Size Steam's interface and the games' DPI to each streaming device's screen, through Steam's own scale setting over its root-only debugger, since gamepadui's automatic scale gave every client a TV's density and looked oversized on monitors, laptops and tablets
  • 4e81c09 Link drive_c into Star Citizen's Proton prefix and let TruckersMP sync again once a game it lacks is installed, since the RSI Launcher's Launch Game failed with Game Files Not Found and multiplayer refused a newly installed game for up to an hour
  • a29fd8e Give each installed game whose Deck profile picks Valve's generic Proton its own copy of the default compatibility tool, since Steam ranks that pick above the "0" default and games like Cyberpunk 2077 ran with Proton Experimental instead of CachyOS Proton
  • f3639f0 Ship a steamos-session-select stub that refuses to switch sessions, since Steam's Switch to Desktop has no desktop to go to on VaporOS and no flag hides the entry
  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help
  • 8651c21 Make going back's unwrap the last vos steam prepare before the restart, since the dispatcher-off run could still put Steam's mappings and shortcuts back right after it
  • 7970979 Take VaporOS's compatibility tool mappings and shortcut dispatcher out of Steam right before every restart or power off vosd performs whose next start goes back to an image built before extensions, by holding the display, stopping gamescope and running vos steam prepare --unwrap as vapor, since that image lacks proton-cachyos-slr and vos ext launch and nothing ran the unwrap
  • c24ea2b Refuse TruckersMP's multiplayer start with steam-pending until prepare's record shows the game's launch options wrapped for every Steam account, since steam.json's dispatcher turning true reaches Steam only at the next prepare and ETS2 and ATS meanwhile started in single-player without a word
  • 40f75ab Move the choice of the entry a restart starts into internal/boot (NextEntry, SlotEntry), so vosd's extensions can read which slot boots next the way GET /update does, with no change to it
  • 5bd06de Refuse TruckersMP's multiplayer start and say so on the cards of extensions with launch hooks while steam.json's dispatcher is off, since a box updated from an image built before extensions has no game launch options wrapped until its next update, so ETS2 and ATS silently started in single-player and hooks never ran
  • 3412e97 Say on the website's FAQ that VaporOS has a few curated extensions, since it still claimed nothing at all can be added

VaporOS 20261003.114116 (main)

Choose a tag to compare

@github-actions github-actions released this 03 Oct 12:05

VaporOS 20261003.114116, built from main at f3639f0.

  • Install: write vaporos-20261003.114116.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • f3639f0 Ship a steamos-session-select stub that refuses to switch sessions, since Steam's Switch to Desktop has no desktop to go to on VaporOS and no flag hides the entry
  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help
  • 8651c21 Make going back's unwrap the last vos steam prepare before the restart, since the dispatcher-off run could still put Steam's mappings and shortcuts back right after it
  • 7970979 Take VaporOS's compatibility tool mappings and shortcut dispatcher out of Steam right before every restart or power off vosd performs whose next start goes back to an image built before extensions, by holding the display, stopping gamescope and running vos steam prepare --unwrap as vapor, since that image lacks proton-cachyos-slr and vos ext launch and nothing ran the unwrap
  • c24ea2b Refuse TruckersMP's multiplayer start with steam-pending until prepare's record shows the game's launch options wrapped for every Steam account, since steam.json's dispatcher turning true reaches Steam only at the next prepare and ETS2 and ATS meanwhile started in single-player without a word
  • 40f75ab Move the choice of the entry a restart starts into internal/boot (NextEntry, SlotEntry), so vosd's extensions can read which slot boots next the way GET /update does, with no change to it
  • 5bd06de Refuse TruckersMP's multiplayer start and say so on the cards of extensions with launch hooks while steam.json's dispatcher is off, since a box updated from an image built before extensions has no game launch options wrapped until its next update, so ETS2 and ATS silently started in single-player and hooks never ran
  • 3412e97 Say on the website's FAQ that VaporOS has a few curated extensions, since it still claimed nothing at all can be added
  • c822d11 Accept vos health's line and vosd's VOS-READY in either order after an extension reboot, since vosd can announce itself before health finishes and make test then waited for a READY line that had already passed
  • f799a4c Show a plain sentence on an extension's card when its image cannot be downloaded or does not match, since the card showed the raw error with registry URLs and digests
  • d638777 Have Star Citizen's Remove mark state.json removed before anything can refuse, and treat a removed record as a new setup that takes the drive mounted at the picked folder now, so a dead drive replaced by a new one with its label can be picked again instead of refusing that the drive isn't connected forever, while a setup's own retries stay pinned to its filesystem and a purge still deletes only on the recorded one.
  • f6c62ea Wait for the installed system to announce its address before using it, since its first VOS-READY line can come before DHCP with ip=- and make test's API calls then went to host -

VaporOS 20261003.105720 (main)

Choose a tag to compare

@github-actions github-actions released this 03 Oct 11:28

VaporOS 20261003.105720, built from main at 29e84eb.

  • Install: write vaporos-20261003.105720.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • 29e84eb Have vos steam prepare add the libraries vosd queued to Steam's lists right before each Steam start, since a Steam that starts at boot and never stops gave vosd no moment to add an adopted library
  • 9bb0feb Set gamescope's HDR to the session's live on every begin, through both the hdr_enabled convar and the root property Steam writes, and keep it there while the session lasts, since Steam's own Enable HDR setting turned SDR streams into washed-out HDR and switching HDR used to need a gamescope restart
  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help
  • 8651c21 Make going back's unwrap the last vos steam prepare before the restart, since the dispatcher-off run could still put Steam's mappings and shortcuts back right after it
  • 7970979 Take VaporOS's compatibility tool mappings and shortcut dispatcher out of Steam right before every restart or power off vosd performs whose next start goes back to an image built before extensions, by holding the display, stopping gamescope and running vos steam prepare --unwrap as vapor, since that image lacks proton-cachyos-slr and vos ext launch and nothing ran the unwrap
  • c24ea2b Refuse TruckersMP's multiplayer start with steam-pending until prepare's record shows the game's launch options wrapped for every Steam account, since steam.json's dispatcher turning true reaches Steam only at the next prepare and ETS2 and ATS meanwhile started in single-player without a word
  • 40f75ab Move the choice of the entry a restart starts into internal/boot (NextEntry, SlotEntry), so vosd's extensions can read which slot boots next the way GET /update does, with no change to it
  • 5bd06de Refuse TruckersMP's multiplayer start and say so on the cards of extensions with launch hooks while steam.json's dispatcher is off, since a box updated from an image built before extensions has no game launch options wrapped until its next update, so ETS2 and ATS silently started in single-player and hooks never ran
  • 3412e97 Say on the website's FAQ that VaporOS has a few curated extensions, since it still claimed nothing at all can be added
  • c822d11 Accept vos health's line and vosd's VOS-READY in either order after an extension reboot, since vosd can announce itself before health finishes and make test then waited for a READY line that had already passed
  • f799a4c Show a plain sentence on an extension's card when its image cannot be downloaded or does not match, since the card showed the raw error with registry URLs and digests
  • d638777 Have Star Citizen's Remove mark state.json removed before anything can refuse, and treat a removed record as a new setup that takes the drive mounted at the picked folder now, so a dead drive replaced by a new one with its label can be picked again instead of refusing that the drive isn't connected forever, while a setup's own retries stay pinned to its filesystem and a purge still deletes only on the recorded one.
  • f6c62ea Wait for the installed system to announce its address before using it, since its first VOS-READY line can come before DHCP with ip=- and make test's API calls then went to host -
  • 36eb8cf Keep Star Citizen's Install on the filesystem state.json records for its prefix, so another drive with the same name isn't connected there as everywhere else, and start a launch whose shortcut still names the place it was set up before in the recorded prefix, with its own sentence while that prefix has no installer yet, instead of telling the person to remove and add it again.

VaporOS 20261003.090535 (main)

Choose a tag to compare

@github-actions github-actions released this 03 Oct 09:29

VaporOS 20261003.090535, built from main at 82bd3e5.

  • Install: write vaporos-20261003.090535.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • 82bd3e5 Build the dev server's UI once and reuse it for every new fake boot, since rebuilding it took seconds under the race detector after the fake's clock had started, which pushed TestFakeEnginesAgree's times past their 5 s slack on CI and stopped the release
  • 491452b Require the TruckersMP hook only for the Steam account that signs in and name a launch-options conflict, since another account's options refused multiplayer for good and a conflict sent people into restarts that never help
  • 8651c21 Make going back's unwrap the last vos steam prepare before the restart, since the dispatcher-off run could still put Steam's mappings and shortcuts back right after it
  • 7970979 Take VaporOS's compatibility tool mappings and shortcut dispatcher out of Steam right before every restart or power off vosd performs whose next start goes back to an image built before extensions, by holding the display, stopping gamescope and running vos steam prepare --unwrap as vapor, since that image lacks proton-cachyos-slr and vos ext launch and nothing ran the unwrap
  • c24ea2b Refuse TruckersMP's multiplayer start with steam-pending until prepare's record shows the game's launch options wrapped for every Steam account, since steam.json's dispatcher turning true reaches Steam only at the next prepare and ETS2 and ATS meanwhile started in single-player without a word
  • 40f75ab Move the choice of the entry a restart starts into internal/boot (NextEntry, SlotEntry), so vosd's extensions can read which slot boots next the way GET /update does, with no change to it
  • 5bd06de Refuse TruckersMP's multiplayer start and say so on the cards of extensions with launch hooks while steam.json's dispatcher is off, since a box updated from an image built before extensions has no game launch options wrapped until its next update, so ETS2 and ATS silently started in single-player and hooks never ran
  • 3412e97 Say on the website's FAQ that VaporOS has a few curated extensions, since it still claimed nothing at all can be added
  • c822d11 Accept vos health's line and vosd's VOS-READY in either order after an extension reboot, since vosd can announce itself before health finishes and make test then waited for a READY line that had already passed
  • f799a4c Show a plain sentence on an extension's card when its image cannot be downloaded or does not match, since the card showed the raw error with registry URLs and digests
  • d638777 Have Star Citizen's Remove mark state.json removed before anything can refuse, and treat a removed record as a new setup that takes the drive mounted at the picked folder now, so a dead drive replaced by a new one with its label can be picked again instead of refusing that the drive isn't connected forever, while a setup's own retries stay pinned to its filesystem and a purge still deletes only on the recorded one.
  • f6c62ea Wait for the installed system to announce its address before using it, since its first VOS-READY line can come before DHCP with ip=- and make test's API calls then went to host -
  • 36eb8cf Keep Star Citizen's Install on the filesystem state.json records for its prefix, so another drive with the same name isn't connected there as everywhere else, and start a launch whose shortcut still names the place it was set up before in the recorded prefix, with its own sentence while that prefix has no installer yet, instead of telling the person to remove and add it again.
  • 666fb20 Have the restart badge follow /status while skip-once is set, keep a late drive list from touching another dialog, and clear dev.sh's answer file before each call, so the badge clears live, the next dialog stays usable and no stale body passes for vosd's answer
  • 19ddb3b Keep a TruckersMP download that a 416 "bytes */N" shows is already whole instead of fetching it again on every sync without HEAD sizes, and count the copies of shared-MD5 files HEAD sized in the up-front free space so a sync short only by them refuses before its first download

VaporOS 20261002.144840 (main)

Choose a tag to compare

@github-actions github-actions released this 02 Oct 15:19

VaporOS 20261002.144840, built from main at 679b15c.

  • Install: write vaporos-20261002.144840.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • 679b15c Download only the blocks of a new root image that this machine lacks, using a signed per-block index and byte ranges, so an update fetches about a tenth of the 1.5 GiB image instead of all of it
  • f28da89 Add the SteamOS timezone, Steam Deck firmware and devkit helpers Steam calls, setting the timezone through timedated with a polkit rule for vapor, because each was missing and failed with 127, so Steam could not set the timezone and logged a BIOS update error on every update check
  • d2092bb Add the steamos-polkit-helpers/steamos-update stub, because Steam applies OS updates through that path and its first-run setup stopped at "Unable to download the required update (2)" without it
  • 8c25c64 Restart Sunshine when its KMS capture failed to initialize at startup, because a Sunshine that comes up before gamescope's first modeset fails every stream with error 503 until it is restarted
  • 4b52964 Keep one clients.json entry per client and mode, so a custom resolution stays learned when the same device later asks for another mode
  • 17938f7 Publish sunshine.state when Sunshine starts or stops, so a page opened while it was still starting at boot stops showing it down
  • c9a6dff Close the quote in the Screen intro check, whose syntax error failed the web tooling tests on main
  • 5dd3fe5 Hand each new learned EDID to the running kernel through the DRM debugfs override and reprobe the virtual connector, so an added or requested screen mode is usually usable at once instead of after a restart, and say so on the Screen page
  • 7339039 Run NetworkManager with the iwd backend instead of systemd-networkd, with a polkit rule for vapor and SteamOS update stubs, because Steam's SteamOS first-run setup and network settings list and join networks over NetworkManager's D-Bus API
  • f220d6c Make the CI Ventoy boot advisory until it passes, and build its stick without Ventoy's Secure Boot shim, which failed to chain-load Ventoy's loader under OVMF while the same ISO boots from Ventoy on real hardware
  • cad85b3 Mount the CI Ventoy stick's exFAT partition with Ventoy's own FUSE driver when the kernel has no exFAT, as on GitHub's runners
  • 0798968 Boot the live ISO from Ventoy by having the initramfs find the .iso file on an exFAT, FAT or NTFS partition (USB first, matched by label and the new vos.version entry option) when no VOS_LIVE device appears, because Ventoy cannot hook into systemd-boot and the ISO rebooted after 30 s on a blank screen; also show the initramfs's failure reason on screen, check the initramfs's modules and tools at build time, and boot a real Ventoy stick in CI
  • a512ccc Count Home's download percent up as a custom property rounded by calc() in counter-reset, because WebKit interpolates an property as a fraction mid-transition, which voided the counter and showed 0 % in Safari while the update progressed
  • 9883d47 Add tools/web/e2e/webkit-perf.mjs and npm run perf:webkit, a headless WebKit frame-timing harness against a running dev server (rAF deltas and a main-thread probe for first loads, a state change, scrolls, the Power sheet, the hold, the PIN pad and a tab switch at 1440x900@2 and 390x844@3, and CPU at rest), so Safari's frame rate can be measured and compared between trees
  • 46153c1 Let the e2e harness's dev servers take ports from VOS_E2E_PORTS=first-last, for a machine that reserves a port range for such runs

VaporOS 20261002.131319 (main)

Choose a tag to compare

@github-actions github-actions released this 02 Oct 14:07

VaporOS 20261002.131319, built from main at f28da89.

  • Install: write vaporos-20261002.131319.iso to a USB stick and boot it in UEFI mode.
  • Update: machines on the main channel pull ghcr.io/jasperaelvoet/vaporos:main.

Recent commits

  • f28da89 Add the SteamOS timezone, Steam Deck firmware and devkit helpers Steam calls, setting the timezone through timedated with a polkit rule for vapor, because each was missing and failed with 127, so Steam could not set the timezone and logged a BIOS update error on every update check
  • d2092bb Add the steamos-polkit-helpers/steamos-update stub, because Steam applies OS updates through that path and its first-run setup stopped at "Unable to download the required update (2)" without it
  • 8c25c64 Restart Sunshine when its KMS capture failed to initialize at startup, because a Sunshine that comes up before gamescope's first modeset fails every stream with error 503 until it is restarted
  • 4b52964 Keep one clients.json entry per client and mode, so a custom resolution stays learned when the same device later asks for another mode
  • 17938f7 Publish sunshine.state when Sunshine starts or stops, so a page opened while it was still starting at boot stops showing it down
  • c9a6dff Close the quote in the Screen intro check, whose syntax error failed the web tooling tests on main
  • 5dd3fe5 Hand each new learned EDID to the running kernel through the DRM debugfs override and reprobe the virtual connector, so an added or requested screen mode is usually usable at once instead of after a restart, and say so on the Screen page
  • 7339039 Run NetworkManager with the iwd backend instead of systemd-networkd, with a polkit rule for vapor and SteamOS update stubs, because Steam's SteamOS first-run setup and network settings list and join networks over NetworkManager's D-Bus API
  • f220d6c Make the CI Ventoy boot advisory until it passes, and build its stick without Ventoy's Secure Boot shim, which failed to chain-load Ventoy's loader under OVMF while the same ISO boots from Ventoy on real hardware
  • cad85b3 Mount the CI Ventoy stick's exFAT partition with Ventoy's own FUSE driver when the kernel has no exFAT, as on GitHub's runners
  • 0798968 Boot the live ISO from Ventoy by having the initramfs find the .iso file on an exFAT, FAT or NTFS partition (USB first, matched by label and the new vos.version entry option) when no VOS_LIVE device appears, because Ventoy cannot hook into systemd-boot and the ISO rebooted after 30 s on a blank screen; also show the initramfs's failure reason on screen, check the initramfs's modules and tools at build time, and boot a real Ventoy stick in CI
  • a512ccc Count Home's download percent up as a custom property rounded by calc() in counter-reset, because WebKit interpolates an property as a fraction mid-transition, which voided the counter and showed 0 % in Safari while the update progressed
  • 9883d47 Add tools/web/e2e/webkit-perf.mjs and npm run perf:webkit, a headless WebKit frame-timing harness against a running dev server (rAF deltas and a main-thread probe for first loads, a state change, scrolls, the Power sheet, the hold, the PIN pad and a tab switch at 1440x900@2 and 390x844@3, and CPU at rest), so Safari's frame rate can be measured and compared between trees
  • 46153c1 Let the e2e harness's dev servers take ports from VOS_E2E_PORTS=first-last, for a machine that reserves a port range for such runs
  • 79e48df Wait in the e2e harness for the heat fields to be painted at rest before every shot and before heatContrast measures them, find the fields as .heat-field hosts, and add --settle to also finish every finite animation for pixel-exact captures