This document serves to provide information, workarounds, and tricks to improving day-to-day use of Linux on the Legion Go.
Note that while a lot of things are working, Linux support for this device is very much a work in progress, developers are working on improving the experience.
- Current Status of Linux on the LGO
- What Works?
- What has Workarounds?
- What has issues?
- Known Bugs
- User Reported Bugs (needs verification)
- Which Linux Distro Should I install?
- Resources
- CSS Loader Themes
- Tutorial Videos
- Guides + Small Fixes
- Emulator Info
- TDP Control overview
- Controller Support overview
- Quality of Life Fixes overview
- Resolved/won't fix bugs
- 3D prints
- Tip Jar
ChimeraOS 45 stable, Nobara Deck Edition, and Bazzite Deck Edition, all have a bunch of fixes for the LGO. It's mostly working, but still has bugs that need to be addressed.
However, that being said, Linux is good enough to be a daily driver on the Legion Go.
- Using a PS5 Dualsense Edge Controller Emulator, you get access to the entire LGO controller (including gyro) via steam input
- the entire controller works detached too, gyros in the controller are also usable
- TDP control can be done either via Decky Plugin or HHD (handheld daemon)
- RGB control works via Decky Plugin or Steam Input + Dualsense emulation
- suspend-resume works
- all standard hardware (wifi, bluetooth, sound, etc) works
Some of the things you find in this document may be unofficial changes to original software
Read further below for more details
At the moment, the following functions work out of the box
- Screen orientation (fixed in NobaraOS Deck Edition, ChimeraOS 45 stable, Bazzite OS)
- suspend-resume functionality
- suspend quirk: sound often can be fuzzy on resume, usually clears up after 30 seconds or so.
- sometimes using the Pause Games plugin with
Pause on Suspend
enabled can help with this issue - other times, temporarily setting a high TDP value after resume could clear up audio issues
- sometimes using the Pause Games plugin with
- suspend quirk: sound often can be fuzzy on resume, usually clears up after 30 seconds or so.
- Wifi and Bluetooth works
- Sound works
- Controllers, both attached and detached
- note, controllers work best in X-input mode. see official Legion Go Userguide PDF to read more about controller modes
- ChimeraOS, NobaraOS, BazziteOS all ship OOTB with basic controller support
- BazziteOS + NobaraOS ships with HHD, which enables full gyro + back button support in steam input
- misc: some other non-gaming distros don't include the udev rule for the controller, you can manually add it with this script
- FPS/Mouse mode works
- scroll wheel on controller works fine for scrolling websites, etc
- scroll wheel press doesn't do anything in game mode, registers as a scroll wheel click in desktop mode
- holding the scroll wheel for 5s will toggle the scroll wheel on/off
- trackpad works, but cannot tap-to-click in game mode.
- Can tap to click on desktop mode, but must be enabled in the touchpad settings.
- Can be used in steam input with a workaround.
- Battery Indicator in Game Mode - requires bios v29
These functions are not working out of the box, but have workarounds
- Steam/QAM Buttons/Rear back buttons - all buttons can be used in Steam via Dualsense Edge Virtual/Emulated Controller Video demo here.
- note that Bazzite and Nobara now ship with hhd, which enables all buttons + gyro to work ootb.
- Gyro - uses the same fix as buttons fix
- Gyro performance is best with hhd Dualsense Edge Emulator
- Trackpad - this hardware previously already worked, but was not usable in steam input.
- With the latest version of the PS5 Dualsense edge emulators, it is now usable in steam input. Video Demo here
- TDP - requires using either hhd or decky plugins
- Controller RGB Lights - requires decky plugin or HHD (HHD enables steam input RGB support) See Video Demo here
- GPU Frequency control - via SimpleDeckyTDP plugin
- Custom Fan Curves - via LegionGoRemapper plugin or HHD
- fan curves confirmed to work with bios v29, but bios v29.1 or higher is HIGHLY recommended due to some major bugs on v29
- Games can sometimes default to 800p, you will need to manually change the resolution per game in the
Steam Settings > Properties > Game Resolution
to eitherNative
or other higher resolutions. - v28 bios - STAMP mode is bugged on both Windows and Linux when setting high TDPs with 3rd party tools like ryzenadj and handheld companion
- users reported that they were getting hard crashes at 30W TDP on both Windows and Linux
- Solution: on STAMP mode, TDP must be set with a custom fan curve that will prevent thermal shutdown.
- You can set custom fan curves on bios v29.1 with the LegionGoRemapper plugin
- alternatively, if you don't want to use a custom fan curve, you can enable the
Lenovo Custom TDP
toggle in SimpleDeckyTDP
- Screen Refresh Rate and FPS control - unified refresh rate + FPS slider now works perfectly on latest bazzite stable, fixes should now also be on the latest Nobara Deck Edition too.
- ChimeraOS might not have the fix yet.
- adaptive/auto display brightness doesn't work yet
- manual brightness slider in steam UI works without issues
- there's work in progress from devs for to get this fully working
- potential bios bug - custom fan curves stop working for unknown reasons
- issue on both linux and windows
- as temporary workaroud, you can reset fan curves via using
Legion_L + Y
combo to reset the fan curves - alternatively, completely disable custom fan curves in LegionGoRemapper and reboot
- v29 bios - IMPORTANT BIOS BUG: You cannot set custom fan curves and use Lenovo's custom TDP mode for TDP control simultaneously,the LGO bios has a bug
- this bug is fully resolved on bios v29.1
- Adaptive Brightness sensor - hardware is detectedby the OS, but not used for auto-brightness yet
- there's dev work in progress for auto-brightness
- if you wish to test it out, see here
- there's dev work in progress for auto-brightness
- (2024-03-13) bazzite suspend bug is fixed, you can go back to regular updates by going back to
stable
via running the following in terminal:rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:stable
- Occasionally steam game mode will flash white
- seems to be related to autoVRAM, recommend disabling autoVRAM and set 6GB or 8GB VRAM in the bios
- BazziteOS - after fresh install, sometimes you encounter a blank screen on reboot
- fix found here
- suspend-resume quirk: sound often is fuzzy on resume, usually clears up after 30 seconds or so, but not all the time.
- sometimes using the Pause Games plugin with
Pause on Suspend
enabled can help with this issue - sometimes temporarily increase TDP to a high value fixes the sound problem
- sometimes using the Pause Games plugin with
- HHD (Dualsense Emulator) - It should now hide the Xbox controller in steam input, and only show the Dualsense Edge.
- If you see an extra Xbox controller in steam input, you can flip the fps-mode switch on and off for to make it disappear. You can leave the controllers attached when you do this.
- This should also fix any issues where emulators don't recognize the controller, since the emulator was latching onto the Xbox controller
- if you still have a controller issue, reorder the controller from player 2 to player 1 in the QAM. sometimes it registers as player 2 even when no other controller is attached
- user reports say wifi has lower download speeds on Linux vs Windows
- alternative resolutions while in desktop mode are buggy/broken
- instead of changing resolution, change scaling for to enlarge/shrink UI elements
- hhd 2.0 bug - game controller stops working when detached/reattached.
- fixed, update to the latest bazzite
- autoVRAM can be buggy, disabling it in the bios is recommended
- fix is being tested
- make sure to be on the latest nobara for all the bugfixes
- controller is more buggy in desktop mode for desktop-related usage, steam input doesn't work. should still work fine for gaming
- nested desktop is completely fine
- microphone might not work on bazzite
- requires verification
- certain Decky plugins require
deck
as your username- deck username fixes Animation changer plugin and mangopeel plugins
- nobaraOS v39
- game mode global FSR is not working
If you want a SteamOS-like experience, there are 3 distros I would recommend
- BazziteOS Deck Edition
- Nobara Deck Edition
- ChimeraOS
As for which one you should install, here's a breakdown of the benefits and drawbacks of each.
Pros
- Highly recommended for more casual users who don't want to tinker much
- Has the best out-of-box experience on the Legion Go
- Tools such as Decky, Emudeck, HHD (for Controller Emulation), etc, are either pre-installed, or have an easy install process
- Excellent support from the Bazzite Devs and community
- Bazzite Discord is the place to go to for support and discussion, see here
- Very quick to fix issues and provide OS updates
- also extremely easy to rollback to previous OS versions, so if an OS update breaks something, you can easily rollback to the prior OS version
- Read-only root filesystem helps with providing better security, more stability, and overall a very good stable console-like experience
- also has SE Linux configured out of the box
- Can configure Secure Boot, which allows for disk encryption and other security benefits
- Secure boot requires some additional configuration steps
- Has both a Gnome and KDE Desktop mode option
- supports distrobox for more flexibility in software install options
Cons
- Due to it's read-only root OS, it's harder to do more comprehensive tinkering
- e.g. running a custom Linux kernel, etc
- slow OS install + OS updates, they take a long time
Pros
- Recommended for those more familiar with Linux, and don't mind troubleshooting a lot or tinkering
- Nobara is the most similar to a standard Linux distro, and does not have a read-only root filesystem
- This provides the most flexibility for running custom kernels, modifying system files, etc
- Can setup most workarounds and tools for a great experience on the Legion Go
- now ships with HHD and gamescope patches by default, so it should be a fairly bug-free experience now
- requires latest NobaraOS updates
Cons
- Nobara tends to run cutting edge kernels, and makes other frequent changes to the OS
- This often leads to updates introducing bugs or breaking features on the Legion Go
- while rollbacks after a borked update are possible, it's not easy for non-technical users
- Due to no read-only root FS, easier to accidentally mess up your device and put it into a borked state
- Nobara is basically run by one dev, GloriousEggroll (same guy behind GE-Proton), along with a few helpers
- While GloriousEggroll does excellent work, Nobara is understaffed and it will sometimes be difficult to get help or support if you run into problems
- Only Desktop is KDE, so if you prefer Gnome, you'll have to look elsewhere or manually install + manage it.
Pros
- Aims to be a very streamlined console-like experience, doesn't include lots of extra software, etc
- very minimalist, very stable
- Very easy to pin your device to a stable OS version
- so once you get a good working setup, you can lock your OS version and then opt to manually update whenever you want
- great if you want a console like experience where you can "set-it-up-and-forget-it"
- Has a read-only root filesystem, but can also be fully unlocked if necessary
- note: filesystem unlock does not survive OS updates because it re-locks after an OS update.
- Excellent support for a variety of handhelds besides the Legion Go
- Good Dev and community support on their Discord
- Has it's own implementation of Emulator support, etc
- supports distrobox for more flexibility in software install options
Cons
- Installing some recommended tools, such as acpi_call for custom fan curves, requires unlocking the root filesystem
- ChimeraOS 45-1 will include
acpi_call
- ChimeraOS 45-1 will include
- hhd needs to be manually installed
- handycon will also need to be manually disabled after every major OS update
- ChimeraOS's emulation implementation interferes with Emudeck, you'll need to manually disable the ChimeraOS implementation
- Only desktop option is Gnome, so anyone that prefers KDE will have to look elsewhere
HHD - PS5 Dualsense Edge Emulator - https://github.com/hhd-dev/hhd
- has a Decky plugin available for changing hhd settings: https://github.com/hhd-dev/hhd-decky
- also has a desktop app https://github.com/hhd-dev/hhd-ui
- hhd also supports overlay mode in Steam Game mode, and offers a solution for TDP and fan curve control
RGB Decky Plugin - https://github.com/aarron-lee/LegionGoRemapper/
Simple Decky TDP Plugin - https://github.com/aarron-lee/SimpleDeckyTDP
LegionGoRefreshRates Decky Plugin - experimental plugin for changing default screen resolution in game mode. https://github.com/aarron-lee/LegionGoRefreshRate
Script that monitors CPU temps and blasts fans when temps are too high - see guide here
reverse engineering docs - https://github.com/antheas/hwinfo/tree/master/devices
steam-patch (for TDP control, some steam glyphs, etc) - https://github.com/corando98/steam-patch
rogue-enemy (deprecated, no longer maintained) - PS5 Dualsense Edge Emulator - https://github.com/corando98/ROGueENEMY/
powerbutton fix when using rogue-enemy - https://github.com/aarron-lee/steam-powerbuttond
Pipewire sound EQ improvement files (not maintained) - https://github.com/matte-schwartz/device-quirks/tree/legion-go/rog-ally-audio-fixes/usr/share/device-quirks/scripts/lenovo/legion-go
- updated version of sound improvements here
Bios archive - https://github.com/aarron-lee/legion-go-bios
gyro increase sampling rate fix (advanced users only, not maintained) - https://github.com/antheas/llg_sfh
- note, requires
CSS Loader
Decky Plugin - manually install by downloading the theme + placing in
$HOME/homebrew/themes/
folder - these themes may require a reboot for them to work
Legion Go Theme - https://github.com/frazse/SBP-Legion-Go-Theme
PS5 to Xbox Controller Glyph Theme - https://github.com/frazse/PS5-to-Xbox-glyphs
- If you'd like to manually edit mappings, you can find glyphs at
$HOME/.local/share/Steam/controller_base/images/api/dark/
- manual mapping can be done by editing the css file with the svg/png paths you want
# quick install, CSS Loader Decky Plugin must already be installed and enabled
# Legion Go Theme Install
cd $HOME/homebrew/themes && git clone https://github.com/frazse/SBP-Legion-Go-Theme.git
# PS5 to Xbox Controller Glyph Theme
cd $HOME/homebrew/themes && git clone https://github.com/frazse/PS5-to-Xbox-glyphs
Dual Boot Tutorial Video (Bazzite + Windows) : https://www.youtube.com/watch?v=3jFnkcVBI_A
- Partition guide for Dual boot with Bazzite: see here
Dual Boot Tutorial Video (Nobara + Windows): https://www.youtube.com/watch?v=anc7hyPU6Lk
See official site at: https://universal-blue.discourse.group/docs?topic=36
If you notice eGPU not running at full pcie speeds, you might need an additional kernel arg before it works at full speed.
- Open up your terminal (Ptyxis), run the following command
rpm-ostree kargs --append=amdgpu.pcie_gen_cap=0x40000
- reboot
If you see a frozen or blank screen on first reboot after a fresh installation of Bazzite, you can permanently fix the issue via the following:
- press
Ctrl + Alt + F2
to open a terminal - login via your username and password
- once logged in, type
steamos-session-select plasma
- if you are on deck-gnome, try swapping
plasma
withgnome
if it doesn't work
- the terminal command should switch you to desktop mode
- from desktop mode, just press the
Return to Game Mode
shortcut on the Desktop
- for deck-gnome, the
return to game mode
shortcut will be in the menu that you see after you click the top-left corner of the screen
Open terminal in Nested Desktop (NOT Desktop mode), and run the following:
kscreen-doctor output.1.rotation.normal
then restart nested desktop
User reported issue where Nested Desktop frequently fails. As a fix, set a per game profile
for Nested Desktop with 60hz as the screen resolution.
If you still run into frequent freezes, please report the bug on the Bazzite Discord.
run the bazzite-nested-desktop-resolution.sh script.
You can edit the script with your preferred nested desktop resolution before running it.
After running the script, restart Game mode. Then change steam's resolution to match the resolution you set.
let's say you want to revert Bazzite to an image with kernel 6.6
First, you can find the list of bazzite-deck images here: https://github.com/ublue-os/bazzite/pkgs/container/bazzite-deck/versions?filters%5Bversion_type%5D=tagged
Look for the version for specific dates, it'll look like 39-YYYYMMDD
e.g. 39-20240205
This will let you find the kernel version on that given image
skopeo inspect docker://ghcr.io/ublue-os/bazzite:39-20240205 | grep ostree.linux
if the number matches with the kernel version that you want to deploy, you can then deploy the image:
rpm-ostree rebase ostree-image-signed:docker://ghcr.io/ublue-os/bazzite-deck:39-20240205
run rpm-ostree status
in terminal, you'll see info on your current image.
First, try changing the following (original tip found here):
System Settings > Display and Monitor > Display Configuration > Legacy Applications: Scaled by the system
If this doesn't work, then proceed to the next steps.
This is for Bazzite-Deck, not Bazzite-Deck-Gnome
thanks @noobeta on discord for this tip!
For technical users:
run sudoedit /etc/environment
, and add STEAM_FORCE_DESKTOPUI_SCALING=2
to the end of the file. save changes, and reboot afterwards.
for non-technical users:
run xdg-open /etc/environment
in terminal, it will open up the file in a text editor. Add STEAM_FORCE_DESKTOPUI_SCALING=2
to the end of the file, and save. You will be prompted for your password, save and then reboot.
Note that if you edit the /etc/environment
file, it will change the scaling of the on screen keyboard in desktop mode.
should now be fixed with the latest NobaraOS updates.
Currently, Desktop mode does not have a lock screen during suspend-resume cycles on NobaraOS.
To fix this, go into Desktop mode, then configure Screen Locking
in KDE desktop settings. You can optionally configure it for after waking from sleep
.
This should show a login screen for suspend/resume in desktop mode only. In game mode, you should still get the expected regular behavior.
The Legion Go bios currently has behavior where if temps get too high, it manually forces TDP values to lower values until temps cool off
To mitgate this issue, you can setup a monitoring script that will blast the fans at full speed whenever it sees temps that are too high.
Install Instructions:
- run
sudo modprobe acpi_call
, and see if this command errors out for you; if it does display an error, you need to installacpi_call
on your linux distro
If it did not error out for you, we need to enable acpi_call by default so that you don't need to manually run sudo modprobe acpi_call
on every boot.
You can do so via running the following script: enable-acpi-call.sh
- Download the files required
cd $HOME && git clone https://github.com/corando98/LLG_Dev_scripts.git
- before installing, you can edit the
$HOME/LLG_Dev_scripts/fan-helper_install.sh
script if you'd like to change what temperature will trigger the fan
- in the file, you can replace the
85
in the line with--temp_high 85 --temp_low 80
- run the install script, it will ask for your sudo password
cd $HOME/LLG_Dev_scripts && chmod +x ./fan-helper_install.sh && sudo ./fan-helper_install.sh
- To verify that it's working, you can type in the following:
sudo systemctl status legion_fan_helper.service
The result should look something like this:
Jan 03 21:03:19 nobaraLGO systemd[1]: Started legion_fan_helper.service - Legion Go Fan helper method.
Jan 03 21:03:19 nobaraLGO python3[10905]: 2024-01-03 21:03:19,473 - INFO - CPU Temperature: 46°C
Jan 03 21:03:19 nobaraLGO python3[10905]: 2024-01-03 21:03:19,473 - INFO - AC Status: Plugged In
-
You can now quit/close the terminal, and reboot
-
If you ever want to uninstall this temperature monitoring script, run the following one line at a time:
sudo systemctl disable --now legion_fan_helper.service
sudo rm /etc/systemd/system/legion_fan_helper.service
sudo rm -rf $HOME/LLG_Dev_scripts
This will let you change your default kernel.
using this command to figure out the kernels you have installed:
sudo grubby --info=ALL | grep kernel
Look for the version number you want to make the default, it should be a number, something like 6.7.0-204
Then run the following
sudo grubby --info=ALL | grep -i REPLACE_THIS_WITH_KERNEL_VERSION_NUMBER -B 1 | grep index
# example: if you're looking for 6.6.9-203
sudo grubby --info=ALL | grep -i 6.6.9-203 -B 1 | grep index
You should get an index number that shows up after running the command.
After having index number of the kernel you want as the default, run:
sudo grubby --set-default THIS_INDEX_NUMBER
# example: if the number is 3
sudo grubby --set-default 3
Then reboot, and verify it's working:
# reboot, this should print out your kernel version
uname -r
Thanks @cox on discord for the info, and @megabadd for recommending some improvements to the instructions
~/.config/gamescope/modes.cfg
contains resolutions for monitors that have been configured.
Sometimes monitor settings in the file are set to erroneous values that the display could not handle.
To fix this, removing the display from the file allows it to be reconfigured. thanks @braymur on discord
- Save this script somewhere and mark it as executable
chmod +x ./desktopmode-autoscale.sh
-
(optional) edit script's
SCALE=1.5
value to whatever scale you want -
Add it to your KDE Autostart config (Menu > search for Autostart > Add)
Battery indicator is inconsistent on the Legion go. As a workaround, you can change mangohud to show just the battery on one of the presets.
example preset, file should be in the $HOME/.config/MangoHud/presets.conf
[preset 1]
battery=1
fps=0
cpu_stats=0
gpu_stats=0
frame_timing=0
If you're seeeing a fuzzy screen, it means that the you're somehow using an invalid refresh rate. The only valid refresh rates for a game are 60 and 144Hz.
Update: There's a refresh rate permanent fix available on BazziteOS, the fix should also be on the latest NobaraOS
Note, you should never change the content of /boot/grub/grub.cfg
What you probably want to do is to hide grub’s boot menu, you can do it two ways:
- By hiding the boot menu
- for non-technical users:
- go to your
/etc/default
folder, then open thegrub
file with kate. - Edit the file and add
GRUB_TIMEOUT_STYLE=hidden
, then save. It'll prompt for your password. - Afterwards, in terminal run
sudo update-grub
- go to your
- for technical users:
sudo vim /etc/default/grub
and setGRUB_TIMEOUT_STYLE=hidden
. save changes, then runsudo update-grub
- for non-technical users:
- Or by making the boot menu timeout 0, to do that:
- for non-technical users:
- go to your
/etc/default
folder, then open thegrub
file with kate. - Edit the file and set
GRUB_TIMEOUT=0
, then save. It'll prompt for your password. - Afterwards, in terminal run
sudo grub-mkconfig
- go to your
- for technical users:
sudo vim /etc/default/grub
and setGRUB_TIMEOUT=0
. save changes, then runsudo grub-mkconfig
to generate/boot/grub/grub.cfg
- for non-technical users:
Tip: even if your boot menu is hidden, you can access it when your pc is starting:
If you have BIOS: press and hold SHIFT key right after you see you Motherboard/PC splash screen
If you have UEFI: start pressing ESC the moment you see your motherboard/pc splash screen.
sudo dnf install plasma-lookandfeel-nobara-steamdeck-additions
includes:
- should support Legion Go at native resolution
- It should work for both Steam Deck and ROG Ally.
- Make sure to set the game entry to “Native” in the Steam game settings menu first.
- you’ll have to set scaling once in the KDE settings when the nested desktop session loads for the first time but it should save it for future nested desktop sessions or else the screen will be for ants at 1600p
- also adds back the right-click “add to steam” shortcut you get with the steamdeck-KDE-presets package (which conflicts with the new theming)
Full guide here: https://medium.com/@mohammedwasib/a-guide-to-a-good-docked-gaming-experience-on-the-steam-deck-346e393b657a
Reddit discussion here
PDF Mirror of guide here
source: reddit post
Resources:
https://sourceforge.net/projects/refind/
http://www.rodsbooks.com/refind/
Instructions:
- Enter on Bazzite Desktop mode
- Download the RPM on SourceForge (file that ends with a
.rpm
) and open a terminal (ex : Console on Bazzite) - cd into your Download directory (ex :
cd ~/Downloads/
) - Run
sudo rpm-ostree install refind-*.rpm
(This will install the rEFInd RPM using rpm-ostree) - Run
sudo refind-install
(Read further into the resources if you want to enable Secure Boot) - OPTIONAL : Download custom rEFInd theme (credits goes to Yannis Vierkötter and his rEFInd-Minimalist for the original theme) (download mirror link here)
- OPTIONAL : Unzip then run
sudo sh -c 'mkdir /boot/efi/EFI/refind/themes/ ; set -euo pipefail cp -r rEFInd-Minimalist-LGO_Bazzite/ /boot/efi/EFI/refind/themes/ && grep -qFx "include themes/rEFInd-Minimalist-LGO_Bazzite/theme.conf" "/boot/efi/EFI/refind/refind.conf" || echo "include themes/rEFInd-Minimalist-LGO_Bazzite/theme.conf" >> /boot/efi/EFI/refind/refind.conf '
(make sure rEFInd-Minimalist-LGO_Bazzite/ is present in the directory you are currently in, type in the commandls
to see all available files) - Reboot into BIOS and set rEFInd as the first option in the boot order
- Bonus step : Set the Bazzite bootsplash in portrait mode, Run
sudo rpm-ostree kargs --append-if-missing=video=eDP-1:panel_orientation=left_side_up
Thanks @ariobeth on discord for this guide
not offical instructions, but seems to work fine
setup refind in linux, then run the following via Terminal:
- sudo nano /boot/efi/EFI/refind/refind.conf (requires root to edit. else, sudo -i first to enter root, then issue the sudo nano)
- scroll down and find the "#resolution 1024 768" section.
- add "resolution 2560 1600". (notice it is 2560 wide and 1600 height, it is not 1600 wide and 2560 height. This simple trick rotate the refind boot menu screen correctly on the legion go.)
- also "enable_touch" and "enable_mouse" for Touchscreen and mouse to work.
- you might also want to increase the icon size. "big_icon_size 256" (your preference)
- No idea how to increase font size. (you might need to change the theme for refind)
Emulator related documentation, including recommended settings, etc.
Game emulators sometimes don't recognize the emulated dualsense controller via HHD.
This is usually because the emulator may have temporarily latched onto the original xbox controller instead of the emulated dualsense
- you can usually resolve this by flipping the fps-mode switch on and off.
- if you still have a controller issue afterwards, reorder the controller from player 2 to player 1 in the QAM.
- sometimes steam registers the emulated controller as player 2 even when no other controller is attached
On Bazzite, install via the ujust script in terminal.
For to install on ChimeraOS or NobaraOS, go to https://www.emudeck.com, and scroll down to the section that shows installer options.
If the Linux
install option doesn't work for you, the ChimeraOS
install instructions should also work fine on other Linux distros.
For to improve stability, you can disable V-sync in the Dolphin settings
- open Dolphin on desktop mode
- select
Graphics
- disable V-sync, save changes
Note that the Legion Go (LGO) has an issue in STT mode (vs STAMP mode in the bios), where custom TDP values will eventually get changed by the bios while in STT mode. STAMP mode fixes this, but there are users reporting crashing while in STAMP mode. STT does not have this stability issue.
If you use the SimpleDeckyTDP plugin with the LGO custom TDP method, fixes stability issues on STAMP. Note that this requires bios v28 or newer
Alternatively, you can set a custom fan curve, which should also help fix the issue.
There's a few options for TDP Control on the Legion Go.
source: https://linuxgamingcentral.com/posts/chimeraos-on-legion-go/
You can switch colors (of the power LED) by holding Legion L + Y. Each time you press this combination, you change the performance mode:
- quiet: blue LED; uses about 8 W
- balanced: white LED; uses about 15 W
- performance: red LED; uses about 20 W
- custom: purple LED; uses anywhere from 5-30 W; although at default it seems to be around 20 W
For custom
on the new bios (bios v28) Custom by default is 30W TDP with everything maxed out
And it resets every time you switch modes
hhd now ships with an overlay that has TDP control support. Requires acpi_call installed on your Linux distro.
Decky Plugin that provides TDP and GPU controls. Also has an option to fix Steam's TDP + GPU Sliders. Note that there's a risk that Decky Plugins can stop working from any Steam updates from Valve
https://github.com/aarron-lee/SimpleDeckyTDP
Basic Desktop app for TDP control, but can also be added to game mode as a backup option
https://github.com/aarron-lee/simple-ryzen-tdp/
Steam Patch enables Steam's TDP slider + GPU sliders to work. Note that this works by patching the Steam client, which means that any Steam updates from Valve can potentially break this fix.
https://github.com/corando98/steam-patch
Link: https://github.com/antheas/hhd
PS5 Dualsense Edge controller emulator, currently supports all buttons on the LGO controller except the back scrollwheel (scrollwheel already worked previously). Has improvements vs rogue, such as more consistently working rumble, config file for configuring different options, RGB LED control via steam input, etc. It also supports managing the power button, so no extra program is necessary.
It is preinstalled on Bazzite for the Legion Go, ROG Ally, abd several other PC handheld devices.
Install instructions are available on the github.
Default installed OOTB on ChimeraOS, Nobara Deck Edition. It supports all the standard Xbox controls, Legion_L + X
for Steam/Home, Legion_L + A
for QAM. Back buttons are not supported.
Note that you can get back buttons to work with the LegionGoRemapper plugin, but it has the same limitations as the LegionSpace app on Windows; you can only remap back buttons to other controller buttons, and they cannot be managed individually in Steam Input.
Link: https://github.com/corando98/ROGueENEMY
PS5 Dualsense Edge controller emulator, currently manages all hardware buttons except the back scrollwheel (scrollwheel already works). Back buttons are usable in Steam Input, same for the trackpad.
Note that rogue-enemy has conflicts with handygccs, so it must be disabled. Also, since handygccs handles for the power button, you'll need a separate solution for power button suspend. You can use this, which was extracted from handygccs: https://github.com/aarron-lee/steam-powerbuttond
- note, requires
CSS Loader
Decky Plugin - manually install by downloading the theme + placing in
$HOME/homebrew/themes/
folder - sometimes themes require a reboot before they start working.
Legion Go Theme - https://github.com/frazse/SBP-Legion-Go-Theme
PS5 to Xbox Controller Glyph Theme - https://github.com/frazse/PS5-to-Xbox-glyphs
- If you'd like to manually edit mappings, you can find glyphs at
$HOME/.local/share/Steam/controller_base/images/api/dark/
- manual mapping can be done by editing the css file with the svg/png paths you want
# quick install, CSS Loader Decky Plugin must already be installed and enabled
# Legion Go Theme Install
cd $HOME/homebrew/themes && git clone https://github.com/frazse/SBP-Legion-Go-Theme.git
# PS5 to Xbox Controller Glyph Theme
cd $HOME/homebrew/themes && git clone https://github.com/frazse/PS5-to-Xbox-glyphs
Link: https://github.com/aarron-lee/LegionGoRemapper/
Allows for managing back button remaps, controller RGB lights, toggle touchpad on/off, etc
You can also enable custom fan curves, confirmed functional on bios v29
- note that this uses the exact same functionality as LegionSpace on Windows, so it has the same limitations
- back button remapping should not be used w/ PS5 controller emulation
Note, HHD is also now an alternative for fan control on the Legion Go
https://makerworld.com/en/models/88724#profileId-94984
https://www.thingiverse.com/thing:6364915/files
https://makerworld.com/en/models/57312#profileId-94578
https://www.thingiverse.com/thing:4675734
https://www.reddit.com/r/LegionGo/comments/17s8rv8/3d_printed_steamclip_kickstand_released/
https://www.thingiverse.com/thing:6311208/
https://www.thingiverse.com/thing:6444531
https://makerworld.com/en/models/157429#profileId-172767
controller adapter - https://www.printables.com/model/645576-legion-go-controller-adapter-remix
controller caryy case - https://www.thingiverse.com/thing:6499314
travel cover https://cults3d.com/en/3d-model/gadget/legion-go-front-cover
install AppImage manager
flatpak install flathub it.mijorus.gearlever -y --user
Upon request from users, I'm leaving a tip jar link available for anybody that'd like to leave one.