From b71d05327a0a9888efc4c2a7cc6e299b056043a3 Mon Sep 17 00:00:00 2001 From: xeruf <27jf@pm.me> Date: Wed, 18 Jan 2023 02:02:35 +0100 Subject: [PATCH] config: improve zsh bootstrapping --- .config/shell/command-not-found.zsh | 24 ++++++++++++++++++++++++ .config/yadm/bootstrap | 28 ++++++++++++++++++++++------ .config/zsh/.zshrc | 1 - 3 files changed, 46 insertions(+), 7 deletions(-) create mode 100644 .config/shell/command-not-found.zsh diff --git a/.config/shell/command-not-found.zsh b/.config/shell/command-not-found.zsh new file mode 100644 index 0000000..92d69b5 --- /dev/null +++ b/.config/shell/command-not-found.zsh @@ -0,0 +1,24 @@ +command_not_found_handler() { + local pkgs cmd="$1" + + pkgs=(${(f)"$(pkgfile -b -v -- "$cmd" 2>/dev/null)"}) + if [[ -n "$pkgs" ]]; then + printf 'The application %s is not installed. It may be found in the following packages:\n' "$cmd" + printf ' %s\n' $pkgs[@] + setopt shwordsplit + pkg_array=($pkgs[@]) + pkgname="${${(@s:/:)pkg_array}[2]}" + printf 'Do you want to Install package %s? (y/N) ' $pkgname + if read -q "choice? "; then + echo + echo "Executing command: pamac install $pkgname" + pamac install $pkgname + else + echo " " + fi + else + printf 'zsh: command not found: %s\n' "$cmd" + fi 1>&2 + + return 127 +} diff --git a/.config/yadm/bootstrap b/.config/yadm/bootstrap index e8eac69..448d586 100755 --- a/.config/yadm/bootstrap +++ b/.config/yadm/bootstrap @@ -27,13 +27,26 @@ ExecStart=-$agetty --skip-login --login-options $USER %I" | sudo tee /etc/systemd/system/getty@tty1.service.d/override.conf /etc/systemd/system/getty@tty2.service.d/override.conf /etc/systemd/system/getty@tty3.service.d/override.conf highlight "Sysyadm setup" -if test -d "/etc/yadm" +if test -d "/etc/yadm/repo.git/" then sy l -else sy clone +else echo "" | sy clone fi SECTION "Software" +highlight "Cleanup Manjaro Sway Dotfiles" +rmexist() { + for arg + do test -e "$arg" && echo -n "$arg: " && rm -rI "$arg" + done +} +rmexist "$XDG_CONFIG_HOME/nvim/init.lua" "$HOME/.emacs.d/" + +highlight "MPD" +mkdir "${XDG_STATE_HOME}/mpd" +sudo systemctl enable --now mpd +mpc update + template() { local dir=$(dirname "$1") local file=${1/.template} @@ -76,10 +89,13 @@ test -d "$_ovpn" && sudo chown -vR janek:openvpn "$_ovpn" highlight "Cron" -echo 'cron.* /var/log/cron.log' | sudo tee /etc/rsyslog.d/60-cron.conf -hasService=$(which service 2>/dev/null) -test "$hasService" && sudo service rsyslog restart || sudo systemctl restart rsyslog -test "$hasService" && sudo service cron reload || sudo systemctl reload cronie +sudo systemctl enable --now cronie +if test -d "/etc/rsyslog.d"; then + echo 'cron.* /var/log/cron.log' | sudo tee /etc/rsyslog.d/60-cron.conf + hasService=$(which service 2>/dev/null) + test "$hasService" && sudo service rsyslog restart || sudo systemctl restart rsyslog + test "$hasService" && sudo service cron reload || sudo systemctl reload cronie +fi highlight "Zsh" test -n "$ZSH" || export ZSH="${XDG_DATA_HOME:-$HOME/.local/share}/zsh/oh-my-zsh" diff --git a/.config/zsh/.zshrc b/.config/zsh/.zshrc index fb549ce..9b0ed4d 100644 --- a/.config/zsh/.zshrc +++ b/.config/zsh/.zshrc @@ -187,7 +187,6 @@ source_existing() { done } -source_existing /usr/share/zsh/manjaro-zsh-config source_existing $CONFIG_ZSH/.p10k.zsh # To customize prompt, run `p10k configure` or edit .p10k.zsh. source_existing /usr/share/fzf/key-bindings.zsh /usr/share/fzf/completion.zsh