# bawa
**bawa** is a tui game save organizer.

## Features
- Import and load save files.
- Group save files using profiles.
- Quickly search and jump using fuzzy finder.
- Presets for Dark Souls Remastered, Dark Souls II, Dark Souls III, Sekiro and Elden Ring.
- Custom games can be added given that they use a single file for save data.
- Command line interface with [shell completion](#shell-completion), which can be used for setting global key bindings.
- Customizable key bindings and theme through [`config.toml` file](#configuration)
## Dependencies
**bawa** needs [`Nerd Fonts`](https://www.nerdfonts.com/) for icons. If you don't want to use it,
you can configure the icons in [`config.toml`](#configuration).
## Installation
### Cargo
**bawa** can be installed from [crates.io](https://crates.io/crates/bawa).
```sh
cargo install bawa
```
## Usage
Run **bawa** to launch the TUI.
```sh
Usage: bawa [OPTIONS] [COMMAND]
Commands:
list list save files
load load save file
import import save file
rename rename save file
delete delete save file
game manage games
profile manage profiles
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <FILE> Path to configuration file
--no-config Ignore configuration file
-h, --help Print help
-V, --version Print version
```
For default key bindings, press `ctrl-h` or `F1` in the app, or refer to
the [example `config.toml` file](./example/config.toml).
## Shell Completion
**bawa** supports dynamic shell completions for `bash`, `zsh`, `fish`, `elvish` and `powershell`.
### Bash
Add the following line to your `.bashrc`:
```bash
source <(COMPLETE=bash bawa)
```
### Zsh
Add the following line to your `.zshrc`:
```zsh
source <(COMPLETE=zsh bawa)
```
### Fish
Create `~/.config/fish/completions/bawa.fish` with the following line as the content:
```fish
### Elvish
Add the following line to `~/.config/elvish/rc.elv`:
```elvish
### Powershell
Add the following line to `$PROFILE`:
```pwsh
## Configuration
Options, key bindings and theme can be configured with a configuration file
in [TOML](https://toml.io/en/) format. By default, the platform specific path listed in the following
table will be checked for the configuration file:
| Linux | `$XDG_CONFIG_HOME`/bawa/config.toml |
| MacOS | `$HOME`/Library/Application Support/bawa/config.toml |
| Windows | `%AppData%`\bawa\config.toml |
A different path can be specified with the `--config` flag. Configuration files can be ignored with
the `--no-config` flag to launch the app with the default settings.
A sample configuration file with the default settings can be found in [example/config.toml](./example/config.toml).