Destroyed Installing on Steam Deck (markdown)
parent
f60a893a81
commit
24d7ce4e70
|
|
@ -1,152 +0,0 @@
|
|||
# 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
|
||||
```sh
|
||||
sudo steamos-readonly disable
|
||||
```
|
||||
# If your pacman environment is not already initialized, make it so
|
||||
```sh
|
||||
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
|
||||
```sh
|
||||
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 wayland
|
||||
```
|
||||
|
||||
# Install breezy-desktop-gnome-git
|
||||
```sh
|
||||
paru -S breezy-desktop-gnome-git
|
||||
```
|
||||
# Continue with wheaney's setup instructions
|
||||
[Instructions](../#non-gnome-setup)
|
||||
|
||||
# A note on wide-screen mode with Viture Pro glasses (and possibly others?)
|
||||
Sometimes the mouse is constrained to a 1920-pixel region in the middle of the screen. If this occurs, you can try the following steps:
|
||||
1. Quit Breezy,
|
||||
2. Put glasses into side-by-side mode -- a long press on the darkening button will do this on the Viture Pro,
|
||||
3. Launch Breezy with double-width,
|
||||
```
|
||||
MUTTER_DEBUG_DUMMY_MODE_SPECS='3840x1080@60' exec dbus-run-session -- gnome-shell --nested
|
||||
```
|
||||
4. Make sure you have "wide screen" checked in Breezy settings.
|
||||
|
||||
# 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 |  | or |  |
|
||||
|-|-|-|-|
|
||||
|
||||
For reference, I'm using the Inateck 10-in-1 USB-C hub [(Amazon link)](https://www.amazon.com/dp/B0CCXZWS9C)
|
||||
|
||||
# More setup stuff
|
||||
## My current `breezy` script
|
||||
This starts the breezy desktop in a nested gnome-shell and, after you activate the window (like by
|
||||
clicking on it) and, provided you have the window rule below, this will full-screen the window, remove the
|
||||
title bar, and make it ignore KDE desktop keyboard shortcuts so that the desktop can fully function as a gnome
|
||||
desktop.
|
||||
|
||||
This expects the `classify-gnome-shell` script to be in your path.
|
||||
|
||||
Note the last line of the script is if you need a double size window for wide screen mode. Wheany suggested trying this and it worked for me.
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
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.
|
||||
|
||||
```sh
|
||||
#!/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
|
||||
|
||||

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

|
||||
|
||||
## xwayland script
|
||||
I currently use Emacs remotely for my work (because the emacs lsp glue code doesn't currently support tramp) and
|
||||
I've found that, even though this is not an ideal setup, running X inside of `gnome-shell -nested` inside of the
|
||||
X on the desktop actually does work. So, until we can run Wayland on the Steam Deck desktop and that language
|
||||
server code works within tramp, this is what I'll be using for my work. Aaaand, it's a full-screen window for
|
||||
now, until I can get rootless working.
|
||||
|
||||
This runs the `awesome` window manager which, just to make things even more indirect, I have installed inside an
|
||||
Ubuntu distrobox so I can avoid dirtying the Steam Deck's root any more than I need to. So I run xwayland in
|
||||
distrobox. When you quit `awesome`, it kills xwayland for you.
|
||||
|
||||
So feel free to use this but you have been warned...
|
||||
|
||||
```sh
|
||||
#!/bin/sh
|
||||
Xwayland :3 -fullscreen -geometry 1920x1080&
|
||||
#Xwayland :3 -fullscreen -geometry 3840x1080&
|
||||
pid=$!
|
||||
sleep 2
|
||||
echo PID=$pid
|
||||
export DISPLAY=:3
|
||||
awesome
|
||||
kill -2 $pid
|
||||
```
|
||||
Loading…
Reference in New Issue