# TerminalPolyjuice 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 "$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 ` (where `` 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).