Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[First Run] SteamOS requires a specific path for DejaVuSans.ttf #1

Open
flibitijibibo opened this issue Jul 19, 2019 · 9 comments
Open
Assignees

Comments

@flibitijibibo
Copy link

Based on ValveSoftware/steam-for-linux#5421

When starting Steam for the first time with the -steamos flag, the client will fail to initialize after failing to find tenfoot.uifont (expected) and DejaVuSans.ttf (unexpected). This because Steam has a hardcoded path for fonts, so instead of using fontconfig to find the right path, it simply tries to load /usr/share/fonts/truetype/ttf-dejavu/DejaVuSans.ttf.

Last time I brought it up it didn't seem like it was ever going to be fixed, so I've been fixing it locally by running this before running Steam:

mkdir -p /usr/share/fonts/truetype/
ln -s /usr/share/fonts/dejavu /usr/share/fonts/truetype/ttf-dejavu

It's a bit hacky, but AFAIK this symlink doesn't conflict with any other packages - the truetype folder is provided by powerline-fonts and that's about it. Would it be weird if we incorporated this symlink into this package? This is the only thing preventing SteamOS from working out of the box.

@flibitijibibo
Copy link
Author

flibitijibibo commented Jul 19, 2019

In case it's helpful, repro steps:

1. Write Fedora Workstation NetInstall ISO to a USB drive
2. Boot USB image, install Minimal configuration with standard partition layout matching SteamOS'
3. Set root password, create a user called 'steam', set a password for it
4. Reboot, log in as root
5. A whole bunch of commands:

dnf group install hardware-support
dnf install Xorg xorg-x11-drv-evdev libglvnd-egl vulkan-loader.x86_64 vulkan-loader.i686 lightdm flatpak NetworkManager-wifi kernel-modules-extra bluez
dnf config-manager --add-repo=https://negativo17.org/repos/fedora-steam.repo
dnf install steam steamos-compositor steamos-modeswitch-inhibitor.x86_64 steamos-modeswitch-inhibitor.i686
setsebool -P allow_execheap 1
systemctl enable sshd.service
systemctl enable lightdm.service
systemctl set-default graphical.target

6. Edit /etc/lightdm/lightdm.conf:

pam-service=lightdm-autologin
pam-autologin-service=lightdm-autologin
user-session=steamos
autologin-user=steam
autologin-session=steamos

7. Create /var/lib/AccountsService/users/steam:

[User]
Session=steamos
XSession=steamos
Icon=/home/steam/.face
SystemAccount=false

8. Reboot, should work now!

9. Additional steps for NVIDIA users:

dnf config-manager --add-repo=https://negativo17.org/repos/fedora-nvidia.repo
dnf install kernel-devel dkms-nvidia nvidia-driver-libs.x86_64 nvidia-driver-libs.i686
reboot # Should be using the NVIDIA driver now!

@scaronni scaronni self-assigned this Jul 28, 2019
@scaronni
Copy link
Member

Hi, sorry for the late reply.

It's a bit hacky, but AFAIK this symlink doesn't conflict with any other packages - the truetype folder is provided by powerline-fonts and that's about it. Would it be weird if we incorporated this symlink into this package? This is the only thing preventing SteamOS from working out of the box.

Sure, will add it, no problem, thanks for the tip.

@scaronni
Copy link
Member

Building now:

b5b7910

In case it's helpful, repro steps:

Thanks, I will add this guide to the main Steam repository page!

@scaronni
Copy link
Member

  1. Edit /etc/lightdm/lightdm.conf:

pam-service=lightdm-autologin
pam-autologin-service=lightdm-autologin
user-session=steamos
autologin-user=steam
autologin-session=steamos

  1. Create /var/lib/AccountsService/users/steam:

[User]
Session=steamos
XSession=steamos
Icon=/home/steam/.face
SystemAccount=false

Shall we add this as a package or as part of another package? It could include the steam user creation and those files.

Maybe we could create a generic steamos package that pulls in the minimal set of packages on top of the minimal installation (as described by you), creates the steam user and creates those files.

@scaronni
Copy link
Member

Thanks, I will add this guide to the main Steam repository page!

Added as "SteamOS appliance": https://negativo17.org/steam/

@flibitijibibo
Copy link
Author

Excellent, thanks for the package update!

The SteamOS appliance part looks good too, just one part is dangling and that's it:

Screenshot from 2019-07-28 10-37-28

A steamos package sounds good too; basically anything that can get rolled into a single dnf line is a plus for me.

@scaronni
Copy link
Member

Screenshot from 2019-07-28 10-37-28

Oops, fixed, thanks.

A steamos package sounds good too; basically anything that can get rolled into a single dnf line is a plus for me.

Will do! Will post here once done.

@scaronni scaronni reopened this Jul 28, 2019
@flibitijibibo
Copy link
Author

Updated the instructions slightly:

  • Removed explicit dejavu argument, since steamos-base-files now includes it
  • Moved vulkan.i686 to before installing Steam, explicitly reference vulkan-loader.x86_64 and vulkan-loader.i686, needed for AMD/Intel setups wanting to use Vulkan for 32-bit games

@scaronni
Copy link
Member

Corrected, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants