Coder Social home page Coder Social logo

jovian-experiments / jovian-nixos Goto Github PK

View Code? Open in Web Editor NEW
453.0 18.0 44.0 2.1 MB

Discussions: https://matrix.to/#/#Jovian-Experiments:matrix.org

Home Page: https://jovian-experiments.github.io/Jovian-NixOS/

License: MIT License

Nix 62.08% Shell 1.10% Python 6.67% Ruby 10.56% Less 19.58%

jovian-nixos's Introduction

Jovian NixOS

NixOS on the Steam Deck

What is Jovian NixOS?

A set of packages and configurations for running NixOS on the Steam Deck.

This repo is also useful for obtaining a Steam Deck-like experience on other x86_64 devices.


Pointers to helpful pages


Who are we?

Most contributors here are also contributors to the Nixpkgs, and NixOS Linux ecosystem.

We're a few peeps that want to keep their Steam Deck useful as a gaming device, while also benefiting from NixOS.

Can I help?

Probably!

See the contributing page.

How do I reach any of you?

For support, don't hesitate to file an issue.

For questions, please use the Discussions page.

For chatting about the project the matrix room at #Jovian-Experiments:matrix.org is where we hang out.

For other purposes, contact the developers via e-mail.

For obfuscation, see these raw commits which contain the relevant e-mail address at the top:

jovian-nixos's People

Contributors

06kellyjac avatar admiral0 avatar elvishjerricco avatar imadnyc avatar k900 avatar lheckemann avatar m1cr0man avatar pongo1231 avatar samueldr avatar sg-qwt avatar timjrd avatar toast003 avatar zhaofengli avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jovian-nixos's Issues

ISO with no installer created by `nix-build -A isoPlasma`?

Hi, I'm a nixOS noob running it on my desktop for the first time. I'd like to eventually get the system to work with steam big picture and gamescope.

To investigate how close Jovian gets me to my goal, I checked out the repo and built the ISO with nix-build -A isoPlasma and booted on a Virtualbox , unfortunately it appears as though the KDE plasma5 installer is not actually included with the ISO.

image

Not sure if I missed something or where to go from here.

Automatic dock update?

We could make the dock updater work like on Steam OS by adding this path to the FHS:

  • /usr/bin/steamos-polkit-helpers/jupiter-dock-updater

From the logs:

Mar 04 15:53:02 dashdingo games-session-start[21574]: sh: line 1: /usr/bin/steamos-polkit-helpers/jupiter-dock-updater: No such file or directory                                                                                     

Reproducibility of the fwupd cab

Diff from my and @misuzu's build of the same out path for the FOR TESTING ONLY iso build.

gcab -c $out/bios.cab SteamDeckBIOS.metainfo.xml "$filename"

/2f4x1xfbki2hhfvvsv56a4hlvzyjlmia-steamdeck-bios-fwupd-20230810.2/bios.cab


Offset 1, 14 lines modified | Offset 1, 14 lines modified
-- | --
00000000:·4d53·4346·0000·0000·1c5e·0f01·0000·0000··MSCF.....^...... | 00000000:·4d53·4346·0000·0000·1c5e·0f01·0000·0000··MSCF.....^......
00000010:·2c00·0000·0000·0000·0301·0100·0200·0000··,............... | 00000010:·2c00·0000·0000·0000·0301·0100·0200·0000··,...............
00000020:·0000·0000·7700·0000·1f02·0000·e503·0000··....w........... | 00000020:·0000·0000·7700·0000·1f02·0000·e503·0000··....w...........
00000030:·0000·0000·0000·0f57·94a5·2000·5374·6561··.......W..·.Stea | 00000030:·0000·0000·0000·0f57·4e76·2000·5374·6561··.......WNv·.Stea
00000040:·6d44·6563·6b42·494f·532e·6d65·7461·696e··mDeckBIOS.metain | 00000040:·6d44·6563·6b42·494f·532e·6d65·7461·696e··mDeckBIOS.metain
00000050:·666f·2e78·6d6c·00c8·480f·01e5·0300·0000··fo.xml..H....... | 00000050:·666f·2e78·6d6c·00c8·480f·01e5·0300·0000··fo.xml..H.......
00000060:·000f·5794·a520·0046·3741·3031·3136·5f73··..W..·.F7A0116_s | 00000060:·000f·574e·7620·0046·3741·3031·3136·5f73··..WNv·.F7A0116_s
00000070:·6967·6e2e·6664·0063·5a58·5000·8000·803c··ign.fd.cZXP....< | 00000070:·6967·6e2e·6664·0063·5a58·5000·8000·803c··ign.fd.cZXP....<
00000080:·3f78·6d6c·2076·6572·7369·6f6e·3d22·312e··?xml·version="1. | 00000080:·3f78·6d6c·2076·6572·7369·6f6e·3d22·312e··?xml·version="1.
00000090:·3022·2065·6e63·6f64·696e·673d·2255·5446··0"·encoding="UTF | 00000090:·3022·2065·6e63·6f64·696e·673d·2255·5446··0"·encoding="UTF
000000a0:·2d38·223f·3e0a·3c63·6f6d·706f·6e65·6e74··-8"?>.<component | 000000a0:·2d38·223f·3e0a·3c63·6f6d·706f·6e65·6e74··-8"?>.<component
000000b0:·2074·7970·653d·2266·6972·6d77·6172·6522···type="firmware" | 000000b0:·2074·7970·653d·2266·6972·6d77·6172·6522···type="firmware"
000000c0:·3e0a·2020·3c69·643e·7661·6c75·652e·4a75··>.··<id>value.Ju | 000000c0:·3e0a·2020·3c69·643e·7661·6c75·652e·4a75··>.··<id>value.Ju
000000d0:·7069·7465·722e·4249·4f53·2e66·6972·6d77··piter.BIOS.firmw | 000000d0:·7069·7465·722e·4249·4f53·2e66·6972·6d77··piter.BIOS.firmw

image

Smells like "useless" metadata being slightly different. Not much concern to be had here.

Error I got when I tested this on real hardware

Log

steam-session
 [steam-session] $ GAMESCOPE_NV12_COLORSPACE=k_EStreamColorspace_BT601
 [steam-session] $ GTK_IM_MODULE=Steam
 [steam-session] $ QT_IM_MODULE=steam
 [steam-session] $ SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
 [steam-session] $ SRT_URLOPEN_PREFER_STEAM=1
 [steam-session] $ STEAM_ALLOW_DRIVE_UNMOUNT=1
 [steam-session] $ STEAM_DISABLE_AUDIO_DEVICE_SWITCHING=1
 [steam-session] $ STEAM_DISABLE_MANGOAPP_ATOM_WORKAROUND=1
 [steam-session] $ STEAM_DISPLAY_REFRESH_LIMITS=40,60
 [steam-session] $ STEAM_ENABLE_VOLUME_HANDLER=1
 [steam-session] $ STEAM_GAMESCOPE_COLOR_MANAGED=1
 [steam-session] $ STEAM_GAMESCOPE_COLOR_TOYS=1
 [steam-session] $ STEAM_GAMESCOPE_DYNAMIC_FPSLIMITER=1
 [steam-session] $ STEAM_GAMESCOPE_DYNAMIC_REFRESH_IN_STEAM_SUPPORTED=0
 [steam-session] $ STEAM_GAMESCOPE_FANCY_SCALING_SUPPORT=1
 [steam-session] $ STEAM_GAMESCOPE_HAS_TEARING_SUPPORT=1
 [steam-session] $ STEAM_GAMESCOPE_HDR_SUPPORTED=1
 [steam-session] $ STEAM_GAMESCOPE_NIS_SUPPORTED=1
 [steam-session] $ STEAM_GAMESCOPE_TEARING_SUPPORTED=1
 [steam-session] $ STEAM_GAMESCOPE_VRR_SUPPORTED=1
 [steam-session] $ STEAM_MANGOAPP_HORIZONTAL_SUPPORTED=1
 [steam-session] $ STEAM_MANGOAPP_PRESETS_SUPPORTED=1
 [steam-session] $ STEAM_MULTIPLE_XWAYLANDS=1
 [steam-session] $ STEAM_UPDATEUI_PNG_BACKGROUND=/nix/store/rsipiz8yp914y1y8c7k99w4j0nqg5rcn-steamdeck-hw-theme-20230810.2/share/steamos/steamos.png
 [steam-session] $ STEAM_USE_DYNAMIC_VRS=1
 [steam-session] $ WINEDLLOVERRIDES=dxgi=n
 [steam-session] $ XCURSOR_THEME=steam
 [steam-session] $ vk_xwayland_wait_ready=false
 [steam-session] $ /nix/store/3caixa1byvz9afjld87pn36vw09bnprb-gamescope-shim --xwayland-count 2 -w 1280 -h 800 --fullscreen --prefer-output '*,eDP-1' --generate-drm-mode fixed --max-scale 2 --default-touch-mode 4 --hide-cursor-delay 3000 --fade-out-duration 200 --cursor /nix/store/rsipiz8yp914y1y8c7k99w4j0nqg5rcn-steamdeck-hw-theme-20230810.2/share/steamos/steamos-cursor.png --cursor-hotspot 5,3 --steam --stats-path /run/user/1001/steam-session.run/stats.pipe -- systemd-run --user --collect --scope --slice=steam-session -- /nix/store/kp89325kccwgdjd009fbmn513804x6zg-steam-shim
wlserver: [backend/headless/backend.c:68] Creating headless backend
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
vulkan: selecting physical device 'NVIDIA GeForce RTX 2060': queue family 2
vulkan: physical device supports DRM format modifiers
vulkan: vkCreateDevice failed (VkResult: -3)
Failed to initialize Vulkan
 [steam-session] $ at_exit
 [steam-session] $ systemctl --quiet --user stop steam-session.slice

I tested this on real hardware this time. Does using an NVIDIA gpu affect this?

Remote Play triggers a crash related to PipeWire on regular PC

Most likely a gamescope bug. Following patch f00a637 suggested by @Starsam80 resolves my issue.
I didn't open a PR because I feel like this is too specific to my GPU. Feel free to close. 🙂

diff --git a/pkgs/gamescope/default.nix b/pkgs/gamescope/default.nix
index e28dee5..acd4a92 100644
--- a/pkgs/gamescope/default.nix
+++ b/pkgs/gamescope/default.nix
@@ -27,6 +27,9 @@ gamescope'.overrideAttrs({ buildInputs, ... }: {
       url = "https://raw.githubusercontent.com/NixOS/nixpkgs/770f6182ac3084eb9ed836e1f34fce0595c905db/pkgs/applications/window-managers/gamescope/use-pkgconfig.patch";
       sha256 = "sha256-BqP20qoVH47xT/Pn4P9V5wUvHK/AJivam0Xenr8AbGk=";
     })
+
+    # https://github.com/ValveSoftware/gamescope/issues/775#issuecomment-1566964408
+    ./fix-remote-play.patch
   ];
 
   buildInputs = buildInputs ++ [
diff --git a/pkgs/gamescope/fix-remote-play.patch b/pkgs/gamescope/fix-remote-play.patch
new file mode 100644
index 0000000..9ea2854
--- /dev/null
+++ b/pkgs/gamescope/fix-remote-play.patch
@@ -0,0 +1,11 @@
+--- a/src/rendervulkan.cpp
++++ b/src/rendervulkan.cpp
+@@ -107,7 +107,7 @@ struct VulkanOutput_t
+ 
+ 	VkFormat outputFormat = VK_FORMAT_UNDEFINED;
+ 
+-	std::array<std::shared_ptr<CVulkanTexture>, 8> pScreenshotImages;
++	std::array<std::shared_ptr<CVulkanTexture>, 64> pScreenshotImages;
+ 
+ 	// NIS and FSR
+ 	std::shared_ptr<CVulkanTexture> tmpOutput;

EDIT: @Starsam80 made a proper fix for this. Here is a patch 4586882 for this repo:

diff --git a/pkgs/gamescope/default.nix b/pkgs/gamescope/default.nix
index e28dee5..7805646 100644
--- a/pkgs/gamescope/default.nix
+++ b/pkgs/gamescope/default.nix
@@ -27,6 +27,13 @@ gamescope'.overrideAttrs({ buildInputs, ... }: {
       url = "https://raw.githubusercontent.com/NixOS/nixpkgs/770f6182ac3084eb9ed836e1f34fce0595c905db/pkgs/applications/window-managers/gamescope/use-pkgconfig.patch";
       sha256 = "sha256-BqP20qoVH47xT/Pn4P9V5wUvHK/AJivam0Xenr8AbGk=";
     })
