Skip to content

Releases: dillacorn/smtty

Steam Machine TTY

26 Nov 04:53
ec0b7af

Choose a tag to compare

smtty

To view smtty options type smtty -h in terminal.

A minimal TTY "Steam Machine" launcher that runs Steam Big Picture inside gamescope on a chosen monitor, with configurable internal resolution (including 4:3 / 16:10 stretch) and saved per-user settings.

IMPORTANT:

  • Steam cannot be running in any other session or smtty will fail.

  • Make sure “Enable GPU accelerated rendering in web views” is enabled in Steam, or Steam notifications can cover the entire screen with a black image when running under gamescope.

Steam Big Picture overlay cursor quirk (stretched resolutions only)

  • This issue only shows up when running a stretched/custom aspect session (4:3, 16:10, etc.), not native 1:1 inner=outer sessions.
  • On my setup, the game only consistently re-grabs raw mouse input if the mouse is moving while I close the Steam Big Picture overlay.
  • If I close the overlay with the mouse perfectly still, the game often fails to re-grab the cursor and the camera/aim can feel stuck or pinned to an edge.
  • Current workaround: jiggle the mouse while opening and closing the Steam Big Picture overlay so the game can re-grab the cursor.

I made an issue on this ValveSoftware/gamescope#2042

Overlay limitations

  • When running gamescope, clipboard integration with the desktop session is one-way: you can copy from the gamescope session to the desktop, but you cannot copy from the desktop into the gamescope session (no desktop → gamescope paste).
  • For Steam messaging, use a browser on your normal desktop session and open:
    https://steamcommunity.com/chat
  • For convenience, you can create a dedicated Steam Chat launcher. Example .desktop file (Firefox profile) in my awtarchy repo:
    firefox-steam-chat.desktop

Requirements

  • Linux with DRM KMS (normal modern distro / kernel)
  • Steam (steam on your PATH)
  • gamescope (upstream or any fork/patched build that works on your GPU/driver)

On Arch Linux:

sudo pacman -S gamescope steam

Need latest gamescope patches?

yay -S gamescope-git

smtty never installs dependencies for you; it only tells you what's missing.

Install (manual stepped-process)

# clone the repo
git clone https://github.com/dillacorn/smtty && cd smtty

# install to ~/.local/bin/smtty by default
chmod +x smtty-installer && ./smtty-installer

# make sure ~/.local/bin is in your PATH, for example:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bash_profile
# then log out and back in, or start a new login shell

Now you can run:

smtty

from any TTY / directory.

Install (one-liner, user-local)

git clone https://github.com/dillacorn/smtty "$HOME/.local/src/smtty" \
  && cd "$HOME/.local/src/smtty" \
  && chmod +x smtty-installer \
  && ./smtty-installer

This installs smtty to ~/.local/bin/smtty.

System-wide install (one-liner optional)

git clone https://github.com/dillacorn/smtty /tmp/smtty \
  && cd /tmp/smtty \
  && chmod +x smtty-installer \
  && sudo PREFIX=/usr/local ./smtty-installer

This installs smtty to /usr/local/bin/smtty for all users.

Uninstall

Preferred method (using smtty-installer)

If you still have the clone directory:

User-local uninstall:

cd /path/to/smtty
chmod +x smtty-installer
./smtty-installer
# When prompted:
#   [2] Uninstall smtty from $BINDIR

System-wide uninstall:

cd /path/to/smtty
chmod +x smtty-installer
sudo PREFIX=/usr/local ./smtty-installer
# When prompted:
#   [2] Uninstall smtty from $BINDIR

smtty-installer will:

  • Remove smtty from the selected PREFIX/bin
  • Remove smtty-update from the same PREFIX/bin if present
  • Optionally remove ~/.config/smtty if you confirm

Manual removal (fallback)

User-local manual removal:

rm -f ~/.local/bin/smtty
rm -f ~/.local/bin/smtty-update    # if installed
rm -rf ~/.config/smtty             # optional, removes saved settings

System-wide manual removal:

sudo rm -f /usr/local/bin/smtty
sudo rm -f /usr/local/bin/smtty-update   # if installed
rm -rf ~/.config/smtty                   # optional, removes saved settings