Greetings! I am HikariKnight.
Some of you might know me as a long time Bazzite maintainer, or as that guy helping people with advanced virtualization on Bazzite-dx or you know me from one of my very early and very cursed projects.
Acer Atlas 8 shenanigans
My work have mostly been condensed to working on the button mappings for the Acer Predator Atlas 8, with some very helpful guidance from the ShadowBlip team that maintains InputPlumber, the new handheld control stack we are using.
Initial probing of the buttons on the Atlas 8 revealed some funny stuff that you would expect coming from a handheld with custom buttons, like pressing or holding one of the extra buttons sends a keyboard event with the button F22 or some random DInput button like my favorite TRIGGER_HAPPY1.
However that was not the case with this handheld, I will mention some of the interesting ones.
- Pressing the Guide button to open the left steam menu would only send a button press event with hidraw data (so raw usb data) and never a button release event.
- Holding the Guide button will instead send a keyboard event where
LeftMeta/LeftWinandTABis pressed and released immediately, so clearly the button cannot be used for steam chords… - Pressing (not holding) Guide, M1, M2 or sliding any of the trigger locks would freeze the inputs on the handheld until a sleep+wake cycle or reboot
- However we noticed by accident that having anything read the hidraw device would prevent the inputs freezing, which led to the abomination that is #6125
- Pressing the QAM button would send a DInput event named
ABS_MISCwith a value of0?ABS_MISCis an axis (analog trigger) event, so yes this button thinks it is an analog trigger
- Sliding the trigger locks in and out of position sends hidraw events
- I joked about making the system play a click or bow drawing sound when you slid them into the different positions.
Generic hidraw driver for InputPlumber
Pastaq from the ShadowBlip team suggested I could test out the unmerged Generic hidraw driver to implement all these weird buttons, since i did not know any RUST, and they did not have access to the handheld.
Kyle was nice enough to clean up the patch and add it to the InputPlumber package we use in Bazzite and this generic hidraw driver for InputPlumber is currently fueling the button support for the Atlas 8.
Guide for adding new devices in the future
Testing so far has shown that this generic hidraw driver works wonders and really raises the floor a lot for helping getting new devices basic input onboarded, once the driver is merged into upstream InpuPlumber, I will be working on a guide to teach new people how to get their device added.
What currently works
- All the controls work except tapping the Guide button (hold it instead to open the left steam menu)
- M1 and M2 are fully mappable and usable in Steam Input
- QAM tap and hold works
- For now, TDP control is available through SimpleDeckyTDP or Panel De Control
What is left to fix
However we cannot fix the Guide button tap (press and release) without a proper hid driver for the device and some kernel work, but this gets us most of the way there.
Sadly the gyro in the Atlas 8 has no Linux support yet.
I imagine we will enable the OpenGamepadUI overlay for the Atlas 8 very soon, so i would not go about making advanced custom Steam Input profiles for the controls yet, unless you don’t mind re-creating them.
VFIO cleanup
Since we moved the advanced virtualization to Bazzite-dx, there were some leftover quirks in ujust setup-virtualization that has been cleaned up and had some bugs fixed that came to my attention after stumbling upon a video from ItsRoji recording his journey of switching to Bazzite on youtube, followed by another user reporting the same issue shortly afterwards.
Seriously stumbling across these videos at random is very fun for me and it makes me happy seeing people utilize the extremely niche things i have added to Bazzite.
The ujust now also sets iommu=on instead of iommu=pt in order to comply with Epics EAC V2 for Linux, however i know from experience that iommu=on can cause some weird hardware to slow down boot up and shutdown of the host machine.
If you are affected by iommu=on slowing down your boot and shutdown in Bazzite-dx then open an issue on github or in our discord and tag me directly and i will make an ujust toggle for this, but hopefully this will not be neccessary.
That is all from me, enjoy Bazzite 45! ![]()
