diff --git a/.gitignore b/.gitignore index 783cd5b..8313646 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ *.swp +*.bak +*~ diff --git a/.gitmodules b/.gitmodules index fd3f6a9..fd6a461 100644 --- a/.gitmodules +++ b/.gitmodules @@ -7,6 +7,21 @@ [submodule "vim/pack/def/start/vim-fugitive"] path = vim/pack/def/start/vim-fugitive url = https://github.com/tpope/vim-fugitive -[submodule "vim/pack/def/start/vim-gitgutter"] - path = vim/pack/def/start/vim-gitgutter - url = https://github.com/airblade/vim-gitgutter +[submodule "vim/pack/def/start/editorconfig"] + path = vim/pack/def/start/editorconfig + url = https://github.com/editorconfig/editorconfig-vim.git +[submodule "zsh_files/powerlevel10k"] + path = zsh_files/powerlevel10k + url = https://github.com/romkatv/powerlevel10k.git +[submodule "tpm"] + path = dot.tmux/plugins/tpm + url = https://github.com/tmux-plugins/tpm.git +[submodule "dot.tmux/plugins/tmux-power"] + path = dot.tmux/plugins/tmux-power + url = https://git::@github.com/wfxr/tmux-power +[submodule "dot.tmux/plugins/tmux-sensible"] + path = dot.tmux/plugins/tmux-sensible + url = https://git::@github.com/tmux-plugins/tmux-sensible +[submodule "dot.tmux/plugins/tmux-yank"] + path = dot.tmux/plugins/tmux-yank + url = https://git::@github.com/tmux-plugins/tmux-yank diff --git a/csirc b/csirc new file mode 100644 index 0000000..c8c833c --- /dev/null +++ b/csirc @@ -0,0 +1,3 @@ +(import linenoise) +(current-input-port (make-linenoise-port)) + diff --git a/dot.tmux/plugins/tmux-power b/dot.tmux/plugins/tmux-power new file mode 160000 index 0000000..9dafd5b --- /dev/null +++ b/dot.tmux/plugins/tmux-power @@ -0,0 +1 @@ +Subproject commit 9dafd5b0504906421f904149b178c1ddb83a0580 diff --git a/dot.tmux/plugins/tmux-sensible b/dot.tmux/plugins/tmux-sensible new file mode 160000 index 0000000..25cb91f --- /dev/null +++ b/dot.tmux/plugins/tmux-sensible @@ -0,0 +1 @@ +Subproject commit 25cb91f42d020f675bb0a2ce3fbd3a5d96119efa diff --git a/dot.tmux/plugins/tmux-yank b/dot.tmux/plugins/tmux-yank new file mode 160000 index 0000000..acfd36e --- /dev/null +++ b/dot.tmux/plugins/tmux-yank @@ -0,0 +1 @@ +Subproject commit acfd36e4fcba99f8310a7dfb432111c242fe7392 diff --git a/dot.tmux/plugins/tpm b/dot.tmux/plugins/tpm new file mode 160000 index 0000000..99469c4 --- /dev/null +++ b/dot.tmux/plugins/tpm @@ -0,0 +1 @@ +Subproject commit 99469c4a9b1ccf77fade25842dc7bafbc8ce9946 diff --git a/inputrc b/inputrc new file mode 100644 index 0000000..7220166 --- /dev/null +++ b/inputrc @@ -0,0 +1,2 @@ +set bell-style none + diff --git a/install.conf.yaml b/install.conf.yaml index b552fc7..f3e21cf 100644 --- a/install.conf.yaml +++ b/install.conf.yaml @@ -11,18 +11,27 @@ - ~/.fonts - link: + ~/.zprofile: zprofile + ~/.zshrc: zshrc + ~/.zsh_files: zsh_files + ~/.p10k.zsh: p10k.zsh ~/.bashrc: bashrc ~/.profile: profile + ~/.inputrc: inputrc ~/.vimrc: vimrc ~/.vim: vim + ~/.csirc: csirc ~/.config/kitty/kitty.conf: kitty.conf ~/.scripts: scripts + ~/.tmux.conf: tmux.conf + ~/.tmux: dot.tmux ~/.fonts/: glob: true path: resources/fonts/*.ttf relink: true - shell: + - [git config --global alias.tree 'log --oneline --graph --decorate --all', Adding git alias for tree view] - [git submodule update --init --recursive, Installing submodules] - [fc-cache -f -v, Updating fonts] diff --git a/p10k.zsh b/p10k.zsh new file mode 100644 index 0000000..9da6606 --- /dev/null +++ b/p10k.zsh @@ -0,0 +1,193 @@ +# Generated by Powerlevel10k configuration wizard on 2023-08-23 at 01:43 CDT. +# Based on romkatv/powerlevel10k/config/p10k-pure.zsh, checksum 35142. +# Wizard options: nerdfont-complete + powerline, large icons, pure, 1 line, compact, +# instant_prompt=verbose. +# Type `p10k configure` to generate another config. +# +# Config file for Powerlevel10k with the style of Pure (https://github.com/sindresorhus/pure). +# +# Differences from Pure: +# +# - Git: +# - `@c4d3ec2c` instead of something like `v1.4.0~11` when in detached HEAD state. +# - No automatic `git fetch` (the same as in Pure with `PURE_GIT_PULL=0`). +# +# Apart from the differences listed above, the replication of Pure prompt is exact. This includes +# even the questionable parts. For example, just like in Pure, there is no indication of Git status +# being stale; prompt symbol is the same in command, visual and overwrite vi modes; when prompt +# doesn't fit on one line, it wraps around with no attempt to shorten it. +# +# If you like the general style of Pure but not particularly attached to all its quirks, type +# `p10k configure` and pick "Lean" style. This will give you slick minimalist prompt while taking +# advantage of Powerlevel10k features that aren't present in Pure. + +# Temporarily change options. +'builtin' 'local' '-a' 'p10k_config_opts' +[[ ! -o 'aliases' ]] || p10k_config_opts+=('aliases') +[[ ! -o 'sh_glob' ]] || p10k_config_opts+=('sh_glob') +[[ ! -o 'no_brace_expand' ]] || p10k_config_opts+=('no_brace_expand') +'builtin' 'setopt' 'no_aliases' 'no_sh_glob' 'brace_expand' + +() { + emulate -L zsh -o extended_glob + + # Unset all configuration options. + unset -m '(POWERLEVEL9K_*|DEFAULT_USER)~POWERLEVEL9K_GITSTATUS_DIR' + + # Zsh >= 5.1 is required. + [[ $ZSH_VERSION == (5.<1->*|<6->.*) ]] || return + + # Prompt colors. + local grey='242' + local red='1' + local yellow='3' + local blue='4' + local magenta='5' + local cyan='6' + local white='7' + + # Left prompt segments. + typeset -g POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=( + context # user@host + dir # current directory + vcs # git status + command_execution_time # previous command duration + virtualenv # python virtual environment + prompt_char # prompt symbol + ) + + # Right prompt segments. + typeset -g POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=( + # command_execution_time # previous command duration + # virtualenv # python virtual environment + # context # user@host + # time # current time + ) + + # Basic style options that define the overall prompt look. + typeset -g POWERLEVEL9K_BACKGROUND= # transparent background + typeset -g POWERLEVEL9K_{LEFT,RIGHT}_{LEFT,RIGHT}_WHITESPACE= # no surrounding whitespace + typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SUBSEGMENT_SEPARATOR=' ' # separate segments with a space + typeset -g POWERLEVEL9K_{LEFT,RIGHT}_SEGMENT_SEPARATOR= # no end-of-line symbol + typeset -g POWERLEVEL9K_VISUAL_IDENTIFIER_EXPANSION= # no segment icons + + # Add an empty line before each prompt except the first. This doesn't emulate the bug + # in Pure that makes prompt drift down whenever you use the Alt-C binding from fzf or similar. + typeset -g POWERLEVEL9K_PROMPT_ADD_NEWLINE=false + + # Magenta prompt symbol if the last command succeeded. + typeset -g POWERLEVEL9K_PROMPT_CHAR_OK_{VIINS,VICMD,VIVIS}_FOREGROUND=$magenta + # Red prompt symbol if the last command failed. + typeset -g POWERLEVEL9K_PROMPT_CHAR_ERROR_{VIINS,VICMD,VIVIS}_FOREGROUND=$red + # Default prompt symbol. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIINS_CONTENT_EXPANSION='❯' + # Prompt symbol in command vi mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VICMD_CONTENT_EXPANSION='❮' + # Prompt symbol in visual vi mode is the same as in command mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_{OK,ERROR}_VIVIS_CONTENT_EXPANSION='❮' + # Prompt symbol in overwrite vi mode is the same as in command mode. + typeset -g POWERLEVEL9K_PROMPT_CHAR_OVERWRITE_STATE=false + + # Grey Python Virtual Environment. + typeset -g POWERLEVEL9K_VIRTUALENV_FOREGROUND=$grey + # Don't show Python version. + typeset -g POWERLEVEL9K_VIRTUALENV_SHOW_PYTHON_VERSION=false + typeset -g POWERLEVEL9K_VIRTUALENV_{LEFT,RIGHT}_DELIMITER= + + # Blue current directory. + typeset -g POWERLEVEL9K_DIR_FOREGROUND=$blue + + # Context format when root: user@host. The first part white, the rest grey. + typeset -g POWERLEVEL9K_CONTEXT_ROOT_TEMPLATE="%F{$white}%n%f%F{$grey}@%m%f" + # Context format when not root: user@host. The whole thing grey. + typeset -g POWERLEVEL9K_CONTEXT_TEMPLATE="%F{$grey}%n@%m%f" + # Don't show context unless root or in SSH. + typeset -g POWERLEVEL9K_CONTEXT_{DEFAULT,SUDO}_CONTENT_EXPANSION= + + # Show previous command duration only if it's >= 5s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=5 + # Don't show fractional seconds. Thus, 7s rather than 7.3s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_PRECISION=0 + # Duration format: 1d 2h 3m 4s. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FORMAT='d h m s' + # Yellow previous command duration. + typeset -g POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=$yellow + + # Grey Git prompt. This makes stale prompts indistinguishable from up-to-date ones. + typeset -g POWERLEVEL9K_VCS_FOREGROUND=$grey + + # Disable async loading indicator to make directories that aren't Git repositories + # indistinguishable from large Git repositories without known state. + typeset -g POWERLEVEL9K_VCS_LOADING_TEXT= + + # Don't wait for Git status even for a millisecond, so that prompt always updates + # asynchronously when Git state changes. + typeset -g POWERLEVEL9K_VCS_MAX_SYNC_LATENCY_SECONDS=0 + + # Cyan ahead/behind arrows. + typeset -g POWERLEVEL9K_VCS_{INCOMING,OUTGOING}_CHANGESFORMAT_FOREGROUND=$cyan + # Don't show remote branch, current tag or stashes. + typeset -g POWERLEVEL9K_VCS_GIT_HOOKS=(vcs-detect-changes git-untracked git-aheadbehind) + # Don't show the branch icon. + typeset -g POWERLEVEL9K_VCS_BRANCH_ICON= + # When in detached HEAD state, show @commit where branch normally goes. + typeset -g POWERLEVEL9K_VCS_COMMIT_ICON='@' + # Don't show staged, unstaged, untracked indicators. + typeset -g POWERLEVEL9K_VCS_{STAGED,UNSTAGED,UNTRACKED}_ICON= + # Show '*' when there are staged, unstaged or untracked files. + typeset -g POWERLEVEL9K_VCS_DIRTY_ICON='*' + # Show '⇣' if local branch is behind remote. + typeset -g POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=':⇣' + # Show '⇡' if local branch is ahead of remote. + typeset -g POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=':⇡' + # Don't show the number of commits next to the ahead/behind arrows. + typeset -g POWERLEVEL9K_VCS_{COMMITS_AHEAD,COMMITS_BEHIND}_MAX_NUM=1 + # Remove space between '⇣' and '⇡' and all trailing spaces. + typeset -g POWERLEVEL9K_VCS_CONTENT_EXPANSION='${${${P9K_CONTENT/⇣* :⇡/⇣⇡}// }//:/ }' + + # Grey current time. + typeset -g POWERLEVEL9K_TIME_FOREGROUND=$grey + # Format for the current time: 09:51:02. See `man 3 strftime`. + typeset -g POWERLEVEL9K_TIME_FORMAT='%D{%H:%M:%S}' + # If set to true, time will update when you hit enter. This way prompts for the past + # commands will contain the start times of their commands rather than the end times of + # their preceding commands. + typeset -g POWERLEVEL9K_TIME_UPDATE_ON_COMMAND=false + + # Transient prompt works similarly to the builtin transient_rprompt option. It trims down prompt + # when accepting a command line. Supported values: + # + # - off: Don't change prompt when accepting a command line. + # - always: Trim down prompt when accepting a command line. + # - same-dir: Trim down prompt when accepting a command line unless this is the first command + # typed after changing current working directory. + typeset -g POWERLEVEL9K_TRANSIENT_PROMPT=off + + # Instant prompt mode. + # + # - off: Disable instant prompt. Choose this if you've tried instant prompt and found + # it incompatible with your zsh configuration files. + # - quiet: Enable instant prompt and don't print warnings when detecting console output + # during zsh initialization. Choose this if you've read and understood + # https://github.com/romkatv/powerlevel10k/blob/master/README.md#instant-prompt. + # - verbose: Enable instant prompt and print a warning when detecting console output during + # zsh initialization. Choose this if you've never tried instant prompt, haven't + # seen the warning, or if you are unsure what this all means. + typeset -g POWERLEVEL9K_INSTANT_PROMPT=verbose + + # Hot reload allows you to change POWERLEVEL9K options after Powerlevel10k has been initialized. + # For example, you can type POWERLEVEL9K_BACKGROUND=red and see your prompt turn red. Hot reload + # can slow down prompt by 1-2 milliseconds, so it's better to keep it turned off unless you + # really need it. + typeset -g POWERLEVEL9K_DISABLE_HOT_RELOAD=true + + # If p10k is already loaded, reload configuration. + # This works even with POWERLEVEL9K_DISABLE_HOT_RELOAD=true. + (( ! $+functions[p10k] )) || p10k reload +} + +# Tell `p10k configure` which file it should overwrite. +typeset -g POWERLEVEL9K_CONFIG_FILE=${${(%):-%x}:a} + +(( ${#p10k_config_opts} )) && setopt ${p10k_config_opts[@]} +'builtin' 'unset' 'p10k_config_opts' diff --git a/profile b/profile index 1b0e61f..d155ff7 100644 --- a/profile +++ b/profile @@ -12,7 +12,7 @@ if [ -n "$BASH_VERSION" ]; then # include .bashrc if it exists if [ -f "$HOME/.bashrc" ]; then - . "$HOME/.bashrc" + . "$HOME/.bashrc" fi fi @@ -31,3 +31,8 @@ if [ -d "$HOME/.scripts" ] ; then PATH="$HOME/.scripts:$PATH" fi +# Enable Ssh-Agent +if [ -n "$BASH_VERSION" ]; then + . "$HOME/.scripts/ssh_session" +fi + diff --git a/scripts/ssh_session b/scripts/ssh_session new file mode 100755 index 0000000..c43e268 --- /dev/null +++ b/scripts/ssh_session @@ -0,0 +1,28 @@ +#!/bin/bash + +# +# setup ssh-agent +# + +SSH_ENV="$HOME/.ssh/environment" + +function start_agent { + echo "Initialising new SSH agent..." + /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}" + echo succeeded + chmod 600 "${SSH_ENV}" + . "${SSH_ENV}" > /dev/null + /usr/bin/ssh-add; +} + +# Source SSH settings, if applicable + +if [ -f "${SSH_ENV}" ]; then + . "${SSH_ENV}" > /dev/null + ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || { + start_agent; + } +else + start_agent; +fi + diff --git a/tmux.conf b/tmux.conf new file mode 100644 index 0000000..7b7cc05 --- /dev/null +++ b/tmux.conf @@ -0,0 +1,13 @@ +# My options +set -sg escape-time 1 # WSL fix, see https://github.com/microsoft/WSL/issues/5931 + +# List of plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'wfxr/tmux-power' + +set -g mouse on + +run '~/.tmux/plugins/tpm/tpm' + diff --git a/vim/after/ftplugin/markdown.vim b/vim/after/ftplugin/markdown.vim new file mode 100644 index 0000000..5aa5f68 --- /dev/null +++ b/vim/after/ftplugin/markdown.vim @@ -0,0 +1,4 @@ + +setlocal linebreak +setlocal wrap + diff --git a/vim/after/ftplugin/scheme.vim b/vim/after/ftplugin/scheme.vim new file mode 100644 index 0000000..03d7042 --- /dev/null +++ b/vim/after/ftplugin/scheme.vim @@ -0,0 +1,5 @@ + +setlocal shiftwidth=2 +setlocal tabstop=2 +setlocal expandtab + diff --git a/vim/filetype.vim b/vim/filetype.vim new file mode 100644 index 0000000..541976f --- /dev/null +++ b/vim/filetype.vim @@ -0,0 +1,532 @@ +" Override system filetype.vim +if exists('g:did_load_filetypes') + finish +endif +let g:did_load_filetypes = 1 + +" If we don't have +autocmd or are 'compatible', do nothing, and don't try +" again later +if !has('autocmd') || &compatible + finish +endif + +" Helper function to run the 'filetypedetect' group on a file with its +" extension stripped off +function! s:StripRepeat() + + " Check we have the fnameescape() function + if !exists('*fnameescape') + return + endif + + " Expand the match result + let l:fn = expand('') + + " Strip leading and trailing #hashes# + if l:fn =~# '^#\+.*#\+$' + let l:fn = substitute(l:fn, '^#\+\(.\+\)#\+$', '\1', '') + + " Strip trailing tilde~ + elseif l:fn =~# '\~$' + let l:fn = substitute(l:fn, '\~$', '', '') + + " Strip generic .extension + else + let l:fn = expand(':r') + endif + + " Re-run the group if there's anything left + if strlen(l:fn) + execute 'doautocmd filetypedetect BufRead ' . fnameescape(l:fn) + endif + +endfunction + +" Check whether the first line was changed and looks like a shebang, and if +" so, re-run filetype detection +function! s:CheckShebang() + if line('''[') == 1 && getline(1) =~# '^#!' + doautocmd filetypedetect BufRead + endif +endfunction + +" Use our own filetype detection rules +augroup filetypedetect + autocmd! + + " Unwrap hashes, tildes, generic extensions, and Debian packaging working + " extensions (if we can do so safely), and repeat the filetype detection to + " see if there's a match beneath them + autocmd BufNewFile,BufRead + \ #?*# + \,?*~ + \,?*.{bak,example,in,new,old,orig,sample,test} + \,?*.dpkg-{bak,dist,new,old} + \ call s:StripRepeat() + + " Stuff Tom cares about enough and edits often enough to type based on + " filename patterns follows. + + " Apache config + autocmd BufNewFile,BufRead + \ .htaccess + \,*/apache*/?*.conf + \ setfiletype apache + " Assembly language files + autocmd BufNewFile,BufRead + \ ?*.s + \ setfiletype asm + " AWK files + autocmd BufNewFile,BufRead + \ ?*.awk + \ setfiletype awk + " BIND zone file + autocmd BufNewFile,BufRead + \ */bind/db.?* + \,*/namedb/db.?* + \,named.root + \ setfiletype bindzone + " C files + autocmd BufNewFile,BufRead + \ ?*.c + \,?*.h + \ setfiletype c + " C++ files + autocmd BufNewFile,BufRead + \ ?*.cpp + \,?*.cxx + \,?*.c++ + \,?*.hh + \ setfiletype cpp + " crontab(5) files + autocmd BufNewFile,BufRead + \ crontab + \,crontab.* + \,cron.d/* + \ setfiletype crontab + " CSS files + autocmd BufNewFile,BufRead + \ ?*.css + \ setfiletype css + " CSV files + autocmd BufNewFile,BufRead + \ ?*.csv + \ setfiletype csv + " Diff and patch files + autocmd BufNewFile,BufRead + \ ?*.diff + \,?*.patch + \,?*.rej + \ setfiletype diff + " INI files + autocmd BufNewFile,BufRead + \ ?*.ini + \ setfiletype dosini + " DOT graphs + autocmd BufNewFile,BufRead + \ ?*.dot + \ setfiletype dot + " Forth + autocmd BufNewFile,BufRead + \ ?*.fs,?*.ft + \ setfiletype forth + " fstab(5) files + autocmd BufNewFile,BufRead + \ fstab + \ setfiletype fstab + " GDB init files + autocmd BufNewFile,BufRead + \ .gdbinit + \ setfiletype gdb + " Git commit messages + autocmd BufNewFile,BufRead + \ COMMIT_EDITMSG + \,MERGE_MSG + \,TAG_EDITMSG + \ setfiletype gitcommit + " Git config files + autocmd BufNewFile,BufRead + \ *.git/config + \,.gitconfig + \,.gitmodules + \,gitconfig + \ setfiletype gitconfig + " Git rebase manifests + autocmd BufNewFile,BufRead + \ git-rebase-todo + \ setfiletype gitrebase + " GnuPG configuration files + autocmd BufNewFile,BufRead + \ *gnupg/options + \,*gnupg/gpg.conf + \ setfiletype gpg + " UNIX group file + autocmd BufNewFile,BufRead + \ /etc/group + \,/etc/group- + \,/etc/group.edit + \,/etc/gshadow + \,/etc/gshadow- + \,/etc/gshadow.edit + \ setfiletype group + " GTK settings files + autocmd BufNewFile,BufRead + \ .gktrc*, + \,gktrc* + \ setfiletype gtkrc + " Vim help files + autocmd BufNewFile,BufRead + \ ~/.vim/doc/?*.txt + \,*/vim-*/doc/?*.txt + \,*/*.vim/doc/?*.txt + \,$VIMRUNTIME/doc/?*.txt + \ setfiletype help + " HTML files + autocmd BufNewFile,BufRead + \ ?*.html + \,?*.htm + \ setfiletype html + " inittab(5) files + autocmd BufNewFile,BufRead + \ inittab + \ setfiletype inittab + " Java files + autocmd BufNewFile,BufRead + \ ?*.java + \,?*.jav + \ setfiletype java + " JSON files + autocmd BufNewFile,BufRead + \ ?*.js + \ setfiletype javascript + " JSON files + autocmd BufNewFile,BufRead + \ ?*.json + \ setfiletype json + " Lex files + autocmd BufNewFile,BufRead + \ ?*.l + \,?*.lex + \ setfiletype lex + " Lua files + autocmd BufNewFile,BufRead + \ ?*.lua + \ setfiletype lua + " m4 files + autocmd BufNewFile,BufRead + \ ?*.m4 + \ setfiletype m4 + " Mail messages + autocmd BufNewFile,BufRead + \ ?*.msg + \,mutt-*-[0-9]\+-[0-9]\+-[0-9]\+ + \ setfiletype mail + " Mail messages + autocmd BufNewFile,BufRead + \ aliases + \ setfiletype mailaliases + " Makefiles + autocmd BufNewFile,BufRead + \ Makefile + \,makefile + \ setfiletype make + " Markdown files + autocmd BufNewFile,BufRead + \ ?*.markdown + \,?*.md + \ setfiletype markdown + " Mutt configuration files + autocmd BufNewFile,BufRead + \ Muttrc + \,*/.muttrc.d/*.rc + \,.muttrc + \,/etc/Muttrc.d/* + \ setfiletype muttrc + " BIND configuration file + autocmd BufNewFile,BufRead + \ named.conf + \,rndc.conf + \,rndc.key + \ setfiletype named + " Nano configuration file + autocmd BufNewFile,BufRead + \ *.nanorc + \,*/etc/nanorc + \ setfiletype nanorc + " netrc file + autocmd BufNewFile,BufRead + \ .netrc + \,netrc + \ setfiletype netrc + " roff files + autocmd BufNewFile,BufRead + \ ?*.roff + \,?*.[1-9] + \,*/man[1-9]*/?*.[1-9]* + \ setfiletype nroff + " UNIX password and shadow files + autocmd BufNewFile,BufRead + \ /etc/passwd + \,/etc/passwd- + \,/etc/passwd.edit + \,/etc/shadow + \,/etc/shadow- + \,/etc/shadow.edit + \ setfiletype passwd + " pass(1) password files + autocmd BufNewFile,BufRead + \ /dev/shm/pass.?*/?*.txt + \,$TMPDIR/pass.?*/?*.txt + \,/tmp/pass.?*/?*.txt + \ setfiletype password + " Perl 5 files + autocmd BufNewFile,BufRead + \ ?*.pl + \,?*.pm + \,*/t/?*.t + \,*/xt/?*.t + \,Makefile.PL + \ setfiletype perl + " Perl 6 files + autocmd BufNewFile,BufRead + \ ?*.p6 + \,?*.pl6 + \,?*.pm6 + \ setfiletype perl6 + " PHP files + autocmd BufNewFile,BufRead + \ ?*.php + \ setfiletype php + " Perl 5 POD files + autocmd BufNewFile,BufRead + \ ?*.pod + \ setfiletype pod + " Perl 6 POD files + autocmd BufNewFile,BufRead + \ ?*.pod6 + \ setfiletype pod6 + " Python files + autocmd BufNewFile,BufRead + \ ?*.py + \ setfiletype python + " Readline configuration file + autocmd BufNewFile,BufRead + \ .inputrc + \,inputrc + \ setfiletype readline + " Remind files + autocmd BufNewFile,BufRead + \ .reminders + \,?*.rem + \,?*.remind + \ setfiletype remind + " robots.txt files + autocmd BufNewFile,BufRead + \ robots.txt + \ setfiletype robots + " Ruby + autocmd BufNewFile,BufRead + \ ?*.rb + \ setfiletype ruby + " sed files + autocmd BufNewFile,BufRead + \ ?*.sed + \ setfiletype sed + " Services files + autocmd BufNewFile,BufRead + \ /etc/services + \ setfiletype services + " Bash shell + autocmd BufNewFile,BufRead + \ ?*.bash + \,.bash_aliases + \,.bash_completion + \,.bash_logout + \,.bash_profile + \,.bashrc + \,bash-fc.?* + \,bash_aliases + \,bash_completion + \,bash_logout + \,bash_profile + \,bashrc + \ let b:is_bash = 1 + \|setfiletype sh + " Korn shell + autocmd BufNewFile,BufRead + \ ?*.ksh + \,.kshrc + \,kshrc + \ let b:is_kornshell = 1 + \|setfiletype sh + " POSIX/Bourne shell + autocmd BufNewFile,BufRead + \ ?*.sh + \,$ENV + \,.profile + \,.shinit + \,.shrc + \,.xinitrc + \,/etc/default/* + \,configure + \,profile + \,shinit + \,shrc + \,xinitrc + \ let b:is_posix = 1 + \|setfiletype sh + " SQL + autocmd BufNewFile,BufRead + \ ?*.sql + \ setfiletype sql + " OpenSSH configuration + autocmd BufNewFile,BufRead + \ ssh_config,*/.ssh/config + \ setfiletype sshconfig + " sudoers(5) + autocmd BufNewFile,BufRead + \ sudoers + \,sudoers.tmp + \ setfiletype sshdconfig + " OpenSSH server configuration + autocmd BufNewFile,BufRead + \ sshd_config + \ setfiletype sudoers + " Subversion commit + autocmd BufNewFile,BufRead + \ svn-commit*.tmp + \ setfiletype svn + " Systemd unit files + autocmd BufNewFile,BufRead + \ */systemd/*.* + \ setfiletype systemd + " TCL + autocmd BufNewFile,BufRead + \ ?*.tcl + \ setfiletype tcl + " Terminfo + autocmd BufNewFile,BufRead + \ ?*.ti + \ setf terminfo + " Tidy config + autocmd BufNewFile,BufRead + \ .tidyrc + \,tidyrc + \ setfiletype tidy + " tmux configuration files + autocmd BufNewFile,BufRead + \ .tmux.conf + \,tmux.conf + \ setfiletype tmux + " Tab-separated (TSV) files + autocmd BufNewFile,BufRead + \ ?*.tsv + \ setfiletype tsv + " VimL files + autocmd BufNewFile,BufRead + \ ?*.vim + \,*.exrc + \,*.gvimrc + \,*.vimrc + \,_exrc + \,_gvimrc + \,_vimrc + \,exrc + \,gvimrc + \,vimrc + \ setfiletype vim + " .viminfo files + autocmd BufNewFile,BufRead + \ .viminfo + \ setfiletype viminfo + " .wgetrc files + autocmd BufNewFile,BufRead + \ .wgetrc + \,wgetrc + \ setfiletype wget + " Add automatic commands to find Xresources subfiles + autocmd BufNewFile,BufRead + \ .Xresources + \,*/.Xresources.d/* + \,Xresources + \,*/Xresources.d/* + \ setfiletype xdefaults + " XHTML files + autocmd BufNewFile,BufRead + \ ?*.xhtml + \,?*.xht + \ setfiletype xhtml + " XML files + autocmd BufNewFile,BufRead + \ ?*.xml + \ setfiletype xml + " Perl XS + autocmd BufNewFile,BufRead + \ ?*.xs + \ setfiletype xs + " Yacc files + autocmd BufNewFile,BufRead + \ ?*.y + \,?*.yy + \ setfiletype yacc + " YAML files + autocmd BufNewFile,BufRead + \ ?*.yaml + \ setfiletype yaml + " Z shell files + autocmd BufNewFile,BufRead + \ ?*.zsh + \,.zprofile + \,.zshrc + \,zprofile + \,zshrc + \ setfiletype zsh + + " Load any extra rules in ftdetect directories + runtime! ftdetect/*.vim + + " Generic text, config, and log files, if no type assigned yet + autocmd BufNewFile,BufRead + \ ?*.text + \,?*.txt + \,INSTALL + \,README + \,/etc/issue + \,/etc/motd + \ setfiletype text + autocmd BufNewFile,BufRead + \ ?*.cfg + \,?*.conf + \,?*.config + \,/etc/* + \ setfiletype config + autocmd BufNewFile,BufRead + \ */log/* + \,?*.log + \ setfiletype messages + + " Clumsy attempt at typing files in `sudo -e` if a filename hasn't already + " been found; strip temporary extension and re-run + autocmd BufNewFile,BufRead + \ /var/tmp/?*.???????? + \ if !did_filetype() + \| call s:StripRepeat() + \|endif + + " If we still don't have a filetype, run the scripts.vim file that performs + " cleverer checks including looking at actual file contents--but only my + " custom one; don't load the system one at all. + autocmd BufNewFile,BufRead,StdinReadPost + \ * + \ if !did_filetype() + \| runtime scripts.vim + \|endif + + " If supported, on leaving insert mode, check whether the first line was + " changed and looks like a shebang format, and if so, re-run filetype + " detection + if v:version > 700 + autocmd InsertLeave * call s:CheckShebang() + endif + +augroup END diff --git a/vim/pack/def/start/editorconfig b/vim/pack/def/start/editorconfig new file mode 160000 index 0000000..047c4b4 --- /dev/null +++ b/vim/pack/def/start/editorconfig @@ -0,0 +1 @@ +Subproject commit 047c4b455b9d56adee63a52d6d7cdf5bb6521d53 diff --git a/vim/pack/def/start/vim-fugitive b/vim/pack/def/start/vim-fugitive index d4bcc75..b1c3cdf 160000 --- a/vim/pack/def/start/vim-fugitive +++ b/vim/pack/def/start/vim-fugitive @@ -1 +1 @@ -Subproject commit d4bcc75ef6449c0e5592513fb1e0a42b017db9ca +Subproject commit b1c3cdffc94c2cbe48777db5cf8bc9156b17d070 diff --git a/vim/pack/def/start/vim-gitgutter b/vim/pack/def/start/vim-gitgutter deleted file mode 160000 index 2e3cd54..0000000 --- a/vim/pack/def/start/vim-gitgutter +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 2e3cd54ed696500bb3722226f2103d4b279272c0 diff --git a/vim/scripts.vim b/vim/scripts.vim new file mode 100644 index 0000000..f79fa74 --- /dev/null +++ b/vim/scripts.vim @@ -0,0 +1,60 @@ +" Try to determine filetype by examining actual file contents; read as little +" as possible, and try to keep things simple and specific to what I typically +" work on, and will expect to be syntax-highlighted. + +" Read first line +let s:line = getline(1) + +" If it's not a shebang, we're done +if s:line !~# '^#!' + finish +endif + +" AWK +if s:line =~# '\<[gm]\=awk\>' + setfiletype awk + +" Perl 5 +elseif s:line =~# '\' + setfiletype perl + +" Perl 6 +elseif s:line =~# '\' + setfiletype perl6 + +" PHP +elseif s:line =~# '\' + setfiletype php + +" Python +elseif s:line =~# '\' + setfiletype python + +" Ruby +elseif s:line =~# '\' + setfiletype ruby + +" sed +elseif s:line =~# '\' + setfiletype sed + +" Bash +elseif s:line =~# '\' + let b:is_bash = 1 + setfiletype sh + +" Korn shell +elseif s:line =~# '\<\%(\ksh\|ksh93\|mksh\|pdksh\)\>' + let b:is_kornshell = 1 + setfiletype sh + +" POSIX/Bourne shell +elseif s:line =~# '\' + let b:is_posix = 1 + setfiletype sh + +" TCL +elseif s:line =~# '\<\%(tcl\|wish\)\>' + setfiletype tcl + +endif diff --git a/vim/system.vim b/vim/system.vim new file mode 100644 index 0000000..6db2023 --- /dev/null +++ b/vim/system.vim @@ -0,0 +1,22 @@ +" Revert settings that Debian might have touched +if $VIM !=# '/usr/share/vim' || !filereadable('/etc/debian_version') + finish +endif + +" Set options back to appropriate defaults +set history& +set suffixes& +if has('cmdline_info') + set ruler& +endif +if has('printoptions') + set printoptions& +endif + +" Restore terminal settings to reflect terminfo +set t_Co& t_Sf& t_Sb& + +" Remove addons directories from 'runtimepath' if present +set runtimepath-=/var/lib/vim/addons +set runtimepath-=/var/lib/vim/addons/after + diff --git a/vim/wrapping.vim b/vim/wrapping.vim new file mode 100644 index 0000000..4bfcc79 --- /dev/null +++ b/vim/wrapping.vim @@ -0,0 +1,14 @@ +" Default - don't wrap. +set nowrap + +" Map keys to utilize display lines instead of visual +nnoremap j gj +nnoremap k gk +vnoremap j gj +vnoremap k gk +nnoremap gj +nnoremap gk +vnoremap gj +vnoremap gk +inoremap gj +inoremap gk diff --git a/vimrc b/vimrc index 29c6952..3455dbf 100644 --- a/vimrc +++ b/vimrc @@ -1,264 +1,24 @@ +" Undo anything the operating system's vimrc may have broken +" Source from Tom Ryder's vimrc: +runtime system.vim -" Enable basic vim behaviors +" Configure generic preferred defaults set nocompatible - -" ----- Color Table ----- -hi x016_Grey0 ctermfg=16 guifg=#000000 "rgb=0,0,0 -hi x017_NavyBlue ctermfg=17 guifg=#00005f "rgb=0,0,95 -hi x018_DarkBlue ctermfg=18 guifg=#000087 "rgb=0,0,135 -hi x019_Blue3 ctermfg=19 guifg=#0000af "rgb=0,0,175 -hi x020_Blue3 ctermfg=20 guifg=#0000d7 "rgb=0,0,215 -hi x021_Blue1 ctermfg=21 guifg=#0000ff "rgb=0,0,255 -hi x022_DarkGreen ctermfg=22 guifg=#005f00 "rgb=0,95,0 -hi x023_DeepSkyBlue4 ctermfg=23 guifg=#005f5f "rgb=0,95,95 -hi x024_DeepSkyBlue4 ctermfg=24 guifg=#005f87 "rgb=0,95,135 -hi x025_DeepSkyBlue4 ctermfg=25 guifg=#005faf "rgb=0,95,175 -hi x026_DodgerBlue3 ctermfg=26 guifg=#005fd7 "rgb=0,95,215 -hi x027_DodgerBlue2 ctermfg=27 guifg=#005fff "rgb=0,95,255 -hi x028_Green4 ctermfg=28 guifg=#008700 "rgb=0,135,0 -hi x029_SpringGreen4 ctermfg=29 guifg=#00875f "rgb=0,135,95 -hi x030_Turquoise4 ctermfg=30 guifg=#008787 "rgb=0,135,135 -hi x031_DeepSkyBlue3 ctermfg=31 guifg=#0087af "rgb=0,135,175 -hi x032_DeepSkyBlue3 ctermfg=32 guifg=#0087d7 "rgb=0,135,215 -hi x033_DodgerBlue1 ctermfg=33 guifg=#0087ff "rgb=0,135,255 -hi x034_Green3 ctermfg=34 guifg=#00af00 "rgb=0,175,0 -hi x035_SpringGreen3 ctermfg=35 guifg=#00af5f "rgb=0,175,95 -hi x036_DarkCyan ctermfg=36 guifg=#00af87 "rgb=0,175,135 -hi x037_LightSeaGreen ctermfg=37 guifg=#00afaf "rgb=0,175,175 -hi x038_DeepSkyBlue2 ctermfg=38 guifg=#00afd7 "rgb=0,175,215 -hi x039_DeepSkyBlue1 ctermfg=39 guifg=#00afff "rgb=0,175,255 -hi x040_Green3 ctermfg=40 guifg=#00d700 "rgb=0,215,0 -hi x041_SpringGreen3 ctermfg=41 guifg=#00d75f "rgb=0,215,95 -hi x042_SpringGreen2 ctermfg=42 guifg=#00d787 "rgb=0,215,135 -hi x043_Cyan3 ctermfg=43 guifg=#00d7af "rgb=0,215,175 -hi x044_DarkTurquoise ctermfg=44 guifg=#00d7d7 "rgb=0,215,215 -hi x045_Turquoise2 ctermfg=45 guifg=#00d7ff "rgb=0,215,255 -hi x046_Green1 ctermfg=46 guifg=#00ff00 "rgb=0,255,0 -hi x047_SpringGreen2 ctermfg=47 guifg=#00ff5f "rgb=0,255,95 -hi x048_SpringGreen1 ctermfg=48 guifg=#00ff87 "rgb=0,255,135 -hi x049_MediumSpringGreen ctermfg=49 guifg=#00ffaf "rgb=0,255,175 -hi x050_Cyan2 ctermfg=50 guifg=#00ffd7 "rgb=0,255,215 -hi x051_Cyan1 ctermfg=51 guifg=#00ffff "rgb=0,255,255 -hi x052_DarkRed ctermfg=52 guifg=#5f0000 "rgb=95,0,0 -hi x053_DeepPink4 ctermfg=53 guifg=#5f005f "rgb=95,0,95 -hi x054_Purple4 ctermfg=54 guifg=#5f0087 "rgb=95,0,135 -hi x055_Purple4 ctermfg=55 guifg=#5f00af "rgb=95,0,175 -hi x056_Purple3 ctermfg=56 guifg=#5f00d7 "rgb=95,0,215 -hi x057_BlueViolet ctermfg=57 guifg=#5f00ff "rgb=95,0,255 -hi x058_Orange4 ctermfg=58 guifg=#5f5f00 "rgb=95,95,0 -hi x059_Grey37 ctermfg=59 guifg=#5f5f5f "rgb=95,95,95 -hi x060_MediumPurple4 ctermfg=60 guifg=#5f5f87 "rgb=95,95,135 -hi x061_SlateBlue3 ctermfg=61 guifg=#5f5faf "rgb=95,95,175 -hi x062_SlateBlue3 ctermfg=62 guifg=#5f5fd7 "rgb=95,95,215 -hi x063_RoyalBlue1 ctermfg=63 guifg=#5f5fff "rgb=95,95,255 -hi x064_Chartreuse4 ctermfg=64 guifg=#5f8700 "rgb=95,135,0 -hi x065_DarkSeaGreen4 ctermfg=65 guifg=#5f875f "rgb=95,135,95 -hi x066_PaleTurquoise4 ctermfg=66 guifg=#5f8787 "rgb=95,135,135 -hi x067_SteelBlue ctermfg=67 guifg=#5f87af "rgb=95,135,175 -hi x068_SteelBlue3 ctermfg=68 guifg=#5f87d7 "rgb=95,135,215 -hi x069_CornflowerBlue ctermfg=69 guifg=#5f87ff "rgb=95,135,255 -hi x070_Chartreuse3 ctermfg=70 guifg=#5faf00 "rgb=95,175,0 -hi x071_DarkSeaGreen4 ctermfg=71 guifg=#5faf5f "rgb=95,175,95 -hi x072_CadetBlue ctermfg=72 guifg=#5faf87 "rgb=95,175,135 -hi x073_CadetBlue ctermfg=73 guifg=#5fafaf "rgb=95,175,175 -hi x074_SkyBlue3 ctermfg=74 guifg=#5fafd7 "rgb=95,175,215 -hi x075_SteelBlue1 ctermfg=75 guifg=#5fafff "rgb=95,175,255 -hi x076_Chartreuse3 ctermfg=76 guifg=#5fd700 "rgb=95,215,0 -hi x077_PaleGreen3 ctermfg=77 guifg=#5fd75f "rgb=95,215,95 -hi x078_SeaGreen3 ctermfg=78 guifg=#5fd787 "rgb=95,215,135 -hi x079_Aquamarine3 ctermfg=79 guifg=#5fd7af "rgb=95,215,175 -hi x080_MediumTurquoise ctermfg=80 guifg=#5fd7d7 "rgb=95,215,215 -hi x081_SteelBlue1 ctermfg=81 guifg=#5fd7ff "rgb=95,215,255 -hi x082_Chartreuse2 ctermfg=82 guifg=#5fff00 "rgb=95,255,0 -hi x083_SeaGreen2 ctermfg=83 guifg=#5fff5f "rgb=95,255,95 -hi x084_SeaGreen1 ctermfg=84 guifg=#5fff87 "rgb=95,255,135 -hi x085_SeaGreen1 ctermfg=85 guifg=#5fffaf "rgb=95,255,175 -hi x086_Aquamarine1 ctermfg=86 guifg=#5fffd7 "rgb=95,255,215 -hi x087_DarkSlateGray2 ctermfg=87 guifg=#5fffff "rgb=95,255,255 -hi x088_DarkRed ctermfg=88 guifg=#870000 "rgb=135,0,0 -hi x089_DeepPink4 ctermfg=89 guifg=#87005f "rgb=135,0,95 -hi x090_DarkMagenta ctermfg=90 guifg=#870087 "rgb=135,0,135 -hi x091_DarkMagenta ctermfg=91 guifg=#8700af "rgb=135,0,175 -hi x092_DarkViolet ctermfg=92 guifg=#8700d7 "rgb=135,0,215 -hi x093_Purple ctermfg=93 guifg=#8700ff "rgb=135,0,255 -hi x094_Orange4 ctermfg=94 guifg=#875f00 "rgb=135,95,0 -hi x095_LightPink4 ctermfg=95 guifg=#875f5f "rgb=135,95,95 -hi x096_Plum4 ctermfg=96 guifg=#875f87 "rgb=135,95,135 -hi x097_MediumPurple3 ctermfg=97 guifg=#875faf "rgb=135,95,175 -hi x098_MediumPurple3 ctermfg=98 guifg=#875fd7 "rgb=135,95,215 -hi x099_SlateBlue1 ctermfg=99 guifg=#875fff "rgb=135,95,255 -hi x100_Yellow4 ctermfg=100 guifg=#878700 "rgb=135,135,0 -hi x101_Wheat4 ctermfg=101 guifg=#87875f "rgb=135,135,95 -hi x102_Grey53 ctermfg=102 guifg=#878787 "rgb=135,135,135 -hi x103_LightSlateGrey ctermfg=103 guifg=#8787af "rgb=135,135,175 -hi x104_MediumPurple ctermfg=104 guifg=#8787d7 "rgb=135,135,215 -hi x105_LightSlateBlue ctermfg=105 guifg=#8787ff "rgb=135,135,255 -hi x106_Yellow4 ctermfg=106 guifg=#87af00 "rgb=135,175,0 -hi x107_DarkOliveGreen3 ctermfg=107 guifg=#87af5f "rgb=135,175,95 -hi x108_DarkSeaGreen ctermfg=108 guifg=#87af87 "rgb=135,175,135 -hi x109_LightSkyBlue3 ctermfg=109 guifg=#87afaf "rgb=135,175,175 -hi x110_LightSkyBlue3 ctermfg=110 guifg=#87afd7 "rgb=135,175,215 -hi x111_SkyBlue2 ctermfg=111 guifg=#87afff "rgb=135,175,255 -hi x112_Chartreuse2 ctermfg=112 guifg=#87d700 "rgb=135,215,0 -hi x113_DarkOliveGreen3 ctermfg=113 guifg=#87d75f "rgb=135,215,95 -hi x114_PaleGreen3 ctermfg=114 guifg=#87d787 "rgb=135,215,135 -hi x115_DarkSeaGreen3 ctermfg=115 guifg=#87d7af "rgb=135,215,175 -hi x116_DarkSlateGray3 ctermfg=116 guifg=#87d7d7 "rgb=135,215,215 -hi x117_SkyBlue1 ctermfg=117 guifg=#87d7ff "rgb=135,215,255 -hi x118_Chartreuse1 ctermfg=118 guifg=#87ff00 "rgb=135,255,0 -hi x119_LightGreen ctermfg=119 guifg=#87ff5f "rgb=135,255,95 -hi x120_LightGreen ctermfg=120 guifg=#87ff87 "rgb=135,255,135 -hi x121_PaleGreen1 ctermfg=121 guifg=#87ffaf "rgb=135,255,175 -hi x122_Aquamarine1 ctermfg=122 guifg=#87ffd7 "rgb=135,255,215 -hi x123_DarkSlateGray1 ctermfg=123 guifg=#87ffff "rgb=135,255,255 -hi x124_Red3 ctermfg=124 guifg=#af0000 "rgb=175,0,0 -hi x125_DeepPink4 ctermfg=125 guifg=#af005f "rgb=175,0,95 -hi x126_MediumVioletRed ctermfg=126 guifg=#af0087 "rgb=175,0,135 -hi x127_Magenta3 ctermfg=127 guifg=#af00af "rgb=175,0,175 -hi x128_DarkViolet ctermfg=128 guifg=#af00d7 "rgb=175,0,215 -hi x129_Purple ctermfg=129 guifg=#af00ff "rgb=175,0,255 -hi x130_DarkOrange3 ctermfg=130 guifg=#af5f00 "rgb=175,95,0 -hi x131_IndianRed ctermfg=131 guifg=#af5f5f "rgb=175,95,95 -hi x132_HotPink3 ctermfg=132 guifg=#af5f87 "rgb=175,95,135 -hi x133_MediumOrchid3 ctermfg=133 guifg=#af5faf "rgb=175,95,175 -hi x134_MediumOrchid ctermfg=134 guifg=#af5fd7 "rgb=175,95,215 -hi x135_MediumPurple2 ctermfg=135 guifg=#af5fff "rgb=175,95,255 -hi x136_DarkGoldenrod ctermfg=136 guifg=#af8700 "rgb=175,135,0 -hi x137_LightSalmon3 ctermfg=137 guifg=#af875f "rgb=175,135,95 -hi x138_RosyBrown ctermfg=138 guifg=#af8787 "rgb=175,135,135 -hi x139_Grey63 ctermfg=139 guifg=#af87af "rgb=175,135,175 -hi x140_MediumPurple2 ctermfg=140 guifg=#af87d7 "rgb=175,135,215 -hi x141_MediumPurple1 ctermfg=141 guifg=#af87ff "rgb=175,135,255 -hi x142_Gold3 ctermfg=142 guifg=#afaf00 "rgb=175,175,0 -hi x143_DarkKhaki ctermfg=143 guifg=#afaf5f "rgb=175,175,95 -hi x144_NavajoWhite3 ctermfg=144 guifg=#afaf87 "rgb=175,175,135 -hi x145_Grey69 ctermfg=145 guifg=#afafaf "rgb=175,175,175 -hi x146_LightSteelBlue3 ctermfg=146 guifg=#afafd7 "rgb=175,175,215 -hi x147_LightSteelBlue ctermfg=147 guifg=#afafff "rgb=175,175,255 -hi x148_Yellow3 ctermfg=148 guifg=#afd700 "rgb=175,215,0 -hi x149_DarkOliveGreen3 ctermfg=149 guifg=#afd75f "rgb=175,215,95 -hi x150_DarkSeaGreen3 ctermfg=150 guifg=#afd787 "rgb=175,215,135 -hi x151_DarkSeaGreen2 ctermfg=151 guifg=#afd7af "rgb=175,215,175 -hi x152_LightCyan3 ctermfg=152 guifg=#afd7d7 "rgb=175,215,215 -hi x153_LightSkyBlue1 ctermfg=153 guifg=#afd7ff "rgb=175,215,255 -hi x154_GreenYellow ctermfg=154 guifg=#afff00 "rgb=175,255,0 -hi x155_DarkOliveGreen2 ctermfg=155 guifg=#afff5f "rgb=175,255,95 -hi x156_PaleGreen1 ctermfg=156 guifg=#afff87 "rgb=175,255,135 -hi x157_DarkSeaGreen2 ctermfg=157 guifg=#afffaf "rgb=175,255,175 -hi x158_DarkSeaGreen1 ctermfg=158 guifg=#afffd7 "rgb=175,255,215 -hi x159_PaleTurquoise1 ctermfg=159 guifg=#afffff "rgb=175,255,255 -hi x160_Red3 ctermfg=160 guifg=#d70000 "rgb=215,0,0 -hi x161_DeepPink3 ctermfg=161 guifg=#d7005f "rgb=215,0,95 -hi x162_DeepPink3 ctermfg=162 guifg=#d70087 "rgb=215,0,135 -hi x163_Magenta3 ctermfg=163 guifg=#d700af "rgb=215,0,175 -hi x164_Magenta3 ctermfg=164 guifg=#d700d7 "rgb=215,0,215 -hi x165_Magenta2 ctermfg=165 guifg=#d700ff "rgb=215,0,255 -hi x166_DarkOrange3 ctermfg=166 guifg=#d75f00 "rgb=215,95,0 -hi x167_IndianRed ctermfg=167 guifg=#d75f5f "rgb=215,95,95 -hi x168_HotPink3 ctermfg=168 guifg=#d75f87 "rgb=215,95,135 -hi x169_HotPink2 ctermfg=169 guifg=#d75faf "rgb=215,95,175 -hi x170_Orchid ctermfg=170 guifg=#d75fd7 "rgb=215,95,215 -hi x171_MediumOrchid1 ctermfg=171 guifg=#d75fff "rgb=215,95,255 -hi x172_Orange3 ctermfg=172 guifg=#d78700 "rgb=215,135,0 -hi x173_LightSalmon3 ctermfg=173 guifg=#d7875f "rgb=215,135,95 -hi x174_LightPink3 ctermfg=174 guifg=#d78787 "rgb=215,135,135 -hi x175_Pink3 ctermfg=175 guifg=#d787af "rgb=215,135,175 -hi x176_Plum3 ctermfg=176 guifg=#d787d7 "rgb=215,135,215 -hi x177_Violet ctermfg=177 guifg=#d787ff "rgb=215,135,255 -hi x178_Gold3 ctermfg=178 guifg=#d7af00 "rgb=215,175,0 -hi x179_LightGoldenrod3 ctermfg=179 guifg=#d7af5f "rgb=215,175,95 -hi x180_Tan ctermfg=180 guifg=#d7af87 "rgb=215,175,135 -hi x181_MistyRose3 ctermfg=181 guifg=#d7afaf "rgb=215,175,175 -hi x182_Thistle3 ctermfg=182 guifg=#d7afd7 "rgb=215,175,215 -hi x183_Plum2 ctermfg=183 guifg=#d7afff "rgb=215,175,255 -hi x184_Yellow3 ctermfg=184 guifg=#d7d700 "rgb=215,215,0 -hi x185_Khaki3 ctermfg=185 guifg=#d7d75f "rgb=215,215,95 -hi x186_LightGoldenrod2 ctermfg=186 guifg=#d7d787 "rgb=215,215,135 -hi x187_LightYellow3 ctermfg=187 guifg=#d7d7af "rgb=215,215,175 -hi x188_Grey84 ctermfg=188 guifg=#d7d7d7 "rgb=215,215,215 -hi x189_LightSteelBlue1 ctermfg=189 guifg=#d7d7ff "rgb=215,215,255 -hi x190_Yellow2 ctermfg=190 guifg=#d7ff00 "rgb=215,255,0 -hi x191_DarkOliveGreen1 ctermfg=191 guifg=#d7ff5f "rgb=215,255,95 -hi x192_DarkOliveGreen1 ctermfg=192 guifg=#d7ff87 "rgb=215,255,135 -hi x193_DarkSeaGreen1 ctermfg=193 guifg=#d7ffaf "rgb=215,255,175 -hi x194_Honeydew2 ctermfg=194 guifg=#d7ffd7 "rgb=215,255,215 -hi x195_LightCyan1 ctermfg=195 guifg=#d7ffff "rgb=215,255,255 -hi x196_Red1 ctermfg=196 guifg=#ff0000 "rgb=255,0,0 -hi x197_DeepPink2 ctermfg=197 guifg=#ff005f "rgb=255,0,95 -hi x198_DeepPink1 ctermfg=198 guifg=#ff0087 "rgb=255,0,135 -hi x199_DeepPink1 ctermfg=199 guifg=#ff00af "rgb=255,0,175 -hi x200_Magenta2 ctermfg=200 guifg=#ff00d7 "rgb=255,0,215 -hi x201_Magenta1 ctermfg=201 guifg=#ff00ff "rgb=255,0,255 -hi x202_OrangeRed1 ctermfg=202 guifg=#ff5f00 "rgb=255,95,0 -hi x203_IndianRed1 ctermfg=203 guifg=#ff5f5f "rgb=255,95,95 -hi x204_IndianRed1 ctermfg=204 guifg=#ff5f87 "rgb=255,95,135 -hi x205_HotPink ctermfg=205 guifg=#ff5faf "rgb=255,95,175 -hi x206_HotPink ctermfg=206 guifg=#ff5fd7 "rgb=255,95,215 -hi x207_MediumOrchid1 ctermfg=207 guifg=#ff5fff "rgb=255,95,255 -hi x208_DarkOrange ctermfg=208 guifg=#ff8700 "rgb=255,135,0 -hi x209_Salmon1 ctermfg=209 guifg=#ff875f "rgb=255,135,95 -hi x210_LightCoral ctermfg=210 guifg=#ff8787 "rgb=255,135,135 -hi x211_PaleVioletRed1 ctermfg=211 guifg=#ff87af "rgb=255,135,175 -hi x212_Orchid2 ctermfg=212 guifg=#ff87d7 "rgb=255,135,215 -hi x213_Orchid1 ctermfg=213 guifg=#ff87ff "rgb=255,135,255 -hi x214_Orange1 ctermfg=214 guifg=#ffaf00 "rgb=255,175,0 -hi x215_SandyBrown ctermfg=215 guifg=#ffaf5f "rgb=255,175,95 -hi x216_LightSalmon1 ctermfg=216 guifg=#ffaf87 "rgb=255,175,135 -hi x217_LightPink1 ctermfg=217 guifg=#ffafaf "rgb=255,175,175 -hi x218_Pink1 ctermfg=218 guifg=#ffafd7 "rgb=255,175,215 -hi x219_Plum1 ctermfg=219 guifg=#ffafff "rgb=255,175,255 -hi x220_Gold1 ctermfg=220 guifg=#ffd700 "rgb=255,215,0 -hi x221_LightGoldenrod2 ctermfg=221 guifg=#ffd75f "rgb=255,215,95 -hi x222_LightGoldenrod2 ctermfg=222 guifg=#ffd787 "rgb=255,215,135 -hi x223_NavajoWhite1 ctermfg=223 guifg=#ffd7af "rgb=255,215,175 -hi x224_MistyRose1 ctermfg=224 guifg=#ffd7d7 "rgb=255,215,215 -hi x225_Thistle1 ctermfg=225 guifg=#ffd7ff "rgb=255,215,255 -hi x226_Yellow1 ctermfg=226 guifg=#ffff00 "rgb=255,255,0 -hi x227_LightGoldenrod1 ctermfg=227 guifg=#ffff5f "rgb=255,255,95 -hi x228_Khaki1 ctermfg=228 guifg=#ffff87 "rgb=255,255,135 -hi x229_Wheat1 ctermfg=229 guifg=#ffffaf "rgb=255,255,175 -hi x230_Cornsilk1 ctermfg=230 guifg=#ffffd7 "rgb=255,255,215 -hi x231_Grey100 ctermfg=231 guifg=#ffffff "rgb=255,255,255 -hi x232_Grey3 ctermfg=232 guifg=#080808 "rgb=8,8,8 -hi x233_Grey7 ctermfg=233 guifg=#121212 "rgb=18,18,18 -hi x234_Grey11 ctermfg=234 guifg=#1c1c1c "rgb=28,28,28 -hi x235_Grey15 ctermfg=235 guifg=#262626 "rgb=38,38,38 -hi x236_Grey19 ctermfg=236 guifg=#303030 "rgb=48,48,48 -hi x237_Grey23 ctermfg=237 guifg=#3a3a3a "rgb=58,58,58 -hi x238_Grey27 ctermfg=238 guifg=#444444 "rgb=68,68,68 -hi x239_Grey30 ctermfg=239 guifg=#4e4e4e "rgb=78,78,78 -hi x240_Grey35 ctermfg=240 guifg=#585858 "rgb=88,88,88 -hi x241_Grey39 ctermfg=241 guifg=#626262 "rgb=98,98,98 -hi x242_Grey42 ctermfg=242 guifg=#6c6c6c "rgb=108,108,108 -hi x243_Grey46 ctermfg=243 guifg=#767676 "rgb=118,118,118 -hi x244_Grey50 ctermfg=244 guifg=#808080 "rgb=128,128,128 -hi x245_Grey54 ctermfg=245 guifg=#8a8a8a "rgb=138,138,138 -hi x246_Grey58 ctermfg=246 guifg=#949494 "rgb=148,148,148 -hi x247_Grey62 ctermfg=247 guifg=#9e9e9e "rgb=158,158,158 -hi x248_Grey66 ctermfg=248 guifg=#a8a8a8 "rgb=168,168,168 -hi x249_Grey70 ctermfg=249 guifg=#b2b2b2 "rgb=178,178,178 -hi x250_Grey74 ctermfg=250 guifg=#bcbcbc "rgb=188,188,188 -hi x251_Grey78 ctermfg=251 guifg=#c6c6c6 "rgb=198,198,198 -hi x252_Grey82 ctermfg=252 guifg=#d0d0d0 "rgb=208,208,208 -hi x253_Grey85 ctermfg=253 guifg=#dadada "rgb=218,218,218 -hi x254_Grey89 ctermfg=254 guifg=#e4e4e4 "rgb=228,228,228 -hi x255_Grey93 ctermfg=255 guifg=#eeeeee "rgb=238,238,238 +set laststatus=2 +set signcolumn=yes +set number +set visualbell +set autoindent +set backspace=indent,eol,start +set smarttab +set display=lastline +set mouse=a +" It works +colorscheme ron - - - -" ----- Visual Behaviors -set laststatus=2 " Show status bar (lightbar) -set noshowmode " Hide mode (in lightbar) - -set signcolumn=yes " Always show the sign column (git status) -set number " Show line numbers - -highlight clear SignColumn - - +" ----- LightLine Plugin Configuration " set lightline to include git-branch let g:lightline = { \ 'colorscheme': 'wombat', @@ -275,38 +35,14 @@ let g:lightline = { \ 'subseparator': { 'left': '', 'right': '' } \ } - -" Prefer a bit of smart formatting -set autoindent -set backspace=indent,eol,start -set smarttab - - -" Just keep it DARK :D -colorscheme ron - -if has('gui_running') - " I prefer SCP with bigger font - set guifont=Source\ Code\ Pro\ Medium\ 12 - - " Disable the botton bar - set guioptions-=T -endif - - - -" Enable file type basics if has('autocmd') filetype plugin indent on endif + if has('syntax') && !exists('g:syntax_on') syntax enable endif -" UTF-8 Damn it! -if &encoding ==# 'latin1' && has('gui_running') - set encoding=utf-8 -endif - - +" Wrapping file +runtime wrapping.vim diff --git a/zprofile b/zprofile new file mode 100644 index 0000000..6074beb --- /dev/null +++ b/zprofile @@ -0,0 +1,28 @@ +# ~/.profile: executed by the command interpreter for login shells. +# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login +# exists. +# see /usr/share/doc/bash/examples/startup-files for examples. +# the files are located in the bash-doc package. + +# the default umask is set in /etc/profile; for setting the umask +# for ssh logins, install and configure the libpam-umask package. +#umask 022 + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/bin" ] ; then + PATH="$HOME/bin:$PATH" +fi + +# set PATH so it includes user's private bin if it exists +if [ -d "$HOME/.local/bin" ] ; then + PATH="$HOME/.local/bin:$PATH" +fi + +# Enable my personal scripts +if [ -d "$HOME/.scripts" ] ; then + PATH="$HOME/.scripts:$PATH" +fi + +# Enable Ssh-Agent +. "$HOME/.scripts/ssh_session" + diff --git a/zsh_files/powerlevel10k b/zsh_files/powerlevel10k new file mode 160000 index 0000000..0adbc14 --- /dev/null +++ b/zsh_files/powerlevel10k @@ -0,0 +1 @@ +Subproject commit 0adbc1415bf1bad46a7fd111b39640d995294dad diff --git a/zshrc b/zshrc new file mode 100644 index 0000000..0691665 --- /dev/null +++ b/zshrc @@ -0,0 +1,47 @@ +# 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 + +# ---------------------------------------------------------------------------- +# Allow zsh to be setup again +# ---------------------------------------------------------------------------- +# Lines configured by zsh-newuser-install +HISTFILE=~/.histfile +HISTSIZE=5000 +SAVEHIST=5000 +setopt nomatch +unsetopt beep +bindkey -e +# End of lines configured by zsh-newuser-install + +# The following lines were added by compinstall +zstyle :compinstall filename '/home/amulbrook/.zshrc' + +autoload -Uz compinit +compinit +# End of lines added by compinstall + +# ----------------------------------------------------------------------------- +# p10k setup +# ----------------------------------------------------------------------------- +source ~/.zsh_files/powerlevel10k/powerlevel10k.zsh-theme + +# To customize prompt, run `p10k configure` or edit ~/.p10k.zsh. +[[ ! -f ~/.p10k.zsh ]] || source ~/.p10k.zsh + +alias ls='ls --color=auto' + +# To customize prompt, run `p10k configure` or edit ~/projects/dotfiles/p10k.zsh. +[[ ! -f ~/projects/dotfiles/p10k.zsh ]] || source ~/projects/dotfiles/p10k.zsh + +# ----------------------------------------------------------------------------- +# My Actual Configuration Starts Here +# ----------------------------------------------------------------------------- + +export GPG_TTY=$TTY + +[[ ! -f ~/.zshrc.local ]] || source ~/.zshrc.local +