diff --git a/.config/hypr/keybinds.conf b/.config/hypr/keybinds.conf index be532ba..9ddeb45 100644 --- a/.config/hypr/keybinds.conf +++ b/.config/hypr/keybinds.conf @@ -1,6 +1,6 @@ # KEYBINDS -bind = SUPER, N, exec, neovide +bind = SUPER, N, exec, neovide -- -c "Telescope oldfiles" bind = SUPER, Q, killactive bind = SUPER, Space, fullscreen, 1 diff --git a/.config/khard/khard.conf b/.config/khard/khard.conf new file mode 100644 index 0000000..8d70d81 --- /dev/null +++ b/.config/khard/khard.conf @@ -0,0 +1,56 @@ +# example configuration file for khard version > 0.14.0 +# place it under ~/.config/khard/khard.conf +# This file is parsed by the configobj library. The syntax is described at +# https://configobj.readthedocs.io/en/latest/configobj.html#the-config-file-format + +[addressbooks] +[[misc]] +path = ~/.contacts/misc/ +[[friends]] +path = ~/.contacts/friends/ + +[general] +debug = no +default_action = list +# These are either strings or comma seperated lists +editor = nvim, -i, NONE +merge_editor = vimdiff + +[contact table] +# display names by first or last name: first_name / last_name / formatted_name +display = first_name +# group by address book: yes / no +group_by_addressbook = no +# reverse table ordering: yes / no +reverse = no +# append nicknames to name column: yes / no +show_nicknames = no +# show uid table column: yes / no +show_uids = yes +# show kind table column: yes / no +show_kinds = no +# sort by first or last name: first_name / last_name / formatted_name +sort = first_name +# localize dates: yes / no +localize_dates = yes +# set a comma separated list of preferred phone number types in descending priority +# or nothing for non-filtered alphabetical order +preferred_phone_number_type = pref, cell, home +# set a comma separated list of preferred email address types in descending priority +# or nothing for non-filtered alphabetical order +preferred_email_address_type = pref, work, home + +[vcard] +# extend contacts with your own private objects +# these objects are stored with a leading "X-" before the object name in the vcard files +# every object label may only contain letters, digits and the - character +# example: +# private_objects = Jabber, Skype, Twitter +# default: , (the empty list) +private_objects = github, gitlab +# preferred vcard version: 3.0 / 4.0 +preferred_version = 4.0 +# Look into source vcf files to speed up search queries: yes / no +search_in_source_files = no +# skip unparsable vcard files: yes / no +skip_unparsable = no diff --git a/.config/nvim b/.config/nvim index 5c82459..f77c851 160000 --- a/.config/nvim +++ b/.config/nvim @@ -1 +1 @@ -Subproject commit 5c824592514475b4e4da1d3f1333268df53fbd72 +Subproject commit f77c8512586d81e41a658e2b4cd29bdcb0ff1bfb diff --git a/.config/zsh-abbr/user-abbreviations b/.config/zsh-abbr/user-abbreviations index 79f1361..ed4fe47 100644 --- a/.config/zsh-abbr/user-abbreviations +++ b/.config/zsh-abbr/user-abbreviations @@ -1,4 +1,5 @@ abbr -g "aur"="sudo aura" abbr -g "aura"="sudo aura" abbr -g "cat"="bat" +abbr -g "neo"="nvim +'Telescope oldfiles'" abbr "wt"="webtorrent --mpv \"%\"" diff --git a/.gitconfig b/.gitconfig index 6bb07bd..effc150 100644 --- a/.gitconfig +++ b/.gitconfig @@ -1,13 +1,14 @@ [user] - email = sumarac@protonmail.com - name = Jovan Djokic-Sumarac + email = sumarac@protonmail.com + name = Jovan Djokic-Sumarac + signingkey = ~/.ssh/id_ed25519.pub [diff] - tool = nvimdiff - mnemonicPrefix = true - renames = true - wordRegex = . - submodule = log + tool = nvimdiff + renames = true + wordRegex = . + submodule = log + mnemonicPrefix = true [difftool] prompt = false [difftool "nvimdiff"] @@ -23,23 +24,26 @@ [alias] comit = commit - swicht = switch - statut = status stat = status -sb graph = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative last = log -1 - amend = commit --amend + amend = commit -S --amend + blame = blame -w -C -C -C + wdiff = diff --word-diff + puf = push --force-with-lease + commit = commit -S maid = !git rebase -i $(git log master..$(git rev-parse --abbrev-ref HEAD) --oneline | tail -1 | cut -d' ' -f1) flatten = !git rebase -i $(git log $(git rev-parse --abbrev-ref HEAD) --oneline | tail -1 | cut -d' ' -f1) - new = !git fetch --all && git checkout master && git pull && git checkout -b - pub = !git push origin $(git rev-parse --abbrev-ref HEAD) - ship = !git add . && git commit && git pub + new = !git fetch --all && git pull && git checkout -b + publish = !git push origin $(git rev-parse --abbrev-ref HEAD) + ship = !git add . && git commit -S && git publish [core] pager = bat whitespace = -trailing-space + fsmonitor = true [status] submoduleSummary = true @@ -58,3 +62,25 @@ prereleaseSuffix = .beta prereleaseSuffix = -rc prereleaseSuffix = .rc + +[rerere] + enabled = true + +[column] + ui = auto + +[branch] + sort = -committerdate + +[gpg] + format = ssh + +; [maintenance] +; auto = false +; strategy = incramental + +[fetch] + writeCommitGraph = true + +[rebase] + updateRefs = true diff --git a/.zshrc b/.zshrc index bae7cda..ca87641 100644 --- a/.zshrc +++ b/.zshrc @@ -95,7 +95,6 @@ compdef _directories md # Define aliases. alias tree='tree -a -I .git' alias ls='exa -1 --icons=always --group-directories-first' - # Add flags to existing aliases. # Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html. diff --git a/.zshrcMINE b/.zshrcMINE new file mode 100644 index 0000000..ca87641 --- /dev/null +++ b/.zshrcMINE @@ -0,0 +1,110 @@ +# Personal Zsh configuration file. It is strongly recommended to keep all +# shell customization and configuration (including exported environment +# variables such as PATH) in this file or in files sourced from it. +# +# Documentation: https://github.com/romkatv/zsh4humans/blob/v5/README.md. + +# Periodic auto-update on Zsh startup: 'ask' or 'no'. +# You can manually run `z4h update` to update everything. +zstyle ':z4h:' auto-update 'no' +# Ask whether to auto-update this often; has no effect if auto-update is 'no'. +zstyle ':z4h:' auto-update-days '28' + +# Keyboard type: 'mac' or 'pc'. +zstyle ':z4h:bindkey' keyboard 'pc' + +# Don't start tmux. +zstyle ':z4h:' start-tmux no + +# Mark up shell's output with semantic information. +zstyle ':z4h:' term-shell-integration 'yes' + +# Right-arrow key accepts one character ('partial-accept') from +# command autosuggestions or the whole thing ('accept')? +zstyle ':z4h:autosuggestions' forward-char 'accept' + +# Recursively traverse directories when TAB-completing files. +zstyle ':z4h:fzf-complete' recurse-dirs 'no' + +# Enable direnv to automatically source .envrc files. +zstyle ':z4h:direnv' enable 'no' +# Show "loading" and "unloading" notifications from direnv. +zstyle ':z4h:direnv:success' notify 'yes' + +# Enable ('yes') or disable ('no') automatic teleportation of z4h over +# SSH when connecting to these hosts. +zstyle ':z4h:ssh:example-hostname1' enable 'yes' +zstyle ':z4h:ssh:*.example-hostname2' enable 'no' +# The default value if none of the overrides above match the hostname. +zstyle ':z4h:ssh:*' enable 'no' + +# Send these files over to the remote host when connecting over SSH to the +# enabled hosts. +zstyle ':z4h:ssh:*' send-extra-files '~/.nanorc' '~/.env.zsh' + +# Clone additional Git repositories from GitHub. +# +# This doesn't do anything apart from cloning the repository and keeping it +# up-to-date. Cloned files can be used after `z4h init`. This is just an +# example. If you don't plan to use Oh My Zsh, delete this line. +z4h install ohmyzsh/ohmyzsh || return + +# Install or update core components (fzf, zsh-autosuggestions, etc.) and +# initialize Zsh. After this point console I/O is unavailable until Zsh +# is fully initialized. Everything that requires user interaction or can +# perform network I/O must be done above. Everything else is best done below. +z4h init || return + +# Extend PATH. +path=(~/bin $path) + +# Export environment variables. +export GPG_TTY=$TTY + +# Source additional local files if they exist. +z4h source ~/.env.zsh + +# Use additional Git repositories pulled in with `z4h install`. +# +# This is just an example that you should delete. It does nothing useful. +z4h source ohmyzsh/ohmyzsh/lib/diagnostics.zsh # source an individual file +z4h load ohmyzsh/ohmyzsh/plugins/emoji-clock # load a plugin + +# Define key bindings. +z4h bindkey z4h-backward-kill-word Ctrl+Backspace Ctrl+H +z4h bindkey z4h-backward-kill-zword Ctrl+Alt+Backspace + +z4h bindkey undo Ctrl+/ Shift+Tab # undo the last command line change +z4h bindkey redo Alt+/ # redo the last undone command line change + +z4h bindkey z4h-cd-back Alt+Left # cd into the previous directory +z4h bindkey z4h-cd-forward Alt+Right # cd into the next directory +z4h bindkey z4h-cd-up Alt+Up # cd into the parent directory +z4h bindkey z4h-cd-down Alt+Down # cd into a child directory + +# Autoload functions. +autoload -Uz zmv + +# Define functions and completions. +function md() { [[ $# == 1 ]] && mkdir -p -- "$1" && cd -- "$1" } +compdef _directories md + +# Define named directories: ~w <=> Windows home directory on WSL. +[[ -z $z4h_win_home ]] || hash -d w=$z4h_win_home + +# Define aliases. +alias tree='tree -a -I .git' +alias ls='exa -1 --icons=always --group-directories-first' +# Add flags to existing aliases. + +# Set shell options: http://zsh.sourceforge.net/Doc/Release/Options.html. +setopt glob_dots # no special treatment for file names with a leading dot +setopt no_auto_menu # require an extra TAB press to open the completion menu + +source ~/dev/zsh-abbr/zsh-abbr.zsh + +export ABBR_SET_EXPANSION_CURSOR=1 + +autoload -Uz compinit +zstyle ':completion:*' menu select +fpath+=~/.zfunc diff --git a/.zshrcOTHER b/.zshrcOTHER new file mode 100644 index 0000000..e570741 --- /dev/null +++ b/.zshrcOTHER @@ -0,0 +1,63 @@ +# Enable Powerlevel10k instant prompt. Should stay close to the top of ~/.zshrc. +# Initialization code that may require console input (password prompts, [y/n] +# confirmations, etc.) must go above this block; everything else may go below. +if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then + source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" +fi + +# Set the directory we want to store zinit and plugins +ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git" + +# Download Zinit, if it's not there yet +if [ ! -d "$ZINIT_HOME" ]; then + mkdir -p "$(dirname $ZINIT_HOME)" + git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" +fi + +# Source/Load zinit +source "${ZINIT_HOME}/zinit.zsh" + +# Add in zsh plugins +zinit ice depth=1; zinit light romkatv/powerlevel10k +zinit ice depth=1; zinit light zsh-users/zsh-syntax-highlighting +zinit ice depth=1; zinit light zsh-users/zsh-completions +zinit ice depth=1; zinit light zsh-users/zsh-autosuggestions +zinit ice depth=1; zinit light Aloxaf/fzf-tab + +autoload -Uz compinit && compinit + + +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh + +source ~/dev/zsh-abbr/zsh-abbr.zsh +export ABBR_SET_EXPANSION_CURSOR=1 + +# History +HISTSIZE=50000 +HISTFILE=~/.zsh_history +SAVEHIST=$HISTSIZE +HISTDUP=erase +setopt appendhistory +setopt sharehistory +setopt hist_ignore_space +setopt hist_ignore_all_dups +setopt hist_save_no_dups +setopt hist_ignore_dups +setopt hist_find_no_dups + +# Add in snippets +zinit snippet OMZP::git +zinit snippet OMZP::sudo +zinit snippet OMZP::archlinux + +alias ls='exa -1 --icons=always --group-directories-first' + +# Completion styling +zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' +zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" +zstyle ':completion:*' menu no +zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath' +zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath' + +eval "$(fzf --zsh)" +eval "$(zoxide init --cmd cd zsh)"