# Brainy theme

Simple colorful terminal prompt theme (inspired by a number of themes).

## Features

### Prompt Segments

- Username & Hostname
- Current Directory
- SCM Information
- Battery Charge
- Clock
- [Todo.txt](https://github.com/ginatrapani/todo.txt-cli) status
- Ruby Environment
- Python Environment
- Exit Code

### Others

- Indicator for cached `sudo` credential
- Indicator for ssh login
- `brainy` command for showing/hiding various prompt segments on-the-fly

## Configuration

Various prompt segments can be shown/hidden or modified according to your choice. There are two ways for doing that:

1. On-the-fly using `brainy` command
2. Theme Environment Variables

### On-the-fly using `brainy` command

This theme provides a command for showing/hiding prompt segments.

`brainy show <segment>`

`brainy hide <segment>`

Tab-completion for this command is enabled by default.

Configuration specified by this command will only be applied to current and subsequent child shells.

### Theme Environment Variables

This is used for permanent settings that apply to all terminal sessions. You have to define the value of specific theme variables in your `bashrc` (or equivalent) file.

The name of the variables are listed below along with their default values.

#### User Information

Indicator for cached `sudo` credential (see `sudo` manpage for more information):

`THEME_SHOW_SUDO=true`

#### SCM Information

Information about SCM repository status:

`THEME_SHOW_SCM=true`

#### Ruby Environment

Ruby environment version information:

`THEME_SHOW_RUBY=false`

#### Python Environment

Python environment version information:

`THEME_SHOW_PYTHON=false`

#### ToDo.txt status

[Todo.txt](https://github.com/ginatrapani/todo.txt-cli) status:

`THEME_SHOW_TODO=false`

#### Clock

`THEME_SHOW_CLOCK=true`

`THEME_CLOCK_COLOR=$bold_cyan`

Format of the clock (see `date` manpage for more information):

`THEME_CLOCK_FORMAT="%H:%M:%S"`

#### Battery Charge

Battery charge percentage:

`THEME_SHOW_BATTERY=false`

#### Exit Code

Exit code of the last command:

`THEME_SHOW_EXITCODE=true`

## Prompt Segments Order

Currently available prompt segments are:

- battery
- char
- clock
- dir
- exitcode
- python
- ruby
- scm
- todo
- user_info

Three environment variables can be defined to rearrange the segments order. The default values are:

`___BRAINY_TOP_LEFT="user_info dir scm"`

`___BRAINY_TOP_RIGHT="python ruby todo clock battery"`

`___BRAINY_BOTTOM="exitcode char"`
