Gamescope steam session

garuda-inxi
System:
  Kernel: 6.9.8-1-cachyos arch: x86_64 bits: 64 compiler: gcc v: 14.1.1
    clocksource: tsc avail: hpet,acpi_pm
    parameters: root=UUID=8a69f047-feee-46cf-81a1-d299eb173883 rw
    rootflags=subvol=@ loglevel=3 sysrq_always_enabled=1 amd_pstate=active
    amdgpu.ppfeaturemask=0xffffffff tsc=reliable clocksource=tsc nowatchdog
    nmi_watchdog=0 initrd=\@\boot\initramfs-linux-cachyos.img
  Desktop: KDE Plasma v: 6.1.2 tk: Qt v: N/A info: frameworks v: 6.3.0
    wm: kwin_wayland vt: 1 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
  Type: Desktop Mobo: ASRock model: X470 Taichi serial: <superuser required>
    uuid: <superuser required> UEFI: American Megatrends v: P5.10
    date: 10/20/2022
CPU:
  Info: model: AMD Ryzen 5 5600X bits: 64 type: MT MCP arch: Zen 3+ gen: 4
    level: v3 note: check built: 2022 process: TSMC n6 (7nm) family: 0x19 (25)
    model-id: 0x21 (33) stepping: 2 microcode: 0xA20120A
  Topology: cpus: 1x cores: 6 tpc: 2 threads: 12 smt: enabled cache:
    L1: 384 KiB desc: d-6x32 KiB; i-6x32 KiB L2: 3 MiB desc: 6x512 KiB
    L3: 32 MiB desc: 1x32 MiB
  Speed (MHz): avg: 4284 min/max: 550/4651 boost: enabled scaling:
    driver: amd-pstate-epp governor: performance cores: 1: 4284 2: 4284 3: 4284
    4: 4284 5: 4284 6: 4284 7: 4284 8: 4284 9: 4284 10: 4284 11: 4284 12: 4284
    bogomips: 88803
  Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 sse4a ssse3 svm
  Vulnerabilities: <filter>
Graphics:
  Device-1: AMD Navi 22 [Radeon RX 6700/6700 XT/6750 XT / 6800M/6850M XT]
    vendor: Gigabyte driver: amdgpu v: kernel arch: RDNA-2 code: Navi-2x
    process: TSMC n7 (7nm) built: 2020-22 pcie: gen: 4 speed: 16 GT/s
    lanes: 16 ports: active: DP-1,DP-2,HDMI-A-2 empty: HDMI-A-1,Writeback-1
    bus-ID: 10:00.0 chip-ID: 1002:73df class-ID: 0300
  Display: wayland server: X.org v: 1.21.1.13 with: Xwayland v: 24.1.0
    compositor: kwin_wayland driver: X: loaded: amdgpu
    unloaded: modesetting,radeon alternate: fbdev,vesa dri: radeonsi
    gpu: amdgpu d-rect: 4980x2513 display-ID: 0
  Monitor-1: DP-1 pos: bottom-r res: 2048x864 size: N/A modes: N/A
  Monitor-2: DP-2 pos: primary,top-left res: 1396x785 size: N/A modes: N/A
  Monitor-3: HDMI-A-2 pos: middle-c res: 1536x864 size: N/A modes: N/A
  API: EGL v: 1.5 hw: drv: amd radeonsi platforms: device: 0 drv: radeonsi
    device: 1 drv: swrast gbm: drv: kms_swrast surfaceless: drv: radeonsi
    wayland: drv: radeonsi x11: drv: radeonsi
  API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.1.3-arch1.1
    glx-v: 1.4 direct-render: yes renderer: AMD Radeon RX 6700 XT (radeonsi
    navi22 LLVM 18.1.8 DRM 3.57 6.9.8-1-cachyos) device-ID: 1002:73df
    memory: 11.72 GiB unified: no display-ID: :0.0
  API: Vulkan v: 1.3.279 layers: 23 device: 0 type: discrete-gpu name: AMD
    Radeon RX 6700 XT (RADV NAVI22) driver: mesa radv v: 24.1.3-arch1.1
    device-ID: 1002:73df surfaces: xcb,xlib,wayland device: 1 type: cpu
    name: llvmpipe (LLVM 18.1.8 256 bits) driver: mesa llvmpipe
    v: 24.1.3-arch1.1 (LLVM 18.1.8) device-ID: 10005:0000
    surfaces: xcb,xlib,wayland
