breezy-desktop/doc/steam-deck-desktop-mode.md

4.4 KiB

Installing Breezy Gnome desktop on Steam Deck (contributed by Bill Burdick)

These instructions require making your filesystem read-write. Efforts have been made to use distrobox but so far have not succeeded. Please contribute if you have success with that!

Make sure you're running on at least 3.6, which might require switching to the beta or alpha channel

NOTE: gnome-shell --nested didn't work for me on 3.5 but it did when I updated to 3.6.

I was getting errors:

Unrecognized option: -byteswappedclients

(with lots of other text).

Seems related to this bug: https://bugs-devel.debian.org/cgi-bin/bugreport.cgi?bug=1050642 and SteamOS 3.5 has mutter 44.2

If your root is not already writeable, make it so

sudo steamos-readonly disable

If your pacman environment is not already initialized, make it so

sudo pacman-key --init
sudo pacman-key --populate archlinux
sudo pacman-key --populate holo

make sure /usr/share is in your XDG_DATA_DIRS variable

if not, add :/usr/share to it

load depends for breezy

sudo pacman -S --needed base-devel git
# existing packages are reloaded here in order to install their header files
sudo pacman -S glibc linux-api-headers systemd-libs openssl libevdev libusb json-c curl hidapi python python-pydbus 'gnome-shell>=45.0' python-yaml

Install xr-driver-breezy-gnome-git

work=$(mktemp -d)
cd $work
mkdir xr-driver
cd xr-driver
curl 'https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=xr-driver-breezy-gnome-git' > PKGBUILD
curl 'https://aur.archlinux.org/cgit/aur.git/plain/hooks.install?h=xr-driver-breezy-gnome-git' > hooks.install
makepkg -si

Install breezy-desktop-gnome-git

cd $work
mkdir breezy
cd breezy
curl 'https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=breezy-desktop-gnome-git' > PKGBUILD
makepkg -si

Continue with wheaney's setup instructions

Instructions

Thanks to TTachyon on Reddit for some very important info

https://www.reddit.com/r/SteamDeck/comments/t92ozw/for_compiling_c_code

Docks

My Steam Deck dock does not support displayport alt mode on any of its ports (except the one that goes into the deck of course). There are a few docks out there that do, but not many. If you need to use a third party dock with your glasses, make sure it has a port with the displayport alt mode symbol

like image or image

For reference, I'm using the Inateck 10-in-1 USB-C hub (Amazon link)

More setup stuff

My current breezy script

This starts the breezy desktop in a nested gnome-shell, and waits for you to activate the window (like by clicking on it). This expects the classify-gnome-shell script to be in your path.

#!/bin/sh
dconf write /com/xronlinux/BreezyDesktop/debug true
dconf write /com/xronlinux/BreezyDesktop/developer-mode true
clssify-gnome-shell&
MUTTER_DEBUG_DUMMY_MODE_SPECS='1920x1080@60' exec dbus-run-session -- gnome-shell --nested
#MUTTER_DEBUG_DUMMY_MODE_SPECS='3840x1080@60' exec dbus-run-session -- gnome-shell --nested

My current classify-gnome-shell script

This script waits for you to make the nested gnome shell active (like by clicking on it) and then puts a "gnome-shell" class onto the window (which has no class for some reason). I have a KDE window rule that needs the window to have the "gnome-shell" class.

#!/bin/sh
while true; do
    id=$(xdotool getactivewindow)
    if xprop -id $id | grep -q "WM_NAME.*gnome-shell"; then
        xdotool getactivewindow set_window --class gnome-shell --classname gnome-shell
        echo -e "\n\nGNOME-SHELL: $id\n\n"
        break
    fi
    sleep 0.25
done

KDE Window rule

This rule full-screens the window, removes the title bar, and makes it ignore KEY desktop shortcuts (so you can use the super key in your nested gnome session).

[gnome-shell nested]
Description=gnome-shell nested
above=true
disableglobalshortcuts=true
disableglobalshortcutsrule=2
fullscreen=true
fullscreenrule=2
noborder=true
noborderrule=2
skiptaskbar=true
title=Steam Keyboard
type=16
wmclass=gnome-shell gnome-shell
wmclasscomplete=true
wmclassmatch=1

To install the rule

  1. copy the above text into a file
  2. go to KDE settings and click on Window Management

image

  1. click on Window Rules and then click the Import button to import the rules

image