This is the latest revision of my terminal theme, for fish shell. It has evolved over the years to its current form.
Many of its features come from fish shell itself, and are lightly customized here
- Visual Git Status
-
Current branch, tracking, current sha
- Visual JJ status
-
If current change is empty, conflicted, or immutable, as well as the current change_id and commit_id, with colored prefixes
- Prompt Timestamp
-
Lets you see when the prompt was rendered
- Command Separators
-
Big thick lines that clearly deliniate when a command started and ended
They also show exit statuses, with support for
pipestatus
They are turned off by default, see [Enabling Command Separators] for details
- Full Vim Mode Support
-
Just add
fish_vi_modeto your fish configuration, and everything will work as it should - Customizable Colors
-
Don’t like my color choices? Pick your own. I try to respect fish colors wherever possible, and have a few custom variables for places it needs to be extended
See Colors for details.
- Automatic terminal colors
-
If you’re using a compatible terminal, your terminal’s colors will be set automatically
See Terminal Color Palettes for details. - Supports Base16-shell
-
If you use the Base16-shell project’s color schemes, you can use any color scheme they have available. See Base16-shell support for details
- Supports light/dark mode
-
An interface is exposed to allow the theme to swap between two color schemes, depending on light/dark mode settings. See Light/Dark Mode for details
-
Install fisher
-
Run
fisher install paradox460/paradox-theme
-
Clone this repo
-
Copy or Symlink the files in
conf.dto your~/.config/fish/conf.ddirectory -
Copy or symlink the files in
functionsto your~/.config/fish/functionsdirectory -
Load a new fish shell up
Some shells have intelligence around command output and whatnot, allowing you to do things like copy the output of the previous command quickly. The command separators, due to how they’re printed, can get in the way of this. As such, they’re off by default as of 40e53867.
To reenable them, simply add paradox_command_separator to your fish config file.
Default fish colors are respected, and can be overridden using any means you like; the web interface, your own configuration, or universal variables.
Color variables support the same syntax as set_color
See the file paradox_set_colors.fish for all colors used by this theme for customization and overrides
You can also set variables for (light|dark)base00-base0F, to tune the color schemes used by this shell.
If you customize your colors, you probably want to set the paradox_disable_scheme_changes variable, otherwise your custom colors could be clobbered.
If you have another Base16 theme you like, you can load the shell version of the color scheme, set the BASE16_SHELL_ENABLE_VARS envar, and this theme will now use its colors.
The theme will automatically set your terminal’s colors to match the internally used color palette, so that third party programs (such as those that use curses) will render with your colors.
If you would like to disable this feature, set the variable paradox_disable_custom_colors to true
Efforts have been made to support a wide range of terminals.
On recent MacOS versions, the theme will automatically switch between Tomorrow and Tomorrow-Night, depending on the current system color mode. This includes automatic color switches with time of day.
The theme will only change colors when the configuration is reloaded, i.e. when launching a new shell. You can set the paradox_refresh_scheme_on_prompt variable to true to cause the theme to be set on every prompt.
Alternatively, you can call paradox_change_color_scheme at any time to check and set the theme based on current conditions.
If you want to lock your theme to one color mode, or are on a non-macos system, set the variable paradox_color_scheme to either light or dark. The theme should automatically refresh whenever this variable is changed
If you are using a custom base16 color scheme, automatic color changing is disabled. If this is something you’d really like to see, open an issue here.
|
ℹ️
|
This doesn’t contain color variables. Those are listed under Colors |
paradox_color_scheme-
light|darkLocks the color scheme, regardless of what the system reports. Changing causes color scheme reevaluation. paradox_disable_custom_colors-
booleanDisables changing terminal colors paradox_disable_scheme_changes-
booleanDisables any color source values, only uses the values currently defined in thebase00-base0Fvariables.This is useful if you want to use a specific base16 color scheme, but don’t want to load the whole shell script for it.
paradox_refresh_scheme_on_prompt-
booleanTriggers a color scheme refresh on every paint of the prompt.
Additionally, the following third-party configuration variables impact this theme:
BASE16_SHELL_ENABLE_VARS-
booleanTriggers importing of a base16-shell color scheme, disabling internal color schemes. See Base16-shell support for more information
paradox_change_color_scheme-
Refreshes the color scheme, setting it to the "right" one based on current configurations
paradox_set_colors-
Sets the shell colors based on the values currently found in
base00-base0Fvariables. Doesn’t change any color source vars.
There is an older iteration of this theme, on the v1 branch. It is no longer maintained, and is only useful for reference purposes.
That version of the theme was a bit slower, used older fish features that are now obsolete, and had a few features that never really worked right (such as command timers).
