lnshot
π§π»ββοΈ Symlink your Steam games' screenshot directories into your Pictures folder
About
This is a little utility to work around a bugbear of mine with the Steam client. Steam provides a pretty handy in-game screenshot tool, but the screenshots are stored deep in Steam's own folder hierarchy, despite lacking any cloud sync function other than uploading them manually.
Running lnshot
will generate a set of symbolic links (basically, folders which are shortcuts) for each game's screenshot directory within your normal Pictures folder. This means you get this:
π ~/Pictures/Steam Screenshots
β π Ticky
β π Hardspace Shipbreaker
β β π 20221020102933_1.jpg
β π Need for Speed: Most Wanted
β β π 20221005164632_1.jpg
β π The Big Con
β π 20221005164632_1.jpg
Instead of this:
π ~/.local/share/Steam/userdata
β π 69420691
β π 760
β π remote
β π 1139280
β β π screenshots
β β π 20221005164632_1.jpg
β π 1161580
β β π screenshots
β β π 20221020102933_1.jpg
β π 6547380
β π screenshots
β π 20221005164632_1.jpg
lnshot
can detect Steam's installation directory, and automatically find your Pictures folder across all three supported Steam platforms.
User folders are generated for each Steam user logged into your system (filtering is not yet supported). Game folders will be named after your game title for non-Steam shortcuts, and named the same as the steamapps/common
installation folder for games managed by Steam, which is usually a reasonable name. This may change to use the full Steam app name in the future.
lnshot
does this offline, using only the metadata Steam already has stored on your hard disk.
Installation
Builds are not currently provided, so it's currently expected that you know your way around the Rust compiler.
Clone this repository and run cargo install --path .
inside it.
Usage
Run lnshot
to automatically symlink to Steam Screenshots
within your Pictures folder.
lnshot --help
provides information about other options, including using a different name for the Steam Screenshots
folder.
Automation
lnshot
provides a "daemon" mode, allowing for monitoring the file system for changes in the Steam screenshot folders.
Linux (Steam Deck)
On Steam Deck, we can take advantage of systemd
to run lnshot
automatically.
- Run
mkdir -p ~/.config/systemd/user
to create the folder we need - Create
~/.config/systemd/user/lnshot.service
(easy mode:nano ~/.config/systemd/user/lnshot.service
), and paste this into it:[Unit] Description=Steam Screenshot Symlinking Service [Service] ExecStart=%h/.cargo/bin/lnshot daemon Restart=always [Install] WantedBy=default.target
- Save the file
- Run
systemctl enable --user lnshot.service
to make it automatically start in the future.