summaryrefslogtreecommitdiff
path: root/zsh/.zshrc
diff options
context:
space:
mode:
Diffstat (limited to 'zsh/.zshrc')
-rw-r--r--zsh/.zshrc182
1 files changed, 182 insertions, 0 deletions
diff --git a/zsh/.zshrc b/zsh/.zshrc
new file mode 100644
index 0000000..2d85f47
--- /dev/null
+++ b/zsh/.zshrc
@@ -0,0 +1,182 @@
+# If you come from bash you might have to change your $PATH.
+# export PATH=$HOME/bin:$HOME/.local/bin:/usr/local/bin:$PATH
+
+source <(fzf --zsh)
+# CTRL-Y to copy the command into clipboard using pbcopy
+#####Exports######
+##################
+export FZF_CTRL_R_OPTS="
+ --bind 'ctrl-y:execute-silent(echo -n {2..} | pbcopy)+abort'
+ --color header:italic
+ --header 'Press CTRL-Y to copy command into clipboard'"
+export ZSH="$HOME/.oh-my-zsh"
+export JAVA_HOME=/opt/java/jdk-24.0.2/
+export PATH=$JAVA_HOME/bin:$PATH
+export PATH=/home/subh/go:/home/subh/.cargo/bin:$PATH
+
+eval "$(zoxide init zsh --cmd cd)"
+fastfetch --config os
+# Set name of the theme to load --- if set to "random", it will
+# load a random theme each time Oh My Zsh is loaded, in which case,
+# to know which specific one was loaded, run: echo $RANDOM_THEME
+# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
+ZSH_THEME="agnoster"
+
+# Set list of themes to pick from when loading at random
+# Setting this variable when ZSH_THEME=random will cause zsh to load
+# a theme from this variable instead of looking in $ZSH/themes/
+# If set to an empty array, this variable will have no effect.
+# ZSH_THEME_RANDOM_CANDIDATES=( "robbyrussell" "agnoster" )
+
+# Uncomment the following line to use case-sensitive completion.
+# CASE_SENSITIVE="true"
+
+# Uncomment the following line to use hyphen-insensitive completion.
+# Case-sensitive completion must be off. _ and - will be interchangeable.
+# HYPHEN_INSENSITIVE="true"
+
+# Uncomment one of the following lines to change the auto-update behavior
+# zstyle ':omz:update' mode disabled # disable automatic updates
+# zstyle ':omz:update' mode auto # update automatically without asking
+# zstyle ':omz:update' mode reminder # just remind me to update when it's time
+
+# Uncomment the following line to change how often to auto-update (in days).
+# zstyle ':omz:update' frequency 13
+
+# Uncomment the following line if pasting URLs and other text is messed up.
+# DISABLE_MAGIC_FUNCTIONS="true"
+
+# Uncomment th following line to disable colors in ls.
+# DISABLE_LS_COLORS="true"
+
+# Uncomment the following line to disable auto-setting 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.
+# You can also set it to another string to have that shown instead of the default red dots.
+# e.g. COMPLETION_WAITING_DOTS="%F{yellow}waiting...%f"
+# Caution: this setting can cause issues with multiline prompts in zsh < 5.7.1 (see #5765)
+# COMPLETION_WAITING_DOTS="true"
+
+# Uncomment the following line if you want to disable marking untracked files
+# under VCS as dirty. This makes repository status check 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.
+# You can set one of the optional three formats:
+# "mm/dd/yyyy"|"dd.mm.yyyy"|"yyyy-mm-dd"
+# or set a custom format using the strftime function format specifications,
+# see 'man strftime' for details.
+# HIST_STAMPS="mm/dd/yyyy"
+
+# Would you like to use another custom folder than $ZSH/custom?
+# ZSH_CUSTOM=/path/to/new-custom-folder
+
+# Which plugins would you like to load?
+# Standard plugins can be found in $ZSH/plugins/
+# Custom plugins may be added to $ZSH_CUSTOM/plugins/
+# Example format: plugins=(rails git textmate ruby lighthouse)
+# Add wisely, as too many plugins slow down shell startup.
+plugins=(git)
+
+source $ZSH/oh-my-zsh.sh
+
+# User configuration
+
+# export MANPATH="/usr/local/man:$MANPATH"
+
+# You may need to manually set your language environment
+# 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 $(uname -m)"
+
+# 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 a top-level file in
+# the $ZSH_CUSTOM folder, with .zsh extension. Examples:
+# - $ZSH_CUSTOM/aliases.zsh
+# - $ZSH_CUSTOM/macos.zsh
+# For a full list of active aliases, run `alias`.
+#
+# Example aliases
+# alias zshconfig="mate ~/.zshrc"
+# alias ohmyzsh="mate ~/.oh-my-zsh"
+alias v="vim"
+alias open="feh"
+alias ls='exa -la'
+alias venv='source /home/subh/venv/bin/activate'
+alias y='yazi'
+alias yi='yay -S'
+alias pu='sudo pacman -Syu'
+alias pi='sudo pacman -S'
+alias grep='rg'
+alias find='fd -c always'
+alias cat='bat'
+bindkey '^H' backward-kill-word
+bindkey ' ' magic-space
+# ==== fzf key bindings (Arch Linux) ====
+
+# Remove unsupported custom Ctrl-R command (zsh warning fix)
+
+# fzf defaults
+# ===== fzf appearance =====
+
+export FZF_DEFAULT_OPTS="
+ --height=40%
+ --layout=reverse
+ --border=rounded
+ --info=inline
+ --prompt='❯ '
+ --pointer='▶'
+ --marker='✓'
+"
+export FZF_CTRL_R_OPTS="
+ --tac
+ --preview 'echo {}'
+ --preview-window=down:3:hidden:wrap
+ --header='Ctrl-R: search history | Ctrl-J/K move | Enter select'
+"
+
+export FZF_DEFAULT_OPTS="\
+--color=bg+:#313244,bg:#1E1E2E,spinner:#F5E0DC,hl:#F38BA8 \
+--color=fg:#CDD6F4,header:#F38BA8,info:#CBA6F7,pointer:#F5E0DC \
+--color=marker:#B4BEFE,fg+:#CDD6F4,prompt:#CBA6F7,hl+:#F38BA8 \
+--color=selected-bg:#45475A \
+--color=border:#6C7086,label:#CDD6F4"
+#export FZF_CTRL_R_OPTS="--tac --preview 'echo {}' --preview-window down:3:hidden:wrap"
+
+# Source fzf (Arch path)
+if [[ -f /usr/share/fzf/key-bindings.zsh ]]; then
+ source /usr/share/fzf/key-bindings.zsh
+fi
+
+if [[ -f /usr/share/fzf/completion.zsh ]]; then
+ source /usr/share/fzf/completion.zsh
+fi
+
+# Ensure Ctrl+R works in vi insert mode too
+bindkey -M viins '^R' fzf-history-widget
+
+# ==== end fzf ====
+
+# Created by `pipx` on 2026-01-10 08:53:29
+export PATH="$PATH:/home/subh/.local/bin"
+
+PATH="/home/subh/perl5/bin${PATH:+:${PATH}}"; export PATH;
+PERL5LIB="/home/subh/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
+PERL_LOCAL_LIB_ROOT="/home/subh/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
+PERL_MB_OPT="--install_base \"/home/subh/perl5\""; export PERL_MB_OPT;
+PERL_MM_OPT="INSTALL_BASE=/home/subh/perl5"; export PERL_MM_OPT;