Skip to content

Instantly share code, notes, and snippets.

@dvessel
Created January 1, 2021 18:27
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dvessel/f442d09cba7a9f70b0fdef12fd9bacfc to your computer and use it in GitHub Desktop.
Save dvessel/f442d09cba7a9f70b0fdef12fd9bacfc to your computer and use it in GitHub Desktop.
Shell functions to manage OpenEmu shaders. Copy into your .zshrc file. Requires fzf. Not tested in bash.
# OpenEmu shader functions. Requires fzf.
function oeshader.search {
defaults find videoShader.openemu | grep $@
}
function oeshader.copy {
local source=`oeshader.ls ${@:-1} | fzf --header="Select source:"`
if [[ -n $source ]]; then
oeshader.search -oE "system\.[a-z0-9]*" | sort -u |
fzf -m --header="Apply settings from \"${source##*.}\"." |
while read -r k; do
defaults write org.openemu.OpenEmu videoShader.openemu.$k.${source##*.}.params\
-string `defaults read org.openemu.OpenEmu videoShader.openemu.$source.params`
echo "added $k.${source##*.}"
done
fi
}
function oeshader.clear {
oeshader.ls ${@:-1} | fzf -m --header="Clear item(s):" |
while read -r k; do
defaults delete org.openemu.OpenEmu videoShader.openemu.$k.params
echo "cleared $k"
done
}
function oeshader.ls {
local i=${@:-1}
local options=( system preset \(preset\|system\) )
oeshader.search --color=never -oE "$options[$i](\.[^.]*){2}"
}
function oeshader.ls-all {
oeshader.ls 3
}
function oeshader.ls-preset {
oeshader.ls 2
}
function oeshader.apply-preset {
oeshader.copy 2
}
# Optionally pass in the label.
# No validation involved. Stick to alphanumeric characters and spaces. Dot's are a big no no.
function oeshader.add-preset {
local source=`oeshader.ls 3 | fzf --header="Select source:"`
local k=${@:-default}
if [[ -n $source ]]; then
defaults write org.openemu.OpenEmu videoShader.openemu.preset.$k.${source##*.}.params\
-string `defaults read org.openemu.OpenEmu videoShader.openemu.$source.params`
echo "added preset.$k.${source##*.}"
fi
}
function oeshader.clear-preset {
oeshader.clear 2
}
@dvessel
Copy link
Author

dvessel commented Jan 2, 2021

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment