Part 2. Booted back into Windows. Turns out that Windows and Linux generate separate pairing keys for Bluetooth devices - completely bollocksing up trying to use devices on both. More searching revealed this StackOverflow post, which led me to https://github.com/x2es/bt-dualboot - let's give that a punt.
Also, while I've been doing this, I've decided "screw installing Bazzite, one Linux environment is enough" - I'm just going to use gparted to expand the existing partitions. It really isn't worth the effort to have multiple, and I might as well just have the space for one. Also, frankly, I'm not enough of a masochist to go through all this crap twice. Might try Bazzite straight off the USB to test it, but the general purpose environment is enough.
Back to the bluetooth stuff. So, it involved installing python3-pip, and then doing sudo pip install bt-dualboot - which didn't work.
error: externally-managed-environment
× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
python3-xyz, where xyz is the package you are trying to
install.
If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.
If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.
See /usr/share/doc/python3.12/README.venv for more information.
note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.
Fun. So, let's try doing what it asks. Installed pipx at the terminal, and ran pipx install bt-dualboot, then pipx ensurepath as suggested, and following instructions in pipx completions - and ran echo 'eval "$(register-python-argcomplete pipx)"' >> ~/.bashrc to add it to bash. Also remembered fish is my preferred shell - must add that to the todo list, and add completions there too, but bash will do for now. Restarted the terminal as advised. Tried running sudo bt-dualboot --sync-all --backup - and got command not found. No huge surprise really with a virtual environment. The command we were actually looking for here was sudo pipx run bt-dualboot --sync-all --backup - which sort of worked, but it couldn't find the Windows partition to mount. Clicked the Windows partition in the Cinnamon file browser, which mounted it via NTFS-3G on FUSE to a /media/rick/{long-hex-number} directory. Then it worked. (This did remind me that there's a kernel level NTFS driver pulled in from Paragon, which will likely give higher performance, but for the limited amount I'm going to be using NTFS access, I suspect it's overkill here, and there's something to be said for known good battle-hardened tech.)
Unfortunately, while it worked, I realised I'd then copied the wrong non-working keys from the Linux side to Windows. Derp. Okay. Time to un-pair and re-pair. Got it back on on the Linux side, let's reboot to Windows and see if it worked.
Side note, bit of an annoyance with Firefox, I specifically installed the en-GB version, yet it came with the en_US dictionary, which highlighted half the words in this document incorrectly as I typed it. Come on, do better Mozilla, it's not rocket science, install the right dictionaries with the localised install...
Okay. Couple of reboots later, couple of re-pairs of devices, and we're in business - we've got the same keys working between Linux and Windows for Bluetooth. Magic. Cool, another annoyance got rid of.
Realised I was getting annoyed with the login window appearing on all monitors. A quick hop into settings->login window->settings->Monitor and switching it to the laptop built-in display should fix that. It didn't. A minor annoyance and nothing to really worry about, but still, irritating.
Next, I want Input Leap installed. Annoyingly, it appears only Barrier, an old version of the software, is easily available in apt. I could manually compile and install it, or I can repackage. Or I can locate it in flatpak! Hurrah. Turns out going to https://flathub.org/apps/io.github.input_leap.input-leap, clicking the install button, then clicking the small flatpackref file fires it up in Software Manager, as an Unverified Flatpak. Fine, seems reasonable to me. Time to import the config file I exported in Windows. (Or not, that blatantly didn't work. Copied the SSL files though.) Okay. We're up and running. Cool.
So, what's next? Steam. Should probably install Steam. Oh, and a driver for the xbox controller, let's get that in too. Steam first though. On installing Steam, it tells me "you'll need the 32 bit version of the nVidia libraries" - specifically nvidia-driver-libs:i386. They're not in the software installer, or in apt, though they can be accessed by enabling the appropriate i386 architecture. Quick bit of googling suggests "don't install that from the software manager, you're in for a world of pain". Good to know. (I'm going to put a summarised "how to get set all these annoying quirks sorted" document together after all this crap I'm going through. Headed to steampowered.com, and installed the .deb manually.
Ah. Yes. Fonts. I'll probably want to install a bunch of those. Backed them up before I wiped Windows, I'll just copy those in once I figure out how. This doesn't look too pretty:
Reminds me of old remote X sessions on a Sun box. Nostalgic, but ugly. Still, looks fine once signed in. Straight into Settings, Compatibility and enable Steam Play for all titles, left it on the default Proton Hotfix version for now and will change for individual games if they don't run well. Another bit of searching suggests I should probably update the nVidia drivers as the ones built-in to Mint are a bit old - which makes sense, Windows has updates for them every 3 minutes. A quick sudo add-apt-repository ppa:graphics-drivers/ppa in the terminal (or via the software manager if the GUI is preferred, I suspect) adds the latest ones to the driver manager. Yup, a jump from 550 to 570 available. Let's try installing that. Reboot time. Cool, no mokutil crap this time, that's nice.
Re fonts - Install ttf-mscorefonts-installer via your preferred package install method to get most of the basics. I'll just do those for now, and install others if necessary later.
Set Satisfactory installing as a quick test of this. In the meantime, I'd better install the xbox wireless driver. Looks like xone is the way to go. No nice easy way to install on Mint/Ubuntu as there's no packages - I get the feeling I'm going to be doing some packaging in the next week or two - this is the nature of open source, spot a problem, fix it, share it, everybody wins - but for now, old school compile it is. Cloned it, ran the sudo ./install.sh command, checked the log and saw that it had the signing command and key listed in the output so shouldn't get any pain with mokutil again, then remembered to actually finish following the instructions so it'd work. Quick pair up... and we're in business, and Steam could immediately see it. Nice. I don't need it for Satisfactory, but let's see what happens when I try to launch it.
Next: Figure out how to get Satisfactory Mod Manager working. Oh, that's nice, there's a Linux version. Downloaded that, moved it to ~/.local/bin, and it runs from the terminal, but I'd like an icon with a shortcut. Can't just right click the desktop and create one it seems. Hrm. Looks like you can create a shortcut by dragging with CTRL+SHIFT, but that didn't let me set an icon. Created ~/Applications/SatisfactoryModManager and moved it there for ease of visibility, along with a 32x32 and 64x64 icon from Github. Right clicking the launcher icon has an Edit Menu option. Into Games I go, add an entry for the created application, edit the desktop file. Still no icon though. Apparently it wants the Icon= line to be relative, and the file to be in ~/.icons. Sure. Still doesn't work. This is a pain in the arse.
Oh. Rebooted, and apparently my bluetooth headphones are no longer connected to the laptop, for no particular reason. Erm, cool? Hit search... then they reconnected again. Marked them as trusted, maybe that's a thing. Wonder why it's listed as "miscellaneous"...
Okay. Back to my stupid desktop icon. Urgh... just noticed a second Icon= line in the file. Deleted that, now it works. But god, that was a pain in the arse. Turns out it does work just fine with a fixed path instead of in .icons. Okay. Found a program to to it. It'll cost me 51MB in a flathub install. Interesting, loading it up gave me a non-responsive program - until I realised it'd popped up a dialog box on another monitor. Ffs. This whole experience is making me pretty angry thus far. And the flatpak Input Leap decided it was going to be a dick about saving its configuration, or remembering the config file I'd provided it. Another bit of an argument and I finally got that to play ball. This definitely feels like life on hard mode. Why would a regular user want to put themselves through this?!
So. Mods reinstalled for Satisfactory. Reloading the game. Immediately crashed on start trying to use DX12 by default. Switched to Vulkan rendering in options. And we're in! Right up until I hit Print Screen to take a screenshot to upload to here - and crashed it. Are you kidding me?! How is this such a shit experience?! Note to self, F12 is the Steam screenshot hotkey. Tried reloading it again. Promptly crashed on trying to load my game again. What the hell. Is this something dual-GPU related? Is it just crap? Hard to tell. Reloaded, went back into graphics options, and it claimed it was being forced into DX11. Added -vulkan on the command line, let's see what happens. I swear, all this is doing is making me want to move all my games back to Windows, this isn't worth the pain.
Oh. Wow. So if you alt+tab out of some Steam games, Proton/Wine dies horribly for no particular reason. That is... definitely something.
Tried switching to nVidia performance mode on the GPU. My portrait monitor is back in landscape again. *sighs and resets it again* Oh, and my ssh-agent won't work any more, because of this bug - so you can't sign out of your user and log back in and expect things to work like they should. Good lord.
Okay. Yup, turns out it does appear to be related to the dual GPU AMD/nVidia setup. It does not like it, and worked just fine once I turned on the nVidia performance mode. Could alt+tab no issue there. Even got my screenshot. Which it turned out Steam stored in ~/.local/share/Steam/userdata/33012702/760/remote/526870/screenshots - wtf. Found the option under Settings->In Game->Save an external copy of my screenshots and set them to a sane location (like in ~/Pictures/Steam Screenshots). What's with that batshit screenshot directory? Though doing a bit of reading suggests it pulls the same shit on Windows. That's just a weird and non-user-friendly setup, Steam.


