ShaderGlass icon indicating copy to clipboard operation
ShaderGlass copied to clipboard

[Suggestion] Linux Version

Open TheOmninaut opened this issue 8 months ago • 6 comments

linux version, preferably appimage, would be amazing for steamdeck and steamgames

TheOmninaut avatar Mar 06 '25 05:03 TheOmninaut

How hard would it be do make that happen? Are the libraries used mostly non linux compatible, or are there no possible alternatives? It would be nice to just have a rough outline of what steps would be needed to make this linux compatible. I'd be willing to help with developing it as well, as I'm familiar with both c++ and linux (though more with embedded linux, when it comes to actual development).

qarnet avatar Mar 19 '25 21:03 qarnet

I was thinking about a Linux version but haven't looked too closely yet, it is however going to be bit of a challenge:

  • pretty much a full rewrite since SG currently hugs Windows APIs very closely
  • what capture APIs are available on Linux (X and/or Wayland)? is "glass mode" even possible (requires capturing desktop excluding own window)
  • shader back-end would need to be rewritten from Direct3D 11 to probably Vulkan (or could use librashader perhaps)
  • new UI using Qt, GTK or ImGui; SG uses certain tricks to allow clicking-through SG window so one can use the app that's behind it; not sure that'll be possible on X or Wayland

Capture APIs are the biggest unknown so the first step would be a proof-of-concept of an app that just captures the desktop on Linux to see what would be possible, adding shaders is the easier bit.

mausimus avatar Mar 20 '25 10:03 mausimus

Alright, sounds like a solid first step to try to get a Linux version working. I'll be sure to try to look into it in my free time!

qarnet avatar Mar 20 '25 19:03 qarnet

Wayland got a capture protocol last year so it is actually supported now. Mainly being used by OBS and screen recorders so if it works for that I'd imagine it should work for this.

If I could offer a suggestion, ignore X11. It's been unmaintained and the entirety of Linux is almost done transitioning away from it. X11 is archaic and effectively abandonware. Wayland is the new default with every major desktop environment so it's what everyone will be using by default moving forward.

X11 support would only be useful for running old versions of applications on old unupdated systems. Not really worth the work IMHO.

TheOmninaut avatar Mar 26 '25 19:03 TheOmninaut

I was thinking about a Linux version but haven't looked too closely yet, it is however going to be bit of a challenge:

* pretty much a full rewrite since SG currently hugs Windows APIs very closely

* what capture APIs are available on Linux (X and/or Wayland)? is "glass mode" even possible (requires capturing desktop excluding own window)

Capture APIs are the biggest unknown so the first step would be a proof-of-concept of an app that just captures the desktop on Linux to see what would be possible, adding shaders is the easier bit.

For wayland, "Pipewire" for video and screen capture is the standard. There is also "Gamescope" from valve which may have some useful related functionality. I don't know anything about the "wayland capture protocol" but as it was already mentioned I have nothing to add anyway.

here are some useful links to start 1 2 3

For X / Xorg / X11, it's a total waste of time a resources. It's life support is on life support.

edit: Nov 20th 2025

For a TL;DR of everything below as of the making of this edit. Read this if you want to skip the headache.

1: A linux version would be very appreciated

2: X11 vs Wayland is hottly debated (xLibre is somehow an option here)

3: Vulkan back-end support is being added for a multitude of good reasons and is desired regardless of Linux support

4: Steam deck support is universally agreed on

5: Flatpak support Is desired

6: CLI (KMS/DRM as well) and optionally GUI free version be made a focus as to not make any one UI a must. Making Builds easier to work with universally for Linux users.

7: This project currently does not work through wine/proton

For the arguing of X11 vs Wayland, here are some key points I saw.

  • Wayland isn't complete and has issues currently, that relate to this project indirectly
  • X11 is dead: End of Life, confirmed by the devs to move to wayland instead
  • xLibre is a new fork of X11, but it's controvercial dev makes using it questionable at best. (xLibre has stated things like "No forced DEI" and "Make X11 great again")
  • Development resources shouldn't be wasted on X11
  • Development on Wayland leaves DE's like XFCE and such that still rely on X11 behind, along with other OS's like freebsd and so on.
  • Wayback is a project that continues Xwayland's support, providing another alternative for compatibility
  • Steam Deck support is likely, of which is moving to wayland only in the future. Though still uses X11 for now.

Make of this information as you will, I am a biased party but I like to think I'm at least honest.

EmersonBiggons avatar Jun 22 '25 09:06 EmersonBiggons

Many thanks for the info, I'll be adding a Vulkan back-end first as it will also help on Windows for some of the presets out there that require it (e.g. sonkun) and come back to assess the state-of-capture-API on Linux.

mausimus avatar Jun 22 '25 23:06 mausimus

Thanks for considering a Linux release!

I'd like to counter-suggest that you do not disregard X11. Wayland has problems. A lot of problems:

GNOME and KDE might have jumped the gun because they can afford it, but sensible desktop environments like LXDE and Xfce aren't so eager to jump on the X11 deprecation. As a Xfce user, their roadmap reads as a very sound and reasonable position in the matter. They are doing very careful steps and watch what sticks, but also seem open to drop the effort if something else arises (something like XLibre, maybe). They even mention FreeBSD and OpenBSD progress so no one is missing in the debate!

