-
-
Notifications
You must be signed in to change notification settings - Fork 6
lzyide_config
Ronald Record edited this page Sep 8, 2023
·
6 revisions
The lzyide_config.sh
script is installed in ~/.config/nvim-Lazyman/scripts/
.
This script is used to display the nvim-LazyIde
configuration sub-menus in lazyman
.
The source code for the lzyide_config.sh
script:
#!/usr/bin/env bash
#
# lzyide_config - configure the LazyIde Neovim configurations
#
# Written by Ronald Record <ronaldrecord@gmail.com>, Summer 2023
#
# shellcheck disable=SC1090,SC2001,SC2002,SC2016,SC2006,SC2086,SC2181,SC2129,SC2059,SC2076
LAZYMAN="nvim-Lazyman"
LMANDIR="${HOME}/.config/${LAZYMAN}"
LZYIDE="nvim-LazyIde"
LIDEDIR="${HOME}/.config/${LZYIDE}"
NVIMCONF="${LIDEDIR}/lua/configuration.lua"
CONFBACK="${LIDEDIR}/lua/configuration-orig.lua"
GET_CONF="${LMANDIR}/scripts/get_conf.lua"
FONTDIR="${LMANDIR}/scripts/figlet-fonts"
LOLCAT="lolcat"
BOLD=$(tput bold 2>/dev/null)
NORM=$(tput sgr0 2>/dev/null)
PLEASE="Please enter your choice"
USEGUI=
# Array with font names
fonts=("Slant" "Shadow" "Small" "Script" "Standard")
# Supported themes
themes=("nightfox" "tokyonight" "dracula" "kanagawa" "catppuccin" "tundra"
"onedarkpro" "everforest" "monokai-pro")
# Themes with styles
styled_themes=("nightfox" "tokyonight" "dracula" "kanagawa" "catppuccin"
"onedarkpro" "monokai-pro")
lsp_enabled_table=()
for_enabled_table=()
neorg_notes_table=()
usage() {
printf "\nUsage: lzyide_config [-d] [-i] [-u]"
printf "\nWhere:"
printf "\n -d specifies debug mode"
printf "\n -i indicates initialize conditional plugin configurations and exit"
printf "\n -u displays this usage message and exits"
exit 1
}
prompt_continue() {
printf "\nPress <Enter> to continue ... "
read -r yn
}
set_haves() {
have_fzf=$(type -p fzf)
have_figlet=$(type -p figlet)
have_lolcat=$(type -p lolcat)
have_rich=$(type -p rich)
}
show_figlet() {
if [ "$1" ]; then
FIG_TEXT="$1"
else
FIG_TEXT="LazyIde"
fi
# Seed random generator
RANDOM=$$$(date +%s)
USE_FONT=${fonts[$RANDOM % ${#fonts[@]}]}
[ "${USE_FONT}" ] || USE_FONT="standard"
if [ "${have_lolcat}" ]; then
figlet -c -d "${FONTDIR}" -f "${USE_FONT}" -k -t ${FIG_TEXT} 2>/dev/null | ${LOLCAT}
else
figlet -c -d "${FONTDIR}" -f "${USE_FONT}" -k -t ${FIG_TEXT} 2>/dev/null
fi
}
get_conf_value() {
confname="$1"
confval=$(NVIM_APPNAME="nvim-LazyIde" nvim -l ${GET_CONF} ${confname} 2>&1)
echo "${confval}"
}
set_conf_value() {
confname="$1"
confval="$2"
grep "conf.${confname} =" "${NVIMCONF}" >/dev/null && {
case ${confval} in
true | false | [0-9])
cat "${NVIMCONF}" \
| sed -e "s/conf.${confname} =.*/conf.${confname} = ${confval}/" >/tmp/nvim$$
;;
*)
cat "${NVIMCONF}" \
| sed -e "s/conf.${confname} =.*/conf.${confname} = \"${confval}\"/" >/tmp/nvim$$
;;
esac
cp /tmp/nvim$$ "${NVIMCONF}"
rm -f /tmp/nvim$$
}
}
set_conf_table() {
marker="$1"
confval="$2"
action="$3"
case ${confval} in
ccls)
case ${action} in
disable)
set_conf_value "enable_ccls" "false"
;;
enable)
set_conf_value "enable_ccls" "true"
;;
esac
;;
clangd)
case ${action} in
disable)
set_conf_value "enable_clangd" "false"
;;
enable)
set_conf_value "enable_clangd" "true"
;;
esac
;;
*)
grep "${marker}" "${NVIMCONF}" | grep "${confval}" >/dev/null && {
case ${action} in
disable)
cat "${NVIMCONF}" \
| sed -E "s/ \"${confval}\",[[:space:]]+--[[:space:]]+${marker}/ -- \"${confval}\", -- ${marker}/" >/tmp/nvim$$
;;
enable)
cat "${NVIMCONF}" \
| sed -E "s/-- \"${confval}\",[[:space:]]+--[[:space:]]+${marker}/\"${confval}\", -- ${marker}/" >/tmp/nvim$$
;;
esac
cp /tmp/nvim$$ "${NVIMCONF}"
rm -f /tmp/nvim$$
}
;;
esac
}
set_waka_opt() {
waka="false"
[ -f "${HOME}"/.wakatime.cfg ] && {
grep api_key "${HOME}"/.wakatime.cfg >/dev/null && waka="true"
}
set_conf_value "enable_wakatime" "${waka}"
}
select_theme_style() {
selected_style="${theme_style}"
case "$1" in
kanagawa)
styles=("wave" "dragon" "lotus")
;;
tokyonight)
styles=("night" "storm" "day" "moon")
;;
onedarkpro)
styles=("onedark" "onelight" "onedark_vivid" "onedark_dark")
;;
catppuccin)
styles=("latte" "frappe" "macchiato" "mocha" "custom")
;;
dracula)
styles=("blood" "magic" "soft" "default")
;;
nightfox)
styles=("carbonfox" "dawnfox" "dayfox" "duskfox" "nightfox" "nordfox" "terafox")
;;
monokai-pro)
styles=("classic" "octagon" "pro" "machine" "ristretto" "spectrum")
;;
*)
styles=()
;;
esac
if [ "${have_fzf}" ]; then
choice=$(printf "%s\n" "${styles[@]}" | fzf --prompt=" Neovim Theme Style " --layout=reverse --border --exit-0)
[ "${choice}" == "${theme_style}" ] || {
if [[ " ${styles[*]} " =~ " ${choice} " ]]; then
set_conf_value "theme_style" "${choice}"
fi
}
else
set_haves
while true; do
confmenu=
[ "$debug" ] || tput reset
printf "\n"
if [ "${have_rich}" ]; then
rich "[cyan]Select Theme Style[/cyan]" -p -a rounded -c -C
else
[ "${have_figlet}" ] && show_figlet "Style"
fi
printf "\n"
PS3="${BOLD}${PLEASE} (numeric or text, 'h' for help): ${NORM}"
options=()
for sty in "${styles[@]}"; do
if [ "${theme_style}" == "$sty" ]; then
options+=("$sty ")
else
options+=("$sty")
fi
done
[ "${theme_style}" == "${selected_style}" ] || {
options+=("Set style to ${theme_style}")
}
options+=("Lazyman Config")
[ -f ${HOME}/.config/nvim-Webdev/lua/configuration.lua ] && {
options+=("Webdev Menu")
}
options+=("Configuration Menu" "Main Menu" "Quit")
select opt in "${options[@]}"; do
case "$opt,$REPLY" in
"h",* | *,"h" | "H",* | *,"H" | "help",* | *,"help" | "Help",* | *,"Help")
[ "$debug" ] || tput reset
printf "\n"
man lazyman
break
;;
"wave",* | *,"wave")
theme_style="wave"
break
;;
"dragon",* | *,"dragon")
theme_style="dragon"
break
;;
"lotus",* | *,"lotus")
theme_style="lotus"
break
;;
"night",* | *,"night")
theme_style="night"
break
;;
"storm",* | *,"storm")
theme_style="storm"
break
;;
"dayfox",* | *,"dayfox")
theme_style="dayfox"
break
;;
"day",* | *,"day")
theme_style="day"
break
;;
"moon",* | *,"moon")
theme_style="moon"
break
;;
"onedark",* | *,"onedark")
theme_style="onedark"
break
;;
"onelight",* | *,"onelight")
theme_style="onelight"
break
;;
"onedark_vivid",* | *,"onedark_vivid")
theme_style="onedark_vivid"
break
;;
"onedark_dark",* | *,"onedark_dark")
theme_style="onedark_dark"
break
;;
"latte",* | *,"latte")
theme_style="latte"
break
;;
"frappe",* | *,"frappe")
theme_style="frappe"
break
;;
"macchiato",* | *,"macchiato")
theme_style="macchiato"
break
;;
"mocha",* | *,"mocha")
theme_style="mocha"
break
;;
"custom",* | *,"custom")
theme_style="custom"
break
;;
"blood",* | *,"blood")
theme_style="blood"
break
;;
"magic",* | *,"magic")
theme_style="magic"
break
;;
"soft",* | *,"soft")
theme_style="soft"
break
;;
"default",* | *,"default")
theme_style="default"
break
;;
"carbonfox",* | *,"carbonfox")
theme_style="carbonfox"
break
;;
"dawnfox",* | *,"dawnfox")
theme_style="dawnfox"
break
;;
"duskfox",* | *,"duskfox")
theme_style="duskfox"
break
;;
"nightfox",* | *,"nightfox")
theme_style="nightfox"
break
;;
"nordfox",* | *,"nordfox")
theme_style="nordfox"
break
;;
"terafox",* | *,"terafox")
theme_style="terafox"
break
;;
"classic",* | *,"classic")
theme_style="classic"
break
;;
"octagon",* | *,"octagon")
theme_style="octagon"
break
;;
"pro",* | *,"pro")
theme_style="pro"
break
;;
"machine",* | *,"machine")
theme_style="machine"
break
;;
"ristretto",* | *,"ristretto")
theme_style="ristretto"
break
;;
"Set style to"*,* | *,"Set style to"*)
set_conf_value "theme_style" "${theme_style}"
break 2
;;
"Lazyman Config"*,* | *,"Lazyman Config"* | "l",* | *,"l")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exec lazyman -F conf
;;
"Webdev Menu"*,* | *,"Webdev Menu"* | "w",* | *,"w")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exit 5
;;
"Configuration Menu"*,* | *,"Configuration Menu"* | "c",* | *,"c")
confmenu=1
break 2
;;
"Main Menu"*,* | *,"Main Menu"* | "m",* | *,"m")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exit 2
;;
"Quit"*,* | *,"Quit"* | "quit"*,* | *,"quit"* | "q",* | *,"q")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
printf "\nExiting LazyIde Configuration Menu System\n\n"
exit 3
;;
esac
REPLY=
done
done
[ "${confmenu}" ] && show_conf_menu
fi
}
set_default_style() {
case "$1" in
kanagawa)
set_conf_value "theme_style" "dragon"
;;
tokyonight)
set_conf_value "theme_style" "moon"
;;
onedarkpro)
set_conf_value "theme_style" "onedark_dark"
;;
catppuccin)
set_conf_value "theme_style" "mocha"
;;
dracula)
set_conf_value "theme_style" "soft"
;;
nightfox)
set_conf_value "theme_style" "carbonfox"
;;
monokai-pro)
set_conf_value "theme_style" "pro"
;;
*)
set_conf_value "theme_style" "none"
;;
esac
}
select_theme() {
selected_theme="$1"
if [ "${have_fzf}" ]; then
theme=$(printf "%s\n" "${themes[@]}" | fzf --prompt=" Neovim Theme " --layout=reverse --border --exit-0)
[ "${theme}" == "${selected_theme}" ] || {
if [[ " ${themes[*]} " =~ " ${theme} " ]]; then
set_conf_value "theme" "${theme}"
set_default_style "${theme}"
fi
}
else
set_haves
while true; do
confmenu=
[ "$debug" ] || tput reset
printf "\n"
if [ "${have_rich}" ]; then
rich "[cyan]Select Theme[/cyan]" -p -a rounded -c -C
else
[ "${have_figlet}" ] && show_figlet "Theme"
fi
printf "\n"
PS3="${BOLD}${PLEASE} (numeric or text, 'h' for help): ${NORM}"
options=()
for thm in "${themes[@]}"; do
if [ "${theme}" == "$thm" ]; then
options+=("$thm ")
else
options+=("$thm")
fi
done
[ "${theme}" == "${selected_theme}" ] || {
options+=("Set theme to ${theme}")
}
options+=("Lazyman Config")
[ -f ${HOME}/.config/nvim-Webdev/lua/configuration.lua ] && {
options+=("Webdev Menu")
}
options+=("Configuration Menu" "Main Menu" "Quit")
select opt in "${options[@]}"; do
case "$opt,$REPLY" in
"h",* | *,"h" | "H",* | *,"H" | "help",* | *,"help" | "Help",* | *,"Help")
[ "$debug" ] || tput reset
printf "\n"
man lazyman
break
;;
"nightfox"*,* | *,"nightfox"*)
theme="nightfox"
break
;;
"tokyonight"*,* | *,"tokyonight"*)
theme="tokyonight"
break
;;
"dracula"*,* | *,"dracula"*)
theme="dracula"
break
;;
"kanagawa"*,* | *,"kanagawa"*)
theme="kanagawa"
break
;;
"catppuccin"*,* | *,"catppuccin"*)
theme="catppuccin"
break
;;
"tundra"*,* | *,"tundra"*)
theme="tundra"
break
;;
"onedarkpro"*,* | *,"onedarkpro"*)
theme="onedarkpro"
break
;;
"everforest"*,* | *,"everforest"*)
theme="everforest"
break
;;
"monokai-pro"*,* | *,"monokai-pro"*)
theme="monokai-pro"
break
;;
"Set theme to"*,* | *,"Set theme to"*)
set_conf_value "theme" "${theme}"
set_default_style "${theme}"
break 2
;;
"Lazyman Config"*,* | *,"Lazyman Config"* | "l",* | *,"l")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exec lazyman -F conf
;;
"Webdev Menu"*,* | *,"Webdev Menu"* | "w",* | *,"w")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exit 5
;;
"Configuration Menu"*,* | *,"Configuration Menu"* | "c",* | *,"c")
confmenu=1
break 2
;;
"Main Menu"*,* | *,"Main Menu"* | "m",* | *,"m")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exit 2
;;
"Quit"*,* | *,"Quit"* | "quit"*,* | *,"quit"* | "q",* | *,"q")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
printf "\nExiting LazyIde Configuration Menu System\n\n"
exit 3
;;
esac
REPLY=
done
done
fi
[ "${confmenu}" ] && show_conf_menu
}
show_conf_menu() {
set_haves
while true; do
[ -f ${GET_CONF} ] || {
printf "\n\nWARNING: missing ${GET_CONF}"
printf "\nUnable to modify configuration from this menu"
printf "\nYou may need to update or re-install LazyIde"
prompt_continue
break
}
[ "$debug" ] || tput reset
if [ "${have_rich}" ]; then
rich "[b cyan]LazyIde Configuration Menu[/]" -p -a rounded -c -C
rich "[b green]Manage the Neovim configuration in[/] [b yellow]~/.config/nvim-LazyIde[/]" -p -c
else
[ "${have_figlet}" ] && show_figlet "Config"
fi
printf '\n'
theme=$(get_conf_value theme)
use_theme="${theme}"
theme_style=$(get_conf_value theme_style)
use_theme_style="${theme_style}"
enable_transparent=$(get_conf_value enable_transparent)
if [ "${enable_transparent}" == "true" ]; then
use_transparent=""
else
use_transparent="✗"
fi
enable_codeium=$(get_conf_value enable_codeium)
if [ "${enable_codeium}" == "true" ]; then
use_codeium=""
else
use_codeium="✗"
fi
enable_copilot=$(get_conf_value enable_copilot)
if [ "${enable_copilot}" == "true" ]; then
use_copilot=""
else
use_copilot="✗"
fi
mapleader=$(get_conf_value mapleader)
use_mapleader="${mapleader}"
maplocalleader=$(get_conf_value maplocalleader)
use_maplocalleader="${maplocalleader}"
enable_number=$(get_conf_value number)
if [ "${enable_number}" == "true" ]; then
use_number=""
else
use_number="✗"
fi
enable_relative_number=$(get_conf_value relative_number)
if [ "${enable_relative_number}" == "true" ]; then
use_relative_number=""
else
use_relative_number="✗"
fi
enable_global_statusline=$(get_conf_value global_statusline)
if [ "${enable_global_statusline}" == "true" ]; then
use_global_statusline=""
else
use_global_statusline="✗"
fi
showtabline=$(get_conf_value showtabline)
use_showtabline="${showtabline}"
enable_list=$(get_conf_value list)
if [ "${enable_list}" == "true" ]; then
use_list=""
else
use_list="✗"
fi
enable_statusline=$(get_conf_value enable_statusline)
if [ "${enable_statusline}" == "true" ]; then
use_statusline=""
else
use_statusline="✗"
fi
enable_tabline=$(get_conf_value enable_tabline)
if [ "${enable_tabline}" == "true" ]; then
use_tabline=""
else
use_tabline="✗"
fi
enable_dashboard_header=$(get_conf_value enable_dashboard_header)
if [ "${enable_dashboard_header}" == "true" ]; then
use_dashboard_header=""
else
use_dashboard_header="✗"
fi
enable_terminal=$(get_conf_value enable_terminal)
if [ "${enable_terminal}" == "true" ]; then
use_terminal=""
else
use_terminal="✗"
fi
enable_toggleterm=$(get_conf_value enable_toggleterm)
if [ "${enable_toggleterm}" == "true" ]; then
use_toggleterm=""
else
use_toggleterm="✗"
fi
enable_wakatime=$(get_conf_value enable_wakatime)
if [ "${enable_wakatime}" == "true" ]; then
use_wakatime=""
else
use_wakatime="✗"
fi
enable_smooth_scrolling=$(get_conf_value enable_smooth_scrolling)
if [ "${enable_smooth_scrolling}" == "true" ]; then
use_smooth_scrolling=""
else
use_smooth_scrolling="✗"
fi
show_diagnostics=$(get_conf_value show_diagnostics)
use_show_diagnostics="${show_diagnostics}"
enable_zenmode=$(get_conf_value enable_zenmode)
if [ "${enable_zenmode}" == "true" ]; then
use_zenmode=""
else
use_zenmode="✗"
fi
PS3="${BOLD}${PLEASE} (numeric or text, 'h' for help): ${NORM}"
options=()
options+=("Diagnostics [${use_show_diagnostics}]")
options+=("Theme [${use_theme}]")
if [[ " ${styled_themes[*]} " =~ " ${use_theme} " ]]; then
options+=(" Style [${use_theme_style}]")
fi
options+=(" Transparency [${use_transparent}]")
options+=("Codeium [${use_codeium}]")
options+=("Copilot [${use_copilot}]")
options+=("Leader [${use_mapleader}]")
options+=("Local Leader [${use_maplocalleader}]")
options+=("Number Lines [${use_number}]")
options+=("Relative Nums [${use_relative_number}]")
options+=("List Chars [${use_list}]")
options+=("Global Status [${use_global_statusline}]")
options+=("Status Line [${use_statusline}]")
options+=("Tab Line [${use_tabline}]")
options+=(" Showtabline [${use_showtabline}]")
options+=("Alpha Header [${use_dashboard_header}]")
options+=("Smooth Scroll [${use_smooth_scrolling}]")
options+=("Terminal [${use_terminal}]")
options+=("Toggle Term [${use_toggleterm}]")
options+=("WakaTime [${use_wakatime}]")
options+=("Zen Mode [${use_zenmode}]")
options+=("Disable All")
options+=("Enable All")
[ -f ${CONFBACK} ] && {
diff ${CONFBACK} ${NVIMCONF} >/dev/null || options+=("Reset to Defaults")
}
[ -d "${LIDEDIR}" ] && options+=("Open LazyIde")
[ -f ${HOME}/.config/nvim-Webdev/lua/configuration.lua ] && {
options+=("Webdev Menu")
}
options+=("Lazyman Config" "Main Menu")
options+=("Quit")
select opt in "${options[@]}"; do
case "$opt,$REPLY" in
"h",* | *,"h" | "H",* | *,"H" | "help",* | *,"help" | "Help",* | *,"Help")
[ "$debug" ] || tput reset
printf "\n"
man lazyman
break
;;
"Status Line"*,* | *,"Status Line"*)
if [ "${enable_statusline}" == "true" ]; then
set_conf_value "enable_statusline" "false"
else
set_conf_value "enable_statusline" "true"
fi
pluginit=1
break
;;
"Tab Line"*,* | *,"Tab Line"*)
if [ "${enable_tabline}" == "true" ]; then
set_conf_value "enable_tabline" "false"
else
set_conf_value "enable_tabline" "true"
fi
pluginit=1
break
;;
" Style"*,* | *," Style"*)
select_theme_style ${theme}
break
;;
"Theme"*,* | *,"Theme"*)
select_theme ${theme}
pluginit=1
break
;;
" Transparency"*,* | *," Transparency"*)
if [ "${enable_transparent}" == "true" ]; then
set_conf_value "enable_transparent" "false"
else
set_conf_value "enable_transparent" "true"
fi
break
;;
"Codeium"*,* | *,"Codeium"*)
if [ "${enable_codeium}" == "true" ]; then
set_conf_value "enable_codeium" "false"
else
set_conf_value "enable_codeium" "true"
fi
break
;;
"Copilot"*,* | *,"Copilot"*)
if [ "${enable_copilot}" == "true" ]; then
set_conf_value "enable_copilot" "false"
else
set_conf_value "enable_copilot" "true"
fi
break
;;
"Leader"*,* | *,"Leader"*)
if [ "${use_mapleader}" == "," ]; then
set_conf_value "mapleader" " "
else
set_conf_value "mapleader" ","
fi
break
;;
"Local Leader"*,* | *,"Local Leader"*)
if [ "${use_maplocalleader}" == "," ]; then
set_conf_value "maplocalleader" " "
else
set_conf_value "maplocalleader" ","
fi
break
;;
"Number Lines"*,* | *,"Number Lines"*)
if [ "${enable_number}" == "true" ]; then
set_conf_value "number" "false"
else
set_conf_value "number" "true"
fi
break
;;
"Relative Num"*,* | *,"Relative Num"*)
if [ "${enable_relative_number}" == "true" ]; then
set_conf_value "relative_number" "false"
else
set_conf_value "relative_number" "true"
fi
break
;;
"List"*,* | *,"List"*)
if [ "${enable_list}" == "true" ]; then
set_conf_value "list" "false"
else
set_conf_value "list" "true"
fi
break
;;
"Global Status"*,* | *,"Global Status"*)
if [ "${enable_global_statusline}" == "true" ]; then
set_conf_value "global_statusline" "false"
else
set_conf_value "global_statusline" "true"
fi
break
;;
" Showtabline"*,* | *," Showtabline"*)
choices=("0" "1" "2")
choice=$(printf "%s\n" "${choices[@]}" | fzf --prompt=" Show tabline (0=never, 1=multiple tabs, 2=always) " --layout=reverse --border --exit-0)
[ "${choice}" == "${showtabline}" ] || {
if [[ " ${choices[*]} " =~ " ${choice} " ]]; then
set_conf_value "showtabline" "${choice}"
fi
}
break
;;
"Diagnostic"*,* | *,"Diagnostic"*)
choices=("none" "icons" "popup")
choice=$(printf "%s\n" "${choices[@]}" | fzf --prompt=" Neovim Diagnostics " --layout=reverse --border --exit-0)
[ "${choice}" == "${show_diagnostics}" ] || {
if [[ " ${choices[*]} " =~ " ${choice} " ]]; then
set_conf_value "show_diagnostics" "${choice}"
fi
}
break
;;
"Terminal"*,* | *,"Terminal"*)
if [ "${enable_terminal}" == "true" ]; then
set_conf_value "enable_terminal" "false"
else
set_conf_value "enable_terminal" "true"
fi
pluginit=1
break
;;
"Toggle Term"*,* | *,"Toggle Term"*)
if [ "${enable_toggleterm}" == "true" ]; then
set_conf_value "enable_toggleterm" "false"
else
set_conf_value "enable_toggleterm" "true"
fi
pluginit=1
break
;;
"WakaTime"*,* | *,"WakaTime"*)
if [ "${enable_wakatime}" == "true" ]; then
set_conf_value "enable_wakatime" "false"
else
if [ -f "${HOME}"/.wakatime.cfg ]; then
set_conf_value "enable_wakatime" "true"
else
printf "\nIt appears you do not have a configured WakaTime API key."
printf "\nWould you like to proceed with enabling WakaTime?\n"
while true; do
read -r -p "Enable WakaTime (API key required) ? (y/n) " yn
case $yn in
[Yy]*)
set_conf_value "enable_wakatime" "true"
break
;;
[Nn]*)
break
;;
*)
printf "\nPlease answer yes or no.\n"
;;
esac
done
fi
fi
pluginit=1
break
;;
"Smooth Scroll"*,* | *,"Smooth Scroll"*)
if [ "${enable_smooth_scrolling}" == "true" ]; then
set_conf_value "enable_smooth_scrolling" "false"
else
set_conf_value "enable_smooth_scrolling" "true"
fi
pluginit=1
break
;;
"Alpha Header"*,* | *,"Alpha Header"*)
if [ "${enable_dashboard_header}" == "true" ]; then
set_conf_value "enable_dashboard_header" "false"
else
set_conf_value "enable_dashboard_header" "true"
fi
pluginit=1
break
;;
"Zen Mode"*,* | *,"Zen Mode"*)
if [ "${enable_zenmode}" == "true" ]; then
set_conf_value "enable_zenmode" "false"
else
set_conf_value "enable_zenmode" "true"
fi
pluginit=1
break
;;
"Disable All"*,* | *,"Disable All"*)
set_conf_value "number" "false"
set_conf_value "relative_number" "false"
set_conf_value "global_statusline" "false"
set_conf_value "enable_statusline" "false"
set_conf_value "enable_tabline" "false"
set_conf_value "enable_zenmode" "false"
set_conf_value "showtabline" "0"
set_conf_value "enable_transparent" "false"
set_conf_value "show_diagnostics" "none"
set_conf_value "list" "false"
set_conf_value "enable_dashboard_header" "false"
set_conf_value "enable_terminal" "false"
set_conf_value "enable_toggleterm" "false"
set_conf_value "enable_wakatime" "false"
set_conf_value "enable_smooth_scrolling" "false"
pluginit=1
break
;;
"Enable All"*,* | *,"Enable All"*)
set_conf_value "number" "true"
set_conf_value "relative_number" "true"
set_conf_value "global_statusline" "true"
set_conf_value "enable_statusline" "true"
set_conf_value "enable_tabline" "true"
set_conf_value "showtabline" "2"
set_conf_value "enable_transparent" "true"
set_conf_value "show_diagnostics" "popup"
set_conf_value "list" "true"
set_conf_value "enable_dashboard_header" "true"
set_conf_value "enable_terminal" "true"
set_conf_value "enable_toggleterm" "true"
set_conf_value "enable_wakatime" "true"
set_conf_value "enable_smooth_scrolling" "true"
pluginit=1
break
;;
"Reset"*,* | *,"Reset"*)
[ -f ${CONFBACK} ] && {
cp ${CONFBACK} ${NVIMCONF}
set_waka_opt
pluginit=1
}
break
;;
"Open LazyIde",* | *,"Open LazyIde" | "o",* | *,"o")
if [ "${USEGUI}" ]; then
NVIM_APPNAME="nvim-LazyIde" neovide
else
NVIM_APPNAME="nvim-LazyIde" nvim
fi
break
;;
"Lazyman Config"*,* | *,"Lazyman Config"* | "l",* | *,"l")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exec lazyman -F conf
;;
"Webdev Menu"*,* | *,"Webdev Menu"* | "w",* | *,"w")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exit 5
;;
"Main Menu"*,* | *,"Main Menu"* | "m",* | *,"m")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
exit 2
;;
"Quit"*,* | *,"Quit"* | "quit"*,* | *,"quit"* | "q",* | *,"q")
[ "${pluginit}" ] && lazyman -N nvim-LazyIde init
printf "\nExiting LazyIde Configuration Menu System\n\n"
exit 3
;;
*,*)
printf "\nNo matching menu item located."
printf "\nSelection out of range or malformed."
prompt_continue
break
;;
esac
REPLY=
done
done
}
debug=
darg=
confmenu=
initplugs=
menu="confmenu"
pluginit=
# TODO: configure options
while getopts "diu" flag; do
case $flag in
d)
debug=1
darg="-d"
;;
i)
initplugs=1
;;
u)
usage
;;
*)
printf "\nUnrecognized option. Exiting.\n"
usage
;;
esac
done
shift $((OPTIND - 1))
set_haves
[ "${initplugs}" ] && {
set_waka_opt
exit 0
}
# Source the Lazyman shell initialization for aliases and nvims selector
# shellcheck source=~/.config/nvim-Lazyman/.lazymanrc
[ -f ~/.config/nvim-Lazyman/.lazymanrc ] && source ~/.config/nvim-Lazyman/.lazymanrc
show_conf_menu
exit 0