Prerequisite:
- Turn on Secure Boot
- https://github.com/hhd-dev/hhd?tab=readme-ov-file#extra-steps-gpd-win-devices
- set L4 to SYSRQ and R4 to PAUSE
Decky https://github.com/honjow/GPD-WinControl https://github.com/hhd-dev/hhd-decky
fixes
https://github.com/aarron-lee/gpd-win-tricks/blob/main/win4-gyro-suspend-fix/README.md
It's blank by default. Flatpak apps seems using the dark theme fine out of box.
I changed the setting once and couldn't revert it back, now flatpak apps won't use dark theme.
Current workaround is to add global env var in Flatseal GTK_THEME=adw-gtk3-dark
Note: The default theme in ~/.config/gtk-3.0/settings.ini and ~/.config/gtk-4.0/settings.ini in a new install is empty (no entry)
Alternatively, install org.gtk.Gtk3theme.Breeze
then set it in KDE settings
No lock screen feature by default.
Can follow https://github.com/RHOPKINS13/SteamDeckScreenLock, but need to change the exec to
Exec=loginctl lock-session
Ref: https://www.reddit.com/r/kde/comments/av3riz/command_to_lock_the_screen/
Bonus: relax failure unlock timeouts https://gist.github.com/fsworld009/cb9a402ede96fa6087a2562d987e82be#relax-the-rule-to-lock-out-10-mins-after-3-login-fails
Meta+L shortcut: KDE shortcut settings -> add application shortcut -> Select the .desktop file we just created
- Doesn't detect Lutris: run lutris once
- Old GE-Proton version not listed anymore: manual download and extract to ~/.steam/root/compatibilitytools.d/
https://www.reddit.com/r/SteamDeck/comments/10pdz5m/nonsteam_cloud_saves_between_steam_deck_and /
change port from 8080 to 8384 https://www.reddit.com/r/SteamDeck/comments/xjmal2/psa_for_anyone_using_syncthing_and_decky_at_the/
https://github.com/theCapypara/steamdeck-decky-syncthing
Not sure why it's not in one installation but you can copy it from another install (from ~/.local/share/Steam/config/uioverrides/movies
)
Built in, but no https://github.com/openvanilla/fcitx5-mcbopomofo
Tried follow the guide to build on fedora distrobox, failed with
CMake Error at /usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake:127 (message):
No preprocessor test for "PathScale"
Call Stack (most recent call first):
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:340 (compiler_id_detection)
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:359 (CMAKE_DETERMINE_COMPILER_ID_WRITE)
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:8 (CMAKE_DETERMINE_COMPILER_ID_BUILD)
/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)
/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:2 (project)
Use flatpak fcitx5 for now. However this seems to disable the built-in fcitx5 install so I have to install Mozc on flatpak as well, even though it was installed in system already.
The default terminal in vanilla KDE is Konsole. However, Konsole has been removed by in bazzite image even if using KDE flavor.
It was an intended change by devs ublue-os/bazzite#1933
As a result it's better to install Konsole from flatpak.
If you insist installing konsole as system package:
sudo rpm-ostree install konsole
Note that this means every update would require additional step to reinstall konsole and its dependencies. Should be fine in this case since konsole doesn't require any other dependency on top of bazzite image.
Default terminal is set to ptyxis which is the Gnome terminal. To us Konsole, change it to Konsole in KDE settings.
After doing it there will be a new shortcut ~/.local/share/applications/konsole.desktop
, can update it to
[Desktop Entry]
Exec=/usr/bin/konsole
Name=Konsole
Type=Application
Icon=utilities-terminal
So it's visible in start menu
Alternatively you can use https://github.com/dnkmmr69420/enable-konsole-on-bazzite
https://universal-blue.discourse.group/t/dual-boot-preliminary-setup-and-post-setup-guide/2743
ujust regenerate-grub
Cannot use Wine game -> Open Bash terminal option (no window opened)
observed from lutris -d
that it is trying to run
/usr/bin/ptyxis -e /home/fsworld009/.cache/lutris/run_in_term.sh
Run it manually would result in
Unkwon option -e
Solution is to change Preferences -> Toggle "Advanced" Global options -> Text based game emulator -> change to /usr/bin/konsole
Current blocker: tried (WineGE 8-12 + Sonic P06), the game cannot detect Steam Input. The same setup works when using flatpak Lutris.
Some plugins may be unable to run shell commands due to linked library error. This is observed in two plugins currently:
- decky-recorder: unable to run ffmpeg
ffmpeg: /tmp/_MEIMA8QQr/libssl.so.3: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)
- decky-syncthing
/usr/bin/flatpak: /tmp/_MEIMA8QQr/libssl.so.3: version `OPENSSL_3.2.0' not found (required by /lib64/libcurl.so.4)
For decky-recorder, I manually grabed the actual commands in terminal, it would work. Further debugging showed that plugin processes have this env var injected:
LD_LIBRARY_PATH=/tmp/_MEIMA8QQr/
If I added it to my terminal session then I can get the same error.
It doesn't seem like decky-loader is injecting this var on purpose, but the main loader is packaged by PyInstaller, which would utilize this env var, according to their doc: https://pyinstaller.org/en/stable/runtime-information.html#ld-library-path-libpath-considerations
For now we will need to manually unset this env var in plugin scripts as workaround.
Need manual patches due to issue mentioned above. https://github.com/fsworld009/decky-recorder-fork/releases/tag/v0.0.1-bazzite-patch
More detailed report SDH-Stewardship/decky-recorder-fork#47 (comment)
Curently enabling recording would break screenshot. Observed the same with the new Steam Game Recording, reported to ValveSoftware/gamescope#1489
The main script is not python, cannot edit directly in bin, but we can change the main.py to launch the bin without this env var:
Update env
passed in at https://github.com/theCapypara/steamdeck-decky-syncthing/blob/v0.1.0/main.py#L102 to
env={**dict(os.environ), **{'LD_LIBRARY_PATH': ''}}
Game mode related services
systemctl --user status gamescope-session-plus@steam
systemctl status return-to-gamemode
For testing if the bug is only presented in current build
systenctl --user edit gamescope-session-plus@steam
Add GAMESCOPE_BIN
override
[Service]
Environment="GAMESCOPE_BIN=/home/deck/.local/bin/gamescope_sd"
then save and exit. An service override will be created.
Note: doesn't work with gamescope installed on distrobox
Ref: https://serverfault.com/questions/413397/how-to-set-environment-variable-in-systemd-service
Create a container that can run gamescope without root
Ref
distrobox create gamescope --image ghcr.io/ublue-os/fedora-distrobox:latest --init-hooks "install -o 1000 -g 1000 -d /tmp/.X11-unix-new; mount --bind /tmp/.X11-unix-new /tmp/.X11-unix"
dsitrobox enter gamescope
sudo dnf install gamescope-3.14.2-1.fc40.x86_64
distrobox-export -b /usr/bin/gamescope
exit
~/.local/bin/gamescope
However, cannot use this binary as the GAMESCOPE_BIN
in gamescope-session, would result in
vulkan: selecting physical device 'AMD Radeon 780M (RADV GFX1103_R1)': queue family 1 (general queue family 0)
vulkan: physical device supports DRM format modifiers
wlserver: [backend/headless/backend.c:67] Creating headless backend
wlserver: [libseat] [libseat/backend/seatd.c:64] Could not connect to socket /run/seatd.sock: No such file or directory
wlserver: [libseat] [libseat/libseat.c:76] Backend 'seatd' failed to open seat, skipping
wlserver: [libseat] [libseat/libseat.c:76] Backend 'logind' failed to open seat, skipping
wlserver: [libseat] [libseat/libseat.c:79] No backend was able to open a seat
wlserver: [backend/session/session.c:83] Unable to create seat: Function not implemented
wlserver: [backend/session/session.c:248] Failed to load session backend
wlserver: Failed to create session
Failed to initialize Wayland session
Failed to create backend.
I assume this is because the process inside distrobox cannot see host init processes
https://www.tecmint.com/understanding-shared-libraries-in-linux/
Add a new file in /etc/ld.so.conf.d
for new paths, then run sudo ldconfig
to refresh cache
If not using game mode, make sure you go to settings -> compatibility to choose a proton version as default.
Otherwise, Steam will think it cannot run Windows games and delete game files in common folder and and you will need to redownload them.
ublue-os/bazzite#1914 (comment)
Example: downgrade ibus from 1.5.31 to 1.5.30
# Get an empty working folder
$ mkdir ibus-fix && cd ibus-fix
# Download packages
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/x86_64/ibus-1.5.30-6.fc41.x86_64.rpm
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/x86_64/ibus-gtk2-1.5.30-6.fc41.x86_64.rpm
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/x86_64/ibus-gtk3-1.5.30-6.fc41.x86_64.rpm
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/x86_64/ibus-gtk4-1.5.30-6.fc41.x86_64.rpm
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/x86_64/ibus-libs-1.5.30-6.fc41.x86_64.rpm
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/x86_64/ibus-panel-1.5.30-6.fc41.x86_64.rpm
$ wget https://kojipkgs.fedoraproject.org/packages/ibus/1.5.30/6.fc41/noarch/ibus-setup-1.5.30-6.fc41.noarch.rpm
# Perform downgrade
$ sudo rpm-ostree override replace * --remove ibus-xinit
# Reboot to apply changes
# Delete the `ibus-fix` folder if you want to