diff --git a/Client-using-system-commands.md b/Client-using-system-commands.md new file mode 100644 index 0000000..bad24ca --- /dev/null +++ b/Client-using-system-commands.md @@ -0,0 +1,57 @@ +Envoy Client can be used as a `pseudo-command line interface(CLI)` messenger: + +You have the option to perform most actions by entering an `activator` as the first visible letter where you type new messages.
+If an activator is found (case insensitive), the word starting exactly behind it will be executed (that's a `system command`).
+A system command may need parameters to work, those have to be separated by a space.
+If not enough parameters have been given, default parameters will be supplied. In some cases however, they'll only ask you to enter one yourself.
+If the necessary parameters behind this system command have the correct format, the system command will be executed.
+If there are more parameters than necessary, the remaining ones will be ignored.
+If a system command has been executed, it will not be sent as a message (others won't know that you entered a system command). +

+ +The default activator is `/`. +It is planned that in the future this activator might be customizable according to your preferences. + +## Current system commands are: + +| Command | Parameters | Default values | Action | +| ---------------------------------- | --------------------- | -------------- | ----------------------------------------------- | +| `error` | `none` | `none` | Displays an error message | +| `dabr` | 0: int - the number of rotations,
1: float - the amount of time `it` rotates | 0: 1-4, 1: 1-4s | Short for "Do a barrel roll". But see for yourself | +| `logout` | `none` | `none` | Logs the current user out | +| `q` / `exit` | `none` | `none` | Closes Envoy (or minimizes it, depending on the settings option chosen) | +| `settings` | `none` | `none` | Opens the settings screen | +| `status` | 0: either `offline`, `away`, `busy` or `online` (case insensitive) | `none` | Changes your status to the given status | + +#### message dependant commands (**ADVANCED**): + +The following commands require a message to be parsed from the first parameter. +There are two ways how to aquire the message here (x is here a whole number): +1. "absolute": The x-th message from the top - i.e. using 3 as argument will use the third highest completely visible message +2. "relative": using `s+-x` will use the message +-x below the currently selected message - i.e. s+5 will use the message that is 5 messages below the currently selected one. Note: `++s`/ `s++` (= `s+1` ) and `--s`/ `s--` (= `s-1` ) are also possible. +

+If the parameter is not given, the currently selected message will be used. + +| Command | Additional Parameters | Action | +| `s` | `none` | Selects the given message | +| `cp` | `none` | Copies the text of the given message | +| `del` | `none` | Deletes the given message locally | +| `save-att` | `none` | Saves the attachment of the given message if present (either directly or by asking you where, depending on your settings) | + +### Examples + +(Assuming default activator is the activator(`/`)): + +`/error xyz abc test`
+`/DaBr`
+`/dabr 3 1.536`
+`/logout`
+`/s s++`
+`/cp 3`
+`/del --s`
+`/save-att s--`
+`/s 0`
+ +### Notation +* `int` refers to a whole number +* `float` refers to a decimal number where `.` is used as the separator between the whole number and the fraction