This file contains the current targeted usage. It works as both a design document and a feature tracker. New commands and flags go here. * Usage overview Start the daemon with either one of: - `$ mumd`. Writes to stdout, ignores stdin. Can easily be disowned/started in a screen/tmux. We want to support / explain how to do the following at some point: - `$ mumd --daemon` - systemd-service The daemon doesn't do anything by itself. Interfacing with it is done through `mumctl`. * 0.1 The basic commands are the smallest subset of commands that allow the user to actually use mum for something. In this case it means connecting to a server, listing channels and connecting to channels. ** DONE server *** DONE connect #+BEGIN_SRC bash $ mumctl server connect localhost your_name connecting to localhost... connected as your_name root │ another person │ some person | your_name #+END_SRC ** DONE channel *** DONE list #+BEGIN_SRC bash $ mumctl channel list root [3](4) │ another person │ some person | your_name ├─ some channel [1] │ someone alone ├─ other channel [0] ├─ third channel [0](2) │ └─ subsubchannel [2] │ a user │ and another user └─ AFK [1] someone eating food #+END_SRC **** DONE --short #+BEGIN_SRC bash $ mumctl channel list --short root [3](4) ├─ some channel [1] ├─ other channel [0] ├─ third channel [0](2) │ └─ subsubchannel [2] └─ AFK [1] #+END_SRC *** DONE connect #+BEGIN_SRC bash $ mumctl channel connect some channel connecting to some channel... connected #+END_SRC ** DONE status #+BEGIN_SRC bash $ mumctl status connected to localhost:65837 as your_name currently in root with 2 other clients: root │ another person │ some person | your_name #+END_SRC #+BEGIN_SRC bash $ mumctl status --short your_name@localhost:65387/root (3) another person some person your_name #+END_SRC * 0.2 ** server *** TODO add **** DONE With name #+BEGIN_SRC bash $ mumctl server add loopback 127.0.0.1 username: *** password: *** #+END_SRC **** TODO Without name #+BEGIN_SRC bash $ mumctl server add 127.0.0.1 username: *** password: *** #+END_SRC Password can be skipped by entering blank. *** list #+BEGIN_SRC bash $ mumctl server list loopback [4 / 100] 127.0.0.1 [4 / 100] 127.0.0.3 [OFFLINE] #+END_SRC *** TODO config **** DONE username #+BEGIN_SRC bash $ mumctl server config loopback username xX_gamerboy_Xx #+END_SRC **** TODO password #+BEGIN_SRC bash $ mumctl server config loopback password *** #+END_SRC Optionally ask stdin #+BEGIN_SRC bash $ mumctl server config loopback password enter password: *** #+END_SRC *** TODO connect: handle invalid keys #+BEGIN_SRC bash server offered invalid key. what do you want to do? [I]nspect, [A]ccept, [D]eny, [C]ompare, [T]emporarily trust (default D): #+END_SRC - Inspect: Print the key digest and ask again. - Accept: Accept the key, connect to the server and trust the key. - Deny: Abort the connection. Do not trust the key. - Compare: Compare the key to a file to confirm legitimacy and ask again. - Temporarily trust: Accept the key and connect, but do not trust the key. *** DONE rename #+BEGIN_SRC bash $ mumctl server rename loopback my_server #+END_SRC ** TODO config #+BEGIN_SRC bash $ mumctl config audio.input_volume 1.1 $ mumctl config audio.input_volume $ mumctl config audio.input_volume --help #+END_SRC ** TODO volume #+BEGIN_SRC bash $ mumctl volume set User1 1.1 $ mumctl volume User1 110% #+END_SRC * 0.3 ** mute #+BEGIN_SRC bash $ mumctl mute true $ mumctl mute false $ mumctl mute toggle #+END_SRC ** deafen #+BEGIN_SRC bash $ mumctl deafen true $ mumctl deafen false $ mumctl deafen toggle #+END_SRC ** user #+BEGIN_SRC bash $ mumctl user Username mute true $ mumctl user Username mute false $ mumctl user Username mute toggle #+END_SRC