protonscr

[Suggestion] Please consider using GTK or Qt for the client

steamopen Feature RequestSteam client
ValveSoftware/steam-for-linux#7454 · opened 2020-11-06 by TheEvilSkeleton · updated 2025-12-27 · 23 comments · github
TTheEvilSkeleton 2020-11-06 github

Your system information

  • Steam client version (build number or date): 1603992987 (Flatpak)
  • Distribution: Fedora Silverblue
  • Opted into Steam client beta?: No
  • Have you checked for system updates?: Yes

Please describe your issue in as much detail as possible:

I know it's an unusual issue, but please hear me out.

I love the work you people have done to improve gaming in Linux, but to be honest, the Steam client integrates into Linux terribly.

Since Steam uses Electron for the client - correction: it does not, but the other points remain - there is no uniformity with other GTK (and Qt) applications. It would be a great addition to select the theme we want and have Steam automatically use the GTK theme. Electron The client has been known to be a RAM hog as well, so people playing with 8GB RAM will often be forced to either buy more RAM sticks or use swap. Further, Steam's file picker doesn't use GTK/Qt's file picker, which makes it integrate into Linux even less.

Second, Wayland is being heavily pushed by KDE, GNOME and Red Hat. Electron The client doesn't support Wayland at all (and won't anytime soon), so users using Wayland will still have to fall back to X11.

Third, Flatpak. I personally use Flatpak when Flatpak is available, and a lot of users use the Steam flatpak as well. Using GTK will not only fix a lot of issues in the Steam flatpak and make Steam integrate more into Flatpak, but it will also make it really easy to utilize features of Flatpak like XDG File Portals.

Fourth, open source. There are a lot of users using Steam already, so there is no doubt that Steam will receive a lot of contribution by open sourcing the client, e.g. security, performance, improvements, etc. I know this is easy to say, but knowing how much Valve cares about FOSS not for public relations but for ethics and user freedom, I think this is a good reason. My request is more on the client side and less on the server side, since open sourcing the server side might have some licensing issues, etc. Although it's possible to use GTK for proprietary software:

GTK (formerly GTK+,[4] GIMP ToolKit) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs).[5] It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprietary software to use it. Along with Qt, it is one of the most popular toolkits for the Wayland and X11 windowing systems.[6]

https://en.wikipedia.org/wiki/GTK


I hope it is going to be considered. I would love to see Steam integrate more into Linux to have a much better gaming experience than Windows.

112buntu 2020-11-12 github

This would be a super useful feature. I feel like if a Valve started a community effort, the community would help

Ddennis1248 2020-11-18 github

The Linux community has been joking about a GTK Steam client for ages. And I would find it absolutely fantastic if a FOSS Steam Client would be made upon GTK.

The chance of this happening, I think is very small. But with Valve you never know..

My vision of a GTK Steam client would be a simplistic client following the GNOME human interface guidelines which can install games, launch games, provide the usual Linux/Proton configuration options, basic Steam news and chat functionality. Store functionality would be optional. Preferably no build-in web browser.

The benefits of this:

  • It would perform significantly better then the Chromium-based Steam client.
  • Less likely to have significant bugs due to the much smaller code base.
  • It being open source would allow the community to build functionality upon it. For example imagine Box86 integration allowing 32 bit Steam games to be easily played on ARM-based devices running Linux.
  • Valve are the good guys and the hero of the Linux community.

The downsides:

  • It will be a lot of work to build and maintain an app written in a low-level programming language like C, Rust or Vala.
TTheEvilSkeleton 2020-11-18 github

My vision of a GTK Steam client would be a simplistic client following the GNOME human interface guidelines which can install games, launch games, provide the usual Linux/Proton configuration options, basic Steam news and chat functionality. Store functionality would be optional. Preferably no build-in web browser.

Agreed. There's a program called GameHub, which is a client for platforms like Steam. It's in GTK, and it looks amazing because it integrates in the Linux desktop:

image

image

112buntu 2020-11-20 github

My vision of a GTK Steam client would be a simplistic client following the GNOME human interface guidelines which can install games, launch games, provide the usual Linux/Proton configuration options, basic Steam news and chat functionality. Store functionality would be optional. Preferably no build-in web browser.

Agreed. There's a program called GameHub, which is a client for platforms like Steam. It's in GTK, and it looks amazing because it integrates in the Linux desktop:

image

image

How is this too much different from Lutris? That's my solution for now, but I don't get store or other functionalities

TTheEvilSkeleton 2020-11-20 github

GameHub's goal is to have quick access to all your games in one place, whereas Lutris' goal is to have access to Windows programs in Linux with the help of user-written scripts. Lutris happens to have a feature to store all your games in one application.

Most people would prefer Lutris, because of the scripts written by users, and because it is more mature.

Bbonkmaykr 2020-11-24 github

I second this. While I like steam's built in look, making it able to absorb the color scheme or theme of your KDE desktop for example, or able to move the menu buttons from the top left to anywhere depending on the system's title bar text position, would help it blend in more with desktops that have a specific palette.

112buntu 2020-11-25 github

or able to move the menu buttons from the top left to anywhere depending on the system's title bar text position,
@bonkmaykrQ that's my biggest issue, all of my other apps use menu buttons on the left, and it really surprised me that Steam doesn't respect that, given that Valve is really the hero of the Linux gaming community

Bbonkmaykr 2020-11-25 github

Yeah! I always wanted to be able to move the close/minimize buttons to the right and move my action bar to the center.

EEntityinArray 2020-11-27 github

Wow! Even 8GB of RAM is considered small nowadays, due to ugly web apps. Would love to have Steam GTK client

Bbonkmaykr 2020-11-27 github

