Interlude
Interlude copied to clipboard
Printerlude
Discussed in https://github.com/YAVSRG/Interlude/discussions/122
Originally posted by percyqaz November 28, 2021
Overview
Printerlude is the codename for the shell capabilities planned to be added to Interlude
Interlude will expose a bunch of commands (and support for aliasing your own) that can be executed as scripts or from a command line interface
Sub-features:
- [ ] URLs like interlude://changesong+{HASH}. Not all commands supported.
- [x] Running Interlude with command line arguments will execute them as shell commands. If Interlude is already open they will get piped to the main process to be executed. All commands supported.
- [x] Ingame terminal for entering commands for niche cases
- [ ] Themes can define scripts that run at certain times (on startup, can register hotkeys, etc)
The average user will NOT need to know how to use these commands/printerlude but it may be helpful to advanced users who would want to, for example, bind a key to changing several settings at once (or tinker with the game in other ways)
List of planned commands (to be expanded)
Essentials
setting get <name>
setting set <name> <value>
chart - Returns current chart id
chart change <id>
chart search <query>
play - Plays current chart if not playing
hide - Hides window
show - Shows window
volume [volume] - Not providing volume returns current volume
rate [rate] - Not providing volume returns current volume
collection {create|delete|get|add|remove|active} <name> [id]
changenoteskin <id>
noteskins - Returns available noteskins
noteskin - Returns current noteskin
theme {on|off} <name>
themes {all|active|reload}
mod {on|off} <id>
mods {all|active}
exec <script> - Will look in themes for a script by this name, and run it
bind <bind> <command>
help <command>
exit - Exits the game
find <string> <target> - Gives error exit code if input is not in list given (for chaining)
version
Online stuff in future
login <username> <password>
logout
lobby {create|join|leave} [id]
chart status [id]
chart setranked [id]
Printerlude initial concept is now implemented and working nicely :)
This issue stays open while some things solidify and most of the commands listed here get added