Audio:
  Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel v: kernel pcie:
    gen: 4 speed: 16 GT/s lanes: 16 bus-ID: 10:00.1 chip-ID: 1002:ab28
    class-ID: 0403
  Device-2: Sony INZONE H9 / H7
    driver: cdc_acm,hid-generic,snd-usb-audio,usbhid type: USB rev: 2.0
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 1-6:3 chip-ID: 054c:0e53
    class-ID: 0a00
  API: ALSA v: k6.9.8-1-cachyos status: kernel-api with: aoss
    type: oss-emulator tools: N/A
  Server-1: sndiod v: N/A status: off tools: aucat,midicat,sndioctl
  Server-2: PipeWire v: 1.2.0 status: active with: 1: pipewire-pulse
    status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
    4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
  Device-1: Intel Dual Band Wireless-AC 3168NGW [Stone Peak] driver: iwlwifi
    v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 08:00.0
    chip-ID: 8086:24fb class-ID: 0280
  IF: wlp8s0 state: down mac: <filter>
  Device-2: Intel I211 Gigabit Network vendor: ASRock driver: igb v: kernel
    pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d000 bus-ID: 0a:00.0
    chip-ID: 8086:1539 class-ID: 0200
  IF: enp10s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
  IF-ID-1: virbr0 state: down mac: <filter>
  Info: services: NetworkManager, smbd, sshd, systemd-timesyncd
Bluetooth:
  Device-1: Edimax Bluetooth Adapter driver: btusb v: 0.8 type: USB rev: 1.1
    speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 5-2:2 chip-ID: 7392:c611
    class-ID: e001 serial: <filter>
  Report: btmgmt ID: hci0 rfk-id: 0 state: up address: <filter> bt-v: 5.1
    lmp-v: 10 status: discoverable: yes pairing: yes class-ID: 6c0104
Drives:
  Local Storage: total: 5.46 TiB used: 5.6 TiB (102.5%)
  SMART Message: Unable to run smartctl. Root privileges required.
  ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Western Digital
    model: WD BLACK SN770 1TB size: 931.51 GiB block-size: physical: 512 B
    logical: 512 B speed: 63.2 Gb/s lanes: 4 tech: SSD serial: <filter>
    fw-rev: 731120WD temp: 33.9 C scheme: GPT
  ID-2: /dev/nvme1n1 maj-min: 259:3 vendor: Samsung model: SSD 980 1TB
    size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 31.6 Gb/s
    lanes: 4 tech: SSD serial: <filter> fw-rev: 3B4QFXO7 temp: 29.9 C
    scheme: GPT
  ID-3: /dev/sda maj-min: 8:0 vendor: Seagate model: ST4000VN006-3CW104
    size: 3.64 TiB block-size: physical: 4096 B logical: 512 B speed: 6.0 Gb/s
    tech: HDD rpm: 5400 serial: <filter> fw-rev: SC60 scheme: GPT
