function UsernameAtComputer { if (! "$env:ComputerName" -eq "") { $compname = $env:ComputerName } else { $compname = "unknown" } if (! "$env:UserName" -eq "") { $username = $env:UserName } if (! "$env:USER" -eq "") { $username = $env:USER } else { $username = "unknown" } "`e[35;1m" + $username + "`e[0m`e[1m@" + "`e[35;1m" + $compname } # ----- set default color Set-PSReadlineOption -Colors @{ Parameter = "`e[96m"} Set-PSReadlineOption -Colors @{ Operator = "`e[96m"} Set-PSReadlineOption -Colors @{ String = "`e[93m"} # ----- Messy function to make it looks like my zsh theme / git support function Git-Status { "$([char]27)[31m" if ((git status --porcelain -b 2>$1 | Select-String -Pattern 'M ') -notmatch 'fatal') { "!" } if ((git status --porcelain -b 2>$1 | Select-String -Pattern '\# ') -notmatch 'fatal') { "⇡" } if ((git status --porcelain -b 2>$1 | Select-String -Pattern '\? ') -notmatch 'fatal') { "?" } } function Git-Branch { " $([char]27)[35m " + (git branch --show-current) } function getdir { # ((Get-Location) -replace '[a-zA-Z].\\','~\') # change 'c:/' into '~' (optional) ((Get-Location) -replace '/home/[a-zA-Z]*','~') # change '/home/' into '~' } function end_of_prompt { " $([char]27)[32;1m$> $([char]27)[0m" } # ----- Foreground (the thing that actually shows up) function prompt { if ((git log -n 1 2>$1) -notmatch 'fatal') { " $([char]27)[34;1m" + $env:COMPUTERNAME + "" + (getdir) + (Git-Branch) + " " + ("$(Git-Status)" -replace ' ','') + (end_of_prompt) } else { " $([char]27)[34;1m" + $env:COMPUTERNAME + "" + (getdir) + (end_of_prompt) } } # ----- Aliases New-Alias vim nvim function q{exit}