aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2021-03-21 14:29:18 +0100
committerGustav Sörnäs <gustav@sornas.net>2021-03-21 14:29:18 +0100
commitb63e502e19494e9c1df2db6cb6329989df202210 (patch)
treef8c0344033889ff60c1f932f73115b9e75f81e15
parentd6348155f3420e9c01f805f0bb3a520cbd1d4c1c (diff)
downloadmum-b63e502e19494e9c1df2db6cb6329989df202210.tar.gz
update readme
- org -> markdown - More ``-formatting - libnotify is needed in default configuration - -Z package-features is stabilized in 1.51 - Minimum rust version is latest stable
-rw-r--r--README.md (renamed from README.org)89
1 files changed, 52 insertions, 37 deletions
diff --git a/README.org b/README.md
index 271739f..04b3ae8 100644
--- a/README.org
+++ b/README.md
@@ -1,20 +1,22 @@
-* mum
-Mumble daemon with controller (think mpd(1)/mpc(1)) written in Rust.
+# mum
-** Building
+Mumble daemon with controller (think `mpd(1)`/`mpc(1)`) written in Rust.
+
+## Building
mumd and mumctl are available on crates.io and can be installed with
-#+BEGIN_SRC sh
+```sh
$ cargo install mumd
$ cargo install mumctl
-#+END_SRC
+```
-They are also available
-[[https://aur.archlinux.org/packages/mum-git/][available on the AUR]]. We also
+They are also
+[[https://aur.archlinux.org/packages/mum-git/][available on the AUR]]. Thirdly, we
publish [[https://github.com/sornas/mum/releases/][compiled binaries on Github]].
-*** Requirements
+### Requirements
+
These are for Arch Linux. You might need other packages on other distributions
and operating systems, or they might be named something different.
@@ -22,24 +24,29 @@ and operating systems, or they might be named something different.
- alsa-lib
- openssl
- opus
-- libnotify (optional)
+- libnotify (optional, needed in default configuration)
Windows is not currently supported but could be in the future. macOS should work.
Other operating systems haven't been tested. The limiting factor on Windows
is IPC communication which is (currently) done via the crate ipc-channel.
-*** Installation
+We only "guarantee" compilation on latest Rust stable. Open a ticket if this is
+an issue for you and we'll see what we can do.
+
+### Installation
+
1. Build the binaries
2. (wait)
3. Copy/symlink to somewhere nice (or don't).
-#+BEGIN_SRC sh
+```sh
$ cargo build --release
$ ln -s $PWD/target/release/mumctl $HOME/.local/bin/
$ ln -s $PWD/target/release/mumd $HOME/.local/bin/
-#+END_SRC
+```
+
+### Optional features
-*** Optional features
mum contains optional features that are enabled by default. To compile without
them, build with --no-default-features. Features can then be enabled with
--features "FEATURES".
@@ -50,48 +57,54 @@ The following features can be specified:
|--------------------+---------------+
| mumd/notifications | Notifications |
-Awaiting -Z package-features, changing which features are compiled requires
-you to compile mumd/ separately by entering its directory and specifying
-its features.
+If you're using Cargo 1.51 or later you can specify features directly from the
+workspace root:
+
+```sh
+$ cargo build [--release] --no-default-features
+```
-To summarize with an example, the following compiles with only the
-notifications-feature enabled.
+Older versions need to build the packages separately:
-#+BEGIN_SRC sh
+```sh
$ cd mumd
-$ cargo build --release --no-default-features --features "notifications"
+$ cargo build --release --no-default-features
$ cd ../mumctl
-$ cargo build --release
-#+END_SRC
+$ cargo build --release --no-default-features # technically unneeded
+ # since no features exist
+```
-*** man-pages
+### man-pages
Man-pages for mumd, mumctl and mumdrc (the configuration file) are included as
both asciidoc txt-files and already formatted groff-files. They are generated
with
-#+BEGIN_SRC
+```sh
$ asciidoctor -b manpage *.txt
-#+END_SRC
+```
+
+## Usage
-** Usage
This describes how to connect to a server and join different channels.
-See mumctl --help or documentation/*.txt for more information.
+See `$ mumctl --help` or `documentation/*.txt` for more information.
+
+### mumd
-*** mumd
Start the daemon with mumd. Currently it attaches to the terminal, so if you
want to run it in the background you can detach it with e.g. (zsh):
-#+BEGIN_SRC sh
+```sh
$ mumd &>/dev/null &|
-#+END_SRC
+```
-Somewhere down the line we're aiming to have a --daemonize.
+Somewhere down the line we're aiming to have a `--daemonize`.
+
+### mumctl
-*** mumctl
Interfacing with the daemon is done through mumctl. Some examples:
-#+BEGIN_SRC sh
+```sh
$ mumctl connect 127.0.0.1 spock # connect to 127.0.0.1 with username 'spock'
$ mumctl channel list
ServerRoot
@@ -101,15 +114,17 @@ ServerRoot
Channel2
Channel3
$ mumctl channel connect Channel2
-#+END_SRC
+```
+
+## Why?
-** Why?
Mostly because it's a fun way of learning a new language. Also:
- Most mumble clients use a GUI. While GUIs aren't necessarily bad, there
should at least exist alternatives where possible.
-- Memory and disk footprint. We haven't found a reliable way of testing memory
+- Memory, disk and CPU usage. We haven't found a reliable way of testing this
yet (suggestions welcome).
-** Other projects
+## Other projects
+
- [[https://github.com/bmmcginty/barnard.git][Barnard (go)]] - TUI mumble client