Compare commits
81 Commits
Author | SHA1 | Date | |
---|---|---|---|
2e92b748ae | |||
47c62ca189 | |||
3d221cc5c0 | |||
a8e50fee03 | |||
8ef873b00f | |||
95d4a1dc47 | |||
adbae6f0ad | |||
b03223b9ba | |||
8b0b1dce34 | |||
f803311fd6 | |||
29f1b87f59 | |||
30627b531b | |||
10ed0376f9 | |||
d14b4ebee9 | |||
645710c31d | |||
108d8ac5a3 | |||
b6f33fc3c3 | |||
1e941f215d | |||
9dbf5d391a | |||
e4d579fa52 | |||
e8b33d4e7d | |||
a2a8ff9a0d | |||
84b343a6f0 | |||
6b1ff550dd | |||
530f1d9729 | |||
6f427f0c5b | |||
35e0cbbb15 | |||
defffb7391 | |||
87c935ffe5 | |||
a165991e9a | |||
ebf39e2b04 | |||
89f4cb0fef | |||
be1ce99f00 | |||
fedbaf42fc | |||
5a50b6be66 | |||
e4f2a41e1f | |||
9385ab2f72 | |||
e0170d68c8 | |||
5f554d5826 | |||
60f6c3e104 | |||
48f8e3c6d3 | |||
52c1171151 | |||
c3f0f20728 | |||
4176453676 | |||
9e8d3508ac | |||
ef6f3433f2 | |||
81f2bfe24d | |||
df4f903a59 | |||
c74a679f49 | |||
fccf010a3a | |||
39c9c98176 | |||
ec40b3d83e | |||
40c79488d4 | |||
98f1fd6b31 | |||
30fbaacc52 | |||
4d1e081619 | |||
5b0b23d05a | |||
b75fe78ac7 | |||
cf54eb4c4a | |||
e61efefed7 | |||
a7434463b3 | |||
fabc0bc01b | |||
9cfe45a8d8 | |||
e3362805b4 | |||
581f6eeb2e | |||
84de02484f | |||
8cb7895bdf | |||
cca767608a | |||
c41da91132 | |||
82cad3d993 | |||
1874872e35 | |||
baa1712e7b | |||
a3b419fc05 | |||
746850b32d | |||
38da9ca7fc | |||
ff0ce7fe92 | |||
13a67689df | |||
4337defa08 | |||
1fe053f6ea | |||
fab1a19fd6 | |||
0530d4ee76 |
5
.aliases/command-specific/.dir-locals.el
Normal file
5
.aliases/command-specific/.dir-locals.el
Normal file
@ -0,0 +1,5 @@
|
||||
;;; Directory Local Variables
|
||||
;;; For more information see (info "(emacs) Directory Variables")
|
||||
|
||||
;; set sh mode for all files
|
||||
((nil . ((mode . sh))))
|
@ -1,21 +1,7 @@
|
||||
## Various update aliases
|
||||
### apt
|
||||
alias ai="noglob sudo apt-get install"
|
||||
alias aup="sudo apt-get update; sudo apt-get upgrade"
|
||||
alias adup="sudo apt-get dist-upgrade"
|
||||
alias aclean="sudo apt-get autoremove; sudo apt-get autoclean"
|
||||
alias apt="noglob apt"
|
||||
|
||||
### mr
|
||||
alias mup="mr -mj update"
|
||||
alias cmup="mup 2>&1|sed -ur 's/mr update: \/(.*)/'\"$(tput bold)\1$(tput sgr0)\"'/g
|
||||
/mr update: command failed/c'\"$(tput setf 4)mr update: command failed$(tput sgr0)\"'
|
||||
s/\/?home\/adam/~/g
|
||||
/Already up-to-date/d
|
||||
/Tree is up to date/d
|
||||
/Updating '\''\.'\'':/d
|
||||
/At revision/d
|
||||
/^$/d'"
|
||||
|
||||
### general
|
||||
alias up="(aup;aclean;cmup) | tee /tmp/up.log"
|
||||
alias up="sudo apt-get update; sudo apt-get upgrade"
|
||||
|
@ -1,14 +0,0 @@
|
||||
#!/bin/zsh
|
||||
# borg
|
||||
|
||||
backupName='{hostname}-{now:%Y-%m-%d}'
|
||||
borgArgs="--compression lzma,9 \
|
||||
--progress \
|
||||
--exclude-caches \
|
||||
--exclude-from ~/Documents/backuplist.txt"
|
||||
backupTargets="/home/adam/ /etc/"
|
||||
|
||||
alias borg-backup="sudo borg create /run/media/adam/Backup/borg-backups::$backupName $backupTargets $borgArgs"
|
||||
alias borg-backup-home="sudo BORG_RSH='sudo -u adam ssh' borg create thewarehouse:borg-backups::$backupName $backupTargets $borgArgs --ignore-inode --remote-path /var/services/homes/adam/bin/borg"
|
||||
|
||||
unset backupName borgArgs backupTargets
|
1
.aliases/command-specific/brew
Normal file
1
.aliases/command-specific/brew
Normal file
@ -0,0 +1 @@
|
||||
alias bup="brew update && brew upgrade"
|
@ -4,3 +4,7 @@ alias en="e -n"
|
||||
alias et="e -t"
|
||||
alias ec="e -c"
|
||||
alias ecn="ec -n"
|
||||
|
||||
function magit() {
|
||||
ecn -e '(magit-status-no-new-window "'"$(realpath ${1-.})"'")'
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
## git
|
||||
alias git-yolo='git commit -am "`curl -s http://whatthecommit.com/index.txt`"'
|
||||
alias diff='git diff --no-index'
|
||||
alias diff='git diff --no-index'
|
||||
alias gcdr='cd "$(git rev-parse --show-toplevel)"' # cd to top level
|
||||
|
@ -1,3 +1,4 @@
|
||||
## makepkg
|
||||
|
||||
alias fmakepkg='PKGEXT='''.pkg.tar''' makepkg'
|
||||
alias fmakepkg='PKGEXT='''.pkg.tar''' makepkg'
|
||||
alias mksrcinfo='makepkg --printsrcinfo > .SRCINFO'
|
||||
|
@ -1,2 +1,3 @@
|
||||
## notify-send
|
||||
alias N='notify-send "Command finished"'
|
||||
alias N='notify-send "Command finished" -i text-x-script'
|
||||
alias NS='N -u critical' # sticky
|
||||
|
3
.aliases/command-specific/notmuch
Normal file
3
.aliases/command-specific/notmuch
Normal file
@ -0,0 +1,3 @@
|
||||
alias n="notmuch"
|
||||
alias nco="n compact"
|
||||
alias nag="mujmap -C ~/mail/adamgoldsmith.name sync"
|
1
.aliases/command-specific/open
Normal file
1
.aliases/command-specific/open
Normal file
@ -0,0 +1 @@
|
||||
alias o="open"
|
@ -1,17 +1,10 @@
|
||||
# pacman
|
||||
alias pi='pacaur'
|
||||
alias pup='pi -Syu --noedit'
|
||||
alias pi='paru'
|
||||
alias pup='pi -Syu'
|
||||
alias pr='pi -Rs'
|
||||
alias prc='pr -c'
|
||||
alias pin='pi --noedit --noconfirm'
|
||||
alias pin='pi --noconfirm'
|
||||
alias pis='pi -S'
|
||||
alias pins='pin -S'
|
||||
piro() { #remove orphans
|
||||
if [[ ! -n $(pacaur -Qdt) ]]; then
|
||||
echo "No orphans to remove."
|
||||
else
|
||||
pacaur -Rns $(pacman -Qdtq)
|
||||
fi
|
||||
}
|
||||
|
||||
alias piro='pi -c'
|
||||
alias up='pup'
|
||||
|
@ -1,2 +0,0 @@
|
||||
## rdiff-backup
|
||||
alias backup="rdiff-backup --exclude-globbing-filelist /home/adam/Documents/backuplist.txt /home/adam/" #target
|
5
.aliases/command-specific/softwareupdate
Normal file
5
.aliases/command-specific/softwareupdate
Normal file
@ -0,0 +1,5 @@
|
||||
alias sup="softwareupdate -ia"
|
||||
|
||||
alias up='tmux new-session "tmux split-window \"$(whence sup)\"; \
|
||||
tmux split-window \"$(whence npmgup)\"; \
|
||||
$(whence bup)"'
|
@ -1,14 +1,30 @@
|
||||
#-*- mode: sh; -*-
|
||||
alias sy="systemctl"
|
||||
alias sydr="sy daemon-reload"
|
||||
alias sye="sy enable"
|
||||
alias syd="sy disable"
|
||||
alias syre="sy restart"
|
||||
alias systa="sy start"
|
||||
alias systo="sy stop"
|
||||
alias systat="sy status"
|
||||
|
||||
alias ssy="sudo systemctl"
|
||||
alias ssydr="ssy daemon-reload"
|
||||
alias ssye="ssy enable"
|
||||
alias ssyd="ssy disable"
|
||||
alias ssyre="ssy restart"
|
||||
alias ssysta="ssy start"
|
||||
alias ssysto="ssy stop"
|
||||
alias ssystat="ssy status"
|
||||
|
||||
alias jo="journalctl"
|
||||
alias joe="jo -e"
|
||||
alias joeu="jo -eu"
|
||||
alias jof="jo -f"
|
||||
alias jofu="jo -fu"
|
||||
|
||||
alias sjo="sudo journalctl"
|
||||
alias sjoe="sjo -e"
|
||||
alias sjoeu="sjo -eu"
|
||||
alias sjof="sjo -f"
|
||||
alias sjofu="sjo -fu"
|
||||
|
5
.aliases/command-specific/wg
Normal file
5
.aliases/command-specific/wg
Normal file
@ -0,0 +1,5 @@
|
||||
for interface in cms homeserver
|
||||
do
|
||||
alias wg${interface}="sudo systemctl restart wg-quick@wg-${interface}"
|
||||
alias wg${interface}D="sudo systemctl stop wg-quick@wg-${interface}"
|
||||
done
|
@ -4,6 +4,9 @@
|
||||
alias l='ls -1a'
|
||||
alias la='ll -a'
|
||||
|
||||
# zim updates
|
||||
alias zup="zimfw update && zimfw upgrade"
|
||||
|
||||
## Disable Globbing (for some things)
|
||||
alias nmap="noglob nmap"
|
||||
|
||||
@ -15,3 +18,12 @@ alias irc='ssh ag tmux a -t irc'
|
||||
|
||||
#quick alias for enabling bluetooth
|
||||
alias ebluetooth="sudo modprobe btusb;ssy start bluetooth;blueman-manager"
|
||||
|
||||
# Command Specific Aliases
|
||||
for i in $HOME/.aliases/command-specific/*
|
||||
do
|
||||
if hash $(basename $i) 2>/dev/null # check if command exists
|
||||
then
|
||||
source $i
|
||||
fi
|
||||
done
|
||||
|
26
.config/htop/htoprc
Normal file
26
.config/htop/htoprc
Normal file
@ -0,0 +1,26 @@
|
||||
# Beware! This file is rewritten by htop when settings are changed in the interface.
|
||||
# The parser is also very primitive, and not human-friendly.
|
||||
fields=0 48 17 18 38 39 40 2 46 47 49 1
|
||||
sort_key=46
|
||||
sort_direction=1
|
||||
hide_threads=0
|
||||
hide_kernel_threads=1
|
||||
hide_userland_threads=0
|
||||
shadow_other_users=0
|
||||
show_thread_names=0
|
||||
show_program_path=1
|
||||
highlight_base_name=0
|
||||
highlight_megabytes=1
|
||||
highlight_threads=1
|
||||
tree_view=0
|
||||
header_margin=1
|
||||
detailed_cpu_time=0
|
||||
cpu_count_from_zero=0
|
||||
update_process_names=0
|
||||
account_guest_in_cpu_meter=0
|
||||
color_scheme=0
|
||||
delay=15
|
||||
left_meters=AllCPUs2 Memory Swap
|
||||
left_meter_modes=1 1 1
|
||||
right_meters=Tasks LoadAverage Uptime Battery
|
||||
right_meter_modes=2 2 2 1
|
42
.config/tmux/tmux.conf
Normal file
42
.config/tmux/tmux.conf
Normal file
@ -0,0 +1,42 @@
|
||||
# set prefix to C-z
|
||||
set -g prefix C-z
|
||||
unbind C-b
|
||||
bind C-z send-prefix
|
||||
|
||||
# enable mouse support
|
||||
set -g mouse on
|
||||
|
||||
# open new panes in current directory
|
||||
bind % split-window -h -c "#{pane_current_path}"
|
||||
bind '"' split-window -v -c "#{pane_current_path}"
|
||||
|
||||
# vim-like pane navigation
|
||||
bind h select-pane -L
|
||||
bind j select-pane -D
|
||||
bind k select-pane -U
|
||||
bind l select-pane -R
|
||||
# resizing
|
||||
bind -r C-h resize-pane -L
|
||||
bind -r C-j resize-pane -D
|
||||
bind -r C-k resize-pane -U
|
||||
bind -r C-l resize-pane -R
|
||||
bind -r M-h resize-pane -L 5
|
||||
bind -r M-j resize-pane -D 5
|
||||
bind -r M-k resize-pane -U 5
|
||||
bind -r M-l resize-pane -R 5
|
||||
|
||||
set -g history-file ~/.local/state/tmux_history
|
||||
|
||||
# plugins
|
||||
set-option -g @plugin 'tmux-plugins/tpm'
|
||||
set-option -g @plugin 'noscript/tmux-mighty-scroll'
|
||||
set-option -g @mighty-scroll-by-line 'man less pager fzf emacs emacsclient'
|
||||
|
||||
# install/update tpm
|
||||
if-shell "test ! -d ~/.config/tmux/plugins/tpm" {
|
||||
run-shell 'git clone https://github.com/tmux-plugins/tpm ~/.config/tmux/plugins/tpm'
|
||||
}
|
||||
# start tpm
|
||||
run-shell '~/.config/tmux/plugins/tpm/tpm'
|
||||
# install and update plugins in background
|
||||
run-shell -b '($TMUX_PLUGIN_MANAGER_PATH/tpm/bin/install_plugins && $TMUX_PLUGIN_MANAGER_PATH/tpm/bin/clean_plugins && $TMUX_PLUGIN_MANAGER_PATH/tpm/bin/update_plugins all && $TMUX_PLUGIN_MANAGER_PATH/tpm/scripts/source_plugins.sh) > /dev/null'
|
39
.config/yay/config.json
Normal file
39
.config/yay/config.json
Normal file
@ -0,0 +1,39 @@
|
||||
{
|
||||
"buildDir": "/home/adam/.cache/yay",
|
||||
"editor": "",
|
||||
"editorflags": "",
|
||||
"makepkgbin": "makepkg",
|
||||
"makepkgconf": "",
|
||||
"pacmanbin": "pacman",
|
||||
"pacmanconf": "/etc/pacman.conf",
|
||||
"tarbin": "bsdtar",
|
||||
"redownload": "no",
|
||||
"rebuild": "no",
|
||||
"answerclean": "",
|
||||
"answerdiff": "",
|
||||
"answeredit": "",
|
||||
"answerupgrade": "",
|
||||
"gitbin": "git",
|
||||
"gpgbin": "gpg",
|
||||
"gpgflags": "",
|
||||
"mflags": "",
|
||||
"sortby": "votes",
|
||||
"gitflags": "",
|
||||
"removemake": "yes",
|
||||
"requestsplitn": 150,
|
||||
"sortmode": 0,
|
||||
"completionrefreshtime": 7,
|
||||
"sudoloop": false,
|
||||
"timeupdate": false,
|
||||
"devel": false,
|
||||
"cleanAfter": false,
|
||||
"gitclone": true,
|
||||
"provides": true,
|
||||
"pgpfetch": true,
|
||||
"upgrademenu": true,
|
||||
"cleanmenu": false,
|
||||
"diffmenu": false,
|
||||
"editmenu": false,
|
||||
"combinedupgrade": false,
|
||||
"useask": false
|
||||
}
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/.config/tmux/plugins/
|
47
.profile
47
.profile
@ -1,48 +1,3 @@
|
||||
#-*- mode: sh; -*-
|
||||
# Environment variables
|
||||
export ARDUINO_DIR="/usr/share/arduino"
|
||||
export ARDMK_DIR="$HOME/Programs/Arduino-Makefile"
|
||||
export STEAMAPPS="$HOME/.local/share/Steam/steamapps/common"
|
||||
export QT_STYLE_OVERRIDE=gtk2
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=true
|
||||
export ALTERNATE_EDITOR=""
|
||||
export TERMINAL=roxterm
|
||||
export CALIBRE_USE_SYSTEM_THEME=true
|
||||
|
||||
export WORDCHARS=${WORDCHARS/\//}
|
||||
export PAGER=less
|
||||
|
||||
# Add $HOME/.bin to PATH if it exists
|
||||
if [[ -d "$HOME/.bin" ]]; then
|
||||
export PATH="$PATH:$HOME/.bin"
|
||||
fi
|
||||
|
||||
# Set temporary files locations
|
||||
if [[ ! -d "$TMPDIR" ]]; then
|
||||
export TMPDIR="/tmp/$LOGNAME"
|
||||
mkdir -p -m 700 "$TMPDIR"
|
||||
fi
|
||||
|
||||
TMPPREFIX="${TMPDIR%/}/zsh"
|
||||
if [[ ! -d "$TMPPREFIX" ]]; then
|
||||
mkdir -p "$TMPPREFIX"
|
||||
fi
|
||||
|
||||
# Gnupg setup
|
||||
## Start the gpg-agent if not already running
|
||||
if ! pgrep -x -u "${USER}" gpg-agent >/dev/null 2>&1; then
|
||||
gpg-connect-agent /bye >/dev/null 2>&1
|
||||
fi
|
||||
|
||||
## Set SSH to use gpg-agent
|
||||
unset SSH_AGENT_PID
|
||||
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
|
||||
export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
|
||||
fi
|
||||
|
||||
## Set GPG TTY
|
||||
GPG_TTY=$(tty)
|
||||
export GPG_TTY
|
||||
|
||||
## Refresh gpg-agent tty in case user switches into an X session
|
||||
gpg-connect-agent updatestartuptty /bye >/dev/null
|
||||
source $HOME/.zshenv
|
||||
|
BIN
.terminfo/a/alacritty
Normal file
BIN
.terminfo/a/alacritty
Normal file
Binary file not shown.
27
.zimrc
Normal file
27
.zimrc
Normal file
@ -0,0 +1,27 @@
|
||||
# -*- mode: sh; -*-
|
||||
|
||||
#
|
||||
# Modules
|
||||
#
|
||||
|
||||
zmodule environment
|
||||
zmodule git
|
||||
zmodule input
|
||||
zmodule termtitle
|
||||
zmodule utility
|
||||
|
||||
# Prompt
|
||||
zmodule git-info
|
||||
zmodule duration-info
|
||||
zmodule https://git.adamgoldsmith.name/adam/fred-prompt.git
|
||||
|
||||
zmodule zsh-users/zsh-completions
|
||||
# completion must be sourced after zsh-users/zsh-completions
|
||||
zmodule completion
|
||||
# fast must be loaded after completion
|
||||
zmodule fasd
|
||||
zmodule zsh-users/zsh-autosuggestions
|
||||
# zsh-users/zsh-syntax-highlighting must be sourced after completion
|
||||
zmodule zsh-users/zsh-syntax-highlighting
|
||||
# zsh-users/zsh-history-substring-search must be sourced after zsh-users/zsh-syntax-highlighting
|
||||
zmodule zsh-users/zsh-history-substring-search
|
53
.zshenv
Normal file
53
.zshenv
Normal file
@ -0,0 +1,53 @@
|
||||
#-*- mode: sh; -*-
|
||||
|
||||
# Define Zim location
|
||||
ZIM_HOME=${ZDOTDIR:-${HOME}}/.zim
|
||||
|
||||
# Environment variables
|
||||
export EDITOR="emacsclient -t"
|
||||
export ALTERNATE_EDITOR=""
|
||||
export VISUAL="emacsclient -c -n"
|
||||
export PAGER=less
|
||||
export TERMINAL=alacritty
|
||||
|
||||
export ARDUINO_DIR="/usr/share/arduino"
|
||||
export ARDMK_DIR="$HOME/Programs/Arduino-Makefile"
|
||||
export STEAMAPPS="$HOME/.local/share/Steam/steamapps/common"
|
||||
|
||||
export GTK_THEME=Arc-Dark-solid
|
||||
export QT_STYLE_OVERRIDE=gtk2
|
||||
export QT_QPA_PLATFORMTHEME=qt6gtk2
|
||||
export QT_AUTO_SCREEN_SCALE_FACTOR=true
|
||||
export CALIBRE_USE_SYSTEM_THEME=true
|
||||
|
||||
export WINEDLLOVERRIDES=winemenubuilder.exe=d
|
||||
|
||||
# Don't allow duplicate values in path
|
||||
typeset -U path
|
||||
path=(
|
||||
$HOME/.bin
|
||||
$HOME/.local/bin
|
||||
$HOME/.dotfiles/
|
||||
$HOME/.cargo/bin
|
||||
$path
|
||||
)
|
||||
|
||||
# Set temporary files locations
|
||||
if [[ ! -d "$TMPDIR" ]]
|
||||
then
|
||||
export TMPDIR="/tmp/$LOGNAME"
|
||||
mkdir -p -m 700 "$TMPDIR"
|
||||
fi
|
||||
|
||||
TMPPREFIX="${TMPDIR%/}/zsh"
|
||||
if [[ ! -d "$TMPPREFIX" ]]
|
||||
then
|
||||
mkdir -p "$TMPPREFIX"
|
||||
fi
|
||||
|
||||
# Set SSH auth socket
|
||||
unset SSH_AGENT_PID
|
||||
if hash gpgconf 2>/dev/null && [[ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]]
|
||||
then
|
||||
export SSH_AUTH_SOCK="$(gpgconf --list-dirs agent-ssh-socket)"
|
||||
fi
|
136
.zshrc
136
.zshrc
@ -1,76 +1,89 @@
|
||||
# Antigen Stuff
|
||||
ADOTDIR="$HOME/.antigen"
|
||||
[ ! -e "$ADOTDIR" ] && git clone https://github.com/zsh-users/antigen.git "$ADOTDIR"
|
||||
source "$ADOTDIR/antigen.zsh"
|
||||
if [ ! -d "$HOME/.zim" ]
|
||||
then
|
||||
git clone https://github.com/zimfw/zimfw $HOME/.zim
|
||||
source ~/.zim/zimfw.zsh install
|
||||
fi
|
||||
|
||||
# Temporary, hopefully remove later when antigen correctly fails to shallow clone from http
|
||||
[ ! -e "$ADOTDIR/bundles/zsh/fred-prompt" ] && git clone https://adamgoldsmith.name/cgit/zsh/fred-prompt.git/ $ADOTDIR/bundles/zsh/fred-prompt
|
||||
# Set editor default keymap to emacs
|
||||
bindkey -e
|
||||
stty -ixon #disable XON/XOFF, which breaks C-s
|
||||
|
||||
antigen bundles <<EOBUNDLES
|
||||
https://adamgoldsmith.name/cgit/zsh/fred-prompt.git prompt_fred_setup
|
||||
zsh-users/zsh-syntax-highlighting
|
||||
zsh-users/zsh-history-substring-search
|
||||
Eriner/zim modules/directory
|
||||
Eriner/zim modules/git
|
||||
Eriner/zim modules/history
|
||||
Eriner/zim modules/input
|
||||
Eriner/zim modules/utility
|
||||
Eriner/zim modules/completion
|
||||
EOBUNDLES
|
||||
antigen apply
|
||||
# Prompt for spelling correction of commands.
|
||||
setopt CORRECT
|
||||
CORRECT_IGNORE="_*" # don't suggest completion functions
|
||||
|
||||
# Command Specific Aliases
|
||||
for i in $HOME/.aliases/command-specific/*
|
||||
do
|
||||
if hash $(basename $i) 2>/dev/null # check if command exists
|
||||
then
|
||||
source $i
|
||||
fi
|
||||
done
|
||||
# Customize spelling correction prompt.
|
||||
SPROMPT='zsh: correct %F{red}%R%f to %F{green}%r%f [nyae]? '
|
||||
|
||||
# General Aliases
|
||||
# Remove path separator from WORDCHARS.
|
||||
WORDCHARS=${WORDCHARS//[\/]}
|
||||
|
||||
# Set window title format
|
||||
# Escape % in commands
|
||||
zstyle ':zim:termtitle' format '%~:${${1:-zsh}//\\%/%%}'
|
||||
# Set window title before running a command
|
||||
zstyle ':zim:termtitle' hooks 'precmd' 'preexec'
|
||||
|
||||
# Append `../` to your input for each `.` you type after an initial `..`
|
||||
zstyle ':zim:input' double-dot-expand yes
|
||||
|
||||
# Set what highlighters will be used.
|
||||
# See https://github.com/zsh-users/zsh-syntax-highlighting/blob/master/docs/highlighters.md
|
||||
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets)
|
||||
|
||||
# Set zsh-autosuggestions highlight style
|
||||
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=black,bold,underline"
|
||||
|
||||
# Initialize Zim modules
|
||||
if [[ ${ZIM_HOME}/init.zsh -ot ${ZDOTDIR:-${HOME}}/.zimrc ]]; then
|
||||
# Update static initialization script if it's outdated, before sourcing it
|
||||
source ${ZIM_HOME}/zimfw.zsh init -q
|
||||
fi
|
||||
source ${ZIM_HOME}/init.zsh
|
||||
|
||||
# Source aliases
|
||||
source $HOME/.aliases/general
|
||||
|
||||
# Various Options
|
||||
setopt EXTENDED_GLOB
|
||||
unsetopt NOMATCH
|
||||
setopt CORRECT
|
||||
CORRECT_IGNORE="_*"
|
||||
zhighlighters=(main brackets)
|
||||
stty -ixon #disable XON/XOFF, which breaks C-s
|
||||
setopt no_share_history
|
||||
unsetopt NOMATCH # turn off "no matches found" on glob failure
|
||||
|
||||
# Remove older command from the history if a duplicate is to be added.
|
||||
setopt HIST_IGNORE_ALL_DUPS
|
||||
unsetopt SHARE_HISTORY # don't share history between terminals
|
||||
setopt INC_APPEND_HISTORY
|
||||
|
||||
# rehashes on bin change, might cause performance issues
|
||||
zstyle ':completion:*' rehash true
|
||||
|
||||
#load fasd if it exists
|
||||
hash fasd 2>/dev/null && eval "$(fasd --init auto)"
|
||||
|
||||
# Load run-help
|
||||
unalias run-help
|
||||
autoload run-help
|
||||
|
||||
# Auto start tmux if a remote connection
|
||||
if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -n "$SSH_TTY" ]]
|
||||
then
|
||||
# Attach only to the 'auto' session
|
||||
exec tmux new-session -A -s 'auto'
|
||||
fi
|
||||
|
||||
|
||||
# History Substring Search bindings (PageUp and PageDown)
|
||||
bindkey '^[[5~' history-substring-search-up
|
||||
bindkey '^[[6~' history-substring-search-down
|
||||
|
||||
# Expands ... to ../..
|
||||
function expand-dot-to-parent-directory-path {
|
||||
if [[ $LBUFFER = *.. ]]; then
|
||||
LBUFFER+='/..'
|
||||
else
|
||||
LBUFFER+='.'
|
||||
fi
|
||||
# fine word navigation
|
||||
backward-word-fine() WORDCHARS='' zle .backward-word
|
||||
forward-word-fine() WORDCHARS='' zle .forward-word
|
||||
zle -N backward-word-fine
|
||||
zle -N forward-word-fine
|
||||
bindkey '^[F' forward-word-fine
|
||||
bindkey '^[B' backward-word-fine
|
||||
ZSH_AUTOSUGGEST_PARTIAL_ACCEPT_WIDGETS+=(forward-word-fine backward-word-fine)
|
||||
|
||||
# equivalents of eponymous Emacs functions
|
||||
# from https://unix.stackexchange.com/a/595157
|
||||
delete-horizontal-space() {
|
||||
emulate -L zsh
|
||||
set -o extendedglob
|
||||
LBUFFER=${LBUFFER%%[[:blank:]]##}
|
||||
RBUFFER=${RBUFFER##[[:blank:]]##}
|
||||
}
|
||||
zle -N expand-dot-to-parent-directory-path
|
||||
bindkey -M emacs "." expand-dot-to-parent-directory-path
|
||||
zle -N delete-horizontal-space
|
||||
bindkey '\e\\' delete-horizontal-space
|
||||
just-one-space() {
|
||||
delete-horizontal-space
|
||||
LBUFFER="$LBUFFER "
|
||||
}
|
||||
zle -N just-one-space
|
||||
bindkey '\e ' just-one-space
|
||||
|
||||
# Inserts 'sudo ' at the beginning of the line.
|
||||
function prepend-sudo() {
|
||||
@ -85,3 +98,10 @@ bindkey "^X^S" prepend-sudo
|
||||
# Control-Backspace and Control-Delete
|
||||
bindkey '^H' backward-kill-word
|
||||
bindkey '5~' kill-word
|
||||
|
||||
# Auto start tmux if a remote connection
|
||||
if [[ -z "$TMUX" && -z "$EMACS" && -z "$VIM" && -n "$SSH_TTY" ]]
|
||||
then
|
||||
# Attach only to the 'auto' session
|
||||
exec tmux new-session -A -s 'auto'
|
||||
fi
|
||||
|
Loading…
Reference in New Issue
Block a user