[sh] Remove dimswitch,clean homedir,improve exist
Removed dimswitch script. I liked it but it has been utterly superseded by styler; if wanting to switch light and dark I can just switch to light or dark base16 theme and do not have to rely on alacritty config file hacking through dimswitch (well, now just through styler, yay.) exist script will print message to stdout even if it prints to notify, this makes more sense since now passing a loudness factor just adds it to the message, instead of replacing printed message with libnotify. Added stow ignores to top-level files. Not entirely sure if it is needed, but they were linked on my system and the change shouldn't hurt.
This commit is contained in:
parent
92a01d99ee
commit
393dd4e042
3 changed files with 4 additions and 199 deletions
3
.stowrc
3
.stowrc
|
@ -1 +1,4 @@
|
|||
--target=~
|
||||
--ignore='^.gitlab-ci.yml$'
|
||||
--ignore='^.stowrc$'
|
||||
--ignore='^.githooks$'
|
||||
|
|
|
@ -1,197 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
#
|
||||
#==============================================================================
|
||||
# FILE: dimswitch
|
||||
# USAGE: dimswitch [-v] [-h] [-i [application]] [-t theme name] dark/light
|
||||
#
|
||||
# DESCRIPTION:
|
||||
# Toggle alacritty terminal, and between dark
|
||||
# or light mode (if correctly set up in the alacritty.yml file), see REQUIREMENTS
|
||||
# The default action is to toggle between light and dark mode.
|
||||
#
|
||||
# OPTIONS: see function ’usage’ below
|
||||
#
|
||||
# REQUIREMENTS:
|
||||
# The alacritty.yml file needs to have the various color-schemes set up as yaml
|
||||
# anchors. The script itself will then switch the referenced anchor in the actual
|
||||
# `color` key of the file. For an example alacritty.yml refer to its wiki, or
|
||||
# this file: https://gitlab.com/marty-oehme/dotfiles/blob/master/.config/alacritty/alacritty.yml
|
||||
#
|
||||
# NOTES: This script is in active development and its functionality and options
|
||||
# are very much undergoing changes. For now, do not rely on its options
|
||||
# staying stable.
|
||||
#
|
||||
# AUTHOR:
|
||||
# Marty Oehme
|
||||
#
|
||||
# VERSION:
|
||||
ld_version="0.1.1"
|
||||
#==============================================================================
|
||||
|
||||
#=== environment variables ====================================================
|
||||
# DESCRIPTION: Environment variables to configure the script
|
||||
#==============================================================================
|
||||
|
||||
# Sets the programs to be dimmed
|
||||
if [ -z "$DIM_PROGRAMS" ]; then DIM_PROGRAMS=(alacritty); fi
|
||||
|
||||
# Sets the path(s) to the alacritty configuration file
|
||||
if [ -z "$DIM_ALACRITTY_CONF" ]; then DIM_ALACRITTY_CONF="$HOME/.config/alacritty/alacritty.yml:$HOME/.alacritty.yml"; fi
|
||||
|
||||
#=== main function ============================================================
|
||||
# NAME: main
|
||||
# DESCRIPTION: Display usage information for this script.
|
||||
# PARAMETERS: see usage function
|
||||
#==============================================================================
|
||||
main() {
|
||||
local cmd=""
|
||||
local ret=0
|
||||
|
||||
case "$1" in
|
||||
-v | --version)
|
||||
cmd="version"
|
||||
;;
|
||||
-h | --help)
|
||||
cmd="usage"
|
||||
;;
|
||||
-i | --info)
|
||||
cmd="printinfo"
|
||||
;;
|
||||
"")
|
||||
cmd="toggle"
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
|
||||
$cmd "$@"
|
||||
ret=$((ret + $?))
|
||||
exit $ret
|
||||
}
|
||||
|
||||
#=== usage function ===========================================================
|
||||
# NAME: usage
|
||||
# DESCRIPTION: Display usage information for this script.
|
||||
#==============================================================================
|
||||
usage() {
|
||||
local name
|
||||
name=$(basename "$0")
|
||||
cat <<EOF
|
||||
$name is a command line tool to toggle alacritty terminal themes.
|
||||
|
||||
Usage:
|
||||
$name # Toggle theme between dark and light mode
|
||||
$name # Set to specified alacritty theme
|
||||
$name -i | --info # Print out programs to be dimmed
|
||||
$name -h | --help # Print this usage information
|
||||
$name -v | --version # Print version information
|
||||
EOF
|
||||
}
|
||||
|
||||
#=== theme info function=======================================================
|
||||
# NAME: printinfo
|
||||
# DESCRIPTION: Displays the programs to be dimmed, and the path to their
|
||||
# configuration files. Currently only alacritty is implemented.
|
||||
#==============================================================================
|
||||
printinfo() {
|
||||
for prog in "${DIM_PROGRAMS[@]}"; do
|
||||
local file
|
||||
file=$(getConfFile "$prog")
|
||||
if [ -z "$file" ]; then
|
||||
file="No associated configuration file found."
|
||||
fi
|
||||
echo "$prog" "-" "$file"
|
||||
done
|
||||
}
|
||||
|
||||
#=== toggle dimming function===================================================
|
||||
# NAME: toggle
|
||||
# DESCRIPTION: Toggles between dark and light mode in alacritty.
|
||||
#==============================================================================
|
||||
toggle() {
|
||||
local file
|
||||
file=$(getConfFile "alacritty")
|
||||
if [ -z "$file" ]; then
|
||||
exit 1
|
||||
fi
|
||||
local line
|
||||
line=$(_findline "$file")
|
||||
if [ -z "$line" ]; then exit 1; fi
|
||||
|
||||
if [[ -n $(_isdark "$file" "$line") ]]; then
|
||||
_replace "$line" "$file" dark light
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ -n $(_islight "$file" "$line") ]]; then
|
||||
_replace "$line" "$file" light dark
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Did not find a light/dark theme to toggle in alacritty."
|
||||
exit 1
|
||||
}
|
||||
|
||||
#=== version function==========================================================
|
||||
# NAME: version
|
||||
# DESCRIPTION: Display the current version of the script.
|
||||
#==============================================================================
|
||||
version() {
|
||||
local name
|
||||
name=$(basename "$0")
|
||||
cat <<EOF
|
||||
$name $ld_version
|
||||
EOF
|
||||
}
|
||||
|
||||
#=== get program's config file function =======================================
|
||||
# NAME: getConfFile
|
||||
# DESCRIPTION: Return the configuration file of the selected program.
|
||||
# PARAMETER 1: [String] Name of Program
|
||||
#==============================================================================
|
||||
getConfFile() {
|
||||
local conf
|
||||
case $1 in
|
||||
alacritty)
|
||||
conf=$(_findfile "$DIM_ALACRITTY_CONF")
|
||||
;;
|
||||
esac
|
||||
|
||||
echo "$conf"
|
||||
}
|
||||
|
||||
#=== verify file exists function ==============================================
|
||||
# NAME: _findfile
|
||||
# DESCRIPTION: Splits the string passed in into an array of paths and finds
|
||||
# the first existing file. Return nothing if no file found.
|
||||
# PARAMETER 1: [String] of paths, delimited by ":"
|
||||
#==============================================================================
|
||||
_findfile() {
|
||||
IFS=':' read -ra paths <<<"$1"
|
||||
for i in "${paths[@]}"; do
|
||||
if [ -f "$i" ]; then
|
||||
echo "$i"
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
# function signature: _findline FILE
|
||||
_findline() {
|
||||
sed -n '/^colors: .*$/=' "$1"
|
||||
}
|
||||
|
||||
# function signature: _islight LINENUMBER FILE
|
||||
_islight() {
|
||||
sed -n "$2p" "$1" | grep -e "-light$"
|
||||
}
|
||||
|
||||
# function signature: _isdark LINENUMBER FILE
|
||||
_isdark() {
|
||||
sed -n "$2p" "$1" | grep -e "-dark$"
|
||||
}
|
||||
|
||||
# function signature: _replace LINENUMBER FILE OLD NEW
|
||||
_replace() {
|
||||
sed -i "$1 s/-$3$/-$4/" "$2"
|
||||
}
|
||||
|
||||
main "$@"
|
|
@ -9,9 +9,8 @@ else
|
|||
if [ -n "$2" ]; then
|
||||
if command -v notify-send >/dev/null; then
|
||||
notify-send "📦 $1" --urgency="$2" "must be installed for this function."
|
||||
else
|
||||
printf "%s: 📦 %s must be installed for this function.\n" "$2" "$1"
|
||||
fi
|
||||
printf "%s: 📦 %s must be installed for this function.\n" "$2" "$1"
|
||||
fi
|
||||
exit 1
|
||||
fi
|
||||
|
|
Loading…
Reference in a new issue