From bf7f6c29be00cb3e2f1d09e20be213217f90f858 Mon Sep 17 00:00:00 2001 From: Yuri Plashenkov Date: Tue, 29 Apr 2025 20:54:26 +0300 Subject: [PATCH] Initial commit --- .editorconfig | 19 ++++ LICENSE.md | 21 ++++ README.md | 60 ++++++++++ ash/powerline.sh | 5 + bash/colors.sh | 13 +++ bash/powerline.sh | 21 ++++ cmd/prompt.cmd | 11 ++ powerline.afdesign | Bin 0 -> 27309 bytes powerline.svg | 115 ++++++++++++++++++++ powershell/Microsoft.PowerShell_profile.ps1 | 19 ++++ powershell/colors.ps1 | 7 ++ 11 files changed, 291 insertions(+) create mode 100644 .editorconfig create mode 100644 LICENSE.md create mode 100644 README.md create mode 100644 ash/powerline.sh create mode 100644 bash/colors.sh create mode 100644 bash/powerline.sh create mode 100644 cmd/prompt.cmd create mode 100644 powerline.afdesign create mode 100644 powerline.svg create mode 100644 powershell/Microsoft.PowerShell_profile.ps1 create mode 100644 powershell/colors.ps1 diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..351594a --- /dev/null +++ b/.editorconfig @@ -0,0 +1,19 @@ +root = true + +[*] +charset = utf-8 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true +indent_style = space +indent_size = 2 + +[*.ps1] +charset = utf-8-bom +end_of_line = crlf + +[*.{cmd,bat}] +end_of_line = crlf + +[*.md] +trim_trailing_whitespace = false diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..0b540a7 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +# MIT License + +Copyright (c) 2025 Yuri Plashenkov + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f4f2d94 --- /dev/null +++ b/README.md @@ -0,0 +1,60 @@ +# Powerline scripts for bash, ash, PowerShell, and cmd + +![Powerline for bash, ash, PowerShell, and cmd](powerline.svg) + +Ensure you use a font that supports Powerline characters, such as [JetBrains Mono](https://www.jetbrains.com/lp/mono/). + +## Bash + +Add the contents of the `bash/powerline.sh` script to your `~/.bashrc` file. + +Customize the variables (e.g., label and color). You can use the `bash/colors.sh` script to select a color. + +## Ash (e.g., OpenWrt) + +Add the contents of the `ash/powerline.sh` script to your `~/.profile` file. + +Customize the label and color. You can use the `bash/colors.sh` script to select a color. + +## PowerShell + +First, enable the execution of PowerShell scripts (including profiles) by running the following command as an administrator: + +```powershell +Set-ExecutionPolicy RemoteSigned +``` + +Next, locate your PowerShell profile file by running: + +```powershell +$PROFILE +``` + +Copy the contents of the `powershell\powerline.ps1` file into your PowerShell profile file. + +For older PowerShell versions (e.g., PowerShell 5), ensure the profile script is saved in UTF-8 *with BOM* encoding. + +Customize the variables (e.g., label, color, adminColor). You can run the `powershell\colors.ps1` script to select colors. + +To suppress system information on PowerShell startup, add the `-NoLogo` switch to the command line in your `PowerShell` profiles within your Terminal application: + +```ps1 +pwsh -NoLogo # newer PowerShell +powershell -NoLogo # legacy PowerShell +``` + +## cmd + +Save the `cmd\prompt.cmd` file somewhere on your disk. Then, update the command line in your `cmd` profile within your Terminal application as follows: + +```ps1 +cmd /k "C:\path\to\prompt.cmd" +``` + +## Credits + +- [Yuri Plashenkov](https://plashenkov.com) + +## License + +This package is licensed under the [MIT license](LICENSE.md). diff --git a/ash/powerline.sh b/ash/powerline.sh new file mode 100644 index 0000000..32392c0 --- /dev/null +++ b/ash/powerline.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +# 30 is the color you may want to modify, \h is the label + +PS1="\n\[\e[1;48;5;30;38;5;231m\] \h \[\e[;38;5;30;48;5;240m\]\[\e[38;5;252m\] \w \[\e[;38;5;240m\]\[\e[m\] " diff --git a/bash/colors.sh b/bash/colors.sh new file mode 100644 index 0000000..4c484de --- /dev/null +++ b/bash/colors.sh @@ -0,0 +1,13 @@ +#!/bin/sh + +label="localhost" +bold=1 + +prompt_part() { printf "\e[$2;38;5;$3;48;5;${4}m $1 \e[;38;5;$4${5+;48;5;$5}m"; } + +for color in {0..255}; do + printf "\n" + prompt_part "$label" $bold 231 $color 240 + prompt_part "~" 0 252 240 + printf "\e[m $color\n" +done diff --git a/bash/powerline.sh b/bash/powerline.sh new file mode 100644 index 0000000..046c365 --- /dev/null +++ b/bash/powerline.sh @@ -0,0 +1,21 @@ +#!/bin/sh + +prompt() { + local label="\h" + local color=30 # 30 green, 131 red + local bold=1 + + prompt_part() { PS1+="\[\e[$2;38;5;$3;48;5;${4}m\] $1 \[\e[;38;5;$4${5+;48;5;$5}m\]"; } + + PS1="\n" + if [ -n "$MC_SID" ]; then + prompt_part "$label" $bold 231 $color 237 + prompt_part "mc" $bold 231 237 240 + else + prompt_part "$label" $bold 231 $color 240 + fi + prompt_part "\w" 0 252 240 + PS1+="\[\e[m\] " +} + +PROMPT_COMMAND=prompt diff --git a/cmd/prompt.cmd b/cmd/prompt.cmd new file mode 100644 index 0000000..4b3d7b1 --- /dev/null +++ b/cmd/prompt.cmd @@ -0,0 +1,11 @@ +@echo off +chcp 65001 >nul + +set label=cmd +set color=67 +set adminColor=88 +set bold=1 + +net session >nul 2>nul && set color=%adminColor% + +prompt $e[%bold%;48;5;%color%;38;5;231m %label% $e[;38;5;%color%;48;5;240m$e[38;5;252m $p $e[;38;5;240m$e[m diff --git a/powerline.afdesign b/powerline.afdesign new file mode 100644 index 0000000000000000000000000000000000000000..fd80fad79853dba8d9171d999a9db7fdc85ceba6 GIT binary patch literal 27309 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

