Ubuntu 16.04 Steam only runs from terminal

Since you have a command (LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam) to launch it correctly, modify the .desktop file to fix the menu icon so that clicking it runs that command. Do:

cd /usr/share/applications

and then type ls to find the .desktop file for Steam. Here I'm assuming it's called steam.desktop, so check that, and correct the commands below if necessary. Make a backup copy

sudo cp steam.desktop steam-bak

(restore the backup if needed by doing mv steam-bak steam.desktop) edit the original file:

sudo nano steam.desktop

find the first line that starts Exec= (you can use ctrl+w to search in nano) and edit the line so it says:

Exec=bash -c "LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam"

Save the file and exit (ctrl+o then enter then ctrl+x)

Now click the steam icon in the menu to launch

Note to others: if the command LD_PRELOAD='/usr/$LIB/libstdc++.so.6' DISPLAY=:0 steam does not work for you, try changing DISPLAY=:0 to match your environment. First do echo $DISPLAY and if the output is :0.0, then instead of DISPLAY=:0 in the steam launch command, put DISPLAY=:0.0


Another possible fix: check System Settings > Software & Updates > Additional Drivers and enable the latest proprietary drivers (suggestion from a comment on another post that apparently worked for the OP of that post)


The errors are caused by outdated drivers and libraries bundled with Steam. This can be fixed by disabling them, so that Steam uses system files instead (this is why setting LD_PRELOAD works). You could disable the file(s) throwing errors by renaming them:

mv /home/$USER/.local/share/Steam/ubuntu12_32/steam-runtime/amd64/lib/x86_64-linux-gnu/libtinfo.so.5{,.disabled} 

(there may be several libraries you need to do this to, and you may need to repeat after any updates/resyncing) In any case, it's not a problem with your system, but with Steam.

For comprehensive information see:
Epic Arch wiki post on troubleshooting Steam