Deprecation of X11 seems to be more of a wish right now than a real thing, considering XLibre development is active and pending of a stable release to prove its worth. Some may bring up the XLibre's main dev controversy... Well, someone at Red Hat decided they had to find a solution before we ate their faces, because leaving out other DEs and BSD is an actual problem, and they found their solution from Artix Linux developers. Both XLibre and Wayback are works in progress. Please don't listen to these singleminded "X11 is a waste of time" statements. You would be leaving non-GNOME/KDE desktops behind.

For now, vkBasalt (focused on X11) has to do, although it has not been active for 2 years. gamescope serves in an emergency for certain SDL games, but it also introduces input lag in some cases.

SilverKeeper avatar Jul 11 '25 12:07 SilverKeeper

I'd love to have the shaderglass working on steamdeck, that'll make the steamdeck the best handheld gaming device

JunioV avatar Jul 26 '25 09:07 JunioV

+1 for Linux Support, we all would benefit of something like this on Linux. Steam Deck users are going to love this 😝

FaroshRyujinden avatar Jul 26 '25 22:07 FaroshRyujinden

It will be very cool if that software supported Linux

Supply12 avatar Jul 27 '25 16:07 Supply12

I hate to contribute to the fractured community of linux but i think this should be addressed. Ultimately a linux port of any kind is better than staying windows only but this is a big deal.

I'd like to counter-suggest that you do not disregard X11. Wayland has problems. A lot of problems:

While wayland isnt perfect and definitely has issues, like it or not it IS the future. It is X11's replacement. Regardless of current state or current issues it makes no sense to develop a new application for x11 instead of wayland. Its like developing a brand new application but using windows 7 api exclusively. Its dropping support, its had no development or fixes in years. 99% of its pull requests and development are for X-Wayland so x11 applications can run on wayland. In other words most of the development for X11 is for the transition to wayland.

GNOME and KDE might have jumped the gun because they can afford it, but sensible desktop environments like LXDE and Xfce aren't so eager to jump on the X11 deprecation. For now, vkBasalt (focused on X11) has to do, although it has not been active for 2 years. gamescope serves in an emergency for certain SDL games, but it also introduces input lag in some cases.

While not every desktop has dropped X11 yet, that doesnt mean they wont. Valve has a wayland version of gamescope and its already availble for public use. It will become the only session eventually per their own statements. As you point out projects that use x11 you state that they havent been active for years.

This isnt about what you personally want to use, use X11 all you want. But when discussing what a new project should choose as their development backend it makes no sense to do it on a dead platform. X11 is effectively dead, its still usable but why should anyone develop a brand new project for it. It makes no sense and in a few years when the transition is complete, youd have to rewrite it for wayland anyway otherwise anyone with an updated system wont be able to use this application.

I hope this didnt come off as mean or personal, im trying to keep it focused on the project, so im sorry if it was a little harsh

TheOmninaut avatar Jul 27 '25 19:07 TheOmninaut

Thanks for considering a GNU/Linux version! Yes, Vulkan is the way to go! :)

Please. make the GUI optional. Cli-based makes things way easier for scripts. And I would also like to suggest ImGui: QT is a huge dependency, it's hard to build, etc... ImGui on the other hand works nicely on everything. But as I said... please make the graphical GUI an optional feature.

vanfanel avatar Aug 01 '25 11:08 vanfanel

Another +1 for a Linux version using Vulkan, with the UI being optional/separate.

It would be nice to simply put it as a command in front of another command with behavior controlled through environment variables (similar to how mangohud does it)

oemsysadm avatar Aug 11 '25 21:08 oemsysadm

Another +1 for a Linux version using Vulkan, with the UI being optional/separate.

It would be nice to simply put it as a command in front of another command with behavior controlled through environment variables (similar to how mangohud does it)

The UI doesn't need to be seperate for that, a flag that makes it launch in fullscreen attached to the game would accomplish the same thing.

jobukkit avatar Aug 11 '25 22:08 jobukkit

+1

Right now I'm trying to get vkbasalt to work with crt-royale-reshade and not getting anywhere. I can't even get vkbasalt to work at all

billbeans avatar Aug 12 '25 21:08 billbeans

Another +1 for a Linux version using Vulkan, with the UI being optional/separate. It would be nice to simply put it as a command in front of another command with behavior controlled through environment variables (similar to how mangohud does it)

The UI doesn't need to be seperate for that, a flag that makes it launch in fullscreen attached to the game would accomplish the same thing.

The UI has to be separate for that in the sense that in GNU/Linux most game engine ports run on SDL2 which in turn runs directly on KMS/DRM on lightweight systems, so UI toolkit-related dependencies like GTK/QT should be optional because these require a desktop system.

So please make UI optional at build time (or use something like imgui which runs without a desktop system).

In other words, GNU/Linux != desktop system.

vanfanel avatar Aug 13 '25 09:08 vanfanel