pQ_yfwpZov@WDQh?+H1I%z-wkNthvY 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 R;29qfb!Ba(Uka9={s*SuBxwKu literal 0 HcmV?d00001 diff --git a/powerline.svg b/powerline.svg new file mode 100644 index 0000000..e01a491 --- /dev/null +++ b/powerline.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/powershell/Microsoft.PowerShell_profile.ps1 b/powershell/Microsoft.PowerShell_profile.ps1 new file mode 100644 index 0000000..8ffcaf8 --- /dev/null +++ b/powershell/Microsoft.PowerShell_profile.ps1 @@ -0,0 +1,19 @@ +function Prompt { + $label = "PowerShell" + $color = 12 + $adminColor = 88 + $bold = 1 + + $principal = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()) + if ($principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) { + $color = $adminColor + } + + $path = $pwd.Path + if ($path.StartsWith($HOME)) { + $path = "~" + $path.Substring($HOME.Length) + } + + $e = $([char]27) + return "`n$e[$bold;48;5;$color;38;5;231m $label $e[;38;5;$color;48;5;240m$e[38;5;252m $path $e[;38;5;240m$e[m " +} diff --git a/powershell/colors.ps1 b/powershell/colors.ps1 new file mode 100644 index 0000000..c97f3d4 --- /dev/null +++ b/powershell/colors.ps1 @@ -0,0 +1,7 @@ +$label = "PowerShell" +$bold = 1 + +$e = $([char]27) +foreach ($color in (0..255)) { + Write-Host "`n$e[$bold;48;5;$color;38;5;231m $label $e[;38;5;$color;48;5;240m$e[38;5;252m ~ $e[;38;5;240m$e[m $color" +}