summaryrefslogtreecommitdiff
path: root/app-emulation/steam/files/kogaion-steam
blob: 02e5f2a9c17866758e708915fb9789aa19f04938 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/env bash

# steam-runtime is a mess with old libraries from Ubuntu 12.04
# so native drivers compiled on anything newer may not load
# if we remove some bundled libs, like gcclibs, native drivers
# will be able to load, because system libs will be used instead
#
# but we have to do this everytime when we launch steam, because
# steam-runtime is being fixed right away by steam client


remove_some_bundled_libs () {
	# force steam to use some system libraries
	find /home/$USER/.local/share/Steam -name 'libxcb*' -type f | grep -v installed | xargs rm -rf
	find /home/$USER/.local/share/Steam -name 'libstdc++.so.6*' -type f | grep -v installed | xargs rm -rf
	find /home/$USER/.local/share/Steam -name 'libgcc_s*' -type f | grep -v installed | xargs rm -rf
}

preload_some_system_libs () {
	export LD_PRELOAD='/usr/lib32/gcc/x86_64-pc-linux-gnu/4.9.3/32/libstdc++.so.6 /usr/lib32/gcc/x86_64-pc-linux-gnu/4.9.3/32/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/libgcc_s.so.1 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.9.3/32/libstdc++.so.6'
	# steam must be told where nvidia opengl libs live on gentoo systems
	# but this will break optimus, so check if we detect bbswitch in here
	# if we do, we do not preload nvidia opengl, as it will break steam
	if  [[ "$(lsmod|grep nvidia)" &&  "$(lsmod|grep bbswitch)" ]] ; then
		echo ""
		echo "nvidia optimus detected, we will not preload nvidia libs"
		echo ""
		export __GLVND_DISALLOW_PATCHING=1
	elif [[ "$(lsmod|grep nvidia)" && ! "$(lsmod|grep bbswitch)" ]] ; then
		echo ""
		echo "nvidia optimus not detected, we will preload nvidia libs"
		echo ""
		export LD_LIBRARY_PATH='$LD_LIBRARY_PATH:/usr/lib32/opengl/nvidia/lib:/usr/lib64/opengl/nvidia/lib'
		export __GLVND_DISALLOW_PATCHING=1
	else
		echo ""
		echo "no nvidia card detected, moving on"
		echo ""
	fi
}

launch_steam () {
	remove_some_bundled_libs
	preload_some_system_libs
	export DISPLAY=:0
	steam
}

launch_steam