Giter VIP home page Giter VIP logo

OpenSteamClient (Alpha)

Build Status A partially open-source Steam client for Linux.

Current status: Being rewritten in C#

Issues, feature requests, etc

Do not expect any responses to issues with the Qt/C++ version, or even the C# version. One is very much abandoned, and the other is still WIP. Feel free to still open issues for the Qt based client, since it's possible someone else may want to rewrite this in the future, in which case we'll transfer the applicable issues there. Oh and you can also put in feature requests, but I'll only consider them for the C# remake

Features

  • 64-bit (but needs 32-bit only steamservice for some functionality)
  • Lightweight (around 70MB ram use, however this is very leaky currently)
  • No steamwebhelper requirement
  • All games supported (technically)
  • VAC supported (you can play, but you might get banned. We're not responsible if you get banned.)
  • Customize as you wish (Uses your desktop's color scheme)
  • Wayland supported without need for XWayland
  • Uses Qt (6)

Todo

Important

  • Everything marked //TODO in the code
  • Update steamclient binaries
  • UI is pretty crude
  • Lots of debug and placeholder things in UI
  • Download queue (most likely next feature)
  • Friends network support
  • Steam cloud support
  • Shader management support
  • Shutting down shouldn't be fast (we should wait for downloads to stop)

Nice-to-haves

  • Optional background music while downloading apps and/or browsing the store
  • Styled UI
  • Artwork

Screenshots

image image image image image

System requirements

Distro requirements

  • Arch Linux

  • Other distros are unsupported (as is this Qt/C++ version), since the build runs on my local arch machine and uses whatever Qt is available (terrible right? luckily not doing that mistake with the C# remake)

Install (Ready-to-go binaries)

Warning: These releases (currently) are only meant for developers. There is an uncountable amount of bugs I've yet to fix.

After installation, read After Install

From master branch or some commit (unsupported)

  1. Go to the Actions tab here on Github.
  2. Click the commit you want if the build succeeded (with the title CMake)
  3. There should be an "Artifacts" section
  4. Download "linux-artifacts", it contains tar.gz files.
  5. Extract the zip somewhere

After installation, read After Install

Arch Linux

We provide an AUR package: opensteam-git

Install it through makepkg or your AUR helper. Use your application launcher to start it, or run opensteam in a terminal.

Then read After Install

After install (Important)

Note: you shouldn't start the official steam client now as it'll override our files and break both installs. Read Restoring ValveSteam below if you want to use the official client again. THIS IS NOT A PROBLEM WITH THE C# REMAKE

Install and Launching (Building from source)

  1. Make sure you have the build dependencies installed.

  2. Clone this repo recursively git clone https://github.com/OpenSteamClient/OpenSteamClient --recursive

  3. mkdir build && cd build

  4. cmake ..

  5. make

  6. Make sure steam is not running.

  7. ./opensteam

  8. OpenSteamClient will be installed and launched.

Restoring ValveSteam

If you wish to revert back to the official client, you have three options:

From the UI

  1. Go to the "Steam" dropdown and pick "Quit and restore ValveSteam"
  2. Opensteam will close and the official client will be restored.

From the command line

  1. Close OpenSteamClient
  2. Launch opensteam with the --bootstrapper-restore-valvesteam option.

Manual

I won't provide exact instructions, since it's a lot of effort. Instead, I'll give you a quick rundown on how the split install works. When opensteam is initially installed, it renames .steam to .valvesteam. It also renames .local/share/Steam to .local/share/ValveSteam.

Opensteam then installs itself into .opensteam and .local/share/OpenSteam.

It then creates .steam as a symlink pointing to .opensteam, and .local/share/Steam pointing to .local/share/OpenSteam. If you want to revert manually, you need to change the symlinks's targets to point to .valvesteam and .local/share/ValveSteam.

Q&A

Is this abandoned?

Yes! The Qt/C++ version is abandoned, and will NOT receive further updates ever. Please wait some time as I make a C# remake. For progress on that, see PR #20.

pls windows suprort

Although all the technologies we use are cross platform, windows support is not planned. THE C# REMAKE WILL SUPPORT WINDOWS! (and maybe mac)

Partially open source?

This is a GUI for Valve's own Steam Client binaries like steamclient.so and steamservice.so. Those binaries are not open source and Valve doesn't officially support 3rd-party usage of these. This also means we inherit design choices and potential bugs from these files. Due to this, we cannot fix everything, such as the client not conforming to the XDG paths specification. EXCEPT WE FIXED THE PATHS WITH THE C# REMAAAAAAAKE

Additionally, Valve does not provide any headers or code to go along with these binaries, so this project essentially works because of guesswork by lots of community members and projects (Thank you!) (such as open-steamworks, open-steamworks fork by m4dEngi, SteamTracking, protobufs dumped from the steam client and MiniUTL).

Also, thank you Valve for improving Linux gaming, and making a native Steam Client in the first place.

What version of Steam's binaries do you use?

The repo includes a copy of steam_client_ubuntu12.vdf, which shows the version and has download paths for the binaries. The urls point to regular zip files, just use unzip. GUI file managers don't know how to extract them for some reason.

The client crashes a lot or doesn't start

Delete ~/.local/share/opensteam and try again. Also check that you have a PC that meets the requirements. Also, run OpenSteamClient from the terminal and post the logs in a Github issue clearly describing your situation.

Why such high distro requirements?

The client was made on Arch Linux, for Arch Linux (primarily), so I used whatever features were available.

I don't like the "Web bloats". Can I get rid of them?

Yes. This app was built to fit as many users needs as possible.

You can disable building the webview component by passing -DNOWEBVIEW to cmake. You can also pass --no-browser as a command line argument to opensteam to disable it.

(Don't worry, the C# version supports this as well)

opensteamclient's Projects

archived_packages icon archived_packages

Local nodejs server to lock a specific version of the Steam Client packages to ease opensteamclient development

miniutl icon miniutl

SourceSDK's template library relicensed in BSD

nuget icon nuget

Nuget "repo" for OpenSteamworks and OpenSteamClient packages

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.