diff --git a/airootfs/etc/skel/.fzf.zsh b/airootfs/etc/skel/.fzf.zsh new file mode 100644 index 0000000..a18d61e --- /dev/null +++ b/airootfs/etc/skel/.fzf.zsh @@ -0,0 +1,36 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == *${FZF_PATH}/bin* ]]; then + export PATH="$PATH:${FZF_PATH}/bin" +fi + +function _fzf_settings_has() { + which "$@" > /dev/null 2>&1 +} + +if _fzf_settings_has brew; then + # If fzf was installed via brew, use the brew paths + if [[ -x "$(brew --prefix)/bin/fzf" ]]; then + if [[ -f "$(brew --prefix fzf)/shell/completion.zsh" ]]; then + source "$(brew --prefix fzf)/shell/completion.zsh" 2> /dev/null + fi + if [[ -f "$(brew --prefix fzf)/shell/key-bindings.zsh" ]]; then + source "$(brew --prefix fzf)/shell/key-bindings.zsh" + fi + fi +fi + +# Auto-completion +# --------------- +if [[ -f "${FZF_PATH}/shell/completion.zsh" ]]; then + [[ $- == *i* ]] && source "${FZF_PATH}/shell/completion.zsh" 2> /dev/null +fi + +# Key bindings +# ------------ +if [[ -f "${FZF_PATH}/shell/key-bindings.zsh" ]]; then + source "${FZF_PATH}/shell/key-bindings.zsh" +fi + +# Cleanup internal functions +unset -f _fzf_settings_has diff --git a/airootfs/etc/skel/.zshrc b/airootfs/etc/skel/.zshrc new file mode 100644 index 0000000..2194cff --- /dev/null +++ b/airootfs/etc/skel/.zshrc @@ -0,0 +1,186 @@ +# If you come from bash, you might have to change your $PATH. +export PATH=$HOME/bin:/usr/local/bin:$PATH +export PATH="$HOME/.local/bin:$PATH" +export WAYLAND_DISPLAY=$WAYLAND_DISPLAY +export XDG_RUNTIME_DIR=$XDG_RUNTIME_DIR + +# Homebrew (If installed) +if [[ -f "/home/linusbrew/.linuxbrew/bin/brew" ]]; then +eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv zsh)" +fi + +# Ghostty (If exists) +if [ -n "${GHOSTTY_RESOURCES_DIR}" ]; then + builtin source "${GHOSTTY_RESOURCES_DIR}/shell-integration/bash/ghostty.bash" +fi + +# Path to your oh-my-zsh installation. + export ZSH=~/.oh-my-zsh + +# Set the name of the theme to load. If you set this to "random" +# It'll load a random theme each time that oh-my-zsh is loaded. +# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes + ZSH_THEME="gnzh" + +# Set the list of themes to load +# Setting this variable when ZSH_THEME=random +# cause zsh to load the theme from this variable instead of +# looking in ~/.oh-my-zsh/themes/ +# An empty array has no effect +# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" ) + +# Uncomment the following line to use case-sensitive completion. +CASE_SENSITIVE="true" + +#Zsh autocorrect +unsetopt correct_all + +# Uncomment the following line to use hyphen-insensitive completion. Case +# sensitive completion must be off. _ and - will be interchangeable. +# HYPHEN_INSENSITIVE="true" + +# Uncomment the following line to disable bi-weekly auto-update checks. +# DISABLE_AUTO_UPDATE="true" + +# Uncomment the following line to change how often auto-update (in days) is used. +# export UPDATE_ZSH_DAYS=13 + +# Uncomment the following line to disable colours in ls. +# DISABLE_LS_COLORS="true" + +# Uncomment the following line to disable auto-setting the terminal title. +# DISABLE_AUTO_TITLE="true" + +# Uncomment the following line to enable command auto-correction. +# ENABLE_CORRECTION="true" + +# Uncomment the following line to display red dots whilst waiting for completion. +# COMPLETION_WAITING_DOTS="true" + +# Uncomment the following line if you want to disable marking untracked files +# under VCS as dirty. This makes repository status checks for large repositories +# much, much faster. +# DISABLE_UNTRACKED_FILES_DIRTY="true" + +# Uncomment the following line if you want to change the command execution time +# stamp shown in the history command output. +# The optional three formats: "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd" +# HIST_STAMPS="mm/dd/yyyy" + +# Uncomment the following to use another custom folder than $ZSH/custom? +# ZSH_CUSTOM=/path/to/new-custom-folder + +# Which plugins would you like to load? (plugins can be found in ~/.oh-my-zsh/plugins/*) +# Custom plugins may be added to ~/.oh-my-zsh/custom/plugins/ +# Example format: plugins=(rails git textmate ruby lighthouse) +# Add wisely, as too many plugins slow down shell startup. +plugins=( + git + zsh-history-substring-search + zsh-autosuggestions + zsh-autocomplete +# zsh-eza + fzf-zsh-plugin + zsh-syntax-highlighting + +) + +source $ZSH/oh-my-zsh.sh + +# User configuration + +# export MANPATH="/usr/local/man:$MANPATH" + +# You may need to set your language environment manually +# export LANG=en_US.UTF-8 + +# Preferred editor for local and remote sessions +if [[ -n $SSH_CONNECTION ]]; then + export EDITOR='vim' +else + export EDITOR='nvim' +fi + +# Compilation flags +# export ARCHFLAGS="-arch x86_64" + +# ssh +# export SSH_KEY_PATH="~/.ssh/rsa_id" + +update () { + # Update arch based systems with yay AUR helper + if command -v pacman >/dev/null && command -v yay >/dev/null; then + echo "✅ 'pacman' and 'yay' found. Updating." + sudo pacman -Syu --noconfirm + yay -Syu --sudoloop --save --answerclean None --answerdiff None --noconfirm + elif command -v pacman >/dev/null; then + echo "✅ 'pacman' found. Updating." + sudo pacman -Syu --noconfirm + fi + + if command -v paru >/dev/null; then + echo "✅ 'flatpak' found. Updating." + paru -Syu + fi + + # Update on debian based systems + if command -v apt >/dev/null; then + echo "✅ 'apt' found. Updating." + sudo apt update && sudo apt full-upgrade -y + fi + + # Update Hyprland + if command -v hyprpm >/dev/null; then + echo "✅ 'hyprpm' found. Updating." + hyprpm reload && sleep 2 + hyprpm update + fi + + # Update Flatpak + if command -v flatpak >/dev/null; then + echo "✅ 'flatpak' found. Updating." + flatpak update -y + fi + + # Update npm + if command -v npm >/dev/null; then + echo "✅ 'npm' found. Updating." + sudo npm install -g npm-check-updates + fi + + omz update +} + +# Sudo last command with control + u + +zle -N sudo-last-command-execute +sudo-last-command-execute() { + + zle -U $'sudo !!\n' + +} + +# Bind the widget to Alt+S +bindkey '^[S' sudo-last-command-execute + +# Ydotool +if [[ -f "/tmp/.ydotool_socket" ]]; then + export YDOTOOL_SOCKET=/tmp/.ydotool_socket +fi + +# Haven android ssh client +precmd() { print -Pn '\e]133;D;%?\a\e]133;A\a' } +preexec() { print -Pn '\e]133;B\a\e]133;C\a' } + +# Set personal aliases, overriding those provided by oh-my-zsh libs, +# plugins, and themes. Aliases can be placed here, though oh-my-zsh +# users are encouraged to define aliases within the ZSH_CUSTOM folder. +# For a full list of active aliases, run `alias`. +# +# Example aliases +# alias zshconfig="mate ~/.zshrc" +# alias ohmyzsh="mate ~/.oh-my-zsh" + +alias lzd="lazydocker" +alias edit="nvim" +alias rpi="pkexec /usr/bin/rpi-imager"