--- id: customize title: Customize sidebar_label: 💅🏼 Customize --- import Tabs from "@theme/Tabs"; import TabItem from "@theme/TabItem" The standard initialization sets Oh My Posh' [default theme][default-theme]. This configuration is downloaded and kept up-to-date with Oh My Posh' version every time the shell starts. To change/alter the configuration, you need to add the `--config` command-line option to change the configuration to use a specific file. ### Get inspiration The best place to get started is by looking at the [themes][themes], as these are **predefined configurations** to use/alter. To change to for example the [jandedobbeleer][jandedobbeleer] theme, alter the Oh My Posh `init` line to the following (assuming you downloaded the configuration file to your user's home folder): ```powershell oh-my-posh init pwsh --config ~/.jandedobbeleer.omp.json | Invoke-Expression ``` Once altered, reload your profile for the changes to take effect. ```powershell . $PROFILE ``` :::info When the above command gives an error, make sure to create the profile first and add the `oh-my-posh init` above. ```powershell New-Item -Path $PROFILE -Type File -Force ``` ::: ```lua title="oh-my-posh.lua" load(io.popen('oh-my-posh init cmd --config ~/.jandedobbeleer.omp.json'):read("*a"))() ``` Once altered, restart cmd for the changes to take effect. ```bash eval "$(oh-my-posh init zsh --config ~/.jandedobbeleer.omp.json)" ``` Once altered, reload your profile for the changes to take effect. ```bash exec zsh ``` ```bash eval "$(oh-my-posh init bash --config ~/.jandedobbeleer.omp.json)" ``` Once altered, reload your profile for the changes to take effect. ```bash exec bash ``` ```bash oh-my-posh init fish --config ~/.jandedobbeleer.omp.json | source ``` Once altered, reload your config for the changes to take effect. ```bash . ~/.config/fish/config.fish ``` :::warning Oh My Posh requires Nushell >= 0.60.0 ::: Edit `$nu.configuration/path` and add the following lines at the bottom. ```bash oh-my-posh init nu --config ~/.jandedobbeleer.omp.json source ~/.oh-my-posh.nu ``` If you want to save the initialization script elsewhere, replace the lines above with these: ```bash oh-my-posh init nu --config ~/.jandedobbeleer.omp.json --print | save /mylocation/myscript.nu source /mylocation/myscript.nu ``` Once altered, restart nu shell for the changes to take effect. :::tip wsl When using oh-my-posh in Windows and the WSL, know that you can **share your theme with the WSL** by pointing to a theme in your Windows user's home folder. Inside the WSL, you can find your Windows user's home folder here: `/mnt/c/Users/`. ::: :::tip remote config The `--config` flag can accept either a local filepath or a remotely hosted config file. For example, the following is a valid `--config` flag: ``` --config 'https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/jandedobbeleer.omp.json' ``` ::: ### Export the current theme Maybe there's a theme you like, but you don't fancy the colors. Or, maybe there's a segment you want to tweak/add, or replace some of the icons with a different one. Whatever the case, **read through available options first**, by starting with the [configuration guide][configuration]. You can export the current theme (default, or set via `--config`) to the format you like (`json`, `yaml`, or `toml`) which can be used to tweak and store as your own custom theme. ```bash oh-my-posh config export --output ~/.mytheme.omp.json ``` ### Read the docs To fully understand how to customize a theme, read through the documentation in the configuration and segments sections. The [configuration][configuration] section covers the basic building blocks and concepts of Oh My Posh themes, while the segments section covers how to configure each available segment. [themes]: themes.md [configuration]: configuration/overview.mdx [default-theme]: https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/themes/default.omp.json [jandedobbeleer]: /docs/themes#jandedobbeleer [json-schema]: https://raw.githubusercontent.com/JanDeDobbeleer/oh-my-posh/main/themes/schema.json