Giter Club home page Giter Club logo

shortix's Introduction

Shortix
A script that creates human readable symlinks for Proton game prefixes

Prerequireties

You need to install Protontricks from Discover on your Steam Deck, that's it.

Installation (Automatic)

Download the installer to the Desktop and double click it.

Attention for Firefox users: I noticed that Firefox will append ".download" to the file. I don't know why, but you need to remove this, so the file is called "shortex_installer.desktop" in order to be executable.

The installer will you ask you three things:

  • Add prefix id to the game name - this will make the shortcuts look like this: Game Name (12345678)
  • Add size of the target to the game name - this will make the shortcut look like this: Game Name (12345678) - 1.6G (or Game Name - 1.6G if you disabled prefix ids).
  • Install the Shortix service - this will allow Shortix to be executed automatically after a time interval (default is 30 Minutes). This will work in Game Mode as well.

If you changed your mind about the service, just run the "Update Shortix" again.

Afterwards there's a new directory in you home directory, called Shortix.
In there you'll find all created symlinks / shortcuts to the installed games - which were found by Protontricks.
You'll also find a subdirectory called "_Shaders". In there you'll find shortcuts to all available shadercache directories.

In the Shortix directory you'll also find the shortix.sh and remove_prefix.sh scripts.
With shortix.sh you can run Shortix manually (run this in a Terminal or use right click and choose "Run in Konsole" if you're running KDE).
For remove_prefix.sh read the tutorial below. (Please note: in the directory you will find several hidden files, currently possible are: .shortix, .shortix_last_run, .id, .size. Those files are needed by the script as settings files, don't delete them!).

If you want to rerun the script manually, just delete all symlinks and the hidden files .shortix and .shortix_last_run. Both files are settings file for letting the script know if it already ran at least once. Then just run the shortix.sh in a terminal.
If you don't want ids or sizes to be added anymore, delete .id or/and .size and do the rerun thing from the line above.

Manual installation

  1. Go to the /tmp folder using cd /tmp
  2. Clone this repo with git clone https://github.com/Jannomag/shortix
  3. Create Shortix directory with mkdir -p /home/deck/Shortix
  4. Copy the script with cp /tmp/shortix/shortix.sh /home/deck/Shortix
  5. Copy the systemd service with cp /tmp/shortix/shortix.service /home/deck/.config/systemd/user
  6. Reload systemd daemon with systemctl --user daemon-reload
  7. Enable service with systemctl --user enable shortix.service
  8. Start service with systemctl --user start shortix.service
  9. Done (all those steps does the shortix_installer.sh for you

Background and explanation

I just wanted to have easier access to the prefixes for the games on my Steam Deck, so I created Shortix. What it does is really simple:

  • Run protontricks to get a list of all installed games, including Non-Steam games.
  • Use the data to create symlinks in /home/deck/Shortix
  • If there's a dead end symlink, it will get removed
  • The script will be executed every 15 minutes by a systemd user service

To change the restart interval you need to change two things:

  1. in /home/deck/Shortix/shortix.sh - change the value of the TIME variable in minutes
  2. in /home/deck/.config/systemd/user/shortix.service - change the 1800s value to your desired value in seconds

If you want you can also change the directory. For this modify the directory within the shortix.sh and also in the shortix.service file.

You can also run the script manually either by using the terminal directly using this command: /bin/bash /home/deck/Shortix/shortix.sh or right click on the file and chosse "Run in Konsole".

Prefix removal script

I've added a script called remove_prefix.sh to the Shortix directory.
This script allows you to remove not just the shortcut but also the whole prefix directory.
This will also work for shadercache shortcuts, just drag&drop those instead. Run this script in a terminal (or do right click -> "Run in Konsole" for KDE / Steam Deck).
Then you can drag an drop all shortcuts from the Shortix directory of which you want to remove the prefix directory.
Afterwards press enter, the script will notify you about the paths.
It will also ask you if you really want to delete them.
Pleas note: The deletion will remove the prefix / shadercache completely! This will also remove savegames (except cloud saves) and other game specific user data - finally!

Uninstall

To uninstall run the "Update Shortix" from the desktop and choose "no" when the script asks you if you want to install the service. Afterwards delete the Shortix directory in your home directory and the "Update Shortix" from desktop. That's it.

Tested systems / distros

  • Steam Deck (SteamOS 3.4)
  • EndeavourOS
  • Ubuntu 22.04

Known issues

  • - if the name of a game contains round brackets, for example "Aaa aaa Aaa: Aaa Aaa (16-bit)" (thanks to u/octopus_erectus) the script will fail. I will try to fix this when I find a bit time. For now a workaround can be to rename the games, but I don't know if this work for native Steam games. (fixed)
  • It can happen that some games with strange characters will cause problems. To keep Shortix working I decided to remove semicolons from game names before it will link anything (this will just affect the shortcut names, not the actual game name in steam or wherever!). If you notice such problems, please feel free to open an issue. I can't test it with every game on steam, of course. (fixed, I guess)

Contribution

If you have any suggestions, let me know!

shortix's People

Contributors

jannomag avatar silentexception avatar octopuserectus avatar juij-buy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.