+
+    # fix remote play, see:
+    # https://github.com/ValveSoftware/gamescope/issues/775#issuecomment-1619585648
+    (fetchpatch {
+      url = "https://github.com/ValveSoftware/gamescope/commit/f13171e486515ea28f50ebd69560ecc9d829a61d.diff";
+      sha256 = "sha256-uOMbWzBuiVPP7wwbFJ5W/0/aJVeHW9iyIuM6novnGI8=";
+    })
   ];
 
   buildInputs = buildInputs ++ [

Blank screen when autologging in with steam-wayland as the default session

Tried automatically logging into steam-wayland after boot using the following values below. On the first occasion I tried it I was dropped into a TTY where I could log in. The second and most recent was earlier today when a TTY blinking prompt appeared for a few moments before dropping me into a completely blank screen where I was unable to switch to another TTY. Not from my bluetooth keyboard at least.

  services.xserver.displayManager.autoLogin.enable = true;
  services.xserver.displayManager.autoLogin.user = "eolas";
  services.xserver.displayManager.defaultSession = "steam-wayland";

Documentation for misc. odds and ends

Not sure how we should handle this.

Things like forcing the resolution on the steam deck dock

{
  # Generic built-in EDID data sets are used, if one of
  # edid/1024x768.bin, edid/1280x1024.bin,
  # edid/1680x1050.bin, or edid/1920x1080.bin is given
  # and no file with the same name exists. Details and
  #
  # See also: drivers/gpu/drm/drm_edid_load.c
  boot.kernelParams = [
    # NOTE:
    # Without MST, on the steam deck doc, 
    #    - `DP-1` seems to be the display connected
    # On the steam deck dock, using MST:
    #    - `DP-2` seems to the DP port
    #    - `DP-3` seems to be the HDMI port
    "drm.edid_firmware=DP-2:edid/1920x1080.bin" # Forcing DP port to 1080p, assuming HDMI->DP adapter
  ];
}

Nothing really specific to the steam deck, nothing we really need to add porcelain around, but things that "power-users" like us are likely to end-up wanting to figure out.

Latest steam beta update segfaults after `No GSettings schemas are installed on the system`


If you need a workaround right now to play games right now, you can add this to your configuration as a temporary workaround:

{ config, lib, pkgs, ... }:
{
# ...
  # To be removed once https://github.com/NixOS/nixpkgs/pull/230375 is merged and in the channels.
  jovian.steam.environment = {
    GSETTINGS_SCHEMA_DIR = "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}/glib-2.0/schemas/";
  };
# ...
}

Replacement assets for steam stuff

To make it extra clear a non-stock system is used, or as alternatives.

Thus, another goal is to make relying on the steam theme things optional.

Non-specific

  • Replacement gamescope cursor (just pick up an adwaita cursor?)

Steam-specific

  • Replacement for STEAM_UPDATEUI_PNG_BACKGROUND

Investigate CPU governor

It is known (via single thread benchmarking with 7z) that the powersave governor can leave compute power on the table.

Investigate whether it would be a better default to change it to ondemand or performance, especially with gaming scnearios in mind.

Also: what does upstream SteamOS do?

Hints:

powerManagement.cpuFreqGovernor = "performance";

sudo cpupower frequency-set -g ondemand

 $ grep . /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu2/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu3/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu4/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu5/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu6/cpufreq/scaling_governor:powersave
/sys/devices/system/cpu/cpu7/cpufreq/scaling_governor:powersave

Flake support?

I wish we could have more idiomatic support for flake here.

Initial installation requires internet connection before the ability to configure Wi-FI

The initial setup is not possible without internet connection. Fast solution is to use USB-Ethernet dongle which might not be available.

Here are the steps I've used to reproduce this issue:

  1. Build an iso (NixOS/nixpkgs#246441 and #127 might be required) with jovian.steam.autoStart enabled
  2. Boot that iso with copytoram to be able to connect usb devices
  3. Observe the issue IMG_20230813_120222

journal.log (USB-Ethernet dongle was connected at Aug 13 12:04:35, the ethernet cable was connected at Aug 13 12:06:03)

How to build the same iso:
First we need NixOS/nixpkgs#246441

# in the nixpkgs tree: checkout #246441 and rebase it on top of nixos-unstable
nix run nixpkgs#gh -- pr checkout 246441
git rebase ce5e4a6ef2e59d89a971bc434ca8ca222b9c7f5e # current nixos-unstable

Now we can use that to build the iso

git clone https://gitlab.com/misuzu/nixos-configuration.git && cd nixos-configuration
# override nixpkgs with the local copy
nix flake lock --override-input nixpkgs /path/to/nixpkgs
nix build -L --print-out-paths .#nixosConfigurations.jovian-iso.config.system.build.isoImage

Add options for gamescope

Add options for gamescope+steam

  • Make a submodule with all relevant gamescope options
  • Apply submodule as CLI options

Relevant options:

  -w, --nested-width             game width
  -h, --nested-height            game height
  -r, --nested-refresh           game refresh rate (frames per second)
  -m, --max-scale                maximum scale factor
  -i, --integer-scale            force scale factor to integer
  -W, --output-width             output width
  -H, --output-height            output height
  -n, --nearest-neighbor-filter  use nearest neighbor filtering
  -U  --fsr-upscaling            use AMD FidelityFX™ Super Resolution 1.0 for upscaling
  --fsr-sharpness                FSR sharpness from 0 (max) to 20 (min)
  --cursor                       path to default cursor image
  -C, --hide-cursor-delay        hide cursor image after delay
  -e, --steam                    enable Steam integration
 --xwayland-count                create N xwayland servers

Nested mode options:
  -o, --nested-unfocused-refresh game refresh rate when unfocused
  -b, --borderless               make the window borderless
  -f, --fullscreen               make the window fullscreen

Embedded mode options:
  -O, --prefer-output            list of connectors in order of preference

Originally posted by @samueldr in #3 (comment)

How to improve switch between game / desktop modes?

Hi,

How could we make a smoother transition between desktop and gaming mode?

Right now, I've set up steam-wayland as the default session for the display manager, and set autologin, and allowed passwordLess login for my user, with this setup:

  • system boots on steam pal mode
  • steam switch to desktop leads me to lightdm (gdm is bad with passwordless as it doesn't allow you to choose the session...)
  • lightdm is displayed rotated with the touchscreen badly oriented
  • steam in desktop mode is asking me for a password for network stuff (not sure why 🤔), but I can't type any as my user doesn't have a password
  • going back to gaming mode from desktop is easier by rebooting, otherwise if I logout from GNOME, i need to pick the gaming mode in lightdm with its rotated screen/touchscreen and this mean the next time I need to go back in desktop mode, I'll have to pick the session again instead of reusing the last one

It would be so much better if:

  • switching to desktop mode was automatic without the display manager screen
  • switching to gaming mode was done through a shortcut on desktop mode

I'm not sure how ChimeraOS is doing exactly, the gaming session is run by a systemd user service, but I'm not sure how they stop gnome, maybe it's simply stoppping the display-manager service and running the user service, and vice-versa

IMO it's really the only friction Jovian-NixOS has to be the best platform for the steam deck 👍

OOBE broken in steam.target

This is a known issue with the "PAL" beta, and happens on other non-steamos distros.

Workaround

Log-in to your steam account using the desktop steam interface.

Gnome and Jovian conflict on pulseaudio

error: The option `hardware.pulseaudio.enable' has conflicting definition values:
       - In `/Jovian-NixOS/modules/steamdeck/sound.nix': false
       - In `/nix/var/nix/profiles/per-user/root/channels/nixos/nixos/modules/services/x11/desktop-managers/gnome.nix': true
       Use `lib.mkForce value` or `lib.mkDefault value` to change the priority on any of these definitions.
(use '--show-trace' to show detailed location information)

It can be fixed with:

  hardware.pulseaudio.enable = lib.mkForce false;
  services.pipewire.enable = lib.mkForce true;

We should probably include something to this effect in jovian.

Black screen upon second launch with custom resolution

Hi! 🙂 I'm using this config on my NixOS desktop PC. Thanks for your work!

The Gaming Mode session is working fine, except that the default resolution of gamescope doesn't match my ultra-wide monitor. I need to go to Menu > Settings > Display and disable Automatically Set Resolution. It then works fine until I log out of the session and launch it again. Upon subsequent launches, I can see the Steam Deck logo with Verifying Installation..., then I can hear the boot sound, but the screen remain frozen with the Deck logo.

My workaround is to set GAMESCOPE_MODE_SAVE_FILE to a temporary file, and to disable Automatically Set Resolution each time I launch the session:

diff --git a/modules/steam.nix b/modules/steam.nix
index c0688ff..7b28ce7 100644
--- a/modules/steam.nix
+++ b/modules/steam.nix
@@ -134,10 +134,7 @@ let
     echo "1x1" > "$RADV_FORCE_VRS_CONFIG_FILE"
 
     # Prepare gamescope mode save file (3.1.44+)
-    gamescope_config_dir="''${XDG_CONFIG_HOME:-$HOME/.config}/gamescope"
-    mkdir -p "$gamescope_config_dir"
-    export GAMESCOPE_MODE_SAVE_FILE="$gamescope_config_dir/modes.cfg"
-    touch "$GAMESCOPE_MODE_SAVE_FILE"
+    export GAMESCOPE_MODE_SAVE_FILE=$(mktemp --tmpdir gamescope-mode.XXXXXXXX)
 
     gamescope_incantation=(
       "${gamescope-shim}"

Implement some form of library automounting

The plan is, at least initially:

  • Automount (through udisks) any block device according to device name patterns (configurable with defaults).
  • When a steam library is found in an automounted device, add it to steam, with a twist:
    • Keep compatibility with steam's default which is to hog the root of the storage.
    • Also allow library to live in a direct subfolder from the root.
  • Add a tool to create an empty steam library from the CLI

We will not auto-create a library because we can't assume it's even desired.

Future improvements include a GUI way through some form of GUI within steam to allow users to create libraries on their storage, and also allowing ejecting said storage.


I have an implementation details plan already, I mostly need to do the parts of it. I have already tested the harder bits manually, and it would work.

communicate on "compatible" nixpkgs commit id

Hi, sometimes I find it hard to figure which commit one should use to build Jovian-NixOS (mostly because of mesa moving fast)

I found the file https://github.com/Jovian-Experiments/Jovian-NixOS/blob/development/nixpkgs.nix in the project, but it's not updated regularly. I don't know how this could be improved though.

In addition, this would be pretty cool if people sending PR could tell which nixpkgs commit they used to build. Maybe a simple PR template asking for the nixpkgs commit used could be a simple fix.

Decide on a specific policy for firmware updates

This is more of a placeholder catch-all location for thinking about the problem.

There is no rush to get this answered.


There are a few firmwarey things we handle, but leave running to the end-users at the moment:

  • Platform Firmware (BIOS)
  • Controller firmware
  • Dock firmware

Striving to solve #1, should we interface with the scripts that the vendor uses, or even add our own semantics around?

So, one issue with vendor scripts is it might get awkward under some situations, if they end-up communicating more information back and forth with the Steam UI. Also they would require use of Steam, which is something we need to keep in mind is a non-goal: one should be free to use everything but Steam.

We already kinda need to consider the use-case of non-vendor semantics around the update scripts with the Platform Firmware update. Using fwupd is a better option down the line.

One possibility I was thinking about is interjecting ourselves before Steam (or really any gamescope-driven "app") with a custom~ish basic app when any firmware update is detected as available. Nothing fancy is needed, could be zenity-based and state that updates are available, and allow selecting (with lizard mode? touch?) what to do. (Doing a quick GTK app with Vala is another option and I've got experience now.)

pipewire output defaulted to a dummy sink

ran into alot of trouble with pipewire ( most because i still us pulse) but by default all audio was going to a Dummy Sink ( what ever that is ) and Steam ui was unable to change it until i manually enabled some profiles with pactl and wpctl. I audio over hdmi still does not work could this be configured by default to save this trouble

Time zone setting shows as "Pacific" in settings even though it's not

Split off from #125.


For the UI to show the "correct" timezone, it needs to be one of the 62 timezones the Steam Deck UI knows about:

SteamClient.Settings.GetAvailableTimeZones().then((a) => console.log(JSON.stringify(a)))
Long list ahead!
[                                                                                                                                                                                                                                                                        
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -1100,                                                                                                                                                                                                                                                  
    "timezoneID": "Pacific/Pago_Pago",                                                                                                                                                                                                                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_Samoa",                                                                                                                                                                                                                
    "regionsLocalizationToken": "#TimeZoneCities_Samoa"                                                                                                                                                                                                                  
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -1000,                                                                                                                                                                                                                                                  
    "timezoneID": "Pacific/Honolulu",                                                                                                                                                                                                                                    
    "timezoneLocalizationToken": "#TimeZoneRegion_Hawaii",                                                                                                                                                                                                               
    "regionsLocalizationToken": "#TimeZoneCities_Hawaii"                                                                                                                                                                                                                 
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -900,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Anchorage",                                                                                                                                                                                                                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_Alaska",                                                                                                                                                                                                               
    "regionsLocalizationToken": "#TimeZoneCities_Alaska"                                                                                                                                                                                                                 
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -800,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Los_Angeles",                                                                                                                                                                                                                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_Pacific",                                                                                                                                                                                                              
    "regionsLocalizationToken": "#TimeZoneCities_Pacific"                                                                                                                                                                                                                
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -700,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Denver",                                                                                                                                                                                                                                      
    "timezoneLocalizationToken": "#TimeZoneRegion_Mountain",                                                                                                                                                                                                             
    "regionsLocalizationToken": "#TimeZoneCities_Mountain"                                                                                                                                                                                                               
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -700,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Chihuahua",                                                                                                                                                                                                                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_MountainMexico",                                                                                                                                                                                                       
    "regionsLocalizationToken": "#TimeZoneCities_MountainMexico"                                                                                                                                                                                                         
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -700,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Phoenix",                                                                                                                                                                                                                                     
    "timezoneLocalizationToken": "#TimeZoneRegion_MountainArizona",                                                                                                                                                                                                      
    "regionsLocalizationToken": "#TimeZoneRegion_MountainArizona"                                                                                                                                                                                                        
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -600,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Chicago",                                                                                                                                                                                                                                     
    "timezoneLocalizationToken": "#TimeZoneRegion_Central",                                                                                                                                                                                                              
    "regionsLocalizationToken": "#TimeZoneCities_Central"                                                                                                                                                                                                                
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -600,                                                                                                                                                                                                                                                   
    "timezoneID": "America/Costa_Rica",                                                                                                                                                                                                                                  
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralAmerica",                                                                                                                                                                                                       
    "regionsLocalizationToken": "#TimeZoneCities_CentralAmerica"                                                                                                                                                                                                         
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -600,                                                                                                                                                                                                                                                   
    "timezoneID": "Canada/Saskatchewan",                                                                                                                                                                                                                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_Central",                                                                                                                                                                                                              
    "regionsLocalizationToken": "#TimeZoneCities_Saskatchewan"                                                                                                                                                                                                           
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": -500,                                                                                                                                                                                                                                                   
    "timezoneID": "America/New_York",                                                                                                                                                                                                                                    
    "timezoneLocalizationToken": "#TimeZoneRegion_Eastern",                                                                                                                                                                                                              
    "regionsLocalizationToken": "#TimeZoneCities_Eastern"                                                                                                                                                                                                                
  },                                                                                                                                                                                                                                                                     
  {                                                               
    "utcOffset": -500,                                            
    "timezoneID": "America/Indiana/Indianapolis",                 
    "timezoneLocalizationToken": "#TimeZoneRegion_Indiana",                                                                         
    "regionsLocalizationToken": "#TimeZoneCities_Indiana"                                                                           
  },                                                              
  {                                                               
    "utcOffset": -500,                                            
    "timezoneID": "America/Bogota",                               
    "timezoneLocalizationToken": "#TimeZoneRegion_SAmericaPacific",                                                                 
    "regionsLocalizationToken": "#TimeZoneCities_SAmericaPacific"                                                                   
  },                                                              
  {                                                               
    "utcOffset": -400,                                            
    "timezoneID": "America/Moncton",                              
    "timezoneLocalizationToken": "#TimeZoneRegion_Atlantic",                                                                        
    "regionsLocalizationToken": "#TimeZoneCities_Atlantic"                                                                          
  },                                                              
  {                                                               
    "utcOffset": -400,                                            
    "timezoneID": "America/Caracas",                              
    "timezoneLocalizationToken": "#TimeZoneRegion_SAmericaWestern",                                                                 
    "regionsLocalizationToken": "#TimeZoneCities_SAmericaWestern"                                                                   
  },                                                              
  {                                                               
    "utcOffset": -400,                                            
    "timezoneID": "America/Santiago",                             
    "timezoneLocalizationToken": "#TimeZoneRegion_Chile",                                                                           
    "regionsLocalizationToken": "#TimeZoneCities_Chile"                                                                             
  },                                                              
  {                                                               
    "utcOffset": -330,                                            
    "timezoneID": "America/St_Johns",                             
    "timezoneLocalizationToken": "#TimeZoneRegion_EastCanada",                                                                      
    "regionsLocalizationToken": "#TimeZoneCities_EastCanada"                                                                        
  },                                                              
  {                                                               
    "utcOffset": -300,                                            
    "timezoneID": "America/Sao_Paulo",                            
    "timezoneLocalizationToken": "#TimeZoneRegion_Brazil",                                                                          
    "regionsLocalizationToken": "#TimeZoneCities_Brazil"                                                                            
  },                                                              
  {                                                               
    "utcOffset": -300,                                            
    "timezoneID": "America/Argentina/Buenos_Aires",               
    "timezoneLocalizationToken": "#TimeZoneRegion_SAmericaEast",                                                                    
    "regionsLocalizationToken": "#TimeZoneCities_SAmericaEast"                                                                      
  },                                                              
  {                                                               
    "utcOffset": -300,                                            
    "timezoneID": "America/Godthab",                              
    "timezoneLocalizationToken": "#TimeZoneRegion_Greenland",                                                                       
    "regionsLocalizationToken": "#TimeZoneCities_Greenland"                                                                         
  },                                                              
  {                                                               
    "utcOffset": -100,                                            
    "timezoneID": "Atlantic/Azores",                              
    "timezoneLocalizationToken": "#TimeZoneRegion_Azores",                                                                          
    "regionsLocalizationToken": "#TimeZoneCities_Azores"                                                                            
  },                                                              
  {                                                               
    "utcOffset": -100,                                            
    "timezoneID": "Atlantic/Cape_Verde",                          
    "timezoneLocalizationToken": "#TimeZoneRegion_CapeVerde",                                                                       
    "regionsLocalizationToken": "#TimeZoneCities_CapeVerde"                                                                         
  },                                                              
  {                                                               
    "utcOffset": 0,                                               
    "timezoneID": "Europe/Dublin",                                
    "timezoneLocalizationToken": "#TimeZoneRegion_GMT",                                                                             
    "regionsLocalizationToken": "#TimeZoneCities_GMT"             
  },                                                              
  {                                                               
    "utcOffset": 100,                                             
    "timezoneID": "Europe/Paris",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralEurope",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_CentralEurope"                                                                     
  },                                                              
  {                                                               
    "utcOffset": 100,                                             
    "timezoneID": "Africa/Lagos",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_WestAfrica",                                                                      
    "regionsLocalizationToken": "#TimeZoneCities_WestAfrica"                                                                        
  },                                                              
  {                                                               
    "utcOffset": 100,                                             
    "timezoneID": "Africa/Harare",                                
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralAfrica",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_CentralAfrica"                                                                     
  },                                                              
  {                                                               
    "utcOffset": 200,                                             
    "timezoneID": "Europe/Bucharest",                             
    "timezoneLocalizationToken": "#TimeZoneRegion_EasternEurope",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_EasternEurope"                                                                     
  },                                                              
  {                                                               
    "utcOffset": 200,                                             
    "timezoneID": "Asia/Jerusalem",                               
    "timezoneLocalizationToken": "#TimeZoneRegion_Israel",                                                                          
    "regionsLocalizationToken": "#TimeZoneCities_Israel"                                                                            
  },                                                              
  {                                                               
    "utcOffset": 300,                                             
    "timezoneID": "Europe/Moscow",                                
    "timezoneLocalizationToken": "#TimeZoneRegion_Moscow",                                                                          
    "regionsLocalizationToken": "#TimeZoneCities_Moscow"                                                                            
  },                                                              
  {                                                               
    "utcOffset": 300,                                             
    "timezoneID": "Asia/Kuwait",                                  
    "timezoneLocalizationToken": "#TimeZoneRegion_Arabia",                                                                          
    "regionsLocalizationToken": "#TimeZoneCities_Arabia"                                                                            
  },                                                              
  {                                                               
    "utcOffset": 300,                                             
    "timezoneID": "Africa/Nairobi",                               
    "timezoneLocalizationToken": "#TimeZoneRegion_EastAfrica",                                                                      
    "regionsLocalizationToken": "#TimeZoneCities_EastAfrica"                                                                        
  },                                                              
  {                                                               
    "utcOffset": 330,                                             
    "timezoneID": "Asia/Tehran",                                  
    "timezoneLocalizationToken": "#TimeZoneRegion_Iran",                                                                            
    "regionsLocalizationToken": "#TimeZoneCities_Iran"                                                                              
  },                                                              
  {                                                               
    "utcOffset": 400,                                             
    "timezoneID": "Asia/Muscat",                                  
    "timezoneLocalizationToken": "#TimeZoneRegion_Arabian",                                                                         
    "regionsLocalizationToken": "#TimeZoneCities_Arabian"                                                                           
  },                                                              
  {                                                               
    "utcOffset": 400,                                             
    "timezoneID": "Asia/Baku",                                    
    "timezoneLocalizationToken": "#TimeZoneRegion_Caucasus",                                                                        
    "regionsLocalizationToken": "#TimeZoneCities_Caucasus"                                                                          
  },                                                              
  {                                                               
    "utcOffset": 430,                                             
    "timezoneID": "Asia/Kabul",                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_Afghanistan",                                                                     
    "regionsLocalizationToken": "#TimeZoneCities_Afghanistan"                                                                       
  },                                                              
  {                                                               
    "utcOffset": 500,                                             
    "timezoneID": "Asia/Yekaterinburg",                           
    "timezoneLocalizationToken": "#TimeZoneRegion_Yekaterinburg",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_Yekaterinburg"                                                                     
  },                                                              
  {                                                               
    "utcOffset": 500,                                             
    "timezoneID": "Asia/Karachi",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_WestAsia",                                                                        
    "regionsLocalizationToken": "#TimeZoneCities_WestAsia"                                                                          
  },                                                              
  {                                                               
    "utcOffset": 530,                                             
    "timezoneID": "Asia/Kolkata",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_India",                                                                           
    "regionsLocalizationToken": "#TimeZoneCities_India"                                                                             
  },                                                              
  {                                                               
    "utcOffset": 545,                                             
    "timezoneID": "Asia/Kathmandu",                               
    "timezoneLocalizationToken": "#TimeZoneRegion_Nepal",                                                                           
    "regionsLocalizationToken": "#TimeZoneCities_Nepal"                                                                             
  },                                                              
  {                                                               
    "utcOffset": 600,                                             
    "timezoneID": "Asia/Dhaka",                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralAsia",                                                                     
    "regionsLocalizationToken": "#TimeZoneCities_CentralAsia"                                                                       
  },                                                              
  {                                                               
    "utcOffset": 600,                                             
    "timezoneID": "Asia/Novosibirsk",                             
    "timezoneLocalizationToken": "#TimeZoneRegion_NorthCentralAsia",                                                                
    "regionsLocalizationToken": "#TimeZoneCities_NorthCentralAsia"                                                                  
  },                                                              
  {                                                               
    "utcOffset": 630,                                             
    "timezoneID": "Asia/Rangoon",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_Myanmar",                                                                         
    "regionsLocalizationToken": "#TimeZoneCities_Myanmar"                                                                           
  },                                                              
  {                                                               
    "utcOffset": 700,                                             
    "timezoneID": "Asia/Bangkok",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_SoutheastAsia",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_SoutheastAsia"                                                                     
  },                                                              
  {                                                               
    "utcOffset": 700,                                             
    "timezoneID": "Asia/Krasnoyarsk",                             
    "timezoneLocalizationToken": "#TimeZoneRegion_NorthAsia",                                                                       
    "regionsLocalizationToken": "#TimeZoneCities_NorthAsia"                                                                         
  },                                                              
  {                                                               
    "utcOffset": 800,                                             
    "timezoneID": "Asia/Shanghai",                                
    "timezoneLocalizationToken": "#TimeZoneRegion_China",                                                                           
    "regionsLocalizationToken": "#TimeZoneCities_China"                                                                             
  },                                                              
  {                                                               
    "utcOffset": 800,                                             
    "timezoneID": "Asia/Singapore",                               
    "timezoneLocalizationToken": "#TimeZoneRegion_Singapore",                                                                       
    "regionsLocalizationToken": "#TimeZoneCities_Singapore"                                                                         
  },                                                              
  {                                                               
    "utcOffset": 800,                                             
    "timezoneID": "Asia/Taipei",                                  
    "timezoneLocalizationToken": "#TimeZoneRegion_Taipei",                                                                          
    "regionsLocalizationToken": "#TimeZoneCities_Taipei"                                                                            
  },                                                              
  {                                                               
    "utcOffset": 800,                                             
    "timezoneID": "Australia/Perth",                              
    "timezoneLocalizationToken": "#TimeZoneRegion_WestAustralia",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_WestAustralia"                                                                     
  },                                                              
  {                                                               
    "utcOffset": 800,                                             
    "timezoneID": "Asia/Irkutsk",                                 
    "timezoneLocalizationToken": "#TimeZoneRegion_NorthAsiaEast",                                                                   
    "regionsLocalizationToken": "#TimeZoneCities_NorthAsiaEast"                                                                     
  },                                                              
  {                                                                                                                                                                                                                                                                      
    "utcOffset": 900,                                                                                                                                                                                                                                                    
    "timezoneID": "Asia/Seoul",                                                                                                                                                                                                                                          
    "timezoneLocalizationToken": "#TimeZoneRegion_Korea",                                                                                                                                                                                                                
    "regionsLocalizationToken": "#TimeZoneCities_Korea"                                                                                                                                                                                                                  
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": 900,                                                                                                                                                                                                                                                    
    "timezoneID": "Asia/Tokyo",                                                                                                                                                                                                                                          
    "timezoneLocalizationToken": "#TimeZoneRegion_Japan",                                                                                                                                                                                                                
    "regionsLocalizationToken": "#TimeZoneCities_Japan"                                                                                                                                                                                                                  
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": 900,                                                                                                                                                                                                                                                    
    "timezoneID": "Asia/Yakutsk",                                                                                                                                                                                                                                        
    "timezoneLocalizationToken": "#TimeZoneRegion_Yakutsk",                                                                                                                                                                                                              
    "regionsLocalizationToken": "#TimeZoneCities_Yakutsk"                                                                                                                                                                                                                
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": 930,                                                                                                                                                                                                                                                    
    "timezoneID": "Australia/Darwin",                                                                                                                                                                                                                                    
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralAustraliaD",                                                                                                                                                                                                    
    "regionsLocalizationToken": "#TimeZoneCities_CentralAustraliaD"                                                                                                                                                                                                      
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                                                                                                                                                      
    "utcOffset": 930,                                                                                                                                                                                                                                                    
    "timezoneID": "Australia/Adelaide",                                                                                                                                                                                                                                  
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralAustraliaA",                                                               
    "regionsLocalizationToken": "#TimeZoneCities_CentralAustraliaA"                                                                 
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1000,                                                                                                              
    "timezoneID": "Australia/Sydney",                                                                                               
    "timezoneLocalizationToken": "#TimeZoneRegion_EasternAustralia",                                                                
    "regionsLocalizationToken": "#TimeZoneCities_EasternAustralia"                                                                  
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1000,                                                                                                              
    "timezoneID": "Australia/Brisbane",                                                                                             
    "timezoneLocalizationToken": "#TimeZoneRegion_EasternAustraliaB",                                                               
    "regionsLocalizationToken": "#TimeZoneCities_EasternAustraliaB"                                                                 
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1000,                                                                                                              
    "timezoneID": "Asia/Vladivostok",                                                                                               
    "timezoneLocalizationToken": "#TimeZoneRegion_Vladivostok",                                                                     
    "regionsLocalizationToken": "#TimeZoneCities_Vladivostok"                                                                       
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1000,                                                                                                              
    "timezoneID": "Pacific/Guam",                                                                                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_WestPacific",                                                                     
    "regionsLocalizationToken": "#TimeZoneCities_WestPacific"                                                                       
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1100,                                                                                                              
    "timezoneID": "Pacific/Guadalcanal",                                                                                            
    "timezoneLocalizationToken": "#TimeZoneRegion_CentralPacific",                                                                  
    "regionsLocalizationToken": "#TimeZoneCities_CentralPacific"                                                                    
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1200,                                                                                                              
    "timezoneID": "Pacific/Fiji",                                                                                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_Fiji",                                                                                                                                                                                                                 
    "regionsLocalizationToken": "#TimeZoneCities_Fiji"                                                                                                                                                                                                                   
  },                                                                                                                                
  {                                                                                                                                 
    "utcOffset": 1200,                                                                                                                                                                                                                                                   
    "timezoneID": "Pacific/Auckland",                                                                                                                                                                                                                                    
    "timezoneLocalizationToken": "#TimeZoneRegion_NewZealand",                                                                      
    "regionsLocalizationToken": "#TimeZoneCities_NewZealand"                                                                                                                                                                                                             
  },                                                                                                                                                                                                                                                                     
  {                                                                                                                                 
    "utcOffset": 1300,                                                                                                                                                                                                                                                   
    "timezoneID": "Pacific/Tongatapu",                                                                                                                                                                                                                                   
    "timezoneLocalizationToken": "#TimeZoneRegion_Tonga",                                                                                                                                                                                                                
    "regionsLocalizationToken": "#TimeZoneCities_Tonga"                                                                                                                                                                                                                  
  }                                                                                                                                                                                                                                                                      
]                                                                                                                                                                                                                                                                        

Steam isn't installed

I tested this in a vm and the gaming-session does not run and steam isn't installed

Fails to build

$ nix-build -A isoMinimal
these 148 derivations will be built:
  /nix/store/932w7kxap08x4555zm01x8gx13cwn7ng-nixos-generate-config.drv
  /nix/store/k5dd5xfnd45npr2irihml3dj0f7qzb1f-system-path.drv
  /nix/store/03p7bs2z60949wfifibx9yq8q2ald790-dbus-1.drv
  /nix/store/04p1hb97g02v1z3rp36m382r5s0p667d-unit-save-hwclock.service.drv
  /nix/store/07if115y0ai4d8ajzbsvnbj018l2bywh-unit-script-container_-pre-start.drv
  /nix/store/54qp8pj12723xrpl1g2xbw71cavfy9ik-jovian-ucm-conf.drv
  /nix/store/0aa50iyna8jrkd1idc7cra60am8dvaij-unit-pipewire.service.drv
  /nix/store/mnvp5fbdkp3jlwhjv97vbvw8f126ngig-source.drv
  /nix/store/m1d39r2c76i052x0hh87k6x1ii3w6zxk-linux-firmware-20230310.drv
  /nix/store/g8rlwny30zagaia73k8hsi3gn785x372-linux-firmware-20230310-xz.drv
  /nix/store/532vgvr0aq5lg3cwnjm2fwmw2xbgwsr0-firmware.drv
  /nix/store/0dggc4y3w81h95kmhv1izmpa4py1p5j9-etc-firmware.conf.drv
  /nix/store/10w47yhjda7slq4nkpxg5kn36jbc0zx2-unit-systemd-remount-fs.service.drv
  /nix/store/161a1acg69g1r2v2lwkvah1hrhd7wcs7-unit-systemd-fsck-.service.drv
  /nix/store/1b6l5xqii2530g3cnfxjidqripzzcxnw-unit-script-post-resume-start.drv
  /nix/store/hfnz3xgp7dba52lyicci94xzdnaqpsk6-source.drv
  /nix/store/1gbjmgywnjfhxadrj7ck8a4i5d5j3s4g-linux-config-6.1.21-saml.drv
  /nix/store/bxrqfdxf8dwmy7dcw2aynpdy48pkc611-firewall-start.drv
  /nix/store/1mwvqf9gxrzzyvhc74x85jv98cw5znn3-firewall-reload.drv
  /nix/store/22rms2m34kbnf4vaxxbhjs08grsald48-unit-pipewire.service-disabled.drv
  /nix/store/246753jyfljmr7s2hv12k4drl8fc9yn1-unit-systemd-importd.service.drv
  /nix/store/26h7msm2w85z8z9sm4jl3ljc6yxwwfhl-unit-systemd-oomd.service.drv
  /nix/store/2m99251agxwaijg0yj7bl1j70dqj3lka-unit-dbus.service.drv
  /nix/store/3dm4bimn2qw9zd36dvkyqhlrhpm0cxzz-unit-wireplumber.service.drv
  /nix/store/an2lz6hpyvfw97pnnb71990d5dzih56l-unit-pipewire-pulse.socket.drv
  /nix/store/bn7481rncrwic4nzdiihmk37g1ymg15f-unit-systemd-tmpfiles-setup.service.drv
  /nix/store/nga1vca240cwyb8h3jscdsi44x28ldyx-unit-pipewire.socket.drv
  /nix/store/rkwxzcf2q5vwp4c6sw52zgchnyakw17c-unit-script-nixos-activation-start.drv
  /nix/store/nv5br237pzia6vs0x5s4k3z5rplr7cqr-unit-nixos-activation.service.drv
  /nix/store/2nhznnm4v07vgd4953pqvlln3ydn1jyl-user-units.drv
  /nix/store/3608rz7g13m8i9fhlnqx1ms1p0vc14vs-system-generators.drv
  /nix/store/3jdizr9qp2fhg6xvqhdd3fzaqvap9vrw-xscreensaver.pam.drv
  /nix/store/3lwlcsc7x0yrannjwqzhm43rj8pk6s4a-unit-script-network-setup-start.drv
  /nix/store/7arab4pyishnl439cjnniwxyqw639xqf-unit-script-nix-gc-start.drv
  /nix/store/4lza6dcdpxfsidbyl64mjfn24z2q45mp-unit-nix-gc.service.drv
  /nix/store/4md5gsmmws9l1dw7spmw12zld8404cz4-etc-bashrc.drv
  /nix/store/4yy635a5mhzrmq8rlc9q6cb6g75dz9xn-unit-systemd-journal-flush.service.drv
  /nix/store/rzpnjv1q864y0dr2sivi6hg2lqs5rl4c-unit-script-sshd-pre-start.drv
  /nix/store/56wmf1h0ww2azy7lhklr3k2lkv2w0b9i-unit-sshd.service.drv
  /nix/store/5959dbbikfjdim4lv5ajj7wrkc95zsmg-system-shutdown.drv
  /nix/store/5a3q4j6kqnkaibn64q9i9dsm8dhy2q3s-unit-run-initramfs.mount.drv
  /nix/store/srmn184klk1zakp9vvc8vf7kcns922g4-wpa_supplicant.conf.drv
  /nix/store/6blxm4y07vrab0xvvh70qyql21hqb0kr-unit-script-wpa_supplicant-start.drv
  /nix/store/6grkkinij3m79xxmfybadz2cl9186vf1-unit-zfs.target.drv
  /nix/store/7dizq2m1bbabx3wh8252gv3nks6xnrlp-xlock.pam.drv
  /nix/store/7wzxalaq6228flgxmyw5jc64yd87ijnm-nixos.conf.drv
  /nix/store/zaspfa691jnvxxl5i5gr4h7hwnff0aib-nixos-tmpfiles.d.drv
  /nix/store/8fswbk9nam4sx8yzp69ncqnzbhpicsna-tmpfiles.d.drv
  /nix/store/a5zza9jssx1y8gabdy47hk75wwzfcqnq-desktops.drv
  /nix/store/ccpvlxjzgsg2szp1nbwxs1bsy8npr8ph-set-environment.drv
  /nix/store/74ivgz1wifiks87cwn85igmdwc4vvy2b-unit-firewall.service.drv
  /nix/store/779x44qa9vh7lgqr3ql9h8nxafq14i6k-unit-user-.service.drv
  /nix/store/7kw47y9dcmfkn3j3i76jar349zcds4k5-unit-systemd-update-utmp.service.drv
  /nix/store/81xr6chiym5qa7vzj21b40n99bvx8fs1-unit-zfs-share.service.drv
  /nix/store/870p9zm5qjl6xxzdp2wxvmv0q8pc2khn-unit-pipewire.socket-disabled.drv
  /nix/store/9s687wlw1yli33vprpxmy4v3ykm23g6z-unit-post-resume.service.drv
  /nix/store/a33s3nkzg3a0qfbmi6vs1jsfckrqipmn-unit-systemd-user-sessions.service.drv
  /nix/store/aadymckv5flyxzbr8pyc38bdbdz62kr7-unit-network-interfaces.target.drv
  /nix/store/bc72vjvv3r8g5s58k1pvw3xigyirz8pm-dhcpcd.conf.drv
  /nix/store/liy0i0iqqkb0x16rhx5dlgwzyw786kc0-dhcpcd.exit-hook.drv
  /nix/store/aj5gmp91absyfi22vgnx9gk76zrgiv3s-unit-dhcpcd.service.drv
  /nix/store/azjrmmmhg4jky8cdjhfw25m6nn9b4dgh-unit-remote-fs.target.drv
  /nix/store/ba3hmk8nbiswcdgnhrv7743msd5v89ry-unit-zfs-zed.service.drv
  /nix/store/bmyz5v2kzdqz7ah6175mr2mj7g5vs67a-unit-reload-systemd-vconsole-setup.service.drv
  /nix/store/bwx1cxqb557chp5brw49qw3k3xkxwnd5-unit-system.slice.drv
  /nix/store/c6bjdy0xc380l3d929mi6mkjhz9w2dvw-unit-serial-getty-.service.drv
  /nix/store/c7s4khlkk9d49ci6xrf06aj3z1xvgi68-unit-systemd-timedated.service.drv
  /nix/store/ipvklnc6ddsfislzasas473vzg3a6c55-unit-script-prepare-kexec-start.drv
  /nix/store/ca3d739janwahm2ryv40hlsaa5pkqb6v-unit-prepare-kexec.service.drv
  /nix/store/cxy1h4jv3vav7fbfa6xjzw3cbizz96n2-unit-systemd-journal-gatewayd.socket.drv
  /nix/store/dmym49gz2k4xj1mi4m1nky8grxg1irac-unit-systemd-logind.service.drv
  /nix/store/ffa9mc29g7r2a1hapg57bq8zvgf2vnf0-unit-systemd-pstore.service.drv
  /nix/store/fl8sb9wmvnxilvwfmk35wc18m3i79ypm-unit-systemd-timesyncd.service.drv
  /nix/store/fpb8jwsv17i2incq2bwzcgnbrpilbzf6-unit-systemd-modules-load.service.drv
  /nix/store/g4059953bys098byj6fwmabn6l6hassg-unit-zpool-trim.timer.drv
  /nix/store/gpqajc9d9rlbf2ijkwa00vsclzl130x2-unit-mount-pstore.service.drv
  /nix/store/gy8ga5fi39mw69p4l6xk2vgm7bghp5dj-unit-network-setup.service.drv
  /nix/store/hh5qzib07l24ssn730bdyrjs7gw5wkrm-unit-zfs-import.target.drv
  /nix/store/hj87pmairn6qcan5y5xzfkhgcl6f936v-unit-zpool-trim.service.drv
  /nix/store/hsz0h3wzngbk0wdxr78jby77vjyqk72g-unit-wpa_supplicant.service.drv
  /nix/store/hyz9jkhfxs7fbckm58ij4np6yag60g1r-unit-post-resume.target.drv
  /nix/store/abml0b01q0rm7lgjdcd473xqvnkg6whz-unit-script-pre-sleep-start.drv
  /nix/store/hz39rfg69ccb1zpalxgz2sml6bxqxxrv-unit-pre-sleep.service.drv
  /nix/store/hzlamkw928fi8y6i22a7xph24c0r62p2-unit-multi-user.target.drv
  /nix/store/id8ak29ah55mxrqgp5gyc0pvpfdb029c-unit-kmod-static-nodes.service.drv
  /nix/store/hkdzxzsxgnh7ip44sgsbkg8ji78xvyak-unit-script-network-local-commands-start.drv
  /nix/store/ja6yf302bk2x772vaqbbqjzb08whaibr-unit-network-local-commands.service.drv
  /nix/store/k67qkb1byj473v0v5f046qkj51c6q253-unit-local-fs.target.drv
  /nix/store/k9vqwk596v0h0nlaj4lqq9qv802amyvr-unit-network-online.target.drv
  /nix/store/kgj0rz1p0ny2rfrj0c5amrnz3vj2yhaf-unit-nscd.service.drv
  /nix/store/ky9hxf7srizdr6mmlvf2f4bawcrpkzka-unit-systemd-udev-settle.service.drv
  /nix/store/m48czqcnf1lj4gm4665zhh97ymf8kfra-unit-wireplumber.service-disabled.drv
  /nix/store/qybck1wccx51akak4qphp4kdajlnpy7r-unit-nix-optimise.service.drv
  /nix/store/r6spd6mjs6ncdyrqr0ydr1nv55590mbd-unit-systemd-random-seed.service.drv
  /nix/store/r7h01bv2b5inaqsm10n057szggaqv4jg-unit-zfs-mount.service.drv
  /nix/store/kpr51lgjxqd5valaxrkzd1hddf1sz33b-etc-60-nixos.conf.drv
  /nix/store/rn48kjnalarvgyk24klqa1yxkkj594yz-unit-systemd-sysctl.service.drv
  /nix/store/sakzm27k03yrwlik26smlsikdh3pmy6q-unit-resolvconf.service.drv
  /nix/store/l2n3fc7q7kkwwsmmhfffhhvhlagbld41-unit-script-container_-start.drv
  /nix/store/p8ad829grscw2c3fzdjbjyk28zyqkrv0-unit-script-container_-post-start.drv
  /nix/store/vqpyzb3m43j63gvxya61ql5caghr2vrf-unit-container-.service.drv
  /nix/store/w35hnz9af65b8zs9aygxlzpmcyr4b67v-unit-systemd-journald-.service.drv
  /nix/store/fdmac9ghcjim49fpi11b44ymvkpnfici-zpool-sync-shutdown.drv
  /nix/store/89bi2rx0gpykkm4mx51a2j5c4k79bzwa-shutdown-ramfs-contents.drv
  /nix/store/w8b97l3apcxygc8288lwvgil9cz2byp0-unit-generate-shutdown-ramfs.service.drv
  /nix/store/wq8w9s6wask5cdrmy366rlhfdfnx200d-unit-systemd-backlight-.service.drv
  /nix/store/x8bml53gl9fipl9mj31jah634945cr3w-unit-keys.target.drv
  /nix/store/pk0xnfks683b80qbys1kp5yr6vv5q6ga-extra-udev-rules.drv
  /nix/store/xgklg1bzd9bng33m88r53s6v6dckxfm7-unit-systemd-udevd.service.drv
  /nix/store/xyck0q0236m4x3allvrgfbp4x0qch4hf-unit-systemd-journald.service.drv
  /nix/store/xzry12vqpycy3zzhr1slw2jlljq59493-unit-user-runtime-dir-.service.drv
  /nix/store/yib7g4adrws764ghp8fvr7rs1kxia4y1-unit-nix-daemon.service.drv
  /nix/store/ysvyh99cyvc7h5jnzfw5f6pqc77wfgy0-unit-polkit.service.drv
  /nix/store/z0f6vffwzggzvv82m6s7glqlk4a69ci8-unit-dbus.service.drv
  /nix/store/zw95lspkxacn5cbiggxjqpqqm8r00jjy-unit-nix-daemon.socket.drv
  /nix/store/cglzi6dq35s4jg62c6r6i37sgazry8rd-system-units.drv
  /nix/store/chjy9xd196rkg291j4r3kii6mz8wjn77-vlock.pam.drv
  /nix/store/drlq0ig0npql4glwsxzlr5w2z1r60y80-udev-rules.drv
  /nix/store/hhrdzq2darqh6yv6x9dazm07mn5iyvv3-etc-environment.drv
  /nix/store/l1wic1l2szkmhqziacxdbkayg7wffmlz-etc-ssh_config.drv
  /nix/store/my1qgzi7dk72jq5l00mlamviycr4x5ps-login.pam.drv
  /nix/store/8xar6xswhz5d0qvhr6144yv33b41z0l7-source.drv
  /nix/store/nsxn5apvbnq6jvnms5dh68iibmcxb19x-mesa-radv-jupiter-23.1.0.steamos-3.5.1.drv
  /nix/store/pnq6c9xs9pkb0ha28wpnpjfdd2x2vdgb-hwdb.bin.drv
  /nix/store/sjjy03l23xx0hvss0j7dsm2b6ainb4hf-etc-profile.drv
  /nix/store/v4rphqy2pc2jqw6dn16zmvixwj08g4c1-etc-10-nixos.rules.drv
  /nix/store/yzc4dph60j6ih255y4z554cb73y6gas6-issue.drv
  /nix/store/g6hcsr4bkagmjzrljkm4jfzxajwvbdr6-etc.drv
  /nix/store/kh7qgd86yam9wrww7gyn907kk91hc5hb-ensure-all-wrappers-paths-exist.drv
  /nix/store/kkc4y1ihmsc66z4alirsaxwk3fdhlzm9-linux-6.1.21-saml.drv
  /nix/store/n7afvck8mm25hdk48ivp6f689z8zadi9-users-groups.json.drv
  /nix/store/ksg71qa6hf4i7k72bcxc5wf085yw4g9g-zfs-kernel-2.1.9-6.1.21-saml.drv
  /nix/store/pdd9bfd121lrx9qddnri5fvmb6gy4jm3-kernel-modules.drv
  /nix/store/79sbj0inp6rvzg9fh8c41b5hlb33fbm8-linux-6.1.21-saml-modules.drv
  /nix/store/hm9g5rlk339fw6j4fa0v3f67rgzwlbyf-linux-6.1.21-saml-modules-shrunk.drv
  /nix/store/k4i8asa1gh0vb06z3j8clyx4ysivp8jb-stage-1-init.sh.drv
  /nix/store/wxkis1mw7hlw751g0ph0ikx3vj4k7wqz-initrd-linux-6.1.21-saml.drv
  /nix/store/kzwgx7pn4ncf9q3bkny411v8z3vklw7q-configuration.nix.drv
  /nix/store/xwfi468pqmn3mf9lc5hs8lm3fk98mffd-local-cmds.drv
  /nix/store/xcrrmcq45g4x0kq6pv5v0rn8fx0m1vmb-stage-2-init.sh.drv
  /nix/store/lscf8g3wvbhaf5c8ag6ca6w66cml6slh-nixos-system-nixos-23.05pre-git.drv
  /nix/store/aaldhsjc68nvzy37hsslic0fca5h29qx-efi-directory.drv
  /nix/store/6zw02gv9930wfbnq0j4r6mbap9v6ya99-efi-image_eltorito.drv
  /nix/store/d671s5hjf5z46gyw5j4w7mrwyx5ws1vi-isolinux.cfg-in.drv
  /nix/store/bf8zcsp30wlm7a788p5s6z3pbvw3rjk2-isolinux.cfg.drv
  /nix/store/cprnzg63pxifycakaivbhzrcwgks057c-closure-info.drv
  /nix/store/pgc9n37fbqpl36r89fx2v5xxmzv1i1fa-squashfs.img.drv
  /nix/store/i7a3wdp6z3smdix07zqazx1pljms5lrr-nixos-23.05pre-git-x86_64-linux.iso.drv
these 7 paths will be fetched (8.60 MiB download, 28.20 MiB unpacked):
  /nix/store/46d53jcm0jl2l963qnl8x6rsra9m09vs-wireless-tools-30.pre9
  /nix/store/65gnaasfhn6plk8cd3z866gygzkmyyq1-iw-5.19
  /nix/store/gwlgk5fj4wvr4as4c5irp31hx15h76qp-strace-6.2
  /nix/store/j0qrzpdxnn1pvprpn8syc4w1w4hw7va6-extra-utils
  /nix/store/l94vmy78ir3cdw5dh6vkh3a3wr7rc6j3-udev-rules
  /nix/store/ng2i2ffks8fzbr9d4sqjnhr05wqa5r25-sshd.conf-validated
  /nix/store/nwa43ynrd6lkmad6ac2sqhkn5pl7464v-link-units
copying path '/nix/store/j0qrzpdxnn1pvprpn8syc4w1w4hw7va6-extra-utils' from 'https://cache.nixos.org'...
copying path '/nix/store/nwa43ynrd6lkmad6ac2sqhkn5pl7464v-link-units' from 'https://cache.nixos.org'...
building '/nix/store/kh7qgd86yam9wrww7gyn907kk91hc5hb-ensure-all-wrappers-paths-exist.drv'...
building '/nix/store/n7afvck8mm25hdk48ivp6f689z8zadi9-users-groups.json.drv'...
copying path '/nix/store/65gnaasfhn6plk8cd3z866gygzkmyyq1-iw-5.19' from 'https://cache.nixos.org'...
copying path '/nix/store/ng2i2ffks8fzbr9d4sqjnhr05wqa5r25-sshd.conf-validated' from 'https://cache.nixos.org'...
copying path '/nix/store/gwlgk5fj4wvr4as4c5irp31hx15h76qp-strace-6.2' from 'https://cache.nixos.org'...
copying path '/nix/store/46d53jcm0jl2l963qnl8x6rsra9m09vs-wireless-tools-30.pre9' from 'https://cache.nixos.org'...
Checking that Nix store paths of all wrapped programs exist... OK
building '/nix/store/kzwgx7pn4ncf9q3bkny411v8z3vklw7q-configuration.nix.drv'...
building '/nix/store/a5zza9jssx1y8gabdy47hk75wwzfcqnq-desktops.drv'...
building '/nix/store/bc72vjvv3r8g5s58k1pvw3xigyirz8pm-dhcpcd.conf.drv'...
building '/nix/store/liy0i0iqqkb0x16rhx5dlgwzyw786kc0-dhcpcd.exit-hook.drv'...
building '/nix/store/v4rphqy2pc2jqw6dn16zmvixwj08g4c1-etc-10-nixos.rules.drv'...
building '/nix/store/kpr51lgjxqd5valaxrkzd1hddf1sz33b-etc-60-nixos.conf.drv'...
building '/nix/store/4md5gsmmws9l1dw7spmw12zld8404cz4-etc-bashrc.drv'...
building '/nix/store/l1wic1l2szkmhqziacxdbkayg7wffmlz-etc-ssh_config.drv'...
building '/nix/store/hhrdzq2darqh6yv6x9dazm07mn5iyvv3-etc-environment.drv'...
building '/nix/store/pk0xnfks683b80qbys1kp5yr6vv5q6ga-extra-udev-rules.drv'...
building '/nix/store/bxrqfdxf8dwmy7dcw2aynpdy48pkc611-firewall-start.drv'...
building '/nix/store/yzc4dph60j6ih255y4z554cb73y6gas6-issue.drv'...
building '/nix/store/54qp8pj12723xrpl1g2xbw71cavfy9ik-jovian-ucm-conf.drv'...
building '/nix/store/xwfi468pqmn3mf9lc5hs8lm3fk98mffd-local-cmds.drv'...
building '/nix/store/my1qgzi7dk72jq5l00mlamviycr4x5ps-login.pam.drv'...
building '/nix/store/932w7kxap08x4555zm01x8gx13cwn7ng-nixos-generate-config.drv'...
building '/nix/store/zaspfa691jnvxxl5i5gr4h7hwnff0aib-nixos-tmpfiles.d.drv'...
building '/nix/store/7wzxalaq6228flgxmyw5jc64yd87ijnm-nixos.conf.drv'...
building '/nix/store/8xar6xswhz5d0qvhr6144yv33b41z0l7-source.drv'...
cp: target '/nix/store/inrd3xwma3rzhdgfhvwy01wlql75wzvf-jovian-ucm-conf/share/alsa/ucm2/conf.d/acp5x/': No such file or directory
building '/nix/store/1mwvqf9gxrzzyvhc74x85jv98cw5znn3-firewall-reload.drv'...
building '/nix/store/pnq6c9xs9pkb0ha28wpnpjfdd2x2vdgb-hwdb.bin.drv'...
error: builder for '/nix/store/54qp8pj12723xrpl1g2xbw71cavfy9ik-jovian-ucm-conf.drv' failed with exit code 1;
       last 1 log lines:
       > cp: target '/nix/store/inrd3xwma3rzhdgfhvwy01wlql75wzvf-jovian-ucm-conf/share/alsa/ucm2/conf.d/acp5x/': No such file or directory
       For full logs, run 'nix log /nix/store/54qp8pj12723xrpl1g2xbw71cavfy9ik-jovian-ucm-conf.drv'.
error: 1 dependencies of derivation '/nix/store/ccpvlxjzgsg2szp1nbwxs1bsy8npr8ph-set-environment.drv' failed to build
error: 1 dependencies of derivation '/nix/store/0aa50iyna8jrkd1idc7cra60am8dvaij-unit-pipewire.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/g6hcsr4bkagmjzrljkm4jfzxajwvbdr6-etc.drv' failed to build
building '/nix/store/hfnz3xgp7dba52lyicci94xzdnaqpsk6-source.drv'...
building '/nix/store/mnvp5fbdkp3jlwhjv97vbvw8f126ngig-source.drv'...
building '/nix/store/xcrrmcq45g4x0kq6pv5v0rn8fx0m1vmb-stage-2-init.sh.drv'...
error: 1 dependencies of derivation '/nix/store/lscf8g3wvbhaf5c8ag6ca6w66cml6slh-nixos-system-nixos-23.05pre-git.drv' failed to build
error: 1 dependencies of derivation '/nix/store/cprnzg63pxifycakaivbhzrcwgks057c-closure-info.drv' failed to build
error: 1 dependencies of derivation '/nix/store/aaldhsjc68nvzy37hsslic0fca5h29qx-efi-directory.drv' failed to build
error: 1 dependencies of derivation '/nix/store/d671s5hjf5z46gyw5j4w7mrwyx5ws1vi-isolinux.cfg-in.drv' failed to build
error: 1 dependencies of derivation '/nix/store/i7a3wdp6z3smdix07zqazx1pljms5lrr-nixos-23.05pre-git-x86_64-linux.iso.drv' failed to build
$ nix log /nix/store/54qp8pj12723xrpl1g2xbw71cavfy9ik-jovian-ucm-conf.drv
error: experimental Nix feature 'nix-command' is disabled; use '--extra-experimental-features nix-command' to override
$ nix --extra-experimental-features nix-command log /nix/store/54qp8pj12723xrpl1g2xbw71cavfy9ik-jovian-ucm-conf.drv
cp: target '/nix/store/inrd3xwma3rzhdgfhvwy01wlql75wzvf-jovian-ucm-conf/share/alsa/ucm2/conf.d/acp5x/': No such file or directory
$ 

steam-session issues with GDM [NVIDIA]

I have gdm and gnome as part of my desktop environment on a machine i'm trying to install on this. When I enable jovian.steam.enable I don't get an additional option to login to the steam-session session. I've tried setting services.xserver.displayManager.gdm.wayland set to true. Is there a specific desktop manager that this works with?

[Bug] The steam-deck ui won't load

I've tested this on both qemu vm and virtualbox and I get that black tty with nothing on it. Does this mean it will happen on the steam deck?

Platform Firmware update (UEFI)

Currently the platform firmware (UEFI) updates are not handled at all.

They may be necessary to benefit from basic fixes and quality-of-life improvements.

Drop color management hack

Whenever vendor releases stable Steam OS 3.5 with color management stuff, remove the colorManagementHack from modules/steam.nix.

It was made necessary in #83 to not strand users who don't reboot with system updates.

"Jovian Applet"

These are initial notes for a "Jovian Applet" thing.


Goals

Helping a user when things go wrong.

Main thing here I have in mind is to allow selecting which session to start.

The idea would be to:

  • Detect a specific (lizard mode assumed) key is being held
  • Switch to the applet
  • The applet would allow selecting which session to start ("plasma" or "steam")

We can cheat a lot for checking the key, e.g. try the following:

 $ nix-shell -p evtest
 $ sleep 1; for dev in /dev/input/event*; do sudo evtest --query "$dev" EV_KEY KEY_LEFTSHIFT || echo $?; done

By detecting any of the input devices returning 10 we can trivially enough flag the applet up.

We could even have it work to directly switch to the desktop session in the mean-time!

Do additional maintenance tasks

There are some administrative tasks with Nix things that get awkward to do on a portable device. Maybe garbage collection aimed at cleaning up the ESP for boot related issues?

It would be nice to allow a nixos-rebuild --upgrade to happen, but I'm not sure if there's any universal mechanism that can be used these days, with the fragmentation there is around inputs.

In-steam stuff

The same "framework" should be re-used within the steam app to add some useful features:

  • Ejecting external storage properly
  • Creating a new library on external storage
  • Formatting external storage

Changing timezones in the Steam Deck UI doesn't work

Split off from #125.

TLDR: changing timezone in the UI does nothing.

Hint: look at the journalctl log, it will show that a dbus call fails the first time, then is not attempted any other times in that launch of the app.

This is most likely not a vendor issue, but something we are or are not doing.

Low priority since config.time.timeZone is so much more NixOS.

gamescope is running without CAP_SYS_NICE

Hi! 🙂 I'm using this config on my NixOS desktop PC. Thanks for your work!

gamescope is running without CAP_SYS_NICE:

$ steam-session |& grep -F 'No CAP_SYS_NICE'
No CAP_SYS_NICE, falling back to regular-priority compute and threads.

Here is my attempt at enabling it:

diff --git a/modules/steam.nix b/modules/steam.nix
index c0688ff..186b249 100644
--- a/modules/steam.nix
+++ b/modules/steam.nix
@@ -98,7 +98,7 @@ let
     # TODO[Jovian]: Explore other ways to stop the session?
     #               -> `systemctl --user stop steam-session.slice`?
 
-    exec ${gamescope}/bin/gamescope "$@"
+    exec ${config.security.wrapperDir}/gamescope "$@"
   '';
 
   # TODO: consume width/height script input params
@@ -256,6 +256,14 @@ in
     };
   };
   config = mkIf cfg.enable (mkMerge [
+    {
+      security.wrappers.gamescope = {
+        owner = "root";
+        group = "root";
+        source = "${gamescope}/bin/gamescope";
+        capabilities = "cap_sys_nice+pie";
+      };
+    }
     {
       warnings = []
         ++ lib.optional (!config.networking.networkmanager.enable)

But then steam-session doesn't start with:

$ steam-session |& grep -F 'bwrap:'
bwrap: Unexpected capabilities but not setuid, old file caps config?

I guess buildFHSUserEnv (from the NixOS Steam package) is using bwrap which refuses to run a binary with CAP_SYS_NICE. I think buildFHSUserEnv can use a simple chroot instead of bwrap, maybe this is a solution? 🤔

Differences with main @ 20240104.1000

Since we have the tooling, now, let's try to strive to be as close as possible for #1.

I am only comparing vendor packages, ignoring stock Arch Linux ones.

With data from:


Unknowns

These still need to be investigated and changes triaged.

Key SteamOS bits

These should always be packaged and at least somewhat up to date.

Nice to haves

Misc packages and changes to upstream packages for a better experience, see notes.

Debug tools

Some tools that are clearly not intended to be used by end users, except maybe for bug reporting.

Things we don't care about

Changes that are specific to SteamOS and/or the Arch base it's built on.

Details

[~2023-06-07] Steam (beta) fails to launch

Tracking issue.

Unclear if it is specific to our configuration, but I suspect not given (assumedly) stock NixOS users are hitting a similar issue.

It may be wise to open a NixOS issue once there's enough clues to say it's not a Jovian-NixOS-only thing.


cc @n3oney who authored that comment
cc @azahi @ghishadow and @MordragT who reacted on that issue comment (assuming NixOS users)

Sorry to directly ping all of you, but if you can confirm that you are on NixOS "proper", and the "channel" in use for Steam, that would help, at least we could open a tracking issue there too.


What's happening?

Launching Steam (channel = steam deck; beta) currently fails.

The updater "applet" launches, downloaded (initially) the update, verifies, then (peeking at journalctl) launches steam.

Then steam itself crashes:

src/steamUI/steamuisharedjscontroller.cpp (449) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (449) : Failed creating offscreen shared JS context
src/steamUI/steamuisharedjscontroller.cpp (449) : Fatal assert; application exiting
src/steamUI/steamuisharedjscontroller.cpp (449) : Fatal assert; application exiting

These are the last messages before the breakpad exception handler picks up.

Details

Version
~ $ journalctl --output=cat --boot | grep 'installed version' | tail -n1
[2023-06-07 20:28:23] Download skipped: /steam_client_steamdeck_publicbeta_ubuntu12 version 1686092969, installed version 1686092969, existing pending version 0

Version 1686092969 AFAICT here. (Assuming a date, from June 6th.)

Cannot build DE ISO

By following the docs to build an ISO, the default sound module seems to have a conflict with DE build:

> nix-build -A isoPlasma
error:
       Failed assertions:
       - Using PipeWire as the sound server conflicts with PulseAudio. This option requires `hardware.pulseaudio.enable` to be set to false
(use '--show-trace' to show detailed location information)

x nix-build -A isoGnome
error:
       Failed assertions:
       - Using PipeWire as the sound server conflicts with PulseAudio. This option requires `hardware.pulseaudio.enable` to be set to false
(use '--show-trace' to show detailed location information)

Had to force a hardware.pulseaudio.enable = lib.mkForce false; to workaround this.

Switch to Desktop

It looks like this is asking nicely to the display manager to switch to the doorstop user's session, with the plasma desktop.

This might be wickedly hard to intercept to stop the steam service.

2510372:12905 execve("/bin/sh", ["sh", "-c", "LD_LIBRARY_PATH=\"$SYSTEM_LD_LIBRARY_PATH\" PATH=\"$SYSTEM_PATH\" dbus-send --system --print-reply --dest=org.freedesktop.DisplayManager  /org/freedesktop/DisplayManager/Seat0 \t\torg.freedesktop.DisplayManager.Seat.SwitchToUser string:'doorstop' string:'plasma'"], 0xeb139690 /* 113 vars */ <unfinished ...>
2512010:12905 execve("/usr/bin/dbus-send", ["dbus-send", "--system", "--print-reply", "--dest=org.freedesktop.DisplayManager", "/org/freedesktop/DisplayManager/Seat0", "org.freedesktop.DisplayManager.Seat.SwitchToUser", "string:doorstop", "string:plasma"], 0x1653010 /* 113 vars */) = 0
execve("/usr/bin/dbus-send",
[
  "dbus-send",
  "--system",
  "--print-reply",
  "--dest=org.freedesktop.DisplayManager",
  "/org/freedesktop/DisplayManager/Seat0",
  "org.freedesktop.DisplayManager.Seat.SwitchToUser",
  "string:doorstop",
  "string:plasma"
])

Steam self-restarts (account switching, channel switching) may crash Steam and keep gamescope alive until XWayland is crashed

(EDIT by @samueldr) The known workaround is to send a keystroke or mouse event to crash it more properly. To do so without a keyboard or mouse attached, either touch the touchscreen or press one of the steam deck buttons (e.g. A), since steam will have put the controller in "lizard mode", which emulates a keyboard/mouse.


When you select Steam->Power->Change Account, it's shutting down steam and shows you a black screen. After you press A button it'll show you _ symbol in the left upper corner and then steam account selection screen shows up.
On the SteamOS you don't need to press any buttons, it just works.

Here is my jovian config:

  jovian = {
    devices.steamdeck = {
      enable = true;
      enableGyroDsuService = true;
    };
    steam = {
      enable = true;
      autoStart = true;
      user = "misuzu";
      desktopSession = "plasma";
    };
  };

Logs after selecting Change Account:

Aug 11 22:46:23 nijika kernel: input: Steam Deck as /devices/pci0000:00/0000:00:08.1/0000:04:00.4/usb3/3-3/3-3:1.2/0003:28DE:1205.0004/input/input23
Aug 11 22:46:23 nijika jovian-session[3688]: Assertion 'close_nointr(fd) != -EBADF' failed at src/basic/fd-util.c:74, function safe_close(). Aborting.
Aug 11 22:46:23 nijika jovian-session[4262]: crash_20230811224623_47.dmp[4262]: Uploading dump (out-of-process)
Aug 11 22:46:23 nijika jovian-session[4262]: /tmp/dumps/crash_20230811224623_47.dmp
Aug 11 22:46:23 nijika crash_20230811224623_47.dmp[4262]: Uploading dump (out-of-process)
                                                             /tmp/dumps/crash_20230811224623_47.dmp
Aug 11 22:46:23 nijika systemd[1]: Started Process Core Dump (PID 4263/UID 0).
Aug 11 22:46:23 nijika systemd-coredump[4264]: [🡕] Process 3688 (steam) of user 1000 dumped core.
Aug 11 22:46:23 nijika systemd[1]: [email protected]: Deactivated successfully.
Aug 11 22:46:23 nijika jovian-session[3558]: /home/misuzu/.local/share/Steam/steam.sh: line 798:  3688 Aborted                 (core dumped) "$STEAMROOT/$STEAMEXEPATH" "$@"
Aug 11 22:46:26 nijika jovian-session[4262]: crash_20230811224623_47.dmp[4262]: Finished uploading minidump (out-of-process): success = yes
Aug 11 22:46:26 nijika jovian-session[4262]: crash_20230811224623_47.dmp[4262]: response: CrashID=bp-9bc4f46a-955c-4bfc-b0a2-6cc0d2230811
Aug 11 22:46:26 nijika jovian-session[4262]: crash_20230811224623_47.dmp[4262]: file ''/tmp/dumps/crash_20230811224623_47.dmp'', upload yes: ''CrashID=bp-9bc4f46a-955c-4bfc-b0a2-6cc0d2230811''
Aug 11 22:46:26 nijika crash_20230811224623_47.dmp[4262]: Finished uploading minidump (out-of-process): success = yes
Aug 11 22:46:26 nijika crash_20230811224623_47.dmp[4262]: response: CrashID=bp-9bc4f46a-955c-4bfc-b0a2-6cc0d2230811
Aug 11 22:46:26 nijika crash_20230811224623_47.dmp[4262]: file ''/tmp/dumps/crash_20230811224623_47.dmp'', upload yes: ''CrashID=bp-9bc4f46a-955c-4bfc-b0a2-6cc0d2230811''
Aug 11 22:46:26 nijika systemd[1255]: run-rf06257ac9acd443dad951c3c09750b2c.scope: Consumed 1min 10.666s CPU time.

After pressing A:

Aug 11 22:46:42 nijika jovian-session[4272]: The XKEYBOARD keymap compiler (xkbcomp) reports:
Aug 11 22:46:42 nijika jovian-session[4272]: > Warning:          Unsupported maximum keycode 708, clipping.
Aug 11 22:46:42 nijika jovian-session[4272]: >                   X11 cannot support keycodes above 255.
Aug 11 22:46:42 nijika jovian-session[4273]: The XKEYBOARD keymap compiler (xkbcomp) reports:
Aug 11 22:46:42 nijika jovian-session[4273]: > Warning:          Unsupported maximum keycode 708, clipping.
Aug 11 22:46:42 nijika jovian-session[4273]: >                   X11 cannot support keycodes above 255.
Aug 11 22:46:42 nijika jovian-session[4272]: Errors from xkbcomp are not fatal to the X server
Aug 11 22:46:42 nijika jovian-session[3480]: (EE) failed to read Wayland events: Broken pipe
Aug 11 22:46:42 nijika jovian-session[4273]: Errors from xkbcomp are not fatal to the X server
Aug 11 22:46:42 nijika jovian-session[3479]: (EE) failed to read Wayland events: Broken pipe
Aug 11 22:46:43 nijika jovian-session[3468]: drm: drmModeRmFB failed: Bad file descriptor
Aug 11 22:46:43 nijika jovian-session[3468]: drm: drmModeRmFB failed: Bad file descriptor
Aug 11 22:46:43 nijika jovian-session[3468]: drm: drmModeRmFB failed: Bad file descriptor
Aug 11 22:46:43 nijika jovian-session[3468]: drm: drmModeRmFB failed: Bad file descriptor
Aug 11 22:46:43 nijika jovian-session[3468]: drm: drmModeRmFB failed: Bad file descriptor
Aug 11 22:46:43 nijika jovian-session[3468]: drm: drmModeRmFB failed: Bad file descriptor
Aug 11 22:46:43 nijika jovian-session[3460]:  [steam-session] $ at_exit
Aug 11 22:46:43 nijika jovian-session[3460]:  [steam-session] $ systemctl --quiet --user stop steam-session.slice
Aug 11 22:46:43 nijika systemd[1255]: Stopping /nix/store/w67kq7hx1vln1bfpwakrgbx7pg1r47z6-mangohud-unstable-2023-04-23/bin/mangoapp...
Aug 11 22:46:43 nijika systemd[1255]: Stopping /nix/store/pb8ywa3705vklxaj3n23di0pi0ipar5y-steam-run/bin/steam-run /nix/store/7idyn6sgxrbz77j79bp6wh7kbslywmgw-jupiter-hw-support-20230728.1/lib/hwsupport/power-butto
n-handler.py...
Aug 11 22:46:43 nijika systemd[1255]: Stopped /nix/store/pb8ywa3705vklxaj3n23di0pi0ipar5y-steam-run/bin/steam-run /nix/store/7idyn6sgxrbz77j79bp6wh7kbslywmgw-jupiter-hw-support-20230728.1/lib/hwsupport/power-button
-handler.py.
Aug 11 22:46:43 nijika systemd[1255]: Stopped /nix/store/w67kq7hx1vln1bfpwakrgbx7pg1r47z6-mangohud-unstable-2023-04-23/bin/mangoapp.
Aug 11 22:46:43 nijika systemd[1255]: Removed slice Slice /steam/session.
Aug 11 22:46:43 nijika systemd[1255]: steam-session.slice: Consumed 1min 11.510s CPU time.
Aug 11 22:46:43 nijika greetd[3443]: pam_unix(greetd:session): session closed for user misuzu
Aug 11 22:46:43 nijika greetd[3443]: pam_kwallet5(greetd:session): pam_kwallet5: pam_sm_close_session
Aug 11 22:46:43 nijika systemd[1]: session-11.scope: Deactivated successfully.
Aug 11 22:46:43 nijika systemd[1]: session-11.scope: Consumed 9.549s CPU time, no IP traffic.
Aug 11 22:46:43 nijika systemd-logind[811]: Session 11 logged out. Waiting for processes to exit.
Aug 11 22:46:43 nijika systemd-logind[811]: Removed session 11.
Aug 11 22:46:43 nijika greetd[4278]: pam_unix(greetd:session): session opened for user jovian-greeter(uid=993) by (uid=0)
Aug 11 22:46:43 nijika systemd-logind[811]: New session 12 of user jovian-greeter.
Aug 11 22:46:43 nijika systemd[1]: Starting User Runtime Directory /run/user/993...
Aug 11 22:46:43 nijika systemd[1]: Finished User Runtime Directory /run/user/993.
Aug 11 22:46:43 nijika systemd[1]: Starting User Manager for UID 993...
Aug 11 22:46:43 nijika (systemd)[4282]: pam_unix(systemd-user:session): session opened for user jovian-greeter(uid=993) by (uid=0)
Aug 11 22:46:43 nijika systemd[4282]: Queued start job for default target Main User Target.
Aug 11 22:46:43 nijika systemd[4282]: Created slice User Application Slice.
Aug 11 22:46:43 nijika systemd[4282]: Reached target Paths.
Aug 11 22:46:43 nijika systemd[4282]: Reached target Timers.
Aug 11 22:46:43 nijika systemd[4282]: Starting D-Bus User Message Bus Socket...
Aug 11 22:46:43 nijika systemd[4282]: Listening on PipeWire PulseAudio.
Aug 11 22:46:43 nijika systemd[4282]: Listening on PipeWire Multimedia System Socket.
Aug 11 22:46:43 nijika systemd[4282]: Listening on D-Bus User Message Bus Socket.
Aug 11 22:46:43 nijika systemd[4282]: Reached target Sockets.
Aug 11 22:46:43 nijika systemd[4282]: Reached target Basic System.
Aug 11 22:46:43 nijika systemd[4282]: Run user-specific NixOS activation was skipped because of an unmet condition check (ConditionUser=!@system).
Aug 11 22:46:43 nijika systemd[1]: Started User Manager for UID 993.
Aug 11 22:46:43 nijika systemd[4282]: Starting Run KDE Plasma via systemd...
Aug 11 22:46:43 nijika systemd[4282]: SSH Agent was skipped because of an unmet condition check (ConditionUser=!@system).
Aug 11 22:46:43 nijika systemd[4282]: Reached target Main User Target.
Aug 11 22:46:43 nijika systemd[1]: Started Session 12 of User jovian-greeter.
Aug 11 22:46:43 nijika greetd[4278]: pam_kwallet5(greetd:session): pam_kwallet5: pam_sm_open_session
Aug 11 22:46:43 nijika greetd[4278]: pam_kwallet5(greetd:session): pam_kwallet5: not a graphical session, skipping. Use force_run parameter to ignore this.
Aug 11 22:46:43 nijika systemd[4282]: plasma-run-with-systemd.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
Aug 11 22:46:43 nijika systemd[4282]: plasma-run-with-systemd.service: Failed with result 'exit-code'.
Aug 11 22:46:43 nijika systemd[4282]: Failed to start Run KDE Plasma via systemd.
Aug 11 22:46:43 nijika systemd[4282]: Startup finished in 186ms.
Aug 11 22:46:43 nijika pkexec[4300]: pam_unix(polkit-1:session): session opened for user root(uid=0) by (uid=993)
Aug 11 22:46:43 nijika pkexec[4300]: jovian-greeter: Executing command [USER=root] [TTY=unknown] [CWD=/var/empty] [COMMAND=/run/current-system/sw/lib/jovian-greeter/consume-session misuzu]
Aug 11 22:46:43 nijika greetd[4278]: pam_unix(greetd:session): session closed for user jovian-greeter
Aug 11 22:46:43 nijika greetd[4278]: pam_kwallet5(greetd:session): pam_kwallet5: pam_sm_close_session
Aug 11 22:46:43 nijika systemd[1]: session-12.scope: Deactivated successfully.
Aug 11 22:46:43 nijika systemd-logind[811]: Session 12 logged out. Waiting for processes to exit.
Aug 11 22:46:43 nijika systemd-logind[811]: Removed session 12.
Aug 11 22:46:43 nijika greetd[4296]: pam_unix(greetd:session): session opened for user misuzu(uid=1000) by (uid=0)
Aug 11 22:46:43 nijika systemd-logind[811]: New session 14 of user misuzu.
Aug 11 22:46:43 nijika systemd[1]: Started Session 14 of User misuzu.
Aug 11 22:46:43 nijika greetd[4296]: pam_kwallet5(greetd:session): pam_kwallet5: pam_sm_open_session
Aug 11 22:46:43 nijika greetd[4296]: pam_kwallet5(greetd:session): pam_kwallet5: open_session called without kwallet5_key
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ GAMESCOPE_NV12_COLORSPACE=k_EStreamColorspace_BT601
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ GTK_IM_MODULE=Steam
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ JOVIAN_DESKTOP_SESSION=plasma
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ QT_IM_MODULE=steam
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS=0
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ SRT_URLOPEN_PREFER_STEAM=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_ALLOW_DRIVE_UNMOUNT=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_DISABLE_AUDIO_DEVICE_SWITCHING=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_DISABLE_MANGOAPP_ATOM_WORKAROUND=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_DISPLAY_REFRESH_LIMITS=40,60
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_ENABLE_DYNAMIC_BACKLIGHT=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_ENABLE_FAN_CONTROL=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_ENABLE_VOLUME_HANDLER=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_COLOR_MANAGED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_COLOR_TOYS=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_DYNAMIC_FPSLIMITER=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_DYNAMIC_REFRESH_IN_STEAM_SUPPORTED=0
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_FANCY_SCALING_SUPPORT=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_HAS_TEARING_SUPPORT=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_HDR_SUPPORTED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_NIS_SUPPORTED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_TEARING_SUPPORTED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_GAMESCOPE_VRR_SUPPORTED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_MANGOAPP_HORIZONTAL_SUPPORTED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_MANGOAPP_PRESETS_SUPPORTED=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_MULTIPLE_XWAYLANDS=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_UPDATEUI_PNG_BACKGROUND=/nix/store/vh8q3qwh08giqhb77hvxr9s7bm5fm0cr-steamdeck-hw-theme-20230728.1/share/steamos/steamos.png
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ STEAM_USE_DYNAMIC_VRS=1
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ WINEDLLOVERRIDES=dxgi=n
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ WINE_CPU_TOPOLOGY=8:0,1,2,3,4,5,6,7
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ XCURSOR_THEME=steam
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ vk_xwayland_wait_ready=false
Aug 11 22:46:43 nijika jovian-session[4313]:  [steam-session] $ /nix/store/c9rxdfig0nx8h1l088bf9ixppsqclhx3-gamescope-shim --xwayland-count 2 -w 1280 -h 800 --fullscreen --prefer-output '*,eDP-1' --generate-drm-mod
e fixed --max-scale 2 --default-touch-mode 4 --hide-cursor-delay 3000 --fade-out-duration 200 --cursor /nix/store/vh8q3qwh08giqhb77hvxr9s7bm5fm0cr-steamdeck-hw-theme-20230728.1/share/steamos/steamos-cursor.png --cu
rsor-hotspot 5,3 --steam --stats-path /run/user/1000/steam-session.run/stats.pipe -- systemd-run --user --collect --scope --slice=steam-session -- /nix/store/zhwr51c3lv9pqdjn3gvqcjs23hy25wa6-steam-shim
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [backend/headless/backend.c:68] Creating headless backend
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [libseat] [libseat/backend/seatd.c:64] Could not connect to socket /run/seatd.sock: No such file or directory
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [libseat] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [libseat] [libseat/libseat.c:73] Seat opened with backend 'logind'
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [backend/session/session.c:109] Successfully loaded libseat session
Aug 11 22:46:43 nijika jovian-session[4321]: ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Aug 11 22:46:43 nijika jovian-session[4321]: ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Aug 11 22:46:43 nijika jovian-session[4321]: ATTENTION: default value of option vk_xwayland_wait_ready overridden by environment.
Aug 11 22:46:43 nijika jovian-session[4321]: drm: warning: picking an arbitrary DRM device
Aug 11 22:46:43 nijika jovian-session[4321]: drm: found new connector 'DP-1'
Aug 11 22:46:43 nijika jovian-session[4321]: drm: Connector make VLV model ANX7530 U
Aug 11 22:46:43 nijika jovian-session[4321]: drm: [colorimetry]: Steam Deck (internal display) detected.
Aug 11 22:46:43 nijika jovian-session[4321]: drm: [colorimetry]: using default steamdeck colorimetry
Aug 11 22:46:43 nijika jovian-session[4321]: drm: [colorimetry]: r 0.602000 0.355000
Aug 11 22:46:43 nijika jovian-session[4321]: drm: [colorimetry]: g 0.340000 0.574000
Aug 11 22:46:43 nijika jovian-session[4321]: drm: [colorimetry]: b 0.164000 0.121000
Aug 11 22:46:43 nijika jovian-session[4321]: drm: [colorimetry]: w 0.307000 0.322000
Aug 11 22:46:43 nijika jovian-session[4321]: drm: found new connector 'eDP-1'
Aug 11 22:46:43 nijika jovian-session[4321]: drm: Connectors:
Aug 11 22:46:43 nijika jovian-session[4321]: drm:   DP-1 (disconnected)
Aug 11 22:46:43 nijika jovian-session[4321]: drm:   eDP-1 (connected)
Aug 11 22:46:43 nijika jovian-session[4321]: drm: selecting connector eDP-1
Aug 11 22:46:43 nijika jovian-session[4321]: drm: selecting mode 800x1280@60Hz
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan: selecting physical device 'AMD Custom GPU 0405 (RADV VANGOGH)': queue family 1
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan: physical device supports DRM format modifiers
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan: supported DRM formats for sampling usage:
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   AR24 (0x34325241)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   XR24 (0x34325258)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   AB24 (0x34324241)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   XB24 (0x34324258)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   NV12 (0x3231564E)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   AB4H (0x48344241)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   XB4H (0x48344258)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   AB48 (0x38344241)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   XB48 (0x38344258)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   AB30 (0x30334241)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   XB30 (0x30334258)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   AR30 (0x30335241)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan:   XR30 (0x30335258)
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan: 4636672 vs 4636672!
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan: 4636672 vs 4636672!
Aug 11 22:46:43 nijika jovian-session[4321]: vulkan: 4636672 vs 4636672!
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: Running compositor on wayland display 'gamescope-0'
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [backend/headless/backend.c:16] Starting headless backend
Aug 11 22:46:43 nijika jovian-session[4321]: wlserver: [backend/libinput/backend.c:87] Starting libinput backend
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding Power Button [0:1]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding Video Bus [0:6]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding Power Button [0:1]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding Lid Switch [0:5]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding Valve Software Steam Deck Controller [10462:4613]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding Valve Software Steam Deck Controller [10462:4613]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding acp5x Headset Jack [0:0]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding FTS3528:00 2808:1015 [10248:4117]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding FTS3528:00 2808:1015 UNKNOWN [10248:4117]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/events.c:70] Adding AT Translated Set 2 keyboard [1:1]
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [backend/libinput/backend.c:128] libinput successfully initialized
Aug 11 22:46:44 nijika jovian-session[4332]: wlserver: [xwayland/server.c:108] Starting Xwayland on :0
Aug 11 22:46:44 nijika jovian-session[4333]: wlserver: [xwayland/server.c:108] Starting Xwayland on :1
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [types/wlr_compositor.c:673] New wlr_surface 0xcc1bb0 (res 0xf5f790)
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [xwayland/server.c:273] Xserver is ready
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [types/wlr_compositor.c:673] New wlr_surface 0x9ecb60 (res 0xf61170)
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [xwayland/server.c:273] Xserver is ready
Aug 11 22:46:44 nijika jovian-session[4321]: pipewire: stream state changed: connecting
Aug 11 22:46:44 nijika jovian-session[4321]: pipewire: stream state changed: paused
Aug 11 22:46:44 nijika jovian-session[4321]: pipewire: stream available on node ID: 31
Aug 11 22:46:44 nijika jovian-session[4321]: drm: [patched edid] Patching 800x1280 -> 1280x800
Aug 11 22:46:44 nijika jovian-session[4321]: drm: [josh edid] BASE Checksum valid? Y
Aug 11 22:46:44 nijika jovian-session[4321]: drm: [josh edid] Wrote new edid to: /home/misuzu/.config/gamescope/edid.bin
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: Updating mode for xwayland server #0: 1280x800@60
Aug 11 22:46:44 nijika jovian-session[4321]: vulkan: 4636672 vs 4636672!
Aug 11 22:46:44 nijika jovian-session[4321]: vulkan: 4636672 vs 4636672!
Aug 11 22:46:44 nijika jovian-session[4321]: vulkan: 4636672 vs 4636672!
Aug 11 22:46:44 nijika jovian-session[4321]: pipewire: renegotiating stream params (size: 1280x800)
Aug 11 22:46:44 nijika systemd[1255]: Created slice Slice /steam/session.
Aug 11 22:46:44 nijika systemd[1255]: Started /nix/store/zhwr51c3lv9pqdjn3gvqcjs23hy25wa6-steam-shim.
Aug 11 22:46:44 nijika jovian-session[4361]: Running scope as unit: run-r39cf3ffbd75349a2beb7f456795ffba8.scope
Aug 11 22:46:44 nijika systemd[1255]: Started /nix/store/w67kq7hx1vln1bfpwakrgbx7pg1r47z6-mangohud-unstable-2023-04-23/bin/mangoapp.
Aug 11 22:46:44 nijika jovian-session[4367]: Running as unit: steam-session.mangoapp.service
Aug 11 22:46:44 nijika systemd[1255]: Started /nix/store/pb8ywa3705vklxaj3n23di0pi0ipar5y-steam-run/bin/steam-run /nix/store/7idyn6sgxrbz77j79bp6wh7kbslywmgw-jupiter-hw-support-20230728.1/lib/hwsupport/power-button
-handler.py.
Aug 11 22:46:44 nijika jovian-session[4369]: Running as unit: steam-session.power-button-handler.service
Aug 11 22:46:44 nijika jovian-session[4361]: NOTE: Assuming this is running nested (within a wayland or X11 session)
Aug 11 22:46:44 nijika jovian-session[4321]: wlserver: [types/wlr_compositor.c:673] New wlr_surface 0xd928d0 (res 0xf1b450)
Aug 11 22:46:44 nijika mangoapp[4368]: [2023-08-11 22:46:44.392] [info] [config.cpp:123] parsing config: '/run/user/1000/mangohud.il2CTneF'
Aug 11 22:46:44 nijika mangoapp[4368]: [2023-08-11 22:46:44.432] [error] [cpu.cpp:461] Could not find cpu temp sensor location
Aug 11 22:46:44 nijika mangoapp[4368]: [2023-08-11 22:46:44.432] [info] [overlay.cpp:810] Uploading is disabled (permit_upload = 0)
Aug 11 22:46:44 nijika jovian-session[4321]: xwm: Rejecting WM_CHANGE_STATE to ICONIC for window 0x400007

`steamos-customizations-jupiter`: Triaging

To handle part of #118.


This is a pretty raw list of misc. files of interest in the current-most release.

Anything not listed here can be assumed to be specific to their setup (e.g. A/B, grub, archlinux, etc).

Tweaks

Audio


The main standing out thing is the noise suppression filter chain.

Other than that, hardware-specific tweaks (and probably unneeded bluetooth tweak) for audio stuff.

Finally, the "tweaks" section, most of them I won't pretend I know whether or not they are good, but I am confident enough to say that the vendor must have observed it being worth doing.

I'll be waiting for your takes on that.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.