Thank you for all the ideas, yes I am definitely not making the same mistake again with windows and menus, so new UI will be an overlay over the content so that it can be used in full-screen, with KMS/DRM, on a SteamDeck etc. an OSD like on old TVs maybe? ImGui or RmlUi or something like that.

mausimus avatar Aug 13 '25 09:08 mausimus

Just to add further complications (not to scare you away, having this on Linux would be fantastic!), but there's also the consideration of making sure it works for Wayland as well as Xorg.

And the original feature request mentions distributing it as an appimage, if this is open source, probably not such a big deal since anyone could make that - But if you want a general package that works easily across a multitude of Linux distros (including SteamOS) with a package manager, consider making a FlatPak and put it in FlatHub. This is in fact the main way to distribute on SteamOS outside of Steam itself.

I think you'll find a lot of people willing and eager to help with this, both development, consulting on function, as well as testers.

Again, look at MangoHud for how this type of application could ideally work that would be seamless and easy to integrate with various launchers on Linux.

oemsysadm avatar Aug 13 '25 14:08 oemsysadm

+1

Right now I'm trying to get vkbasalt to work with crt-royale-reshade and not getting anywhere. I can't even get vkbasalt to work at all

you might try looking at vulkanFX as it seems to be a fork that has had more work on it

silverhikari avatar Aug 18 '25 06:08 silverhikari

you might try looking at vulkanFX as it seems to be a fork that has had more work on it

Thanks, I actually got it working with this fork, but I'm not satisfied with the Reshade port at all. Looks almost nothing like it does in Retroarch. You can really see the differences here: https://forums.libretro.com/t/crt-royale-reshade-not-the-same-as-retroarch/35520

billbeans avatar Aug 18 '25 07:08 billbeans

+1 Right now I'm trying to get vkbasalt to work with crt-royale-reshade and not getting anywhere. I can't even get vkbasalt to work at all

you might try looking at vulkanFX as it seems to be a fork that has had more work on it

That vulkanFX thing.. how did you build it's Reshade FX dependency? It's repo only has instructions for Gentoo Linux, it's all a bit crazy if you ask me.

vanfanel avatar Aug 19 '25 21:08 vanfanel

Just giving my +1 along with a few thoughts. A few people in this thread do want this to be X11 compatible, but honestly I don't see any world where putting in that effort makes any sense. It's effectively abandonware, distros and desktop environments are in the process of dropping it. It's rapidbly becoming even more irrelevant.

Would working on it for full compatibility be nice? Yes, of course. But you're very a small developer, and it just doesn't make sense to put even more time onto supporting two radically different systems on what is already a niche system.

P.S. make your ko-fi much more visible!!! It should be displayed on the project page. I shouldn't have to click on the online manual which takes me to your website, whose homepage I have to go to just in order to find where to give you donations.

Candyhands avatar Sep 14 '25 15:09 Candyhands

+1 for a Linux version, but, does the current windows edition work in Wine (or Bottles) or Proton?

Edit: Gave it a try and nope:

Image

yllekz avatar Sep 23 '25 20:09 yllekz

I think this need to be done sooner, win10 is dead next week and win11 is become more online-only system

Jobima1st avatar Oct 09 '25 14:10 Jobima1st

I think this need to be done sooner, win10 is dead next week and win11 is become more online-only system

Windows 10 isn't dead. It's just not getting any more updates (without extended support). It's still perfectly fine to use Windows 10.

Most notably, Windows Defender on Windows 10 is still receiving updates until at least October 2028. If you're savvy enough to use Linux, you're savvy enough to use Windows 10 without updates.

lovelydumpling avatar Oct 09 '25 17:10 lovelydumpling

@lovelydumpling I know it's not really dead

The question is, for how long? Some gaming companies have said they will not support Windows 10 if its support is affected by any update.

Personally, I have Windows 11 on my primary computer, but I have an old laptop with Windows 10.

The ship is already sinking, and I'm even considering switching my primary Windows 11 computer to Linux after Microsoft's recent measures to block most methods for creating offline accounts.

And I know some people still use win xp, But it is known that they are dead systems. perhaps Windows 11 or later will actually die after the end of its support if Microsoft continue on the online-only DRM approach!

Jobima1st avatar Oct 10 '25 01:10 Jobima1st

If an OS loses mainstream updates, it's dead. Defender definition updates don't change that/that's not sufficient to continue using Win10.

yllekz avatar Oct 10 '25 12:10 yllekz

That's not true. We shouldn't go back and forth on this because that's not what this thread is for, but consider watching the video I linked.

Regardless, I'm not using this to argue they shouldn't make a Linux version. I still would obviously like a Linux version.

lovelydumpling avatar Oct 10 '25 16:10 lovelydumpling

Thank you for making a so much cool app. I really hope SG will come to linux. I will give you a star, if some day the linux version come, I hope someone will come here and kick my ass.

kamikaze211 avatar Oct 12 '25 02:10 kamikaze211

Relevant wayland protocols for window capture in case anyone has been looking, id imagine this is a good place to start

https://gitlab.freedesktop.org/wayland/wayland-protocols/-/merge_requests/124

TheOmninaut avatar Oct 12 '25 03:10 TheOmninaut