srhd 0.2.0

A lightweight hotkey daemon for MacOS
Documentation
# SRHD
**S**imple **R**ust **H**otkey **D**aemon is a minimal and lightweight key
binding service for MacOS similar to **skhd**. It can be run as in the
background using the native `launchctl` to interact with `launchd` via a plist
file. Keybinds are configured via toml. 

> [!WARNING]  
> **SRHD** is still in early development, and is lacking certain features like hot config reloading and comprehensive error messages. I'm working on rolling those out ASAP.  

## Installation 
The first time **srhd** starts it will request access to input monitoring.
After being granted access you must restart the service for the change to take
effect. __Secure Keyboard Entry__ must be disabled in whatever terminal
emulator **srhd** is started from.

**Homebrew**
```
brew tap sylvanfranklin/srhd 
brew install srhd
srhd start
```

**Cargo**
Requires cargo and rust.    
```
cargo install srhd
srhd start
```

**Source** 
Requires cargo and rust.    
```
git clone https://github.com/SylvanFranklin/srhd
cd srhd 
cargo run 
```

## Usage

```
Usage: srhd [COMMAND]

Commands:
  start    Start launchctl login service
  stop     Stop launchctl login service
  restart  Restart the service
  help     Print this message or the help of the given subcommand(s)

Options:
  -h, --help     Print help
  -V, --version  Print version
```

## Configuration
For now config is stored at, other options to be added in the future.
- `$HOME/.config/srhd/srhd.toml`

An empty config file will be created automatically the first time **srhd** is started.

**Example Config:** 
```toml
# srhd.toml
[[binding]]
key = "KeyA"
command = "open /Applications/Firefox.app" # or any arbitrary shell script
mods = ["Meta", "Alt"]
```

## Debugging
stdout and stderr can be found at `/tmp/$USER_srhd.out.log` and
`/tmp/$USER_srhd.err.log` respecively.