mirror of
https://github.com/JanDeDobbeleer/oh-my-posh.git
synced 2024-12-28 12:29:40 -08:00
85 lines
2.4 KiB
Markdown
85 lines
2.4 KiB
Markdown
---
|
|
id: migrating
|
|
title: PowerShell module
|
|
sidebar_label: ⚰️ PowerShell Module
|
|
---
|
|
|
|
## Problem statement
|
|
|
|
Traditionally, the module was the only way to install oh-my-posh using `Install-Module oh-my-posh`.
|
|
Today, with the shift to the executable version over a year ago, it only acts as a wrapper around the
|
|
executable, offering no additional functionality. Throughout the year, the following changes have been made:
|
|
|
|
- don't ship all binaries in the Module but download on `Import-Module`
|
|
- move all functionality from the Module to the [init][init] script
|
|
|
|
There's a problem with the Module due to the following:
|
|
|
|
- downloading the binary is a problem on company managed computers
|
|
- the module syncs cross device thanks to OneDrive sync, causing versions to be out of sync and [configs to break][idiots]
|
|
- it's impactful having to explain the difference time and time again (for me)
|
|
|
|
## Migration steps
|
|
|
|
### Remove the module's cached files
|
|
|
|
```powershell
|
|
Remove-Item $env:POSH_PATH -Force -Recurse
|
|
```
|
|
|
|
:::warning
|
|
If you added custom elements to this location, they will be deleted with the command above.
|
|
Make sure to move these before running the command.
|
|
:::
|
|
|
|
### Install oh-my-posh
|
|
|
|
See your platform's installation guide. The preferred ways are **winget** and **Homebrew**.
|
|
|
|
- [Windows][windows]
|
|
- [macOS][macos]
|
|
- [Linux][linux]
|
|
|
|
### Uninstall the PowerShell module
|
|
|
|
```powershell
|
|
Uninstall-Module oh-my-posh -AllVersions
|
|
```
|
|
|
|
Delete the import of the PowerShell module in your `$PROFILE`
|
|
|
|
```powershell
|
|
Import-Module oh-my-posh
|
|
```
|
|
|
|
### Adjust setting the prompt
|
|
|
|
If you're still using `Set-PoshPrompt`, replace that statement with the following:
|
|
|
|
#### I have a custom theme
|
|
|
|
```powershell
|
|
oh-my-posh init pwsh --config ~/.custom.omp.json | Invoke-Expression
|
|
```
|
|
|
|
And replace `~/.custom.omp.json` with the location of your theme.
|
|
|
|
#### I have an out-of-the-box theme
|
|
|
|
```powershell
|
|
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH\jandedobbeleer.omp.json" | Invoke-Expression
|
|
```
|
|
|
|
Replace `jandedobbeleer.omp.json` with the theme you use.
|
|
|
|
:::caution
|
|
Only winget and scoop add the environment variable `POSH_THEMES_PATH` automatically. For Homebrew, use
|
|
`$(brew --prefix oh-my-posh)/themes/jandedobbeleer.omp.json`.
|
|
:::
|
|
|
|
[init]: https://github.com/JanDeDobbeleer/oh-my-posh/blob/main/src/shell/scripts/omp.ps1
|
|
[idiots]: https://ohmyposh.dev/blog/idiots-everywhere
|
|
[windows]: /docs/installation/windows
|
|
[macos]: /docs/installation/macos
|
|
[linux]: /docs/installation/linux
|