Haha, I had 8 gb of ram for a long time. Never had a need to upgrade but I did anyway, at 16gb now and just might move to 32 to make room for a KVM. That being said, Electron isn't exactly the most resource efficient! GTK should have a smaller footprint.

Ssaltedcoffii 2020-12-03 github

+1 for a steam GTK client

Ggbschenkel 2020-12-28 github

I would prefer a Qt/C++ or QtForPython approach instead. Using it could even help to allow the client to run on WebOS TVs for using as steam link.

Aappetrosyan 2021-02-17 github

As a side note, as Chromium is essentially part of QtWebEngine, Steam could smoothly migrate using incremental steps that lead from a Chromium PWA, to a Qt native app, whilst retaining the code re-use that is apparent with respect to the Steam Store.

Basically, the problem here is that the GTK client will only look good on Linux. Qt looks good everywhere.

TTheEvilSkeleton 2021-02-17 github

I've had more problems with Qt than with GTK, especially with Flatpak and Wayland; thankfully KDE is working really hard on fixing those issues. Anyway, if Qt is easier to develop/maintain than GTK, then I wouldn't mind the switch to Qt instead, since the current client uses a lot more RAM than it should, especially when it's downloading and installing games/updates.

As for the "GTK client will only look good on Linux", I disagree. GIMP 2.99 for example has been looking great on Windows 10, and it's in GTK 3, https://www.youtube.com/watch?v=7aPDlxG9DUg. Maybe I'm cherry picking or being biased right now, but that's what I think. Though as I said, I think that even Qt would be marginally better than the current client.

112buntu 2021-02-18 github

A GTK client would be nice, but I think that overall Qt might be a better choice. I don't have much any experience developing applications with Qt or GTK, so I can't speak to the difficulty of developing/maintaining the application, but I will say GTK tends to look better on Linux, at least on the DEs I use frequently.

SSeaDve 2021-07-18 github

I think it would be great to have a public API for steam, so third party developers can create frontends for gtk, qt etc.

Or there already is?

FFaalagorn 2021-08-15 github

I've had more problems with Qt than with GTK, especially with Flatpak and Wayland; thankfully KDE is working really hard on fixing those issues. Anyway, if Qt is easier to develop/maintain than GTK, then I wouldn't mind the switch to Qt instead, since the current client uses a lot more RAM than it should, especially when it's downloading and installing games/updates.

As for the "GTK client will only look good on Linux", I disagree. GIMP 2.99 for example has been looking great on Windows 10, and it's in GTK 3, https://www.youtube.com/watch?v=7aPDlxG9DUg. Maybe I'm cherry picking or being biased right now, but that's what I think. Though as I said, I think that even Qt would be marginally better than the current client.

Actually, GIMP (outside of development 3 version) is one of the last apps still stuck with GTK 2, which is deprecated: https://archlinux.org/todo/gtk-2-eol/

I agree with other options, I initially thought of Steam using GTK since it already has some dependences of it, but while both toolkits can look fine no matter the platform (though GTK has a feel of being more Linux-like due to its history indeed), Qt might be a better approach, as it's more Windows-like out of the box and Steam Deck will be using KDE which pusesh Qt heavily.

The look and feel (which got improved with the latest client updates, and more things can be done from web anyway), along the Wayland support #4924 (which is great on Qt) is the last major gripe I have. :) Open sourcing parts of it would surely help speed it up though, especially as other client does that (Itch, gamejolt and Desura prior to that).

CCthatharsis 2022-12-10 github

Guys I found cool GTK Adwaita theme for Steam. It looks neat and blends very well with other Adwaita apps. Link: https://github.com/tkashkin/Adwaita-for-Steam

screenshot

I know it's not GTK client but if you only care about how it loooks this might be good for you.

Wwerdahias 2023-03-16 github

there is https://crates.io/crates/steam-api for a rust-based approach. (I might be biased here but rust has nice gtk bindings)

Ddoccnova 2025-04-08 github

Replying to https://github.com/ValveSoftware/steam-for-linux/issues/7454#issuecomment-729812132

There is a project, though, that remakes Steam's UI in GTK4 - called AdwSteamGTK, available on Flathub. Here's a photo from my own Steam:

Image

The link to project:

https://flathub.org/apps/io.github.Foldex.AdwSteamGtk

Edit: fixed GitHub on Flathub

Yyioannides 2025-11-14 github

There is a project, though, that remakes Steam's UI in GTK4 - called AdwSteamGTK

It's a good project, but it takes a heavy toll on hardware performance and hardly modifies any of the backend web page elements, like the Store home page (I have a really beefy all-AMD system and I get a noticeable 0.5'' delay on every mouse hover). It's a minimal cosmetic modification with no immediate gain, so a fully-fledged GTK client would have been far more optimal on Linux systems.

Ggbschenkel 2025-11-16 github

I would prefer a Qt/C++ or QtForPython approach instead. Using it could even help to allow the client to run on WebOS TVs for using as steam link.

As I stated before, and since SteamOS is already using KDE Plasma, would be better suggestion to move to Qt instead of GTK, which is major used with C++, but work with Python and have bindings for others languages, as Rust and Java, if they are needed, also, if the frontend devs like, they could use QML instead, which will benefit the Big Picture together with QSS (CSS but made for QML), both Widgets and QML can use Qt WebEngine for render webpages. Also KDE has Kirigami, which recently the EasyEffects ditched GTK in favor of Qt/QML/Kirigami approach.

Remembering Qt is not only for Desktop/Mobile, but it work on embedded devices too, it is used in Infotainment devices in airplanes and sea boats, as well on cars. This will be perfect for Steam/SteamOS in the different hardwares.

SShadowblitz16 2025-12-27 github

Please use qt, lutris uses gtk, gamehub uses gtk we need a something for qt and kde.