Skip to content

Latest commit

Β 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Purrfessional Meower Shell πŸˆβ€β¬›

PowerShell β€’ Cyberpunk β€’ Retrowave β€’ New Cat Just Dropped β€’ Anything Is Pawssible


Config files for my Shell/Terminal setup (in my case PowerShell 7.6.6), making use of packages such as gum, Oh My Posh, Fastfetch, a Nerd Font and many more, including loads of custom functions.

This is not a package with an installer or so, just an inspiration to use or copy code from my configuration files. For example, I created a lot of PowerShell functions to e.g. open retro emulators, such as pom1 for Apple 1 emulation.

I didn't generalize the profile.ps1, except for replacing all C:\Users\YOURNAME\ paths at the beginning, which makes it easier to include functions into your own profile. The initialization of Oh My Posh and FastFetch is handled at the beginning of the PowerShell profile script and set to work also in admin mode.


πŸ‘Ύ 🐈 πŸ’Ύ Have a meowsome time setting up your own cyberpunk / retrowave themed MeowerShell terminal!!!! πŸˆβ€β¬› πŸ€– πŸ‘Ύ



Terminal Start Screen

FastFetch + Oh My Posh

MeowerShell terminal start screen

For the above I used FastFetch (see fastfetch/config.json for details on this specific setup) in combination with Oh My Posh using a customized JanDeDobbeleer theme (customized version in this repo) and CaskaydiaCoveNerdFont. The font is not included in this repo since the files are too big; it is needed to display icons, emojis, symbols etc. in the terminal.


PowerShell Profile Script

The PowerShell script is highly customized. It includes the following functions and tweaks.

Setting up general home and common paths

First of all, the home path can be defined at the beginning, as well as some commonly used paths. In my case these include the default Music folder, AppData, .config (for FastFetch and Mousiki music player)...

$MeowHome = "C:\Users\YOURNAME"

# Common user directories
$MeowConfig   = Join-Path $MeowHome ".config"
$MeowDesktop  = Join-Path $MeowHome "Desktop"
$MeowMusic    = Join-Path $MeowHome "Music"
$MeowAppData  = Join-Path $MeowHome "AppData"

# Application/configuration paths
$FastfetchConfig = Join-Path $MeowConfig "fastfetch\config.jsonc"
$MousikiConfig   = Join-Path $MeowConfig "mousiki\config.txt"

# MeowerShell music download folder
$MeowMusicFolder = Join-Path $MeowMusic "MeowerShell-yt-dlp"

Basic applications that ease the use of the terminal

The following applications are installed:

Application Function
Yazi Super fast file explorer including preview of images, .txt, PDF files...
fzf Fuzzy search engine, bound to Ctrl + R
bat An alternative to cat that fully shows text-based files in the terminal; function that overrides bat to cat included
btop A kind of retro-looking task manager inside your terminal

Install e.g. via WinGet in the PowerShell 7.6.6 terminal:

winget install sxyazi.yazi
winget install junegunn.fzf
winget install sharkdp.bat
winget install btop

Or all at once:

winget install sxyazi.yazi junegunn.fzf sharkdp.bat btop

Customized btop screen

Customized btop screen


Text-to-Speech synthesizer & greetings from MeowerShell cat

The scripts also include a text-to-speech synthesizer command say, in my case using Microsoft Zira. You might have to download the model; in Windows 11 (probably similar in Windows 10) it can be done in Settings β†’ Time & Language β†’ Speech language β†’ Voices.

The PWSH profile also includes the following tweak: the first time after booting your computer and opening your terminal, the speech synthesizer will greet you, choosing randomly from a list of possible expressions.

Currently those are:

"Meow, Meowmeow. Meow, MEOW!"
"All paws operational. Hiss. Hiss."
"Purrr, purrr. I wish you an meowsome day!"
"Purrfessional MeowerShell ready. Meow Meowmeow."
"Loading terminal, please calm your claws and wait a meowment. . . Purr."
"All systems operational. Meowsistance is futile. Purr!"
"You look fur-miliar, purr. Is meow the time to party? Purr?"
"Purrfessional Cyber-Explorer-Cat ready. Ready to climb a meowntain of code with you."

