From a6af5aae17e77844fb89b5dd106ce4dc8a64e8ba Mon Sep 17 00:00:00 2001 From: DRAGONTOS Date: Tue, 2 Apr 2024 19:18:44 +0200 Subject: [PATCH] initial commit --- .zprofile | 89 ++++++++++++++++++++++++++++++++++++++++++ shell/aliasrc | 75 +++++++++++++++++++++++++++++++++++ shell/bm-dirs | 14 +++++++ shell/bm-files | 23 +++++++++++ shell/shortcutrc | 30 ++++++++++++++ shell/zshnameddirrc | 29 ++++++++++++++ zsh/.histfile | 7 ++++ zsh/.zshenv | 66 +++++++++++++++++++++++++++++++ zsh/.zshrc | 95 +++++++++++++++++++++++++++++++++++++++++++++ 9 files changed, 428 insertions(+) create mode 100644 .zprofile create mode 100644 shell/aliasrc create mode 100644 shell/bm-dirs create mode 100644 shell/bm-files create mode 100644 shell/shortcutrc create mode 100644 shell/zshnameddirrc create mode 100644 zsh/.histfile create mode 100644 zsh/.zshenv create mode 100644 zsh/.zshrc diff --git a/.zprofile b/.zprofile new file mode 100644 index 0000000..c5390fa --- /dev/null +++ b/.zprofile @@ -0,0 +1,89 @@ +#!/bin/zsh +# Adds `~/.local/bin` to $PATH +export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}" + +unsetopt PROMPT_SP + +# Default programs: +export EDITOR="nvim" +export TERMINAL="kitty" +export TERMINAL_PROG="kitty" +export BROWSER="floorp" + +# Change the default crypto/weather monitor sites. +# export CRYPTOURL="rate.sx" +# export WTTRURL="wttr.in" + +# ~/ Clean-up: +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc" +#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs. +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config" +export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" +export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" +export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc" +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +#export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default" +export KODI_DATA="$XDG_DATA_HOME/kodi" +export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store" +export TMUX_TMPDIR="$XDG_RUNTIME_DIR" +export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export GOPATH="$XDG_DATA_HOME/go" +export GOMODCACHE="$XDG_CACHE_HOME/go/mod" +export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg" +export UNISON="$XDG_DATA_HOME/unison" +export HISTFILE="$XDG_DATA_HOME/history" +export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" +export ELECTRUMDIR="$XDG_DATA_HOME/electrum" +export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc" +export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" + +# Other program settings: +export DICS="/usr/share/stardict/dic/" +export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" +export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" +export LESS=-R +export LESS_TERMCAP_mb="$(printf '%b' '')" +export LESS_TERMCAP_md="$(printf '%b' '')" +export LESS_TERMCAP_me="$(printf '%b' '')" +export LESS_TERMCAP_so="$(printf '%b' '')" +export LESS_TERMCAP_se="$(printf '%b' '')" +export LESS_TERMCAP_us="$(printf '%b' '')" +export LESS_TERMCAP_ue="$(printf '%b' '')" +export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" +export QT_QPA_PLATFORMTHEME=gtk3 +export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. +export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname +export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm + +# docker +export PATH=/usr/bin:$PATH + + +[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 + +# Added by Toolbox App +export PATH="$PATH:/home/rander/.local/share/JetBrains/Toolbox/scripts" + +# profile file. Runs on login. Environmental variables are set here. + +# If you don't plan on reverting to bash, you can remove the link in ~/.profile +# to clean up. + +# Start graphical server on user's current tty if not already running. +#if [ "$(tty)" = "/dev/tty1" ]; then + + # Assuming Hyprland is a command to start some application, include it here + #sway + #XDG_SESSION_TYPE=wayland dbus-run-session Hyprland + #Hyprland + +# Quits tty if leaving Hyprland + #exit +#fi + + diff --git a/shell/aliasrc b/shell/aliasrc new file mode 100644 index 0000000..f786775 --- /dev/null +++ b/shell/aliasrc @@ -0,0 +1,75 @@ +#!/bin/sh + +# Use neovim for vim if present. +[ -x "$(command -v nvim)" ] && alias vim="nvim" vimdiff="nvim -d" + +# Use $XINITRC variable if file exists. +[ -f "$XINITRC" ] && alias startx="startx $XINITRC" + +[ -f "$MBSYNCRC" ] && alias mbsync="mbsync -c $MBSYNCRC" + +# sudo not required for some system commands +for command in mount umount sv pacman updatedb su shutdown poweroff reboot ; do + alias $command="sudo $command" +done; unset command + +se() { + choice="$(find ~/.local/bin -mindepth 1 -printf '%P\n' | fzf)" + [ -f "$HOME/.local/bin/$choice" ] && $EDITOR "$HOME/.local/bin/$choice" + ;} + +# Verbosity and settings that you pretty much just always are going to want. +alias \ + cp="cp -iv" \ + mv="mv -iv" \ + rm="rm -vI" \ + bc="bc -ql" \ + rsync="rsync -vrPlu" \ + mkd="mkdir -pv" \ + yt="yt-dlp --embed-metadata -i" \ + yta="yt -x -f bestaudio/best" \ + ytt="yt --skip-download --write-thumbnail" \ + ffmpeg="ffmpeg -hide_banner" \ + vim="nvim" +# Colorize commands when possible. +alias \ + game="Xwayland -geometry 1920x1080 :12 & dwm" \ + make="make -j12" \ + cddocker="cd /$HOME/.local/share/docker" \ + ls="eza --icons -la --group-directories-first" \ + way="env GDK_BACKEND=wayland" \ + x11="env GDK_BACKEND=x11 DISPLAY=:12" \ + x112="QT_QPA_PLATFORM=xcb DISPLAY=:12" \ + pipestop="killall pipewire && pipewire-pulse && wireplumber" \ + pipestart="pipewire && pipewire-pulse && wireplumber" \ + update="yay && sudo pacman -Syu" \ + bemenu_run="bemenu-run --fn 'JetBrains Mono 10' \ + -c -B 3 -R 9 -f -n -M 500 -l 15 \ + --bdr '#8311DB' --hb '#8311DB' --nb '#292929' \ + --ab '#292929' --fb '#292929' --hf '#FAF9F9' \ + --tb '#8311DB' --tf '#FAF9F9'" + grep="grep --color=auto" \ + diff="diff --color=auto" \ + ccat="highlight --out-format=ansi" \ + ip="ip -color=auto" + +# These common commands are just too long! Abbreviate them. +alias \ + ka="killall" \ + g="git" \ + trem="transmission-remote" \ + YT="youtube-viewer" \ + sdn="shutdown -h now" \ + e="$EDITOR" \ + v="$EDITOR" \ + p="pacman" \ + xi="sudo xbps-install" \ + xr="sudo xbps-remove -R" \ + xq="xbps-query" \ + z="zathura" + +alias \ + lf="lfub" \ + magit="nvim -c MagitOnly" \ + ref="shortcuts >/dev/null; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ; source ${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" \ + weath="less -S ${XDG_CACHE_HOME:-$HOME/.cache}/weatherreport" \ diff --git a/shell/bm-dirs b/shell/bm-dirs new file mode 100644 index 0000000..9d212ec --- /dev/null +++ b/shell/bm-dirs @@ -0,0 +1,14 @@ +# You can add comments to these files with # +cac ${XDG_CACHE_HOME:-$HOME/.cache} +cf ${XDG_CONFIG_HOME:-$HOME/.config} +D ${XDG_DOWNLOAD_DIR:-$HOME/Downloads} +d ${XDG_DOCUMENTS_DIR:-$HOME/Documents} +dt ${XDG_DATA_HOME:-$HOME/.local/share} +rr $HOME/.local/src +h $HOME +m ${XDG_MUSIC_DIR:-$HOME/Music} +mn /mnt +pp ${XDG_PICTURES_DIR:-$HOME/Pictures} +sc $HOME/.local/bin +src $HOME/.local/src +vv ${XDG_VIDEOS_DIR:-$HOME/Videos} diff --git a/shell/bm-files b/shell/bm-files new file mode 100644 index 0000000..7acbb66 --- /dev/null +++ b/shell/bm-files @@ -0,0 +1,23 @@ +# These files automatically update when edited/saved in vim: + +# keys filename description +bf ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-files # This file, a list of bookmarked files +bd ${XDG_CONFIG_HOME:-$HOME/.config}/shell/bm-dirs # A list of bookmarked directories similar to this file +cfx ${XDG_CONFIG_HOME:-$HOME/.config}/x11/xresources # Colors, themes and variables for X11 +cfb ~/.local/src/dwmblocks/config.h # dwmblocks: the status bar for dwm + + +# These do not update automatically, but on the next new instance of a program: + +cfv ${XDG_CONFIG_HOME:-$HOME/.config}/nvim/init.vim # vim/neovim config +cfz $ZDOTDIR/.zshrc # zsh (shell) config +cfa ${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc # aliases used by zsh (and potentially other shells) +cfp ${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile # profile file for login settings for zsh +cfm ${XDG_CONFIG_HOME:-$HOME/.config}/mutt/muttrc # mutt (email client) config +cfn ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/config # newsboat (RSS reader) +cfu ${XDG_CONFIG_HOME:-$HOME/.config}/newsboat/urls # RSS urls for newsboat +cfmb ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/bindings # ncmpcpp (music player) keybinds file +cfmc ${XDG_CONFIG_HOME:-$HOME/.config}/ncmpcpp/config # ncmpcpp (music player) config +cfl ${XDG_CONFIG_HOME:-$HOME/.config}/lf/lfrc # lf (file browser) config +cfL ${XDG_CONFIG_HOME:-$HOME/.config}/lf/scope # lf's scope/preview file +cfX ${XDG_CONFIG_HOME:-$HOME/.config}/sxiv/exec/key-handler # sxiv (image viewer) key/script handler diff --git a/shell/shortcutrc b/shell/shortcutrc new file mode 100644 index 0000000..85b4447 --- /dev/null +++ b/shell/shortcutrc @@ -0,0 +1,30 @@ +# vim: filetype=sh +alias cac="cd /home/rander/.cache && ls -a" \ +cf="cd /home/rander/.config && ls -a" \ +D="cd /home/rander/Downloads && ls -a" \ +d="cd /home/rander/Documents && ls -a" \ +dt="cd /home/rander/.local/share && ls -a" \ +rr="cd /home/rander/.local/src && ls -a" \ +h="cd /home/rander && ls -a" \ +m="cd /home/rander/Music && ls -a" \ +mn="cd /mnt && ls -a" \ +pp="cd /home/rander/Pictures && ls -a" \ +sc="cd /home/rander/.local/bin && ls -a" \ +src="cd /home/rander/.local/src && ls -a" \ +vv="cd /home/rander/Videos && ls -a" \ +bf="$EDITOR /home/rander/.config/shell/bm-files" \ +bd="$EDITOR /home/rander/.config/shell/bm-dirs" \ +cfx="$EDITOR /home/rander/.config/x11/xresources" \ +cfb="$EDITOR ~/.local/src/dwmblocks/config.h" \ +cfv="$EDITOR /home/rander/.config/nvim/init.vim" \ +cfz="$EDITOR /home/rander/.config/zsh/.zshrc" \ +cfa="$EDITOR /home/rander/.config/shell/aliasrc" \ +cfp="$EDITOR /home/rander/.config/shell/profile" \ +cfm="$EDITOR /home/rander/.config/mutt/muttrc" \ +cfn="$EDITOR /home/rander/.config/newsboat/config" \ +cfu="$EDITOR /home/rander/.config/newsboat/urls" \ +cfmb="$EDITOR /home/rander/.config/ncmpcpp/bindings" \ +cfmc="$EDITOR /home/rander/.config/ncmpcpp/config" \ +cfl="$EDITOR /home/rander/.config/lf/lfrc" \ +cfL="$EDITOR /home/rander/.config/lf/scope" \ +cfX="$EDITOR /home/rander/.config/sxiv/exec/key-handler" \ diff --git a/shell/zshnameddirrc b/shell/zshnameddirrc new file mode 100644 index 0000000..23ef7bb --- /dev/null +++ b/shell/zshnameddirrc @@ -0,0 +1,29 @@ +hash -d cac=/home/rander/.cache +hash -d cf=/home/rander/.config +hash -d D=/home/rander/Downloads +hash -d d=/home/rander/Documents +hash -d dt=/home/rander/.local/share +hash -d rr=/home/rander/.local/src +hash -d h=/home/rander +hash -d m=/home/rander/Music +hash -d mn=/mnt +hash -d pp=/home/rander/Pictures +hash -d sc=/home/rander/.local/bin +hash -d src=/home/rander/.local/src +hash -d vv=/home/rander/Videos +hash -d bf=/home/rander/.config/shell/bm-files +hash -d bd=/home/rander/.config/shell/bm-dirs +hash -d cfx=/home/rander/.config/x11/xresources +hash -d cfb=~/.local/src/dwmblocks/config.h +hash -d cfv=/home/rander/.config/nvim/init.vim +hash -d cfz=/home/rander/.config/zsh/.zshrc +hash -d cfa=/home/rander/.config/shell/aliasrc +hash -d cfp=/home/rander/.config/shell/profile +hash -d cfm=/home/rander/.config/mutt/muttrc +hash -d cfn=/home/rander/.config/newsboat/config +hash -d cfu=/home/rander/.config/newsboat/urls +hash -d cfmb=/home/rander/.config/ncmpcpp/bindings +hash -d cfmc=/home/rander/.config/ncmpcpp/config +hash -d cfl=/home/rander/.config/lf/lfrc +hash -d cfL=/home/rander/.config/lf/scope +hash -d cfX=/home/rander/.config/sxiv/exec/key-handler diff --git a/zsh/.histfile b/zsh/.histfile new file mode 100644 index 0000000..9aad585 --- /dev/null +++ b/zsh/.histfile @@ -0,0 +1,7 @@ +ls -la +cd .config +sftp -P 50 rander@10.10.0.6 +exit +ls +zsh +zsh diff --git a/zsh/.zshenv b/zsh/.zshenv new file mode 100644 index 0000000..4ab9817 --- /dev/null +++ b/zsh/.zshenv @@ -0,0 +1,66 @@ +# Adds `~/.local/bin` to $PATH +export PATH="$PATH:${$(find ~/.local/bin -type d -printf %p:)%%:}" + +unsetopt PROMPT_SP + +# Default programs: +export EDITOR="nvim" +export TERMINAL="kitty" +export TERMINAL_PROG="kitty" +export BROWSER="firefox-esr" + +# Change the default crypto/weather monitor sites. +# export CRYPTOURL="rate.sx" +# export WTTRURL="wttr.in" + +# ~/ Clean-up: +export XDG_CONFIG_HOME="$HOME/.config" +export XDG_DATA_HOME="$HOME/.local/share" +export XDG_CACHE_HOME="$HOME/.cache" +export XINITRC="$XDG_CONFIG_HOME/x11/xinitrc" +#export XAUTHORITY="$XDG_RUNTIME_DIR/Xauthority" # This line will break some DMs. +export NOTMUCH_CONFIG="$XDG_CONFIG_HOME/notmuch-config" +export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0" +export WGETRC="$XDG_CONFIG_HOME/wget/wgetrc" +export INPUTRC="$XDG_CONFIG_HOME/shell/inputrc" +export ZDOTDIR="$XDG_CONFIG_HOME/zsh" +#export GNUPGHOME="$XDG_DATA_HOME/gnupg" +export WINEPREFIX="$XDG_DATA_HOME/wineprefixes/default" +export KODI_DATA="$XDG_DATA_HOME/kodi" +export PASSWORD_STORE_DIR="$XDG_DATA_HOME/password-store" +export TMUX_TMPDIR="$XDG_RUNTIME_DIR" +export ANDROID_SDK_HOME="$XDG_CONFIG_HOME/android" +export CARGO_HOME="$XDG_DATA_HOME/cargo" +export GOPATH="$XDG_DATA_HOME/go" +export GOMODCACHE="$XDG_CACHE_HOME/go/mod" +export ANSIBLE_CONFIG="$XDG_CONFIG_HOME/ansible/ansible.cfg" +export UNISON="$XDG_DATA_HOME/unison" +export HISTFILE="$XDG_DATA_HOME/history" +export MBSYNCRC="$XDG_CONFIG_HOME/mbsync/config" +export ELECTRUMDIR="$XDG_DATA_HOME/electrum" +export PYTHONSTARTUP="$XDG_CONFIG_HOME/python/pythonrc" +export SQLITE_HISTORY="$XDG_DATA_HOME/sqlite_history" + +# Other program settings: +export DICS="/usr/share/stardict/dic/" +export SUDO_ASKPASS="$HOME/.local/bin/dmenupass" +export FZF_DEFAULT_OPTS="--layout=reverse --height 40%" +export LESS=-R +export LESS_TERMCAP_mb="$(printf '%b' '')" +export LESS_TERMCAP_md="$(printf '%b' '')" +export LESS_TERMCAP_me="$(printf '%b' '')" +export LESS_TERMCAP_so="$(printf '%b' '')" +export LESS_TERMCAP_se="$(printf '%b' '')" +export LESS_TERMCAP_us="$(printf '%b' '')" +export LESS_TERMCAP_ue="$(printf '%b' '')" +export LESSOPEN="| /usr/bin/highlight -O ansi %s 2>/dev/null" +export QT_QPA_PLATFORMTHEME=gtk3 +export MOZ_USE_XINPUT2="1" # Mozilla smooth scrolling/touchpads. +export AWT_TOOLKIT="MToolkit wmname LG3D" # May have to install wmname +export _JAVA_AWT_WM_NONREPARENTING=1 # Fix for Java applications in dwm + +[ ! -f ${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc ] && setsid shortcuts >/dev/null 2>&1 + +# Added by Toolbox App +export PATH="$PATH:/home/rander/.local/share/JetBrains/Toolbox/scripts" + diff --git a/zsh/.zshrc b/zsh/.zshrc new file mode 100644 index 0000000..8ddeb24 --- /dev/null +++ b/zsh/.zshrc @@ -0,0 +1,95 @@ +# +# Kaley's z shell +autoload -Uz vcs_info +precmd() { vcs_info } + +zstyle ':vcs_info:git:*' formats '%b' + +# +# change prompt: +setopt PROMPT_SUBST +export PROMPT='%F{92}┌─[%F{green}%n%b%F{black}@%F{cyan}%m%F{92}]%f - %F{92}[%F{default}%~%F{92}]%f - %F{92}[%F{yellow}20%D %T%F{92}] +└─[%F{default}${vcs_info_msg_0_}%F{92}] <>%f ' +# +# History in cache directory: +HISTSIZE=10000000 +SAVEHIST=10000000 +HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/history" + +# +# Load aliases and shortcuts if existent. +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/shortcutrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/aliasrc" +[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" ] && source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/zshnameddirrc" + +# Basic auto/tab complete: +autoload -U compinit +zstyle ':completion:*' menu select +zmodload zsh/complist +compinit +_comp_options+=(globdots) # Include hidden files. + +#zle -N zle-line-init +#echo -ne '\e[5 q' # Use beam shape cursor on startup. +#preexec() { echo -ne '\e[5 q' ;} # Use beam shape cursor for each new prompt. + +# +# Use lf to switch directories and bind it to ctrl-o +#lfcd () { +# tmp="$(mktemp -uq)" +# trap 'rm -f $tmp >/dev/null 2>&1 && trap - HUP INT QUIT TERM PWR EXIT' HUP INT QUIT TERM PWR EXIT +# lf -last-dir-path="$tmp" "$@" +# if [ -f "$tmp" ]; then +# dir="$(cat "$tmp")" +# [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" +# fi +#} +#bindkey -s '^f' '^ucd "$(dirname "$(fzf)")"\n' + +# Make Zsh behave more like bash +bindkey '^[[1;5C' forward-word # Ctrl+Right arrow key for moving forward a word +bindkey '^[[1;5D' backward-word # Ctrl+Left arrow key for moving backward a word +bindkey '^[[1;2C' forward-word # Shift+Right arrow key for selection and moving forward a word +bindkey '^[[1;2D' backward-word # Shift+Left arrow key for selection and moving backward a word +# Remove custom bindings for Delete and Ctrl+Delete +bindkey '^[[3~' delete-char +bindkey '^[[3;5~' backward-kill-word + + +export PATH="/home/rander/.mozbuild/git-cinnabar:$PATH" +# +# Some auto run commands: +#neofetch +neofetch +#cat $HOME/Documents/IMPORTANT/school-todo +# +## Sets Permissions: (Distrobox) +export PATH=$HOME/.local/bin:$PATH +export PATH=$HOME/.local/podman/bin:$PATH +xhost +si:localuser:$USER > /dev/null 2>&1 +PATH=$PATH:/home/$USER/.local/bin + +## Fix pip +source $HOME/.local/share/virtualenv/bin/activate + +# +# Extra Path options +export PATH=/usr/bin:$PATH +export PATH=/usr/sbin:$PATH +export PATH=$HOME/.cargo/bin:$PATH +export PATH=$HOME/.local/share/cargo/bin:$PATH + +# +# Load syntax highlighting; should be last. +eval "$(mcfly init zsh)" +source /usr/share/zsh/plugins/fast-syntax-highlighting/fast-syntax-highlighting.plugin.zsh 2>/dev/null +source /usr/share/zsh/plugins/zsh-auto-notify/auto-notify.plugin.zsh 2>/dev/null +source /usr/share/zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh 2>/dev/null + +# pnpm +export PNPM_HOME="/home/rander/.local/share/pnpm" +case ":$PATH:" in + *":$PNPM_HOME:"*) ;; + *) export PATH="$PNPM_HOME:$PATH" ;; +esac +# pnpm end