From f4173caa3259ca930e6351da0433c2db9f6fa2fc Mon Sep 17 00:00:00 2001 From: iceyrazor Date: Sat, 24 May 2025 22:54:19 -0500 Subject: [PATCH] init --- LICENSE | 21 +++++ README.md | 11 +++ cycle_wall.sh | 11 +++ save-theme.sh | 10 +++ set-theme.sh | 70 +++++++++++++++ targets/waybar.sh | 169 ++++++++++++++++++++++++++++++++++++ targets/wezterm.sh | 28 ++++++ themes/apprentice.sh | 22 +++++ themes/bluloco-zsh-light.sh | 22 +++++ themes/forest.sh | 36 ++++++++ themes/main-theme.sh | 22 +++++ themes/rose-pine.sh | 22 +++++ themes/solarized-light.sh | 57 ++++++++++++ themes/solarized.sh | 57 ++++++++++++ themes/tokyo-night-storm.sh | 22 +++++ 15 files changed, 580 insertions(+) create mode 100755 LICENSE create mode 100644 README.md create mode 100755 cycle_wall.sh create mode 100755 save-theme.sh create mode 100755 set-theme.sh create mode 100755 targets/waybar.sh create mode 100755 targets/wezterm.sh create mode 100755 themes/apprentice.sh create mode 100755 themes/bluloco-zsh-light.sh create mode 100755 themes/forest.sh create mode 100755 themes/main-theme.sh create mode 100755 themes/rose-pine.sh create mode 100755 themes/solarized-light.sh create mode 100755 themes/solarized.sh create mode 100755 themes/tokyo-night-storm.sh diff --git a/LICENSE b/LICENSE new file mode 100755 index 0000000..d54d7cc --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025 iceyrazor + +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..010a663 --- /dev/null +++ b/README.md @@ -0,0 +1,11 @@ +a set of scripts to set the theme of things + +i could use pywall. but i wanted to make my own thing + +# usage +- ``set-theme.sh -h`` +- ``cycle-wall.sh "fullpath/to/wallpaper" "dont unload"`` will use hyprwall to cycle a wallpaper and use pywall to get the colors and set them. if the 2nd arg has anything in it. it wont unload the current wallpaper +- ``save-theme.sh "name"`` saves the colors from pywall. + +# targets +when set-theme is run. it will source everything in targets. curently its only set for wezterm and waybar. but if you want other things to be set add a new script there. diff --git a/cycle_wall.sh b/cycle_wall.sh new file mode 100755 index 0000000..7c39ba2 --- /dev/null +++ b/cycle_wall.sh @@ -0,0 +1,11 @@ +#!/bin/bash +cd "$(dirname "$0")" + +current_wal="$(hyprctl hyprpaper listactive | grep HDMI-A-1 | sed 's/HDMI-A-1 = //')" + +hyprctl hyprpaper preload $1 && hyprctl hyprpaper wallpaper "HDMI-A-1,$1" +if [ "$2" == "" ]; then + hyprctl hyprpaper unload "$current_wal" +fi + +./set-theme.sh -p diff --git a/save-theme.sh b/save-theme.sh new file mode 100755 index 0000000..2dfb7c3 --- /dev/null +++ b/save-theme.sh @@ -0,0 +1,10 @@ +#!/bin/bash +cd "$(dirname "$0")" + +if [ "$1" == "" ]; then + echo theme name not set :\< + exit 1 +fi + +cp ~/.cache/wal/colors.sh "./themes/$1.sh" +chmod u+x "./themes/$1.sh" diff --git a/set-theme.sh b/set-theme.sh new file mode 100755 index 0000000..d4d9833 --- /dev/null +++ b/set-theme.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +# CONFIG +ignore_background_color="#04000a" +highlight="#08000a" + +# END CONFIG +cd "$(dirname "$0")" + +ignore_file=0 +list_files=0 +ignore_background=0 +run_pywal=0 + +while getopts "h?lpb" opt; do + case "$opt" in + h) + printf -- " -l list themes +-p run pywall +-b ignore background and use one defined in script" + exit 0 + ;; + l) list_files=1 + ;; + b) ignore_background=1 + ;; + p) run_pywal=1 + ignore_file=1 + ;; + esac +done + +shift $((OPTIND-1)) +[ "${1:-}" = "--" ] && shift + +theme_file=$1 + +if [ $list_files == 1 ]; then + ls $1 ./themes/ + exit 0 +fi + +if [ "$theme_file" == "" ]; then + theme_file=main-theme +fi + +if [ $ignore_file == 0 ]; then + source ./themes/$theme_file.sh || exit 1 +fi + + +if [ $run_pywal == 1 ]; then + if [ $(pgrep hyprpaper) ]; then + wallpaper=$(hyprctl hyprpaper listactive | grep HDMI | sed 's/HDMI-A-1 = //') + wal -seti "$wallpaper" + . "$HOME/.cache/wal/colors.sh" + [ $ignore_background == 1 ] && background="$ignore_background_color" + else + echo NO AVAILABLE WALLPAPER ENGINE + echo please define wallpaper + exit 1 + fi +fi + +[ $ignore_background == 1 ] && background="$ignore_background_color" + +runs_dir="$(find ./targets -mindepth 1 -maxdepth 1 -type f -executable)" +for s in $runs_dir; do + source "$s" +done diff --git a/targets/waybar.sh b/targets/waybar.sh new file mode 100755 index 0000000..d2d354d --- /dev/null +++ b/targets/waybar.sh @@ -0,0 +1,169 @@ +fileout="$HOME/.config/waybar/style.css" + +printf "* { + font-family: JetbrainsMono Nerd Font; + font-size: 13px; + min-height: 0; + padding-right: 2px; + padding-left: 2px; + padding-bottom: 0px; +} + +#waybar { + background: transparent; + color: $color7; + margin: 2px 2px; +} + +#workspaces { + border-radius: 5px; + margin: 5px; + background: $color0; + margin-left: 2px; +} + +#workspaces button { + color: $color5; + border-radius: 5px; + padding: 0.4rem; +} + +#workspaces button.active { + color: $color14; + border-radius: 5px; +} + +button { + background: transparent; +} + +#workspaces button:hover { + background: $color8; + border: 0px solid transparent; +} + +#custom-music, +#tray, +#backlight, +#clock, +#battery, +#pulseaudio, +#network, +#cpu, +#memory, +#custom-lock, +#custom-power, +#custom-weather, +#custom-uptime, +#custom-rss, +#custom-disc, +#custom-mic, +#custom-docker { + background-color: $color0; + padding: 0.5rem 1rem; + margin: 5px 0; +} + +#clock { + color: $color4; + border-radius: 0px; +} + +#custom-weather { + color: $color4; + margin-left: 0.5rem; + border-radius: 5px; +} + +#battery { + color: #a6d189; +} + +#battery.charging { + color: #a6d189; +} + +#battery.warning:not(.charging) { + color: #e78284; +} + +#backlight { + color: #e5c890; +} + +#backlight, +#battery { + border-radius: 0; +} + +#pulseaudio { + color: $color9; +} + +#custom-mic{ + color: $color9; + border-radius: 5px 0px 0px 5px; +} + +#custom-docker { + color: $color4; +} + +#custom-music { + color: #ca9ee6; + border-radius: 5px; +} + +#custom-lock { + color: #babbf1; +} + +#custom-power { + margin-right: 1rem; + border-radius: 0px 5px 5px 0px; + color: #e78284; +} + +#custom-docker.docker { + color: #85c1dc; +} + +#custom-docker.docker-none { + color: #737994; +} + +#custom-docker.docker-error { + color: #e78284; +} + +#custom-weather.clear { + color: #e5c890; /* Sunny yellow */ +} + +#custom-weather.cloud { + color: #99d1db; /* Light blue */ +} + +#custom-weather.rain { + color: #8caaee; /* Blue */ +} + +#custom-weather.snow { + color: #c6d0f5; /* White-ish */ +} + +#custom-weather.thunder { + color: #ca9ee6; /* Purple */ +} + +#custom-weather.fog { + color: #b0b4bc; /* Gray */ +} + +#custom-weather.error { + color: $color0; /* Red */ +}" > "$fileout" + +sleep 0.1s +pkill waybar +nohup waybar > /dev/null 2> /dev/null < /dev/null & disown diff --git a/targets/wezterm.sh b/targets/wezterm.sh new file mode 100755 index 0000000..168c1e4 --- /dev/null +++ b/targets/wezterm.sh @@ -0,0 +1,28 @@ +fileout="$HOME/.config/wezterm/colors.lua" + +printf "return { + foreground = '$foreground', + background = '$background', + cursor_fg = '$cursor', + selection_bg = '$highlight', + ansi = { + '$color0', + '$color1', + '$color2', + '$color3', + '$color4', + '$color5', + '$color6', + '$color7', + }, + brights = { + '$color8', + '$color9', + '$color10', + '$color11', + '$color12', + '$color13', + '$color14', + '$color15', + } +}" > "$fileout" diff --git a/themes/apprentice.sh b/themes/apprentice.sh new file mode 100755 index 0000000..c5e5c6c --- /dev/null +++ b/themes/apprentice.sh @@ -0,0 +1,22 @@ +foreground='#e6e6e6' +# background='#101010' +background='#04000a' +highlight='#08000a' +cursor='#fabd2f' + +color0='#1C1C1C' +color1='#AF5F5F' +color2='#5F875F' +color3='#87875F' +color4='#5F87AF' +color5='#5F5F87' +color6='#5F8787' +color7='#6C6C6C' +color8='#444444' +color9='#FF8700' +color10='#87AF87' +color11='#FFFFAF' +color12='#8FAFD7' +color13='#8787AF' +color14='#5FAFAF' +color15='#FFFFFF' diff --git a/themes/bluloco-zsh-light.sh b/themes/bluloco-zsh-light.sh new file mode 100755 index 0000000..eb6cc99 --- /dev/null +++ b/themes/bluloco-zsh-light.sh @@ -0,0 +1,22 @@ +foreground='#e6e6e6' +# background='#101010' +background='#04000a' +highlight='#08000a' +cursor='#fabd2f' + +color0='#E4E5F1' +color1='#D52753' +color2='#23974A' +color3='#DF631C' +color4='#275FE4' +color5='#823FF1' +color6='#27618D' +color7='#000000' +color8='#5794DE' +color9='#FF6480' +color10='#3CBC66' +color11='#C5A332' +color12='#0099E1' +color13='#CE33C0' +color14='#6D93BB' +color15='#26272D' diff --git a/themes/forest.sh b/themes/forest.sh new file mode 100755 index 0000000..4fa305c --- /dev/null +++ b/themes/forest.sh @@ -0,0 +1,36 @@ +# Shell variables +# Generated by 'wal' +wallpaper='/home/iceyrazor/stuff/media/wallpapers/Screenshot_20240903_201357.png' + +# Special +background='#1b1a15' +foreground='#d7d7d7' +cursor='#d7d7d7' + +# Colors +color0='#1b1a15' +color1='#BD9E4A' +color2='#9F8C6F' +color3='#4D6E97' +color4='#6891AF' +color5='#A79B91' +color6='#93B0D2' +color7='#d7d7d7' +color8='#969696' +color9='#BD9E4A' +color10='#9F8C6F' +color11='#4D6E97' +color12='#6891AF' +color13='#A79B91' +color14='#93B0D2' +color15='#d7d7d7' + +# FZF colors +export FZF_DEFAULT_OPTS=" + $FZF_DEFAULT_OPTS + --color fg:7,bg:0,hl:1,fg+:232,bg+:1,hl+:255 + --color info:7,prompt:2,spinner:1,pointer:232,marker:1 +" + +# Fix LS_COLORS being unreadable. +export LS_COLORS="${LS_COLORS}:su=30;41:ow=30;42:st=30;44:" diff --git a/themes/main-theme.sh b/themes/main-theme.sh new file mode 100755 index 0000000..6de3822 --- /dev/null +++ b/themes/main-theme.sh @@ -0,0 +1,22 @@ +foreground='#e6e6e6' +# background='#101010' +background='#04000a' +highlight='#08000a' +cursor='#fabd2f' + +color0='#263640' +color1='#d12f2c' +color2='#819400' +color3='#b08500' +color4='#2587cc' +color5='#696ebf' +color6='#289c93' +color7='#bfbaac' +color8='#4a697d' +color9='#fa3935' +color10='#a4bd00' +color11='#d9a400' +color12='#09a2f5' +color13='#8086e8' +color14='#00c5ba' +color15='#fdf6e3' diff --git a/themes/rose-pine.sh b/themes/rose-pine.sh new file mode 100755 index 0000000..511d3ca --- /dev/null +++ b/themes/rose-pine.sh @@ -0,0 +1,22 @@ +foreground="#9bced7" +foreground_bold="#eaeaea" +background="#1f1d29" +highlight="#2f2f2f" +cursor="#524f67" + +color0="#403c58" +color1="#ea6f91" +color2="#9bced7" +color3="#f1ca93" +color4="#34738e" +color5="#c3a5e6" +color6="#eabbb9" +color7="#faebd7" +color8="#6f6e85" +color9="#ea6f91" +color10="#9bced7" +color11="#f1ca93" +color12="#34738e" +color13="#c3a5e6" +color14="#eabbb9" +color15="#ffffff" diff --git a/themes/solarized-light.sh b/themes/solarized-light.sh new file mode 100755 index 0000000..ad5ec6e --- /dev/null +++ b/themes/solarized-light.sh @@ -0,0 +1,57 @@ +base03="#002b36" +base02="#073642" +base01="#586e75" +base00="#657b83" +base0="#839496" +base1="#93a1a1" +base2="#eee8d5" +base3="#fdf6e3" +yellow="#b58900" +orange="#cb4b16" +red="#dc322f" +magenta="#d33682" +violet="#6c71c4" +blue="#268bd2" +cyan="#2aa198" +green="#859900" + +foreground=$base00 +background=$base3 +cursor=$base01 +highlight=$base2 + +color0=$base2 +color1=$red +color2=$green +color3=$yellow +color4=$blue +color5=$magenta +color6=$cyan +color7=$base02 +color8=$base3 +color9=$orange +color10=$base1 +color11=$base0 +color12=$base00 +color13=$violet +color14=$base01 +color15=$base03 + +# SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B RGB HSB +# --------- ------- ---- ------- ----------- ---------- ----------- ----------- +# base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 +# base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 +# base01 #586e75 10/7 brgreen 240 #585858 45 -07 -07 88 110 117 194 25 46 +# base00 #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195 23 51 +# base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 +# base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 +# base2 #eee8d5 7/7 white 254 #e4e4e4 92 -00 10 238 232 213 44 11 93 +# base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 +# yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 +# orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 +# red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 +# magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 +# violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 +# blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 +# cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 +# green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 diff --git a/themes/solarized.sh b/themes/solarized.sh new file mode 100755 index 0000000..bc59e37 --- /dev/null +++ b/themes/solarized.sh @@ -0,0 +1,57 @@ +base03="#002b36" +base02="#073642" +base01="#586e75" +base00="#657b83" +base0="#839496" +base1="#93a1a1" +base2="#eee8d5" +base3="#fdf6e3" +yellow="#b58900" +orange="#cb4b16" +red="#dc322f" +magenta="#d33682" +violet="#6c71c4" +blue="#268bd2" +cyan="#2aa198" +green="#859900" + +foreground=$base0 +background=$base03 +cursor=$base1 +highlight=$base02 + +color0=$base02 +color1=$red +color2=$green +color3=$yellow +color4=$blue +color5=$magenta +color6=$cyan +color7=$base2 +color8=$base03 +color9=$orange +color10=$base01 +color11=$base00 +color12=$base0 +color13=$violet +color14=$base1 +color15=$base3 + +# SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B RGB HSB +# --------- ------- ---- ------- ----------- ---------- ----------- ----------- +# base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 +# base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 +# base01 #586e75 10/7 brgreen 240 #585858 45 -07 -07 88 110 117 194 25 46 +# base00 #657b83 11/7 bryellow 241 #626262 50 -07 -07 101 123 131 195 23 51 +# base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 +# base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 +# base2 #eee8d5 7/7 white 254 #e4e4e4 92 -00 10 238 232 213 44 11 93 +# base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 +# yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 +# orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 +# red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 +# magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 +# violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 +# blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 +# cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 +# green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 diff --git a/themes/tokyo-night-storm.sh b/themes/tokyo-night-storm.sh new file mode 100755 index 0000000..b7d5b5e --- /dev/null +++ b/themes/tokyo-night-storm.sh @@ -0,0 +1,22 @@ +foreground='#a9b1d6' +# background='#101010' +background='#1a1b26' +highlight='#2a2b36' +cursor='#fabd2f' + +color0='#32344a' +color1='#f7768e' +color2='#9ece6a' +color3='#e0af68' +color4='#7aa2f7' +color5='#ad8ee6' +color6='#449dab' +color7='#787c99' +color8='#444b6a' +color9='#ff7a93' +color10='#b9f27c' +color11='#ff9e64' +color12='#7da6ff' +color13='#bb9af7' +color14='#0db9d7' +color15='#acb0d0'