Selaa lähdekoodia

dev: automated commit - 2026-03-10 22:13:57

Mariano Z. 2 viikkoa sitten
vanhempi
commit
b5fb63e31d

+ 1 - 10
zsh/.config/zsh/.zprofile

@@ -1,14 +1,5 @@
-# === Zsh Profile Configuration ===
-# This file is sourced for login shells
-
-# Source environment configuration (includes GPG setup)
-source ~/.config/env
-
-# Set ZDOTDIR if not already set
-export ZDOTDIR=${ZDOTDIR:-~/.config/zsh}
-
+# Start Niri on tty1 if not already running
 if [[ -z "$DISPLAY" && $(tty) == "/dev/tty1" && -z "$NIRI_LOADED" ]]; then
 if [[ -z "$DISPLAY" && $(tty) == "/dev/tty1" && -z "$NIRI_LOADED" ]]; then
     export NIRI_LOADED=1
     export NIRI_LOADED=1
     exec niri-session
     exec niri-session
 fi
 fi
-

+ 18 - 0
zsh/.config/zsh/.zsh_plugins.txt

@@ -0,0 +1,18 @@
+# Completions (run early, before compdef calls)
+mattmc3/ez-compinit
+zsh-users/zsh-completions kind:fpath path:src
+
+# Prompt
+subnixr/minimal
+
+# Vim mode
+zap-zsh/vim
+
+# Fish-like features
+zsh-users/zsh-autosuggestions
+hlissner/zsh-autopair
+zsh-users/zsh-history-substring-search
+Aloxaf/fzf-tab
+
+# Syntax highlighting (must be last)
+zsh-users/zsh-syntax-highlighting

+ 23 - 18
zsh/.config/zsh/.zshrc

@@ -1,23 +1,28 @@
-source $ZDOTDIR/init.zsh
+# GPG agent for SSH authentication
+export GPG_TTY=$(tty)
+gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1 || true
 
 
-autoload -Uz compinit
+# Source antidote (Arch Linux zsh-antidote package path)
+source /usr/share/zsh-antidote/antidote.zsh
 
 
-_compile_zcompdump() {
-    (zcompile "${ZDOTDIR:-$HOME}/.zcompdump" 2>/dev/null &) > /dev/null 2>&1 &!
-}
+# Load plugins
+antidote load
 
 
-_refresh_compinit() {
-    (compinit -C >/dev/null 2>&1; zcompile "${ZDOTDIR:-$HOME}/.zcompdump" 2>/dev/null &) > /dev/null 2>&1 &!
-}
+# Source config files
+source "$ZDOTDIR/opts.zsh"
+source "$ZDOTDIR/tmux.zsh"
+source "$ZDOTDIR/alias.zsh"
+source "$ZDOTDIR/path.zsh"
+source "$ZDOTDIR/pnpm.zsh"
+source "$ZDOTDIR/mise.zsh"
 
 
-if [[ -n ${ZDOTDIR:-$HOME}/.zcompdump(#qN.md+1) ]] || [[ ! -f ${ZDOTDIR:-$HOME}/.zcompdump ]]; then
-    compinit -C
-    zsh-defer _compile_zcompdump
-else
-    compinit -Cu
-    if [[ -n ${ZDOTDIR:-$HOME}/.zcompdump(#qN.mh+12) ]]; then
-        zsh-defer _refresh_compinit
-    fi
-fi
+# FZF integration (Arch package)
+source /usr/share/fzf/key-bindings.zsh
+source /usr/share/fzf/completion.zsh
 
 
-if command -v wt >/dev/null 2>&1; then eval "$(command wt config shell init zsh)"; fi
+for f in "$ZDOTDIR/functions"/*.zsh; do source "$f"; done
+source "$ZDOTDIR/completions/external.zsh"
+source "$ZDOTDIR/keymap.zsh"
+
+# wt integration
+if command -v wt >/dev/null 2>&1; then eval "$(wt config shell init zsh)"; fi

+ 0 - 19
zsh/.config/zsh/functions/system.zsh

@@ -233,25 +233,6 @@ function nas() {
   rclone mount --vfs-cache-mode writes --dir-cache-time 5s --no-check-certificate --allow-other nas: /home/mzunino/nas
   rclone mount --vfs-cache-mode writes --dir-cache-time 5s --no-check-certificate --allow-other nas: /home/mzunino/nas
 }
 }
 
 
-function ocr(){
-  grim -g "$(slurp)" - \
-    | magick - -colorspace gray -negate -brightness-contrast 15x40 -sharpen 0x2 -threshold 60% - \
-    | tesseract stdin stdout -l eng+equ --psm 6 --oem 3 \
-    -c preserve_interword_spaces=1 \
-    -c tessedit_char_blacklist='''""´`–—•' \
-    | sed -E '
-  s/[""]/"/g;
-  s/[''']/"/g;
-  s/'/'"'"'/g;
-  s/[éèê]/8/g;
-  s/í/i/g;
-  s/—/-/g;
-  s/"/"/g;
-  ' \
-    | wl-copy
-  notify-send "✅ OCR copied to clipboard"
-}
-
 function _has {
 function _has {
   if [[ $# -eq 0 ]]; then
   if [[ $# -eq 0 ]]; then
     echo "Usage: _has <command>" >&2
     echo "Usage: _has <command>" >&2

+ 0 - 128
zsh/.config/zsh/init.zsh

@@ -1,128 +0,0 @@
-PLUGIN_DIR="$HOME/.local/share/zsh/plugins"
-mkdir -p "$PLUGIN_DIR"
-
-# GPG agent for SSH authentication (smartcard)
-export GPG_TTY=$(tty)
-gpg-connect-agent updatestartuptty /bye >/dev/null 2>&1 || true
-
-plugins=(
-  "blimmer/zsh-aws-vault"
-  "romkatv/zsh-defer"
-  "zsh-users/zsh-autosuggestions"
-  "hlissner/zsh-autopair"
-  "zsh-users/zsh-history-substring-search"
-  "Aloxaf/fzf-tab"
-  "junegunn/fzf"
-  "subnixr/minimal"
-  "zap-zsh/vim"
-  "zsh-users/zsh-syntax-highlighting"
-)
-
-zap() {
-  echo "⚡ Updating plugins..."
-
-  for plugin in "${plugins[@]}"; do
-    plugin_name=${plugin##*/}
-
-    if [ ! -d "$PLUGIN_DIR/$plugin_name" ]; then
-      echo "Installing $plugin_name"
-      git clone --quiet "https://github.com/$plugin" "$PLUGIN_DIR/$plugin_name" --depth=1
-    else
-      old_hash=$(git -C "$PLUGIN_DIR/$plugin_name" rev-parse HEAD 2>/dev/null)
-
-      git -C "$PLUGIN_DIR/$plugin_name" fetch --quiet
-      git -C "$PLUGIN_DIR/$plugin_name" reset --hard origin/HEAD --quiet
-
-      new_hash=$(git -C "$PLUGIN_DIR/$plugin_name" rev-parse HEAD 2>/dev/null)
-
-      if [ "$old_hash" = "$new_hash" ]; then
-        echo "✓ $plugin_name (up to date)"
-      else
-        echo "↑ $plugin_name (${old_hash:0:7} → ${new_hash:0:7})"
-      fi
-    fi
-  done
-
-  for dir in "$PLUGIN_DIR"/*; do
-    if [ -d "$dir" ]; then
-      plugin_name=$(basename "$dir")
-      if [[ ! " ${plugins[@]##*/} " =~ " $plugin_name " ]]; then
-        echo "Removing unused plugin: $plugin_name"
-        rm -rf "$dir"
-      fi
-    fi
-  done
-
-  echo "Plugin update complete!"
-}
-
-for plugin in "${plugins[@]}"; do
-  plugin_name=${plugin##*/}
-  [[ -d "$PLUGIN_DIR/$plugin_name" ]] || git clone --quiet "https://github.com/$plugin" "$PLUGIN_DIR/$plugin_name" --depth=1
-done
-
-source "$PLUGIN_DIR/zsh-defer/zsh-defer.plugin.zsh"
-source "$PLUGIN_DIR/zsh-aws-vault/zsh-aws-vault.plugin.zsh"
-
-_batch_defer() {
-    local files=("$@")
-    for file in "${files[@]}"; do
-        [[ -f "$file" ]] && source "$file"
-    done
-}
-
-zsh-defer source "$PLUGIN_DIR/zsh-autosuggestions/zsh-autosuggestions.zsh"
-zsh-defer source "$PLUGIN_DIR/zsh-autopair/autopair.zsh"
-zsh-defer source "$PLUGIN_DIR/zsh-history-substring-search/zsh-history-substring-search.zsh"
-
-source "$PLUGIN_DIR/minimal/minimal.zsh"
-
-source "$ZDOTDIR/opts.zsh"
-# source "$ZDOTDIR/rose-pine.sh"
-
-source "$ZDOTDIR/tmux.zsh"
-
-zsh-defer _batch_defer "$ZDOTDIR/alias.zsh" "$ZDOTDIR/path.zsh" "$ZDOTDIR/pnpm.zsh" "$ZDOTDIR/mise.zsh"
-
-local func_files=("$ZDOTDIR/functions"/*.zsh)
-zsh-defer _batch_defer "${func_files[@]}" "$ZDOTDIR/completions/external.zsh"
-
-zsh-defer _batch_defer \
-    "$PLUGIN_DIR/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh" \
-    "$PLUGIN_DIR/fzf-tab/fzf-tab.plugin.zsh" \
-    "$PLUGIN_DIR/fzf/shell/completion.zsh" \
-    "$PLUGIN_DIR/fzf/shell/key-bindings.zsh" \
-    "$PLUGIN_DIR/vim/vim.plugin.zsh" \
-    "$ZDOTDIR/keymap.zsh"
-
-_compile_zsh_files() {
-    (
-        local files=(
-            "$ZDOTDIR/init.zsh"
-            "$ZDOTDIR/opts.zsh"
-            "$ZDOTDIR/rose-pine.sh"
-            "$ZDOTDIR/completions/external.zsh"
-            "$ZDOTDIR/tmux.zsh"
-            "$ZDOTDIR/alias.zsh"
-            "$ZDOTDIR/keymap.zsh"
-            "$ZDOTDIR/path.zsh"
-            "$ZDOTDIR/pnpm.zsh"
-            "$ZDOTDIR/mise.zsh"
-        )
-
-        for func_file in "$ZDOTDIR/functions"/*.zsh; do
-            files+=("$func_file")
-        done
-
-        for file in "${files[@]}"; do
-            [[ ! -f "$file" ]] && continue
-            local zwc="${file}.zwc"
-            if [[ "$file" -nt "$zwc" ]] || [[ ! -f "$zwc" ]]; then
-                zcompile "$file" 2>/dev/null &
-            fi
-        done
-        wait
-    ) > /dev/null 2>&1 &!
-}
-
-zsh-defer _compile_zsh_files

+ 1 - 13
zsh/.config/zsh/opts.zsh

@@ -27,19 +27,7 @@ if [[ ! -f "$HISTFILE" ]]; then
     chmod 644 "$HISTFILE"  # More permissive permissions
     chmod 644 "$HISTFILE"  # More permissive permissions
 fi
 fi
 
 
-# AWS Vault configuration
-export AWS_VAULT_PL_MFA=inline
-export AWS_VAULT_PL_CHAR="󰅟 "
-
-prompt_aws_vault() {
-    local vault_segment
-    vault_segment="`prompt_aws_vault_segment`"
-    if [[ $vault_segment != '' ]]; then
-        echo -n " %F{yellow}$vault_segment%f"
-    fi
-}
-
 MNML_INFOLN=()
 MNML_INFOLN=()
-MNML_PROMPT=( mnml_ssh mnml_status 'mnml_cwd 2 0' mnml_git prompt_aws_vault mnml_keymap )
+MNML_PROMPT=( mnml_ssh mnml_status 'mnml_cwd 2 0' mnml_git mnml_keymap )
 MNML_RPROMPT=()
 MNML_RPROMPT=()
 MNML_NORMAL_CHAR="◉"
 MNML_NORMAL_CHAR="◉"

+ 31 - 23
zsh/.zshenv

@@ -1,33 +1,41 @@
-export EDITOR="nvim"
-export TERMINAL="kitty"
-export LANG=en_US.UTF-8
-
-# XDG Base Directory Spec
+# XDG Base Directory Spec (must come first)
 export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
 export XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
 export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
 export XDG_CACHE_HOME="${XDG_CACHE_HOME:-$HOME/.cache}"
 export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
 export XDG_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}"
 export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
 export XDG_STATE_HOME="${XDG_STATE_HOME:-$HOME/.local/state}"
-export ZDOTDIR=${ZDOTDIR:-$XDG_CONFIG_HOME/zsh}
 
 
-# Configuración de programas basada en XDG
-export WAKATIME_HOME=$XDG_CONFIG_HOME/wakatime
-export ZSH_WAKATIME_BIN=$XDG_CONFIG_HOME/wakatime/.wakatime/wakatime-cli
-export W3M_DIR=$XDG_DATA_HOME/w3m
-export RANDFILE=$XDG_CACHE_HOME/.rnd
-export SOLARGRAPH_CACHE=$XDG_CACHE_HOME/solargraph
-export NPM_CONFIG_USERCONFIG=$XDG_CONFIG_HOME/npm/npmrc
-export NODE_REPL_HISTORY=$XDG_DATA_HOME/node_repl_history
-export GRADLE_USER_HOME=$XDG_DATA_HOME/gradle
-export GOPATH=$XDG_DATA_HOME/go
-export DOCKER_CONFIG=$XDG_CONFIG_HOME/docker
-export CARGO_HOME=$XDG_DATA_HOME/cargo
-export HISTFILE=${XDG_STATE_HOME}/bash/history
-export GTK2_RC_FILES="$XDG_CONFIG_HOME/gtk-2.0/gtkrc-2.0"
-export WGETRC="$XDG_CONFIG_HOME/wgetrc"
+# Set ZDOTDIR for zsh config location
+export ZDOTDIR="${ZDOTDIR:-$XDG_CONFIG_HOME/zsh}"
+
+# Basic environment
+export EDITOR="nvim"
+export TERMINAL="alacritty"
+export LANG=en_US.UTF-8
+
+# GPG and SSH
+export GNUPGHOME="${XDG_DATA_HOME}/gnupg"
+export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+
+# Program-specific XDG paths
+export CARGO_HOME="${XDG_DATA_HOME}/cargo"
+export DOCKER_CONFIG="${XDG_CONFIG_HOME}/docker"
+export GOPATH="${XDG_DATA_HOME}/go"
+export GRADLE_USER_HOME="${XDG_DATA_HOME}/gradle"
+export GTK2_RC_FILES="${XDG_CONFIG_HOME}/gtk-2.0/gtkrc"
 export JAVA_HOME="/usr/lib/jvm/default"
 export JAVA_HOME="/usr/lib/jvm/default"
-export PATH="$HOME/.local/bin:$PATH"
+export _JAVA_OPTIONS="-Djava.util.prefs.userRoot=${XDG_CONFIG_HOME}/java"
+export NODE_REPL_HISTORY="${XDG_DATA_HOME}/node_repl_history"
+export NPM_CONFIG_USERCONFIG="${XDG_CONFIG_HOME}/npm/npmrc"
+export npm_config_cache="${XDG_CACHE_HOME}/npm"
+export RANDFILE="${XDG_CACHE_HOME}/.rnd"
+export SOLARGRAPH_CACHE="${XDG_CACHE_HOME}/solargraph"
+export W3M_DIR="${XDG_DATA_HOME}/w3m"
+export WGETRC="${XDG_CONFIG_HOME}/wgetrc"
 
 
-# Scaling
+# Qt/GTK theming
 export QT_AUTO_SCREEN_SCALE_FACTOR=1
 export QT_AUTO_SCREEN_SCALE_FACTOR=1
+export QT_QPA_PLATFORMTHEME=gtk3
 export XCURSOR_SIZE=24
 export XCURSOR_SIZE=24
 
 
+# PATH
+export PATH="$HOME/.local/bin:$PATH"