Setup instructions and scripts used for the installation and running of the CLH Arcade Cabinets.
This is the Fedora edition. Once we're satisfied with the Fedora instructions, we can make it the default and deprecate the Ubuntu instructions.
The cabinets are powered by Lenovo Legion gaming laptops here is the checklist for provisioning them:
- Make sure secure boot is disabled in the bios. Enter bios by pressing F2 at boot. This will fix "NVIDIA driver not found. Falling back to nouveau" warning during boot. This step has already been done on all 5 laptops so it shouldn't need to be done again.
- Install the latest version of Fedora
- Update all packages
sudo dnf update -y
- Reboot
- On the Gnome login screen, Select "Gnome on Xorg" in sign-in options
- In Software
- Click the [☰] icon and go to Update Preferences
- disable Automatic Updates
- disable Automatic Update Notifications
- Click the [☰] icon and go to Software Repositories
- enable the google-chrome repo
- enable the RPM Fusion - nonfree - NVIDIA Driver
- Click the [☰] icon and go to Update Preferences
- Install some packages
sudo dnf install nodejs gnome-tweaks xdotool google-chrome-stable screenfetch
- Follow the NVIDIA Optimus guide for Fedora here: https://docs.fedoraproject.org/en-US/quick-docs/how-to-set-nvidia-as-primary-gpu-on-optimus-based-laptops/
- Open the NVIDIA control panel
- go to the "PowerMizer" section and set "Preferred Mode" to "Maximum Performance"
- Reboot
- Verify chrome is using nvidia driver with: chrome://gpu
- Verify WebGL performance here should have 60fps: https://threejs.org/examples/webgl_performance.html
- In system Settings
- Notifications
- disable "Notification Popups"
- Privacy
- disable "Screen Lock"
- Power settings
- disable "Dim screen when inactive"
- set Blank screen to "Never"
- Details / Default Applications
- set Web to "Chrome"
- Notifications
- In Tweaks
- General
- disable "Animations"
- disable "Suspend when laptop lid is closed"
- General
- Set the background image:
wget https://www.redhat.com/cms/managed-files/clh-s3e3-desktop-1920x1080.png -O ~/Downloads/clhbg.png && gsettings set org.gnome.desktop.background picture-uri ~/Downloads/clhbg.png
- Install auto fullscreen (Optional, Might not work)
- Open chrome and go install the gnome shell extension
- Go to auto fullscreen and click the "On" slider to install it.
- Note: if you want to turn off the fullscreening while working on laptop setup, open Tweak tools, go to Extensions, and toggle off auto fullscreen, then turn it back on before players arrive.
- install clh-arcade
git clone https://github.com/CommandLineHeroes/clh-arcade-games.git
sudo npm install -g clh-arcade
- Set Google Chrome homepage to
localhost:1234
cd clh-arcade-games
clh-arcade
- Open Chrome, default homepage should be the Arcade
- Press F11 to fullscreen
- NOTE: Do note close the terminal from step #2 that will stop the server! Leave it running in the background.
Enjoy!
Here are some instructions for troubleshooting various issues that have occurred in the past.
If an external display is not showing up, do the following.
sudo cp /usr/share/X11/xorg.conf.d/nvidia.conf /etc/X11/xorg.conf.d/
- Edit
/etc/X11/xorg.conf.d/nvidia.conf
, go into theOutputClass
section and addOption "PrimaryGPU" "yes"
- Save and reboot
- When you're back in gnome, run gnome-tweaks
- Go to Extensions
- disable the auto full screen extension
- Open Settings / Displays
- You should now see two screens! 📺📺
- Set it to mirror, and hit apply
- You should now have the screens mirrored from that laptop to the arcade screen
- Go back into gnome-tweaks
- Turn the auto fullscreen extension back on
- Last, open terminal and
cd ~/clh-arcade && clh-arcade
Thanks to spot for fixing this persistent problem!
This repo contains QR codes, one for each cabinet. They will be printed out and affixed to the back of each cabinet. If on-site staff find an issue with a cabinet, they can scan the QR code to send us a message about any issues with the cabinet.
The QR codes were generated with the generate-qr-codes.sh script. If changes need to be made to the QR codes, edit that file and regenerate them.