BashStyle-NG user documentation: Configuration Files

Next: Shell Functions, Previous: Custom Prompt Builder, Up: Top

## 18 Configuration Files

While BashStyle-NG is able to auto-generate the configuration files based on your choices in the UI, you might want to do manual additions as well.

### Main Configuration Files

- Factory Configuration: INSTALLATION_PREFIX/share/bashstyle-ng/bs-ng.ini
- Vendor Configuration: /etc/bs-ng_vendor.ini
- User Configuration: ~/.bs-ng.ini
- User Backup Configuration: ~/.bs-ng.ini.save

### Configuration File Handling

- Configuration Files are versioned using the `ini_version` parameter, which ensures your User or Vendor configuration is up to date.
- If no User Configuration exists, BashStyle-NG will create the default one using
  - + Vendor Configuration (if it exists and has the latest `ini_version`)
  - + Factory Configuration
- If the User Configuation is outdated, BashStyle-NG will update it using
  - + Vendor Configuration (if it exists and has the latest `ini_version`)
  - + Factory Configuration
- If the User Configuation is malformed, BashStyle-NG will try to restore it using
  - + User Backup Configuration (if it exists and has the latest `ini_version`)

  if that is not possible, it will create the default one using

  - + Vendor Configuration (if it exists and has the latest `ini_version`)
  - + Factory Configuration

### Additional Configuration Files

- ~/.inputrc.custom: custom non-managed readline settings, loaded after ~/.inputrc
- ~/.vimrc.custom: custom non-managed vim settings, loaded after ~/.vimrc
- ~/.bashstyle.custom: custom non-managed bash settings, always loaded after BashStyle-NG start so variables and functions provided by BashStyle-NG can reliably be used

### Configuration File handling in User Interface

In the BashStyle-NG `Configuration Files` section you are able to

- view versions of the configuration files
- backup your User configuration
- restore User Backup configuration
- restore Vendor configuration (if it exists and has the lastest `ini_version`), else Factory configuration
- edit ~/.bashrc (uses xdg-open)
- edit ~/.bashstyle.custom (uses xdg-open)
- edit ~/.inputrc.custom (uses xdg-open)
- edit ~/.vimrc.custom (uses xdg-open)

### Style Hooks in ~/.bashstyle.custom

Some of the provided prompt styles allow be hooked into, so that some parts of them can be customized. Those hooks consist of a color variable and a hook function and should reside in ~/.bashstyle.custom.

Those are not set when the prompts are loaded in the Custom Promp Builder.

The following hooks are available

- Separator Style
  - + SEPA_1() / SEPA_1_COLOR
  - + SEPA_2() / SEPA_2_COLOR
- Vector Style
  - + VECTOR_1() / VECTOR_1_COLOR
  - + VECTOR_2() / VECTOR_2_COLOR
- Floating Clock
  - + CLOCK_1() / CLOCK_1_COLOR
- Equinox Style
  - + EQUINOX_1() / EQUINOX_1_COLOR
- Elite Style
  - + ELITE_1() / ELITE_1_COLOR
- Power Style
  - + POW_1() / POW_1_COLOR
- Dirks Style
  - + DIRKS_1() / DIRKS_1_COLOR
  - + DIRKS_2() / DIRKS_2_COLOR
- Sepa-NG Style
  - + SEPA_NG_1() / SEPA_NG_1_COLOR
- Quirk Style
  - + QUIRK_1() / QUIRK_1_COLOR

Next: Shell Functions, Previous: Custom Prompt Builder, Up: Top