structural changes

This commit is contained in:
pika 2025-05-23 16:31:47 +02:00
parent 111026d6f2
commit 647601a743

View file

@ -5,7 +5,7 @@ command_exists() {
command -v "$@" >/dev/null 2>&1 command -v "$@" >/dev/null 2>&1
} }
getImports() { source-script() {
local url="$1" local url="$1"
local import="$(mktemp)" local import="$(mktemp)"
if command_exists curl; then if command_exists curl; then
@ -22,39 +22,41 @@ getImports() {
rm "$import" rm "$import"
echo "imported $url" echo "imported $url"
} }
__pre_stow__() { __pre_stow__() {
echo_note "__pre_stow__" pen blue "Getting things ready.."
sleep 2
conf="$HOME/.config" conf="$HOME/.config"
bak_dir="$HOME/.bak" bak_dir="$HOME/.bak"
dirs=( dirs=(
"btop" "btop"
"gBar" "gBar"
"yazi"
"fastfetch" "fastfetch"
"foot"
"hypr" "hypr"
"tmux" "tmux"
"kitty" "kitty"
"neovide" "neovide"
"rofi" "rofi"
"tofi"
"waybar" "waybar"
"wlogout" "wlogout"
"wob" "wob"
"yazi"
"zellij" "zellij"
) )
pen yellow "Trying to clean the environment.."
if [ ! -d "$bak_dir" ]; then if [ ! -d "$bak_dir" ]; then
repen yellow "backup dir created at $bak_dir" && pen grey "backup dir created at $bak_dir" &&
silentexec mkdir "$bak_dir" silentexec mkdir "$bak_dir"
else else
pen bold yellow "Backup dir already present, clearing now" && pen bold grey "Backup dir already present, clearing now" &&
rm -rf "${bak_dir:?}/*" rm -rf "${bak_dir:?}/*"
fi fi
for _dirs in "${dirs[@]}"; do for _dirs in "${dirs[@]}"; do
if [ -d "$conf/$_dirs" ]; then if [ -d "$conf/$_dirs" ]; then
repen moved $_dirs pen grey "moved $_dirs"
mv -f "$conf/$_dirs" "$bak_dir" mv -f "$conf/$_dirs" "$bak_dir"
fi fi
done done
@ -62,19 +64,21 @@ __pre_stow__() {
h_files=( h_files=(
".zshrc" ".zshrc"
".zshenv" ".zshenv"
".bashrc"
".bash_alias"
".wezterm.lua" ".wezterm.lua"
) )
for _f in "${h_files[@]}"; do for _f in "${h_files[@]}"; do
if [ -f "$HOME/$_f" ]; then if [ -f "$HOME/$_f" ]; then
repen moved $_f pen "moved $_f"
mv -f "$HOME/$_f" "$bak_dir" && echo_info "Moved $_f to $bak_dir" mv -f "$HOME/$_f" "$bak_dir" && echo_info "Moved $_f to $bak_dir"
fi fi
done done
for _d in ".zsh .tmux .fzf"; do for _d in ".zsh .tmux .fzf"; do
if [ -d "$HOME/$_d" ]; then if [ -d "$HOME/$_d" ]; then
repen moved $_d pen "moved $_d"
mv -f "$HOME/$_d" "$bak_dir" && echo_info "Moved $_d to $bak_dir" mv -f "$HOME/$_d" "$bak_dir" && echo_info "Moved $_d to $bak_dir"
fi fi
done done
@ -112,32 +116,21 @@ askThings() {
__optional__=false __optional__=false
if confirm askOptional "Do you also want to install optional packages?" </dev/tty; then if confirm "Do you also want to install optional packages?" </dev/tty; then
__optional__=true __optional__=true
fi fi
# read -r askOptional </dev/tty # read -r askOptional </dev/tty
if [ ! -d "$HOME/.config/nvim" ]; then if ! command_exists nvim; then
choose askNvim "Do you also want to install a neovim config?" default mini astro none </dev/tty if confirm "Do you also want to install neovim" </dev/tty; then
# read -r askNvim </dev/tty neovim=true
else
neovim=false
fi
fi fi
} }
initNvim() {
echo_info "Do you want to init the neovim configuratin (installs plugins and lsps headlessly) (Y/n)"
read -r initNeovim </dev/tty
case "$initNeovim" in
[nN])
return 0
;;
*)
nvim --headless +q
;;
esac
}
ask_Neovide() { ask_Neovide() {
echo_info "Do you also want to install a neovide config? [y/N]" echo_info "Do you also want to install a neovide config? [y/N]"
read -r askNeovide </dev/tty read -r askNeovide </dev/tty
@ -151,13 +144,13 @@ ask_Neovide() {
} }
instPika() { instPika() {
if ! command_exists "$1"; then # if ! command_exists "$1"; then
if command_exists curl; then if command_exists curl; then
curl -fsSL "https://git.k4li.de/scripts/installs/raw/branch/main/${1}.sh" | bash curl -fsSL "https://git.k4li.de/scripts/installs/raw/branch/main/${1}.sh" | bash
else else
echo_warning "curl was not found, could not install $1!" echo_warning "curl was not found, could not install $1!"
fi
fi fi
# fi
} }
cloneDots() { cloneDots() {
@ -165,12 +158,15 @@ cloneDots() {
cloneName="${2:-$1}" cloneName="${2:-$1}"
if command_exists git; then if command_exists git; then
[ -d ./dotfiles ] && if [ -d ./dotfiles ] && [ ! -d "./dotfiles/${choise}" ]; then
[ ! -d "./dotfiles/${choise}" ] && pen red bold "Depending on your internet speed, this might take a while.."
git clone --depth=1 "https://git.k4li.de/dotfiles/${choise}.git" "./dotfiles/.config/${cloneName}" spin yellow bold "Cloning dotfiles $cloneName"
run git clone --depth=1 "https://git.k4li.de/dotfiles/${choise}.git" "./dotfiles/.config/${cloneName}" && check "Cloned dotfiles" || throw "Failed cloning dotfiles!"
else
throw "$choise is already cloned.."
fi
else else
echo_error "Git was not found" throw "Git was not found"
fi fi
} }
@ -182,25 +178,6 @@ __validate__() {
[[ -n "$bar" ]] && cloneDots "$bar" [[ -n "$bar" ]] && cloneDots "$bar"
[[ -n "$terminal" ]] && cloneDots "$terminal" [[ -n "$terminal" ]] && cloneDots "$terminal"
case "$askNvim" in
default)
neovim="true"
cloneDots "nvim"
;;
mini)
neovim="true"
cloneDots "nvim-mini" "nvim"
;;
astro)
neovim="true"
cloneDots "nvim-astro" "nvim"
;;
none)
neovim="false"
return 0
;;
esac
else else
echo_error "Something went terribly wrong" echo_error "Something went terribly wrong"
exit 1 exit 1
@ -250,10 +227,7 @@ __dep__() {
neovim) neovim)
if $neovim; then if $neovim; then
instPika neovim instPika neovim
if confirm "Do you also want to install a neovide config?"; then
initNvim
ask_Neovide
if $neovide; then
instPika neovide instPika neovide
fi fi
fi fi
@ -262,18 +236,12 @@ __dep__() {
if ! command_exists "$hyprdots_dependency"; then if ! command_exists "$hyprdots_dependency"; then
# echo_note "--- installing $hyprdots_dependency ---" # echo_note "--- installing $hyprdots_dependency ---"
spin bold yellow "Installing $hyprdots_dependency.." spin bold yellow "Installing $hyprdots_dependency.."
if run --err err pkg-install "$hyprdots_dependency"; then run --err err pkg-install "$hyprdots_dependency" && check "$hyprdots_dependency installed" || throw "$hyprdots_dependency could not get installed" && echo_error "${err:-}"
check green bold "$hyprdots_dependency was installed"
else
throw "$hyprdots_dependency could not get installed"
echo_error "${err:-}"
fi
else else
repen bold green "$hyprdots_dependency - already installed" check bold green "$hyprdots_dependency - $(pen yellow bold already installed)"
fi fi
;; ;;
esac esac
done done
} }
@ -281,7 +249,11 @@ __monitors__() {
if [ ! -e "$HOME/.monitors.conf" ]; then if [ ! -e "$HOME/.monitors.conf" ]; then
res="$(hyprctl monitors | grep -oP '\d+x\d+@\d+\.\d+' | head -n 1)" res="$(hyprctl monitors | grep -oP '\d+x\d+@\d+\.\d+' | head -n 1)"
touch "$HOME/.monitors.conf" touch "$HOME/.monitors.conf"
echo "monitor = eDP-1, ${res}, 0x0, 1" >>"$HOME/.monitors.conf" if [[ -n $res ]]; then
echo "monitor = eDP-1, ${res}, 0x0, 1" >>"$HOME/.monitors.conf"
else
echo "monitor = preferred,, 0x0, 1" >>"$HOME/.monitors.conf"
fi
fi fi
} }
@ -292,64 +264,44 @@ pkg_optional() {
"trash-cli" "trash-cli"
) )
case "$_ops" in for pkg in "${_opts[@]}"; do
Y | y | yes) spin "Installing $pkg"
for _o_ in "${_ops[@]}"; do if ! command_exists $pkg; then
if command_exists "$_o_"; then run pkg-install $pkg && check "$pkg installed" || throw "Error installing $pkg"
echo_note "$_o_ - is already installed" fi
else done
echo_info "Installing $_o_"
pkg-install "$_o_"
fi
done
;;
*)
echo default
;;
esac
} }
__stow__() { __stow__() {
local err local err
spin grey "Linking dotfiles.." spin grey "Linking dotfiles.."
if run --err err stow --verbose --target="$HOME" --defer=.gitmodules --restow */; then run --err err stow --verbose --target="$HOME" --defer=.gitmodules --restow */ && check "Linked dotfiles!" ||
check "Linked dotfiles!" throw "Could not use stow to link dofiles.." &&
else
throw "Could not use stow to link dofiles.."
echo_error "${err:-}" echo_error "${err:-}"
fi
} }
c_fonts() { c_fonts() {
local err local err
local dirFonts="$HOME/.local/share/fonts/" local dirFonts="$HOME/.local/share/fonts/"
if [[ ! -d "$dirFonts" ]]; then if [[ ! -d "$dirFonts" ]]; then
if choose "Seems like you may miss some fonts.. Do you want to clone them now to <$HOME/.local/share/fonts/>" </dev/tty; then if choose "Seems like you may miss some fonts.. Do you want to clone them now into $(pen blue bold $HOME/.local/share/fonts)" </dev/tty; then
# echo_info "Seems like you may miss some fonts.. Do you want to clone them now to <$HOME/.local/share/fonts/> ? [y|n]" && read -r ask_fonts
# case "$ask_fonts" in
# [Yy])
if ! command_exists git; then if ! command_exists git; then
spin "Installing fonts.." spin "Installing dependencies.."
if run pkg-install git; then run pkg-install git && check "Installed git!" || throw "Couldn't install git!" && return 69
return 0
fi
if run --err err git clone --depth=1 https://git.k4li.de/pika/fonts.git "$dirFonts"; then
check "Cloned fonts correctly!"
else
throw "Error cloning fonts!"
echo_error "${err:-}"
fi
else else
git clone --depth=1 https://git.k4li.de/pika/fonts.git "$dirFonts" git clone --depth=1 https://git.k4li.de/pika/fonts.git "$dirFonts"
fi fi
spin "Cloning fonts now.. This might take a while.."
run --err err git clone --depth=1 https://git.k4li.de/pika/fonts.git "$dirFonts" && check "Cloned fonts correctly!" || throw "Error cloning fonts!" && echo_error "${err:-}"
# ;; # ;;
# [Nn]) # [Nn])
else else
pen bold red "You might have some font issues, but that's your business now!" pen bold red "You might have some font issues, but that's your business now!"
return 0 return
fi fi
fi fi
} }
@ -357,34 +309,18 @@ c_fonts() {
c_wallpapers() { c_wallpapers() {
local dirWallpaper="$HOME/.wallpapers" local dirWallpaper="$HOME/.wallpapers"
if [[ ! -d "$dirWallpaper" ]]; then if [[ ! -d "$dirWallpaper" ]]; then
if confirm "Seems like you may miss some wallpapers.. Do you want to clone them now to <$HOME/.wallpapers/> ?" </dev/tty; then if confirm "Seems like you may miss some wallpapers.. Do you want to clone them now to $(pen blue bold $HOME/.wallpapers)?" </dev/tty; then
# case "$ask_wall" in
# [Yy])
spin blue "Preparing wallpaper clone.."
if ! command_exists git; then if ! command_exists git; then
if run pkg-install git; then spin "Installing dependencies.."
return 0 run pkg-install git && check "Installed git!" || throw "Couldn't install git!" && return 69
fi
else
if run --err err git clone --depth=1 https://git.k4li.de/pika/wallpaper.git "$dirWallpaper"; then
check bold blue "Wallpapers loaded correctly!"
else
throw "Error downloading wallpapers!"
echo_error "${err:-}"
fi
fi fi
# ;; spin blue bold "Cloning wallpaper repo.. This might take a while.."
# [Nn]) run --err err git clone --depth=1 https://git.k4li.de/pika/wallpaper.git "$dirWallpaper" && check bold blue "Wallpapers loaded correctly!" || throw "Error downloading wallpapers!" && echo_error "${err:-}"
else else
pen bold red "All right, be sure to checkout the $HOME/.config/hypr/.scripts/random_swww.sh to change the wallpaper dir" pen bold red "All right, be sure to checkout the $HOME/.config/hypr/.scripts/random_swww.sh to change the wallpaper dir"
return 0 return 0
fi fi
# ;;
# *)
# c_wallpapers
# ;;
# esac
fi fi
} }
@ -394,19 +330,31 @@ mkdirs() {
pen grey "mkdir $HOME/.config" pen grey "mkdir $HOME/.config"
silentexec mkdir $HOME/.config silentexec mkdir $HOME/.config
fi fi
if [[ ! -f $HOME/.local/share/icons/ ]]; then if [[ ! -f $HOME/.local/share/icons/ ]]; then
pen grey "mkdir -p $HOME/.local/share/icons/" pen grey "mkdir -p $HOME/.local/share/icons/"
silentexec mkdir -p $HOME/.local/share/icons/ silentexec mkdir -p $HOME/.local/share/icons/
fi fi
if [[ ! -f $HOME/.local/share/fonts/ ]]; then
c_fonts || pen grey "mkdir -p $HOME/.local/share/fonts/" && silentexec mkdir -p $HOME/.local/share/fonts/
fi
c_fonts
c_wallpapers c_wallpapers
} }
setup-env() {
local beddu=https://git.k4li.de/scripts/beddu/raw/branch/main/dist/beddu.sh
local pika=https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh
if ! command_exists pkg-install && ! command_exists checkAndInstall; then
source-script $pika
fi
if ! command_exists pen && ! command_exists spin; then
source-script $beddu
fi
}
main() { main() {
mkdirs local err
# check_root # check_root
# get_packager # get_packager
@ -414,9 +362,18 @@ main() {
__validate__ __validate__
__dep__ __dep__
mkdirs
if ! command_exists stow; then if ! command_exists stow; then
if confirm "We couldn't find stow on the machine, do you want us to install it?"; then if confirm "We couldn't find stow on the machine, do you want us to install it?"; then
pkg-install stow line
spin grey "Installing stow now.."
if run --err err pkg-install stow; then
check "Stow was installed correctly!"
else
check "Error while installing stow!"
echo_error "${err:-}"
fi
else else
pen red bold "You cannot proceed without installing stow! Please install manually" pen red bold "You cannot proceed without installing stow! Please install manually"
exit 1 exit 1
@ -439,6 +396,6 @@ main() {
pen blue bold "found resolution ${res}" pen blue bold "found resolution ${res}"
} }
if getImports "https://git.k4li.de/scripts/imports/raw/branch/main/distros.sh" && getImports "https://git.k4li.de/scripts/beddu/raw/branch/main/dist/beddu.sh"; then if setup-env; then
main main
fi fi