Custom tab title for the Windows Terminal application

The standard custom tab title is set in the Oh My Posh theme file retrowave.omp.json.

"console_title_template": "MeowerShell πŸˆβ€β¬› β€” {{ .Folder }}",

The PWSH script also includes a line such that PWSH has control over the title. This is done in order to change the title, e.g. for Mousiki TUI (terminal user interface) music player app...

function Set-TerminalTitle {
    param([string]$Title)
    [Console]::Write("`e]0;$Title`a")
}

Set-TerminalTitle "MeowerShell πŸˆβ€β¬› stsch"

Custom commands, programs, menus & information screens

A lot of functions included in the script define shell commands to e.g. open a program or certain files. Below you can take a look at the profile function that opens the PowerShell profile script in VSCode. There is also a command called profile_note which opens the profile via Notepad/editor app.

function profile {
    code $PROFILE
}

Not all functions are that simple and are optimized to fix some quirks of the terminal UI. I used AI to get rid of some bugs, so you may want to check yourself what and why certain functions are written the way they are. Since the profile script has ~2400 lines of code and this repo is just an inspiration, I will not go through the whole code. Just dig in yourself and take what you need. Meow!

Some generally useful functions

Command Function
purr Reloads FastFetch screen
reload Reloads whole terminal window (and indirectly FastFetch)
mkcd Linux-style command to create a new directory
search Search current directory
which Returns path of programs that are included in the Windows PATH environment

Functions that open programs include the mentioned Apple 1 emulator pom1, Vice emulator for C64, the application prism for a real-time spectrogram of currently running audio, the terminal graphics editor chafa, Strudel REPL (a code-based music maker) and the beautiful music player Mousiki.

In my GitHub profile you will find a forked repository which ported Mousiki to also work on Windows, since it was written for Linux/macOS by itzender5820 (see original Mousiki repo here).

Mousiki configuration

Current Mousiki configuration (.config can be found in this repo)


Ollama AI integration

I also included several functions that include Ollama AI in the terminal. Most of the functions rely on the ModelFile of meow-ai (pre-prompt for a serious cat personality) and have some additional prompts. The ModelFile is included in this repository.

Command Specific Function
meow-ai Opens a separate TUI created via gum (see further below) to talk to an Ollama model
ask Function that allows to talk to meow-ai in the terminal prompt line
coderkatze AI that is fetched with certain system information
explain AI that is pre-prompted to answer questions on PWSH commands
why AI that needs no input and is informed on previous error output

Gum menus

There is a function called menu that uses gum, a tool "for glamorous shell scripts" that makes it possible to create menu screens and much more that I didn't make use of.

Install gum e.g. via:

winget install charmbracelet.gum

There are a lot of other ways to create TUI menus. Here is an image of the commands function, which provides an interactive list of all commands included in the script (except neo, which is an extra software package that creates Matrix-style rain of letters).

MeowerShell commands menu

MeowerShell commands menu

I also created a menu command that shows a lot of commands while including categorized sub-pages. It also lists commands to open the REPL of Python, R and Julia...

MeowerShell categorized menu


Other information functions

a) key β€” listing some useful key shortcuts / commands

Key shortcuts screen

b) doctor β€” where a Pawdiologist checks if certain important files are available

MeowerShell doctor screen

c) ports β€” which lists currently listening TCP ports

Listening TCP ports



πŸ‘Ύ 🐈 πŸ’Ύ Have fun further exploring the MeowerShell! Anything is pawssible!! πŸˆβ€β¬› πŸ€– πŸ‘Ύ

About

Cyber-Cat themed config files for my PowerShell setup, making use of packages such as gum, oh my posh, fastfetch, a nerd font...

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages