initial commit
This commit is contained in:
commit
727c1cbf17
9 changed files with 469 additions and 0 deletions
103
.gitignore
vendored
Normal file
103
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# Created by https://www.toptal.com/developers/gitignore/api/vim,emacs,osx
|
||||
# Edit at https://www.toptal.com/developers/gitignore?templates=vim,emacs,osx
|
||||
|
||||
### Emacs ###
|
||||
# -*- mode: gitignore; -*-
|
||||
*~
|
||||
\#*\#
|
||||
/.emacs.desktop
|
||||
/.emacs.desktop.lock
|
||||
*.elc
|
||||
auto-save-list
|
||||
tramp
|
||||
.\#*
|
||||
|
||||
# Org-mode
|
||||
.org-id-locations
|
||||
*_archive
|
||||
|
||||
# flymake-mode
|
||||
*_flymake.*
|
||||
|
||||
# eshell files
|
||||
/eshell/history
|
||||
/eshell/lastdir
|
||||
|
||||
# elpa packages
|
||||
/elpa/
|
||||
|
||||
# reftex files
|
||||
*.rel
|
||||
|
||||
# AUCTeX auto folder
|
||||
/auto/
|
||||
|
||||
# cask packages
|
||||
.cask/
|
||||
dist/
|
||||
|
||||
# Flycheck
|
||||
flycheck_*.el
|
||||
|
||||
# server auth directory
|
||||
/server/
|
||||
|
||||
# projectiles files
|
||||
.projectile
|
||||
|
||||
# directory configuration
|
||||
.dir-locals.el
|
||||
|
||||
# network security
|
||||
/network-security.data
|
||||
|
||||
|
||||
### OSX ###
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
### Vim ###
|
||||
# Swap
|
||||
[._]*.s[a-v][a-z]
|
||||
!*.svg # comment out if you don't need vector files
|
||||
[._]*.sw[a-p]
|
||||
[._]s[a-rt-v][a-z]
|
||||
[._]ss[a-gi-z]
|
||||
[._]sw[a-p]
|
||||
|
||||
# Session
|
||||
Session.vim
|
||||
Sessionx.vim
|
||||
|
||||
# Temporary
|
||||
.netrwhist
|
||||
# Auto-generated tag files
|
||||
tags
|
||||
# Persistent undo
|
||||
[._]*.un~
|
||||
|
||||
# End of https://www.toptal.com/developers/gitignore/api/vim,emacs,osx
|
||||
0
README.md
Normal file
0
README.md
Normal file
21
bin/install.sh
Normal file
21
bin/install.sh
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/bash
|
||||
|
||||
target="$HOME/.bashrc"
|
||||
|
||||
config_dir="$HOME/.config/prompt-theme"
|
||||
config_file="$config_dir/config.yaml"
|
||||
source_line="source $config_dir/bin/prompt-theme.sh"
|
||||
|
||||
if ! grep -Fxq "$source_line" "$target"; then
|
||||
echo "$source_line" >> "$target"
|
||||
echo "✅ Added prompt-theme to $target"
|
||||
else
|
||||
echo "ℹ️ prompt-theme is already sourced in $target"
|
||||
fi
|
||||
|
||||
# copy default config file if none exists
|
||||
if [[ ! -f "$config_file" ]]; then
|
||||
cp "$config_dir/share/_config.yaml" "$config_file"
|
||||
else
|
||||
echo "ℹ️ Existing config.yaml found at $config_file (unchanged)"
|
||||
fi
|
||||
72
bin/prompt-theme.sh
Executable file
72
bin/prompt-theme.sh
Executable file
|
|
@ -0,0 +1,72 @@
|
|||
#!/bin/bash
|
||||
|
||||
#config_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
config_dir="$HOME/.config/prompt-theme/"
|
||||
config_file="$config_dir/config.yaml"
|
||||
shell_colors="$config_dir/dircolors"
|
||||
|
||||
# Accept theme as CLI arg, fallback to config
|
||||
theme="$1"
|
||||
|
||||
# if no parameter given, look for default in config.yaml
|
||||
# use 'yq' to parse the config.yaml file
|
||||
|
||||
# Ensure yq is installed
|
||||
if ! command -v yq >/dev/null 2>&1; then
|
||||
echo "⚠️ Warning: 'yq' is not installed. Cannot parse $config_file."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# If no theme given, attempt to get it from config
|
||||
if [[ -z "$theme" && -f "$config_file" ]]; then
|
||||
theme=$(yq '.default' "$config_file")
|
||||
fi
|
||||
|
||||
# Fail silently if no theme could be determined
|
||||
if [[ -z "$theme" ]]; then
|
||||
echo "⚠️ Warning: No theme specified and no default set in config file."
|
||||
return 0
|
||||
fi
|
||||
|
||||
# Determine which dircolors command to use
|
||||
# give a warning and fail silently if not found
|
||||
if [[ "$(uname)" == "Darwin" ]]; then
|
||||
if command -v gdircolors >/dev/null 2>&1; then
|
||||
dircolors_cmd="gdircolors"
|
||||
else
|
||||
echo "❌ Error: gdircolors not found. Please install via 'brew install coreutils'."
|
||||
return 0
|
||||
fi
|
||||
else
|
||||
if command -v dircolors >/dev/null 2>&1; then
|
||||
dircolors_cmd="dircolors"
|
||||
else
|
||||
echo "❌ Error: dircolors not found. Please install coreutils."
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
|
||||
# Apply dircolors theme or fallback
|
||||
if [[ -r "$shell_colors/$theme" ]]; then
|
||||
eval "$($dircolors_cmd -b "$shell_colors/$theme")"
|
||||
elif [[ -r "$HOME/.dircolors" ]]; then
|
||||
eval "$($dircolors_cmd -b "$HOME/.dircolors")"
|
||||
else
|
||||
echo "⚠️ Warning: No readable dircolors file found for '$theme' or ~/.dircolors. Using default ls colors."
|
||||
fi
|
||||
|
||||
# get prompt from config.yaml if available
|
||||
if [[ -f "$config_file" ]]; then
|
||||
prompt=$(yq ".prompts.$theme" "$config_file")
|
||||
else
|
||||
prompt=""
|
||||
fi
|
||||
|
||||
# apply prompt or fallback
|
||||
if [[ -n "$prompt" && "$prompt" != "null" ]]; then
|
||||
export PS1="$prompt"
|
||||
else
|
||||
echo "⚠️ Warning: No prompt found for theme '$theme'. Using fallback."
|
||||
export PS1='\[\033[01;34m\]\u@\h \[\033[01;32m\]\w\[\033[00m\] \$ '
|
||||
fi
|
||||
|
||||
8
config.yaml
Normal file
8
config.yaml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
default: bone
|
||||
|
||||
prompts:
|
||||
default: '\[\033[01;34m\]\u@\h \[\033[01;32m\]\w\[\033[00m\] \$ '
|
||||
bone: '\[\033[38;5;250m\]\u@\h \[\033[38;5;160m\]\w\[\033[0m\] \$ '
|
||||
nature: '\[\033[38;5;100m\]\u@\h \[\033[38;5;65m\]\w\[\033[0m\] \$ '
|
||||
ayu-mirage: '\[\033[38;5;179m\]\u@\h \[\033[38;5;110m\]\w\[\033[0m\] \$ '
|
||||
|
||||
103
dircolors/ayu-mirage
Normal file
103
dircolors/ayu-mirage
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
# ayu-mirage dircolors
|
||||
# Custom dircolors for Ronny
|
||||
|
||||
TERM xterm-256color
|
||||
|
||||
# Normal text
|
||||
NORMAL 00
|
||||
FILE 00
|
||||
DIR 01;38;5;110
|
||||
LINK 01;38;5;180
|
||||
SYMLINK 01;38;5;180
|
||||
FIFO 38;5;240
|
||||
SOCK 38;5;243
|
||||
BLK 38;5;179
|
||||
CHR 38;5;179
|
||||
ORPHAN 38;5;124
|
||||
MISSING 38;5;124
|
||||
|
||||
# Executables
|
||||
EXEC 01;38;5;215
|
||||
|
||||
# Archives
|
||||
.7z 38;5;174
|
||||
.tar 38;5;174
|
||||
.tgz 38;5;174
|
||||
.tbz 38;5;174
|
||||
.tbz2 38;5;174
|
||||
.txz 38;5;174
|
||||
.zip 38;5;174
|
||||
.rar 38;5;174
|
||||
.gz 38;5;174
|
||||
.bz2 38;5;174
|
||||
.xz 38;5;174
|
||||
.zst 38;5;174
|
||||
.lzma 38;5;174
|
||||
.lzo 38;5;174
|
||||
.apk 38;5;174
|
||||
|
||||
# Images
|
||||
.jpg 38;5;139
|
||||
.jpeg 38;5;139
|
||||
.png 38;5;139
|
||||
.gif 38;5;139
|
||||
.bmp 38;5;139
|
||||
.svg 38;5;139
|
||||
.webp 38;5;139
|
||||
.tiff 38;5;139
|
||||
.xcf 38;5;139
|
||||
|
||||
# Audio
|
||||
.mp3 38;5;109
|
||||
.wav 38;5;109
|
||||
.flac 38;5;109
|
||||
.ogg 38;5;109
|
||||
.opus 38;5;109
|
||||
.m4a 38;5;109
|
||||
|
||||
# Video
|
||||
.mp4 38;5;109
|
||||
.mkv 38;5;109
|
||||
.mov 38;5;109
|
||||
.webm 38;5;109
|
||||
.avi 38;5;109
|
||||
|
||||
# Code & Config
|
||||
.sh 01;38;5;215
|
||||
.py 01;38;5;151
|
||||
.js 01;38;5;151
|
||||
.ts 01;38;5;151
|
||||
.rs 01;38;5;151
|
||||
.go 01;38;5;151
|
||||
.c 01;38;5;151
|
||||
.cpp 01;38;5;151
|
||||
.h 01;38;5;151
|
||||
.hpp 01;38;5;151
|
||||
.html 01;38;5;109
|
||||
.css 01;38;5;182
|
||||
.scss 01;38;5;182
|
||||
.json 01;38;5;109
|
||||
.yaml 01;38;5;109
|
||||
.yml 01;38;5;109
|
||||
.toml 01;38;5;109
|
||||
.ini 01;38;5;109
|
||||
.conf 01;38;5;109
|
||||
.env 01;38;5;109
|
||||
.lock 38;5;240
|
||||
|
||||
# Docs
|
||||
.md 38;5;182
|
||||
.txt 38;5;182
|
||||
.rst 38;5;182
|
||||
.pdf 38;5;182
|
||||
.doc 38;5;182
|
||||
.docx 38;5;182
|
||||
.odt 38;5;182
|
||||
|
||||
# Backups, logs, junk
|
||||
*~ 38;5;240
|
||||
.bak 38;5;240
|
||||
.old 38;5;240
|
||||
.log 38;5;240
|
||||
.swp 38;5;240
|
||||
.tmp 38;5;240
|
||||
77
dircolors/bone
Normal file
77
dircolors/bone
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Configuration for LS_COLORS: Theme = Bone Expanded
|
||||
TERM xterm-256color
|
||||
RESET 0
|
||||
|
||||
# Directories and Links
|
||||
DIR 38;5;180 # pale tan bone
|
||||
LINK 01;38;5;181 # slightly pinkish clay (symbolic links)
|
||||
SYMLINK 01;38;5;181
|
||||
ORPHAN 01;38;5;124 # warning red for broken links
|
||||
|
||||
# Executables and Permissions
|
||||
EXEC 01;38;5;144 # muted green-grey ivory
|
||||
SETUID 37;41
|
||||
SETGID 30;43
|
||||
STICKY_OTHER_WRITABLE 36;40
|
||||
|
||||
# Devices and Pipes
|
||||
FIFO 38;5;245 # dull pipe-gray
|
||||
SOCK 38;5;248 # slightly warmer socket tone
|
||||
BLK 38;5;146 # chalk
|
||||
CHR 38;5;146
|
||||
|
||||
# Archives
|
||||
.tar 38;5;137 # old dusted rose
|
||||
.tgz 38;5;137
|
||||
.zip 38;5;137
|
||||
.7z 38;5;137
|
||||
.rar 38;5;137
|
||||
.gz 38;5;137
|
||||
.bz2 38;5;137
|
||||
.xz 38;5;137
|
||||
.zst 38;5;137
|
||||
|
||||
# Text & Config Files
|
||||
.txt 38;5;250 # dry bone
|
||||
.md 38;5;251 # pale parchment
|
||||
.conf 38;5;145 # old wall paint
|
||||
.ini 38;5;145
|
||||
.yaml 38;5;145
|
||||
.yml 38;5;145
|
||||
.json 38;5;145
|
||||
.env 38;5;145
|
||||
|
||||
# Source Code
|
||||
.py 38;5;180 # clean structure
|
||||
.js 38;5;182 # ash-ivory green
|
||||
.ts 38;5;182
|
||||
.sh 38;5;143 # antique olive
|
||||
.bash 38;5;143
|
||||
.html 38;5;181 # soft clay
|
||||
.css 38;5;180 # bone-yellow
|
||||
.scss 38;5;180
|
||||
.java 38;5;145 # structural beige
|
||||
.cpp 38;5;145
|
||||
.c 38;5;145
|
||||
.go 38;5;109 # dry plant green
|
||||
.rs 38;5;95 # deep ochre
|
||||
|
||||
# Media Files
|
||||
.jpg 38;5;139 # warm desaturated photo
|
||||
.jpeg 38;5;139
|
||||
.png 38;5;139
|
||||
.svg 38;5;139
|
||||
.gif 38;5;139
|
||||
.mp4 38;5;174 # soft highlight red
|
||||
.webm 38;5;174
|
||||
.mp3 38;5;146 # polished bone
|
||||
.wav 38;5;146
|
||||
.ogg 38;5;146
|
||||
.flac 38;5;146
|
||||
|
||||
# Backup & Temp
|
||||
*~ 38;5;245
|
||||
.bak 38;5;245
|
||||
.swp 38;5;245
|
||||
.tmp 38;5;245
|
||||
.old 38;5;245
|
||||
77
dircolors/nature
Normal file
77
dircolors/nature
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
# Configuration for LS_COLORS: Theme = Nature Expanded
|
||||
TERM xterm-256color
|
||||
RESET 0
|
||||
|
||||
# Directories and Links
|
||||
DIR 38;5;114 # leafy green
|
||||
LINK 01;38;5;180 # bark/twig brown (symbolic/hard links)
|
||||
SYMLINK 01;38;5;180
|
||||
ORPHAN 01;38;5;124 # decayed red-brown for broken links
|
||||
|
||||
# Executables and Permissions
|
||||
EXEC 01;38;5;142 # mossy yellow-green
|
||||
SETUID 37;41
|
||||
SETGID 30;43
|
||||
STICKY_OTHER_WRITABLE 36;40
|
||||
|
||||
# Devices and Pipes
|
||||
FIFO 38;5;95 # earth pipe – muted red clay
|
||||
SOCK 38;5;101 # underground stone blue
|
||||
BLK 01;38;5;137 # light bark
|
||||
CHR 01;38;5;137
|
||||
|
||||
# Archives
|
||||
.tar 38;5;131 # dusty red-brown
|
||||
.tgz 38;5;131
|
||||
.zip 38;5;131
|
||||
.7z 38;5;131
|
||||
.rar 38;5;131
|
||||
.gz 38;5;131
|
||||
.bz2 38;5;131
|
||||
.xz 38;5;131
|
||||
.zst 38;5;131
|
||||
|
||||
# Text & Config Files
|
||||
.txt 38;5;106 # fresh leaf
|
||||
.md 38;5;108 # stem green
|
||||
.conf 38;5;109 # spring leaf
|
||||
.ini 38;5;109
|
||||
.yaml 38;5;109
|
||||
.yml 38;5;109
|
||||
.json 38;5;109
|
||||
.env 38;5;109
|
||||
|
||||
# Source Code
|
||||
.py 38;5;113 # python ivy
|
||||
.js 38;5;150 # soft moss
|
||||
.ts 38;5;150
|
||||
.sh 38;5;142 # shell ferns
|
||||
.bash 38;5;142
|
||||
.html 38;5;180 # warm bark
|
||||
.css 38;5;179 # golden straw
|
||||
.scss 38;5;179
|
||||
.java 38;5;108 # jungle trunk
|
||||
.cpp 38;5;108
|
||||
.c 38;5;108
|
||||
.go 38;5;107 # damp forest floor
|
||||
.rs 38;5;94 # rich soil
|
||||
|
||||
# Media Files
|
||||
.jpg 38;5;138 # treebark
|
||||
.jpeg 38;5;138
|
||||
.png 38;5;138
|
||||
.svg 38;5;138
|
||||
.gif 38;5;138
|
||||
.mp4 38;5;173 # sunset orange
|
||||
.webm 38;5;173
|
||||
.mp3 38;5;109 # melodic green
|
||||
.wav 38;5;109
|
||||
.ogg 38;5;109
|
||||
.flac 38;5;109
|
||||
|
||||
# Backup & Temp
|
||||
*~ 38;5;240
|
||||
.bak 38;5;240
|
||||
.swp 38;5;240
|
||||
.tmp 38;5;240
|
||||
.old 38;5;240
|
||||
8
share/_config_yaml
Normal file
8
share/_config_yaml
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
default: ayu-mirage
|
||||
|
||||
prompts:
|
||||
default: '\[\033[01;34m\]\u@\h \[\033[01;32m\]\w\[\033[00m\] \$ '
|
||||
bone: '\[\033[38;5;250m\]\u@\h \[\033[38;5;160m\]\w\[\033[0m\] \$ '
|
||||
nature: '\[\033[38;5;100m\]\u@\h \[\033[38;5;65m\]\w\[\033[0m\] \$ '
|
||||
ayu-mirage: '\[\033[38;5;179m\]\u@\h \[\033[38;5;110m\]\w\[\033[0m\] \$ '
|
||||
|
||||
Loading…
Add table
Reference in a new issue