Files
TerminalPolyjuice/README.md
T

74 lines
3.2 KiB
Markdown

# TerminalPolyjuice
[![State-of-the-art Shitcode](https://img.shields.io/static/v1?label=State-of-the-art&message=Shitcode&color=7B5804)](https://github.com/trekhleb/state-of-the-art-shitcode)
A "Polyjuice Potion" for your terminals: a single repository that unifies configuration across Zsh, Bash, Nushell, and PowerShell — aliases, functions, prompts — together with settings for common terminal tools such as Starship, Helix, and Zed. Each shell is configured independently; pick what you need.
## Repository Layout
```
.
├── zsh/ # Zsh: aliases, functions, plugin loading, prompt (Starship)
├── bash/ # Bash: aliases, functions, integrations, key bindings
├── nushell/ # Nushell: custom modules and prompt
├── pwsh/ # PowerShell: setup guide and Oh-My-Posh themes
├── starship/ # Starship prompt presets (default / powerline)
├── helix/ # Helix editor configuration
├── zed/ # Zed editor keymap
└── wsl/ # WSL-related notes
```
## Prerequisites
Install the tools relevant to the shell(s) you intend to use: `git`, `fzf`, `zoxide`, `starship`, `python` (some features also rely on `jq`, `uv`, etc.). Start by cloning the repository to a fixed location:
```shell
git clone <repo-url> "$HOME/.TerminalPolyjuice"
```
## Usage per Shell
### Zsh
Run the install script to download plugins, configure Starship, and check dependencies. It symlinks `$HOME/.zshrc` to the in-repo `zsh/zshrc` and points `$HOME/.config/starship.toml` at a Starship preset.
```shell
cd "$HOME/.TerminalPolyjuice/zsh"
zsh polyjuice.sh install config_starship check
```
Run `exec zsh` to apply. To install Zsh plugins separately, call `pj_install_plugins` from within Zsh.
### Bash
`bash/bashrc` is the self-contained entry point that auto-loads everything under `settings/`, `aliases/`, `functions/`, `integrations/`, and `keybindings/`. Source it from your `~/.bashrc`:
```shell
echo 'source "$HOME/.TerminalPolyjuice/bash/bashrc"' >> ~/.bashrc
```
`bash_profile` already sources `bashrc` in the same directory, so you may alternatively symlink it to `$HOME/.bash_profile`.
### Nushell
The entry point is `nushell/nu_polyjuice.nu`, which loads all custom modules under `modules/` and sets up the prompt. Source it from your Nushell startup file (`env.nu` or `config.nu`):
```nu
source ($env.HOME | path join ".TerminalPolyjuice" "nushell" "nu_polyjuice.nu")
```
> The prompt uses the built-in `pj_prompt` module by default. To switch to Starship instead, run `pj starship config <name>` (where `<name>` matches a preset under `starship/`, e.g. `default` or `powerline`); use `pj starship list` to see available presets.
### PowerShell (Windows)
Follow the steps in [`pwsh/HowToUse.md`](pwsh/HowToUse.md): install `PSReadLine` and `PSFzf`, initialize Starship and Zoxide, then copy `pwsh/*.omp.json` into `$env:POSH_THEMES_PATH` and enable Oh-My-Posh in your `$PROFILE`.
### Helix / Zed
- **Helix**: symlink or copy `helix/config.toml` into your Helix config directory.
- **Zed**: symlink or copy `zed/keymap.json` into your Zed config directory.
## License
This project is released under the [GNU Affero General Public License v3.0 or later](LICENSE) (AGPL-3.0-or-later).