diff --git a/zsh/.config/zsh/dircolors b/zsh/.config/zsh/dircolors
deleted file mode 100644
index a6d330c..0000000
--- a/zsh/.config/zsh/dircolors
+++ /dev/null
@@ -1,218 +0,0 @@
-# Configuration file for dircolors, a utility to help you set the
-# LS_COLORS environment variable used by GNU ls with the --color option.
-# Copyright (C) 1996-2014 Free Software Foundation, Inc.
-# Copying and distribution of this file, with or without modification,
-# are permitted provided the copyright notice and this notice are preserved.
-# The keywords COLOR, OPTIONS, and EIGHTBIT (honored by the
-# slackware version of dircolors) are recognized but ignored.
-# Below, there should be one TERM entry for each termtype that is colorizable
-TERM Eterm
-TERM ansi
-TERM color-xterm
-TERM con132x25
-TERM con132x30
-TERM con132x43
-TERM con132x60
-TERM con80x25
-TERM con80x28
-TERM con80x30
-TERM con80x43
-TERM con80x50
-TERM con80x60
-TERM cons25
-TERM console
-TERM cygwin
-TERM dtterm
-TERM eterm-color
-TERM gnome
-TERM gnome-256color
-TERM hurd
-TERM jfbterm
-TERM konsole
-TERM kterm
-TERM linux
-TERM linux-c
-TERM mach-color
-TERM mach-gnu-color
-TERM mlterm
-TERM putty
-TERM putty-256color
-TERM rxvt
-TERM rxvt-256color
-TERM rxvt-cygwin
-TERM rxvt-cygwin-native
-TERM rxvt-unicode
-TERM rxvt-unicode-256color
-TERM rxvt-unicode256
-TERM screen
-TERM screen.xterm-256color
-TERM screen-256color
-TERM screen-256color-bce
-TERM screen-bce
-TERM screen-w
-TERM screen.Eterm
-TERM screen.rxvt
-TERM screen.linux
-TERM st
-TERM st-256color
-TERM terminator
-TERM vt100
-TERM xterm
-TERM xterm-16color
-TERM xterm-256color
-TERM xterm-88color
-TERM xterm-color
-TERM xterm-debian
-# Below are the color init strings for the basic file types. A color init
-# string consists of one or more of the following numeric codes:
-# Attribute codes:
-# 00=none 01=bold 04=underscore 05=blink 07=reverse 08=concealed
-# Text color codes:
-# 30=black 31=red 32=green 33=yellow 34=blue 35=magenta 36=cyan 37=white
-# Background color codes:
-# 40=black 41=red 42=green 43=yellow 44=blue 45=magenta 46=cyan 47=white
-#NORMAL 00 # no color code at all
-#FILE 00 # regular file: use no color at all
-RESET 0 # reset to "normal" color
-DIR 01;34 # directory
-LINK target #01;36 # symbolic link. (If you set this to 'target' instead of a
- # numerical value, the color is as for the file pointed to.)
-MULTIHARDLINK 00 # regular file with more than one link
-FIFO 40;33 # pipe
-SOCK 01;35 # socket
-DOOR 01;35 # door
-BLK 40;33;01 # block device driver
-CHR 40;33;01 # character device driver
-ORPHAN 40;31;01 # symlink to nonexistent file, or non-stat'able file
-SETUID 37;41 # file that is setuid (u+s)
-SETGID 30;43 # file that is setgid (g+s)
-CAPABILITY 30;41 # file with capability
-STICKY_OTHER_WRITABLE 37;41 # dir that is sticky and other-writable (+t,o+w)
-OTHER_WRITABLE 31;40 # dir that is other-writable (o+w) and not sticky
-STICKY 37;44 # dir with the sticky bit set (+t) and not other-writable
-# This is for files with execute permission:
-EXEC 01;32
-# List any file extensions like '.gz' or '.tar' that you would like ls
-# to colorize below. Put the extension, a space, and the color init string.
-# (and any comments you want to add after a '#')
-# If you use DOS-style suffixes, you may want to uncomment the following:
-#.cmd 01;32 # executables (bright green)
-#.exe 01;32
-#.com 01;32
-#.btm 01;32
-#.bat 01;32
-# Or if you want to colorize scripts even if they do not have the
-# executable bit actually set.
-#.sh 01;32
-#.csh 01;32
- # archives or compressed (bright red)
-.tar 01;31
-.tgz 01;31
-.arc 01;31
-.arj 01;31
-.taz 01;31
-.lha 01;31
-.lz4 01;31
-.lzh 01;31
-.lzma 01;31
-.tlz 01;31
-.txz 01;31
-.tzo 01;31
-.t7z 01;31
-.zip 01;31
-.z 01;31
-.Z 01;31
-.dz 01;31
-.gz 01;31
-.lrz 01;31
-.lz 01;31
-.lzo 01;31
-.xz 01;31
-.bz2 01;31
-.bz 01;31
-.tbz 01;31
-.tbz2 01;31
-.tz 01;31
-.deb 01;31
-.rpm 01;31
-.jar 01;31
-.war 01;31
-.ear 01;31
-.sar 01;31
-.rar 01;31
-.alz 01;31
-.ace 01;31
-.zoo 01;31
-.cpio 01;31
-.7z 01;31
-.rz 01;31
-.cab 01;31
-# image formats
-.jpg 01;35
-.jpeg 01;35
-.gif 01;35
-.bmp 01;35
-.pbm 01;35
-.pgm 01;35
-.ppm 01;35
-.tga 01;35
-.xbm 01;35
-.xpm 01;35
-.tif 01;35
-.tiff 01;35
-.png 01;35
-.svg 01;35
-.svgz 01;35
-.mng 01;35
-.pcx 01;35
-.mov 01;35
-.mpg 01;35
-.mpeg 01;35
-.m2v 01;35
-.mkv 01;35
-.webm 01;35
-.ogm 01;35
-.mp4 01;35
-.m4v 01;35
-.mp4v 01;35
-.vob 01;35
-.qt 01;35
-.nuv 01;35
-.wmv 01;35
-.asf 01;35
-.rm 01;35
-.rmvb 01;35
-.flc 01;35
-.avi 01;35
-.fli 01;35
-.flv 01;35
-.gl 01;35
-.dl 01;35
-.xcf 01;35
-.xwd 01;35
-.yuv 01;35
-.cgm 01;35
-.emf 01;35
-# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
-.axv 01;35
-.anx 01;35
-.ogv 01;35
-.ogx 01;35
-# audio formats
-.aac 00;36
-.au 00;36
-.flac 00;36
-.m4a 00;36
-.mid 00;36
-.midi 00;36
-.mka 00;36
-.mp3 00;36
-.mpc 00;36
-.ogg 00;36
-.ra 00;36
-.wav 00;36
-# http://wiki.xiph.org/index.php/MIME_Types_and_File_Extensions
-.axa 00;36
-.oga 00;36
-.spx 00;36
-.xspf 00;36
diff --git a/zsh/.config/zsh/functions.zsh b/zsh/.config/zsh/functions.zsh
deleted file mode 100644
index 526e763..0000000
--- a/zsh/.config/zsh/functions.zsh
+++ /dev/null
@@ -1,86 +0,0 @@
-#Copyright 2018 TheToric
-#
-#This program is free software: you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation, either version 3 of the License, or
-#(at your option) any later version.
-#
-#This program is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU General Public License for more details.
-#
-#You should have received a copy of the GNU General Public License
-#along with this program. If not, see .
-
-# intellegently extract archives based on extension.
-
-# web_search from terminal
-function web_search() {
- emulate -L zsh
-
- # define search engine URLS
- typeset -A urls
- urls=(
- ddg "https://www.duckduckgo.com/?q="
- github "https://github.com/search?q="
- )
-
- # check whether the search engine is supported
- if [[ -z "$urls[$1]" ]]; then
- echo "Search engine $1 not supported."
- return 1
- fi
-
- # search or go to main page depending on number of arguments passed
- if [[ $# -gt 1 ]]; then
- # build search url:
- # join arguments passed with '+', then append to search engine URL
- url="${urls[$1]}${(j:+:)@[2,-1]}"
- else
- # build main page url:
- # split by '/', then rejoin protocol (1) and domain (2) parts with '//'
- url="${(j://:)${(s:/:)urls[$1]}[1,2]}"
- fi
-
- open_command "$url"
-}
-
-#use generalized open command
-function open_command() {
- emulate -L zsh
- setopt shwordsplit
-
- local open_cmd
-
- # define the open command
- case "$OSTYPE" in
- darwin*) open_cmd='open' ;;
- cygwin*) open_cmd='cygstart' ;;
- linux*) open_cmd='xdg-open' ;;
- msys*) open_cmd='start ""' ;;
- *) echo "Platform $OSTYPE not supported"
- return 1
- ;;
- esac
-
- # don't use nohup on OSX
- if [[ "$OSTYPE" == darwin* ]]; then
- $open_cmd "$@" &>/dev/null
- else
- nohup $open_cmd "$@" &>/dev/null
- fi
-}
-
-# Show dots while waiting for tab-completion
-expand-or-complete-with-dots() {
- # toggle line-wrapping off and back on again
- [[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti rmam
- print -Pn "%{%F{red}......%f%}"
- [[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti smam
-
- zle expand-or-complete
- zle redisplay
-}
-zle -N expand-or-complete-with-dots
-bindkey "^I" expand-or-complete-with-dots
diff --git a/zsh/.config/zsh/prompt.zsh b/zsh/.config/zsh/prompt.zsh
deleted file mode 100644
index fd37976..0000000
--- a/zsh/.config/zsh/prompt.zsh
+++ /dev/null
@@ -1,48 +0,0 @@
-#This file is to set up the ZSH prompt. This is a customized prompt, and, as will all my zsh things, does not rely on an outside plugin.
-#Also like most of my stuff, mutch of this code is taken from another source. in this case, I used the GRML zshrc as a base.
-#Copyright 2018 TheToric
-#
-#This program is free software: you can redistribute it and/or modify
-#it under the terms of the GNU General Public License as published by
-#the Free Software Foundation, either version 3 of the License, or
-#(at your option) any later version.
-#
-#This program is distributed in the hope that it will be useful,
-#but WITHOUT ANY WARRANTY; without even the implied warranty of
-#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-#GNU General Public License for more details.
-#
-#You should have received a copy of the GNU General Public License
-#along with this program. If not, see .
-
-#this is a WIP.
-#TODO: make this a proper prompt theme file instead of just a sourced file... maybye.
-
-autoload -U promptinit
-promptinit
-autoload -U colors
-colors
-
-#stuff to show git things.
- autoload -Uz vcs_info
-
- setopt prompt_subst
-
- precmd_vcs() {vcs_info}
-
- #when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
- zstyle ':vcs_info:*' nvcsformats '%~'
- zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
-
-#the precmd function, called just before printing the prompt. TODO: use this to set our prompt variable as different evey time, in order to get a right aligned portion in the top line.
-function precmd() {
- precmd_vcs
-}
-
-#on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to input next to...)
-PROMPT='%F{cyan}[%m@%n]%f%F{red}├────┤%f${vcs_info_msg_0_}
-»'
-
-#Make the right prompt blank, just to be sure.
-RPROMPT=
-
diff --git a/zsh/.zshrc b/zsh/.zshrc
index 4057602..e5c4f4a 100644
--- a/zsh/.zshrc
+++ b/zsh/.zshrc
@@ -1,6 +1,3 @@
-# Based off of the zshrc of Josh Hartwell, with many additions, deletions, and changes from across the outside community.
-#Copyright 2018 TheToric
-#
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
@@ -13,113 +10,156 @@
#
#You should have received a copy of the GNU General Public License
#along with this program. If not, see .
-#
-local ZSH_CONF=$HOME/.config/zsh # Define the place I store all my zsh config stuff
-local ZSH_CACHE=$ZSH_CONF/cache # for storing files like history and zcompdump
-local LOCAL_ZSHRC=$HOME/.config/zshlocal # Allow the local machine to have its own overriding zshrc if it wants it
-# Load external config files and tools
+#web_search from terminal
+ function web_search() {
+ emulate -L zsh
- # Load misc functions. Done in a seperate file to keep this from getting too long and ugly
- source $ZSH_CONF/functions.zsh
- #Load prompt file. Also done to keep it more tidy.
- source $ZSH_CONF/prompt.zsh
+ # define search engine URLS
+ typeset -A urls
+ urls=(
+ ddg "https://www.duckduckgo.com/?q="
+ github "https://github.com/search?q="
+ )
-# Set important shell variables
- export EDITOR=nvim # Set default editor
- export VISUAL=nvim
- export PAGER=less # Set default pager
- export LESS="-R" # Set the default options for less
- export LESSHISTFILE="/dev/null" # Prevent the less hist file from being made, I dont want it
-
-# Misc
+ # check whether the search engine is supported
+ if [[ -z "$urls[$1]" ]]; then
+ echo "Search engine $1 not supported."
+ return 1
+ fi
+
+ # search or go to main page depending on number of arguments passed
+ if [[ $# -gt 1 ]]; then
+ # build search url:
+ # join arguments passed with '+', then append to search engine URL
+ url="${urls[$1]}${(j:+:)@[2,-1]}"
+ else
+ # build main page url:
+ # split by '/', then rejoin protocol (1) and domain (2) parts with '//'
+ url="${(j://:)${(s:/:)urls[$1]}[1,2]}"
+ fi
+
+ open_command "$url"
+ }
+
+#prompt
+ autoload -U promptinit
+ promptinit
+ autoload -U colors
+ colors
+
+ #stuff to show git things.
+ autoload -Uz vcs_info
+
+ setopt prompt_subst
+
+ precmd_vcs() {vcs_info}
+
+ #when not in a repo, show full path to current directory. when in one, show path from base direcory of the repo.
+ zstyle ':vcs_info:*' nvcsformats '%~'
+ zstyle ':vcs_info:*' formats '%r/%S %F{green}[%b]%f'
+
+ #the precmd function, called just before printing the prompt.
+ function precmd() {
+ precmd_vcs
+ }
+
+ #Make the right prompt blank, just to be sure.
+ RPROMPT=
+
+ #on the top line, show a whole bunch of info. botton line should be as minimal as possilbe (just a single char to input next to...)
+PROMPT='%F{cyan}[%m@%n]%f%F{red}├────┤%f${vcs_info_msg_0_}
+»'
+
+#show dots while waiting for tab-completion
+ expand-or-complete-with-dots() {
+ # toggle line-wrapping off and back on again
+ [[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti rmam
+ print -Pn "%{%F{red}......%f%}"
+ [[ -n "$terminfo[rmam]" && -n "$terminfo[smam]" ]] && echoti smam
+
+ zle expand-or-complete
+ zle redisplay
+ }
+ zle -N expand-or-complete-with-dots
+ bindkey "^I" expand-or-complete-with-dots
+
+#set important shell variables
+ #set default editor and pager.
+ export EDITOR=nvim
+ export VISUAL=nvim
+ export PAGER=less
+ #default options for less
+ export LESS="-R"
+ export LESSHISTFILE="/dev/null"
+ #set the w3m homepage
+ export WWW_HOME="duckduckgo.com/lite/"
+
+#misc
# Enable the ZLE line editor, which is default behavior, but to be sure
setopt ZLE
#Enable vi mode for the ZLE. it should be set by default due to our EDITOR and VISUAL, but this is just to be safe.
bindkey -v
- # prevent duplicate entries in path
- declare -U path
- # Uses custom colors for LS, as outlined in dircolors
- eval $(dircolors $ZSH_CONF/dircolors)
# Sends cd commands without the need for 'cd'
setopt AUTO_CD
- # Can pipe to mulitple outputs
- setopt MULTI_OS
# Kill all child processes when we exit, dont leave them running
unsetopt NO_HUP
#Allows comments in interactive shell.
setopt INTERACTIVE_COMMENTS
- # Abc{$cool}efg where $cool is an array surrounds all array variables individually
- setopt RC_EXPAND_PARAM
# Ctrl+S and Ctrl+Q usually disable/enable tty input. This disables those inputs
unsetopt FLOW_CONTROL
- # List jobs in the long format by default. (I dont know what this does but it sounds good)
- setopt LONG_LIST_JOBS
+ mkdir -p ~/.cache/zsh
+ local zshCache=~/.cache/zsh
-# ZSH History
- HISTFILE=$ZSH_CACHE/history # Keep our home directory neat by keeping the histfile somewhere else
- SAVEHIST=10000 # Big history
- HISTSIZE=10000 # Big history
- setopt EXTENDED_HISTORY # Include more information about when the command was executed, etc
- setopt APPEND_HISTORY # Allow multiple terminal sessions to all append to one zsh command history
- setopt HIST_FIND_NO_DUPS # When searching history dont display results already cycled through twice
- setopt HIST_EXPIRE_DUPS_FIRST # When duplicates are entered, get rid of the duplicates first when we hit $HISTSIZE
- setopt HIST_VERIFY # makes history substitution commands a bit nicer. I dont fully understand
- setopt SHARE_HISTORY # Shares history across multiple zsh sessions, in real time
- setopt HIST_IGNORE_DUPS # Do not write events to history that are duplicates of the immediately previous event
- setopt INC_APPEND_HISTORY # Add commands to history as they are typed, dont wait until shell exit
- setopt HIST_REDUCE_BLANKS # Remove extra blanks from each command line being added to history
+#ZSH history
+ #make a history file outside our home directory
+ HISTFILE=$zshCache/history
+ #save a lot of history
+ SAVEHIST=1000
+ HISTSIZE=1000
+ #save more information in history
+ setopt EXTENDED_HISTORY
+ #share history among zsh sessions
+ setopt APPEND_HISTORY
+ setopt SHARE_HISTORY
+ #skip dupes when going through history
+ setopt HIST_FIND_NO_DUPS
+ #delete dupes first when histsize becomes full
+ setopt HIST_EXPIRE_DUPS_FIRST
+ #dont write dupes of the last command to histfile
+ setopt HIST_IGNORE_DUPS
+ #write history file as we type
+ setopt INC_APPEND_HISTORY
+ #remove extra whitespace from history
+ setopt HIST_REDUCE_BLANKS
-# ZSH Auto Completion
- SHORT_HOST=${HOST/.*/}
- #the auto complete dump is a cache file where ZSH stores its auto complete data, for faster load times
- local ZSH_COMPDUMP="$ZSH_CACHE/acdump-${SHORT_HOST}-${ZSH_VERSION}" #where to store autocomplete data
+#autocomplete
autoload -Uz compinit
- compinit -i -d "${ZSH_COMPDUMP}" # Init auto completion; tell where to store autocomplete dump
- zstyle ':completion:*' menu select # Have the menu highlight as we cycle through options
- zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' # Case-insensitive (uppercase from lowercase) completion
- setopt COMPLETE_IN_WORD # Allow completion from within a word/phrase
- setopt ALWAYS_TO_END # When completing from the middle of a word, move cursor to end of word
- setopt MENU_COMPLETE # When using auto-complete, put the first option on the line immediately
- setopt COMPLETE_ALIASES # Turn on completion for aliases as well
- setopt LIST_ROWS_FIRST # Cycle through menus horizontally instead of vertically
+ compinit
+ #have the menu highlight while we cycle through options
+ zstyle ':completion:*' menu select
+ #case insensitive completion
+ zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}'
+ #allow completion from midword
+ setopt COMPLETE_IN_WORD
+ #move cursor to end of word after completing
+ setopt ALWAYS_TO_END
+ #complete aliases as well
+ setopt COMPLETE_ALIASES
-# Globbing
- setopt NO_CASE_GLOB # Case insensitive globbing
- setopt EXTENDED_GLOB # Allow the powerful zsh globbing features, see link:
- # http://www.refining-linux.org/archives/37/ZSH-Gem-2-Extended-globbing-and-expansion/
- setopt NUMERIC_GLOB_SORT # Sort globs that expand to numbers numerically, not by letter (i.e. 01 2 03)
-
-# Aliases
+#globbing
+ #case insensitive globbing
+ setopt NO_CASE_GLOB
+ #sort globs that expand to numbers by number rather than alphabeticly
+ setopt NUMERIC_GLOB_SORT
+
+#aliases
alias vim="nvim"
alias vimdiff="nvim -d"
alias mutt="neomutt"
alias fuck='sudo $(fc -ln -1)'
- #alias -g ...='../..'
- #alias -g ....='../../..'
- #alias -g .....='../../../..'
- #alias -g ......='../../../../..'
- #alias -g .......='../../../../../..'
- #alias -g ........='../../../../../../..'
-
- alias ls="ls -h --color='auto'"
- alias lsa='ls -A'
- alias ll='ls -l'
- alias la='ls -lA'
- alias lx='ls -lXB' #Sort by extension
- alias lt='ls -ltr'
- alias lk='ls -lSr'
- alias cdl=changeDirectory; function changeDirectory { cd $1 ; la }
-
- alias md='mkdir -p'
- alias rd='rmdir'
-
- # Copy with a progress bar
- alias cpv="rsync -poghb --backup-dir=/tmp/rsync -e /dev/null --progress --"
-
- alias d='dirs -v | head -10' # List the last ten directories we've been to this session, no duplicates
-
+ #web searches
alias ddg='web_search ddg'
alias github='web_search github'
alias wiki='web_search ddg \!w'
@@ -128,35 +168,17 @@ local LOCAL_ZSHRC=$HOME/.config/zshlocal # Allow the local machine to have
alias map='web_search ddg \!m'
alias image='web_search ddg \!i'
-# Setup grep to be a bit more nice
- # check if 'x' grep argument available
- grep-flag-available() {
- echo | grep $1 "" >/dev/null 2>&1
- }
-
+#setup grep to be a bit more nice
local GREP_OPTIONS=""
# color grep results
- if grep-flag-available --color=auto; then
- GREP_OPTIONS+=" --color=auto"
- fi
+ GREP_OPTIONS+=" --color=auto"
# ignore VCS folders (if the necessary grep flags are available)
local VCS_FOLDERS="{.bzr,CVS,.git,.hg,.svn}"
- if grep-flag-available --exclude-dir=.cvs; then
- GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
- elif grep-flag-available --exclude=.cvs; then
- GREP_OPTIONS+=" --exclude=$VCS_FOLDERS"
- fi
+ GREP_OPTIONS+=" --exclude-dir=$VCS_FOLDERS"
+ GREP_OPTIONS+=" --exclude=$VCS_FOLDERS"
# export grep settings
alias grep="grep $GREP_OPTIONS"
-
- # clean up
- unfunction grep-flag-available
-
-# Allow local zsh settings (superseding anything in here) in case I want something specific for certain machines
- if [[ -r $LOCAL_ZSHRC ]]; then
- source $LOCAL_ZSHRC
- fi