Partition:
  ID-1: / raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 905.02 GiB (97.2%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
    used: 42.1 MiB (14.0%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
  ID-3: /home raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 905.02 GiB (97.2%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-4: /var/log raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 905.02 GiB (97.2%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
  ID-5: /var/tmp raw-size: 931.22 GiB size: 931.22 GiB (100.00%)
    used: 905.02 GiB (97.2%) fs: btrfs dev: /dev/nvme0n1p2 maj-min: 259:2
Swap:
  Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
  ID-1: swap-1 type: zram size: 31.26 GiB used: 512 KiB (0.0%) priority: 100
    comp: zstd avail: lzo,lzo-rle,lz4,lz4hc,842 max-streams: 12 dev: /dev/zram0
Sensors:
  System Temperatures: cpu: 66.8 C mobo: 27.0 C gpu: amdgpu temp: 40.0 C
    mem: 40.0 C
  Fan Speeds (rpm): cpu: 2486 fan-1: 0 fan-3: 1300 fan-4: 1318 fan-5: 1369
    gpu: amdgpu fan: 0
  Power: 12v: N/A 5v: N/A 3.3v: 3.28 vbat: 3.26 gpu: amdgpu watts: 29.00
Info:
  Memory: total: 32 GiB available: 31.26 GiB used: 13.52 GiB (43.2%)
  Processes: 572 Power: uptime: 1m states: freeze,mem,disk suspend: s2idle
    wakeups: 0 hibernate: platform avail: shutdown, reboot, suspend, test_resume
    image: 12.48 GiB services: org_kde_powerdevil, power-profiles-daemon,
    upowerd Init: systemd v: 256 default: graphical tool: systemctl
  Packages: 2944 pm: pacman pkgs: 2894 libs: 644 tools: octopi,paru,yay
    pm: appimage pkgs: 0 pm: flatpak pkgs: 50 Compilers: clang: 18.1.8
    gcc: 14.1.1 Shell: garuda-inxi default: fish v: 3.7.1
    running-in: alacritty inxi: 3.3.35
Garuda (2.6.26-1):
  System install date:     2024-01-11
  Last full system update: 2024-07-05
  Is partially upgraded:   No
  Relevant software:       snapper NetworkManager dracut
  Windows dual boot:       Probably (Run as root to verify)
  Failed units:

I’m trying to get and embedded gamescope session (similar to what is on steamos on the deck where there is a game mode and desktop mode)

The furthest I have been able to get is after installing all of nobara gamesope session files (the chimera os gamescope sessions files on the aur were not working for me) from

And

Everything is mostly working except controller input (dualsense, xbox 360, and switch pro controllers).

It works fine on desktop Steam, but in the gamescope session, it seems that the udev rules are not being applied.

I confirmed this in evtest. Sudo permission is needed to access the controllers.

1 Like

the probelm was this package AUR (en) - devify was causing udev rules to time out. once I uninstalled that everything was working fine

in case anyone was wondering how I got all this working first I did

sudo pacman -S gamescope-session-git gamescope-session-steam-git

to install the chimeraos gamescope session files, but these are incomplete (and upstream says this is on purpose because they can’t include the files for some reason :person_shrugging: )

next you need to clone nobara gamescope session files which are actually based on the chimeraos ones( and adapted for fedora)

git clone https://github.com/Nobara-Project/steamdeck-edition-packages.git

next I installed some of the nobara game scope files

sudo install gamescope-session-plus/usr/bin/gamescope-session-plus  /usr/bin

sudo install gamescope-session-plus/usr/share/gamescope-session-plus/gamescope-session-plus /usr/share/gamescope-session-plus

cp gamescope-session-steam/etc/skel/Desktop/Return.desktop ~/.local/share/applications/

sudo install gamescope-session-steam/usr/bin/steamos-desktop-return  /usr/bin/

sudo install gamescope-session-steam/usr/bin/steamos-session-select /usr/bin/

sudo install gamescope-session-steam/usr/libexec/os-session-select /usr/lib/

sudo install gamescope-session-steam/usr/share/polkit-1/actions/org.nobaraproject.session.select.policy

sudo cp -a gamescope-session-steam/usr/share/icons/ /usr/share/

and optionally (technically the last one above is also optional it just has the icon for the return.desktop file) for the ability to run startup commands for the gamescope session

sudo cp -a gamescope-session-plus/etc/gamescope-session-plus/

sudo install gamescope-session-plus/usr/libexec/gs-thirdparty-services /usr/lib/

sudo install gamescope-session-plus/usr/share/polkit-1/actions/org.gamescope.start.policy

next you need to modify the files to replace all instances of libexec to lib and comment out a few files

comment out since we don’t have nobara-automount

diff gamescope-session-plus/usr/bin/gamescope-session-plus /usr/bin/gamescope-session-plus
24c24
< /usr/libexec/nobara-automount
---
> #/usr/lib/nobara-automount

comment out steamrestart since we do not have that and change libexec to lib

gamescope-session-steam/usr/bin/steamos-desktop-return /usr/bin/steamos-desktop-return
10,11c10,11
< /usr/bin/steamrestart
< /usr/libexec/os-session-select gamescope
---
> #/usr/bin/steamrestart
> /usr/lib/os-session-select gamescope

change libexec to lib

diff gamescope-session-steam/usr/bin/steamos-session-select /usr/bin/steamos-session-select
6c6
< GAMESCOPE_SESSION_SCRIPT="/usr/libexec/os-session-select"
---
> GAMESCOPE_SESSION_SCRIPT="/usr/lib/os-session-select"

comment out the echo for some reason this fails with permission denied and doesn’t allow the rest to run

diff gamescope-session-steam/usr/libexec/os-session-select  /usr/lib/os-session-select
7c7
< echo $@ >> /tmp/args
---
> #echo $@ >> /tmp/args

change libexec to lib

 diff gamescope-session-steam/usr/share/polkit-1/actions/org.nobaraproject.session.select.policy /usr/share/polkit-1/actions/org.nobaraproject.session.select.policy
18c18
<     <annotate key="org.freedesktop.policykit.exec.path">/usr/libexec/os-session-select</annotate>
---
>     <annotate key="org.freedesktop.policykit.exec.path">/usr/lib/os-session-select</annotate>

and if you did the optional stuff

change libexec to lib

diff gamescope-session-plus/usr/share/gamescope-session-plus/gamescope-session-plus /usr/share/gamescope-session-plus/gamescope-session-plus
272c272
< /usr/libexec/gs-thirdparty-services
---
> /usr/lib/gs-thirdparty-services

change libexec to lib

 diff gamescope-session-plus/usr/share/polkit-1/actions/org.gamescope.start.policy /usr/share/polkit-1/actions/org.gamescope.start.policy
18c18
<     <annotate key="org.freedesktop.policykit.exec.path">/usr/libexec/gs-thirdparty-services</annotate>
---
>     <annotate key="org.freedesktop.policykit.exec.path">/usr/lib/gs-thirdparty-services</annotate>

now make sure you have auto login and relogin setup up in sddm

ex:

File: /etc/sddm.conf.d/kde_settings.conf
[Autologin]
Relogin=true
Session=plasma.desktop
User=zany130
...rest of file

and you will be able to switch to a steam-deck like game mode by running Return to Gaming Mode from your start menu.

to switch back to your de just go to power → switch to desktop from the steam guide menu

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.