[–] 2 points 3 months ago

One of mine died day before yesterday, had to buy a cople of new 8tb wd purples to rebuild a new raidz. 200 euro a pop, so painful. Almost 3 years ago i paid 300 euros for 3 8tb wd reds. The price increase has been devastating.

  • source
  • parent
  • context
  • [–] [S] 3 points 1 year ago

    I was being dumb. Just an FYI if someone stumbles upon this. CachyOS does not include libdecor with its gaming packages selection. Just install it with paru libdecor and select cachyos-extra-znver4/libdecor.

  • source
  •  

    I have installed CachyOS in my main gaming machine and i want it to work like the steam deck: Boot into big picture mode and then you can exit to desktop mode. I went with the desktop image instead of the handheld one because i wanted to use GNOME. I've looked at the cachyos-handheld package but it seems its only for KDE systems.
    I tried to make my own scripts to start the compositor using a one-shot system which i believe is what bazzite does, unfortunately i cant get the steam part to work, as the gnome part does work. If someone can take a look at it and give me a hand i would be extremely grateful.

    Here is the script you run to switch the next boot:

    #!/usr/bin/env bash
    set -euo pipefail
    
    usage() {
      cat <<'EOF'
    Usage: os-session-select <gamescope|gnome-wayland|gnome-xorg|plasma-wayland|plasma-xorg>
    
    Writes ~/.config/steamos-session-select and logs you out so the one-shot wrapper
    can launch the requested session exactly once on next login.
    EOF
    }
    
    target="${1:-}"
    case "$target" in
      gamescope|gnome) ;;
      -h|--help|"") usage; exit 1 ;;
      *) echo "Unknown target: $target"; usage; exit 1 ;;
    esac
    
    cfg="$HOME/.config"
    sentinel="$cfg/steamos-session-select"
    mkdir -p "$cfg"
    printf '%s\n' "$target" > "$sentinel"
    
    if command -v steam >/dev/null 2>&1; then
      steam -shutdown || true
    fi
    
    # End the current session (GDM should be set to autologin)
    if [[ -n "${XDG_SESSION_ID:-}" ]]; then
      loginctl terminate-session "$XDG_SESSION_ID" || true
    else
      systemctl --user exit || true
    fi
    

    It creates a file in the home directory to indicate to the boot script what to launch, then it kills the current session to restart the gdm manager.

    And here is the script of the actual launcher:

    #!/usr/bin/env bash
    set -euo pipefail
    
    sentinel="${HOME}/.config/steamos-session-select"
    
    xexec() {
      local cmd="$1"; shift
      if command -v "$cmd" >/dev/null 2>&1; then
        exec "$cmd" "$@"
      else
        echo "Error: required command '$cmd' not found." >&2
        exit 1
      fi
    }
    
    choice=""
    if [[ -f "$sentinel" ]]; then
      choice="$(tr -d '\n\r' < "$sentinel")"
      rm -f "$sentinel" || true
    fi
    
    choice="${choice:-"gamescope"}"
    
    case "$choice" in
      gamescope)
        if command -v gamescope-session-plus >/dev/null 2>&1; then
          unset WAYLAND_DISPLAY
          unset WAYLAND_SOCKET
          unset DISPLAY
          export XDG_SESSION_TYPE=tty
          export WLR_BACKENDS=drm
          export ENABLE_GAMESCOPE_WSI=0
          exec gamescope-session-plus steam
        else
          echo "gamescope-session(-steam) not found in PATH." >&2
          exit 1
        fi
        ;;
    
      gnome)
        exec gnome-session
        ;;
    
      *)
        echo "Unknown session choice '$choice' – falling back to GNOME Wayland." >&2
        exec gnome-session
        ;;
    esac
    
    

    When i look at the journalctl output for the error i see what causes the issue is:

    xdg_backend: Failed to initialize input thread
    Failed to load plugin 'libdecor-gtk.so': failed to init
    SDL_Vulkan_CreateSurface failed: VK_KHR_wayland_surface extension is not enabled in the Vulkan instance
    

    And then a core dump. Again, any help would be much appreciated, thanks!!