RedBearAK / toshy

Keymapper config to make Linux work like a 'Tosh!
https://toshy.app
GNU General Public License v3.0
372 stars 18 forks source link

(Enh) Add Steam Deck Support #136

Open ddulic opened 10 months ago

ddulic commented 10 months ago

Is your feature request related to a problem? Please describe.

Being on a Steam Deck, I would love to see the OS supported, as the current installer doesn't work and would get overwritten on an update anyway.

Installer Error ```bash venv ❯ ./setup_toshy.py install --override-distro arch (DD) Home user local bin not part of PATH string. (!!) NOTICE: It is ESSENTIAL to have your system completely updated. Have you updated your system recently? [y/N]: y The "~/.local/bin" folder is not in PATH. OK to add it? [Y/n]: § Getting environment information... ================================================================================ The active init system is: 'systemd' (Systemd) (EV) Toshy installer sees this environment: DISTRO_NAME = 'arch' DISTRO_VER = '3.5.7' VARIANT_ID = 'steamdeck' SESSION_TYPE = 'x11' DESKTOP_ENV = 'kde' DE_MAJ_VER = '5' ----------------------------------- -- PASSWORD REQUIRED TO CONTINUE -- ----------------------------------- [sudo] password for deck: Using elevated privileges... § Installing native packages for this distro type... ================================================================================ error: failed to init transaction (unable to lock database) error: could not lock database: Read-only file system (EE) ERROR: Problem installing package list for distro type: Command '['sudo', 'pacman', '-S', '--noconfirm', 'gobject-introspection', 'libappindicator-gtk3', 'pkg-config', 'python-pip']' returned non-zero exit status 1. venv ❯ ./setup_toshy.py install --override-distro arch (DD) Home user local bin not part of PATH string. (!!) NOTICE: It is ESSENTIAL to have your system completely updated. Have you updated your system recently? [y/N]: y The "~/.local/bin" folder is not in PATH. OK to add it? [Y/n]: § Getting environment information... ================================================================================ The active init system is: 'systemd' (Systemd) (EV) Toshy installer sees this environment: DISTRO_NAME = 'arch' DISTRO_VER = '3.5.7' VARIANT_ID = 'steamdeck' SESSION_TYPE = 'x11' DESKTOP_ENV = 'kde' DE_MAJ_VER = '5' ----------------------------------- -- PASSWORD REQUIRED TO CONTINUE -- ----------------------------------- [sudo] password for deck: Using elevated privileges... § Installing native packages for this distro type... ================================================================================ error: failed to init transaction (unable to lock database) error: could not lock database: Read-only file system (EE) ERROR: Problem installing package list for distro type: Command '['sudo', 'pacman', '-S', '--noconfirm', 'gobject-introspection', 'libappindicator-gtk3', 'pkg-config', 'python-pip']' returned non-zero exit status 1. ```

Describe the solution you'd like

To be able to use toshy in the Steam Deck desktop environment.

Describe alternatives you've considered

Using nix as the package manager - https://github.com/RedBearAK/toshy/issues/104

RedBearAK commented 10 months ago

@ddulic

Using nix as the package manager

My mistake for not digging into SteamOS deep enough. I was mostly seeing references to 3.0, so I didn't realize they were going in the direction of supporting Nix's method of adding software in 3.5 and beyond. Kind of smart of them, I guess, due to the way Nix installs things in a much more self-contained way. I know the Nix package manager is available to use on other distros and some Linux users are big fans of it, but that's all I know about Nix.

Since it is using the Nix package manager now, maybe getting this worked out will also cover NixOS itself.

Fair warning, I really have no idea how much I'd have to modify this project to make it compatible with any packaging system, much less Nix. Everything about this project has been a struggle, even starting with pre-existing working projects. It all works, but it's very non-conformant to "normal" software packaging ideals on Linux.

I may not have the time or brain power to close this issue out successfully any time soon.