# mum Mumble daemon with controller (think `mpd(1)`/`mpc(1)`) written in Rust. ## Building mum is currently only tested on Linux. Windows is planned to use a REPL. macOS should work as-is. Requirements (package names are for Arch Linux): - rust (stable, current minimum version is 1.56) - alsa-lib - openssl - opus - libnotify (optional, needed in default configuration) Build and install the latest published version: ```sh $ cargo install mum-cli ``` You can also build and install from source, for example with ``` $ cargo install --git https://github.com/mum-rs/mum.git ``` or using the [AUR package](https://aur.archlinux.org/packages/mum-git/). ### Optional features mum contains optional features that are enabled by default. To compile without them, build with --no-default-features. Features can then be re-enabled separately with --features "FEATURES". The following features can be specified: | Name | Needed for | | ----------------- | ----------------- | | mum/notifications | Notifications | | mum/ogg | ogg sound effects | ### Manpages Manpages are included as both asciidoc txt-files and already formatted groff-files. They are generated by ```sh $ asciidoctor -b manpage mumctl.txt $ asciidoctor -b manpage mumd.txt $ asciidoctor -b manpage mumdrc.txt ``` ## Basic Usage This describes how to connect to a server and join different channels. See `$ mumctl --help` or the manpages for more information. ### mumd Start the daemon by running `mumd`. It attaches to the terminal, so if you want to run it in the background you can detach it from the shell. You could also run it through e.g. systemd. ### mumctl Interfacing with the daemon is done through mumctl. Some examples: ```sh $ mumctl connect 127.0.0.1 spock # connect to 127.0.0.1 with username 'spock' $ mumctl channel list ServerRoot -user1 -user2 -user2 Channel2 Channel3 $ mumctl channel connect Channel2 ``` ## Why? Mostly because it was 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, disk and CPU usage. We haven't found a reliable way of testing this yet (suggestions welcome). ## Other projects - [Barnard (go)](https://github.com/bmmcginty/barnard.git) - TUI