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