Professional C# .NET developer, React and TypeScript hobbyist, proud Linux user, Godot enthusiast!

https://blog.fabioiotti.com/\ https://github.com/bruce965

  • 0 Posts
  • 10 Comments
Joined 4 years ago
cake
Cake day: March 9th, 2022

help-circle


  • As absurd as it might seem, the Steam Controller is technically not compatible with Linux.

    What I mean by this: officially, it only works with Steam Input, which only works for Games you launch from Steam. It is not fully recognized and supported by Linux yet, and perhaps it never will.


    EDIT: alright. This comment was obviously partially driven by frustration, I apologize for my tone. Since this comment received a low upvote/downvote ratio, I decided to educate myself a bit more on the topic. Here are my findings and understandings…

    There are a lot of controllers. Some of them have a somewhat standard layout (think Xbox, Play Station, Switch), and some of them are just special (think controllers with special buttons or trackpads like the Steam Controller).

    Computers and controllers can communicate through various protocols, such as XInput, DirectInput, “Switch mode”, or other less common ones. Some of these protocols expect a fixed layout with an exact number of buttons, joysticks, triggers, etc (such as XInput), some are more flexible. Some of these protocols support gyro, some don’t. Some of these protocols have a higher bandwidth, and thus can offer lower latency.

    Option 1 (ideal): Linux can support some of these protocols through drivers. Unfortunately some of these drivers do not work very well with non-standard controllers. They might not see some buttons, they might not see some features such as gyro, or even worse (this is what I personally experienced) they can map buttons incorrectly. These inconsistencies can make a controller unusable without some tinkering, or they might limit the set of supported features for a specific controller.

    Option 2 (per-game fallback): SDL is FOSS application-level layer to communicate with controllers. If a game makes use of SDL, it can support all controllers that its specific SDL version supports. Even if the operating system doesn’t fully recognize it. But this only works if the game does make use of SDL. If it doesn’t, you are out of luck.

    Option 3 (user fallback): Steam Input is a proprietary (i.e. non-FOSS) way to try to bring some order in this mess. It takes any random controller, and allows the user to remap buttons to make it behave consistently, in a way that all games can understand. Even games that were never designed to be played with a controller can be coerced to work.

    Basically, if Linux supports the controller fully and maps all features correctly (option 1, this is the ideal situation), it will work with every game that supports it. Otherwise, (option 2) games that implement SDL can try to make it work anyway. Otherwise (option 3) if the game doesn’t use SDL, or if its SDL version doesn’t recognize the controller, Steam Input can still make it work with some help from the user.

    So… Why am I upset with Valve? That’s because, as far as I understand, Valve decided to make their controller only compatible with Steam Input. Some volunteers adapted it to make it work with SDL, but that only works for games that make use of an SDL layer. And what about Linux? Does Linux have a driver for this controller? No. As far as I understand, this controller doesn’t make use of any of the standard protocols, so a new ad-hoc driver would have to be developed just for this controller. Valve decided to reinvent the wheel.

    There would be an “Option 0”, which some controllers support: protocol-switching. When you buy an Xbox controller, it runs as XInput. When you buy a Switch controller, it runs in “Switch mode”. When you buy a third party controller, it usually implements one or multiple of these, and allows the user to switch on-demand. This way the system is more likely to recognize it correctly using at least one mode.

    As far as I understand, the newest Steam Controller does not support any of these. This is why I am upset with Valve. Hopefully they will eventually release a firmware update to add XInput or another standard protocol, then Linux will recognize this controller natively. But right now, the Steam Controller is technically not compatible with Linux.

    (This is my understanding of the situation, some of my findings may be incorrect. Please correct me if this is the case!)




  • Sorry, not an answer to your exact question… Dockge might be the answer if you need a web UI to manage Docker containers.

    If you need something more specific, like a button dashboard to run custom commands, perhaps you could build your own with Vite (Node.js). You will need to understand basic HTML, CSS and JavaScript. (EDIT: OliveTin makes more sense.)

    As for authentication, you could configure a basic authentication on your favourite reverse proxy (such as Nginx), or look for something more advanced such as OIDC/OAuth2 through Keycloak.


  • In that case I would say start with a Debian-based or Ubuntu-based distro of your choice. Ubuntu-based distros are also Debian-based, since Ubuntu is Debian-based. Mint is Ubuntu-based so it’s a good choice imho. Mint should work pretty well for backups and Minecraft.

    As a counter-example, Mint would (probably) be a poor choice if you want to turn that PC into a router or a DNS server, but sounds like that’s not what you have in mind.

    If you plan to Install more stuff in the near future, you could optionally look into containerization (Docker) which would allow you to someday swap Mint with another distro when you decide that you feel like changing. All of this, without having to reconfigure anything. Portainer might be a good soft-entry to Docker if you don’t love the terminal, it gives you a nice UI. And it’s compatible with Mint, ofc.

    As for the fedi instance, it’s a good exercise, you will learn a lot about networks. Personally I tried installing a Lemmy instance too, but I ended up turning it off as I realized that it didn’t make sense for my use case. It just wasted bandwidth to stay in-sync with the rest of the fediverse.




  • I do have an opinion about Ecosia, but it’s just based on feelings, so it doesn’t even make sense to share it. Apologies for not answering your question.

    Instead I would like to focus on this point:

    Ecosia isn’t very private, since it sends data to Bing

    Also DuckDuckGo does this, but they aggregate and anonymize that data before forwarding it to Bing. That’s probably the best they can do without building their own first-party infrastructure. I would imagine Ecosia does the same.