Compare commits

..

19 Commits

Author SHA1 Message Date
Nathan Steel 38497d82c5 Fix the 'git reset --hard' in stow_script 5 months ago
Nathan Steel 9676e74ace Update stow script to move all dir to ~/ 5 months ago
Nathan Steel 52f73889bc SSH changes 1 year ago
Nathan Steel c87ad396d0 Update ssh config 2 years ago
Nathan Steel 00478017f5 Add pi1 local IP to ssh conf 2 years ago
Nathan Steel eac3a30104 Add terminal colours to tmux 2 years ago
Nathan Steel 2e683b9427 Changes 2 years ago
Nathan Steel 10742107d0 Change dotfiles to work with stow
apt install stow
then run ./stow_script.sh from the directory
2 years ago
Nathan Steel f6e57b0f15 Add .inputrc 2 years ago
Nathan Steel 7d216a7837 Change resize, and add killpane 2 years ago
Nathan Steel 830ea0d060 Add ssh config for servers 3 years ago
Nathan Steel 658407e3a3 Add vim sudo save functionality 3 years ago
Nathan Steel 26a89f53ac Change nvim init.vim
Change all the plugins
3 years ago
Nathan Steel f83feca42c Change prefix from Ctrl+B to Ctrl+A 4 years ago
Nathan Steel cb85c9923e Add a twig plugin to nvim 5 years ago
Nathan Steel fea3047432 Add forgotten additions to zshrc and vimrc
- Add source to bashrc, and bash_aliases to zshrc
- Add set hidden to vimrc to allow unsaved buffer switching
5 years ago
Nathan Steel 4255bf3739 Add some php plugins, and nvm fix to nvim config 5 years ago
Nathan Steel f14b569e7d Add bash aliases
- Add both personal, and work aliases
5 years ago
Nathan Steel 9770769af7 Add neovim config, and changed to vimrc
- Add relative numbers, and prevent auto comments in .vimrc
- Add neovim config, with plugins, and rebinds
5 years ago

@ -1,2 +0,0 @@
# Vi mode
set -o vi

@ -0,0 +1,39 @@
Host truenas
Hostname 192.168.0.100
User nathan
Port 2020
Host red
Hostname 192.168.0.200
User nathan
Port 2020
Host lilman
Hostname 192.168.0.220
User nathan
Port 2020
Host opnsense
Hostname 192.168.0.221
User nathan
Port 2020
Host truenas
Hostname 192.168.0.222
User nathan
Port 2020
Host wireguard
Hostname 192.168.0.223
User nathan
Port 2020
Host racknerd
Hostname racknerd.aney.co.uk
User nathan
Port 2020
Host alphavps
Hostname alphavps.aney.co.uk
User nathan
Port 2020

@ -0,0 +1,34 @@
#alias vim='nvim'
alias ta='tmux attach || tmux new'
alias top='htop'
alias ll="ls -lhtr"
alias df="df -h"
alias ipe="curl ifconfig.co"
## Only ask for my SSH key passpharase once!
## https://gist.github.com/949740
## http://mah.everybody.org/docs/ssh
SSH_ENV="${HOME}/.ssh/environment"
# Function to start the SSH-Agent
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 ${SSH_AGENT_PID} doesn't work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi

@ -0,0 +1,120 @@
# ~/.bashrc: executed by bash(1) for non-login shells.
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples
# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
# don't put duplicate lines or lines starting with space in the history.
# See bash(1) for more options
HISTCONTROL=ignoreboth
# append to the history file, don't overwrite it
shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=1000
HISTFILESIZE=2000
# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize
# If set, the pattern "**" used in a pathname expansion context will
# match all files and zero or more directories and subdirectories.
#shopt -s globstar
# make less more friendly for non-text input files, see lesspipe(1)
[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
# set variable identifying the chroot you work in (used in the prompt below)
if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
debian_chroot=$(cat /etc/debian_chroot)
fi
# set a fancy prompt (non-color, unless we know we "want" color)
case "$TERM" in
xterm-color|*-256color) color_prompt=yes;;
esac
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
#force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
if [ "$color_prompt" = yes ]; then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
else
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
;;
*)
;;
esac
# enable color support of ls and also add handy aliases
if [ -x /usr/bin/dircolors ]; then
test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
alias ls='ls --color=auto'
#alias dir='dir --color=auto'
#alias vdir='vdir --color=auto'
alias grep='grep --color=auto'
alias fgrep='fgrep --color=auto'
alias egrep='egrep --color=auto'
fi
# colored GCC warnings and errors
#export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
# some more ls aliases
alias ll='ls -alF'
alias la='ls -A'
alias l='ls -CF'
# Add an "alert" alias for long running commands. Use like so:
# sleep 10; alert
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.
if [ -f ~/.bash_aliases ]; then
. ~/.bash_aliases
fi
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [ -f /usr/share/bash-completion/bash_completion ]; then
. /usr/share/bash-completion/bash_completion
elif [ -f /etc/bash_completion ]; then
. /etc/bash_completion
fi
fi
set -o vi

@ -0,0 +1,6 @@
"\C-p":previous-history
"\C-n":next-history
"\C-a.":beginning-of-line
"\C-e.":end-of-line
"\C-l":clear-screen

@ -0,0 +1,279 @@
alias start='cmd.exe /c start'
alias explorer='start'
alias rm='rm -i'
alias zoidberg-sync-lock-check='ssh root@zoidberg.tjs.co.uk -p 2020 "ls -altr /home/*/website/private/tmp/*lock*"'
alias zoidberg-phantomjs-check='ssh root@zoidberg.tjs.co.uk -p 2020 "ps -ef | grep phantomjs"'
alias updatedns='ssh root@midget.tjs.co.uk "/root/scripts/updatedns.php"'
alias scratch='cd /mnt/c/scratch'
alias vagrant='vagrant.exe'
# devboxes
VAG80='27018d0'
VAG74='97c9f86'
VAG56='09ec6c2'
alias vagup80='vagrant.exe up $VAG80'
alias vagup74='vagrant.exe up $VAG74'
alias vagup56='vagrant.exe up $VAG56'
alias vaghalt80='vagrant.exe halt $VAG80'
alias vaghalt74='vagrant.exe halt $VAG74'
alias vaghalt56='vagrant.exe halt $VAG56'
alias vagreload80='vagrant.exe reload $VAG80'
alias vagreload74='vagrant.exe reload $VAG74'
alias vagreload56='vagrant.exe reload $VAG56'
alias vaghaltall='vagrant.exe halt $VAG80 && vagrant.exe halt $VAG74 && vagrant.exe halt $VAG56'
alias ssh80='ssh vagrant@nathan80.tjs.co.uk'
alias ssh74='ssh vagrant@nathan74.tjs.co.uk'
alias ssh56='ssh vagrant@nathan56.tjs.co.uk'
#alias weasel-pageant='eval $(/mnt/c/Users/nathan/command/weasel-pageant-1.1/weasel-pageant -r)'
function git-push-release()
{
if git show-ref --verify --quiet refs/heads/main; then
echo "Push main:"
git push origin main
elif git show-ref --verify --quiet refs/heads/master; then
echo "Push master:"
git push origin master
fi
echo ""
echo "Push tags:"
git push origin --tags
echo ""
echo "Push develop:"
git push origin develop
}
## server siteexport
function siteexport()
{
usage="Usage: siteexport <servername> [nginx|both]"
if [[ $# -eq 0 ]]; then
echo "No server specified"
echo "$usage"
return 1
elif [[ $# -eq 1 ]]; then
echo "No scope specified"
echo "$usage"
return 2
else
if [[ $2 = 'nginx' ]]; then
args=' --nginx-only'
elif [[ $2 = 'both' ]]; then
args=""
else
echo "Scope must be 'nginx' or 'both'"
echo "$usage"
return 3
fi
#weasel-pageant && ssh root@midget.tjs.co.uk "/root/scripts/$1-siteexport.php $args"
ssh root@midget.tjs.co.uk "/root/scripts/$1-siteexport.php $args"
fi
}
## change to a website project's directory
function site()
{
basedir="/mnt/c/Users/nathan/documents/websites/"
if [[ $# -eq 0 ]]; then
echo "No site specified"
echo "Usage: site <sitename>"
echo "cd $basedir"
cd $basedir
return 0;
elif [[ -d "$basedir$1" ]]; then
dir="$basedir$1";
else
for f in $basedir$1*; do
if [[ -e $f && -d $f ]]; then
dirsfound=()
COUNTER=0
for g in $basedir$1*; do
if [[ -d $g ]]; then
tempdir=$g
dirsfound+=(${g/$basedir/})
let COUNTER=COUNTER+1
fi
done
if [ "$COUNTER" -eq "1" ]; then
dir=$tempdir
else
echo "$COUNTER found, need to be more specific"
for h in ${dirsfound[@]}; do
echo " - $h"
done
echo "cd $basedir"
cd $basedir
dir=""
fi
else
echo "Can't find site '$1'";
return 0;
fi
break
done
fi
if [[ $# -ge 2 ]]; then
if [[ -d "$dir/$2" ]]; then
dir="$dir/$2";
else
echo "Can't find subfolder '$2'";
return 0;
fi
fi
if [ $dir ]; then
cd $dir
#explorer .
echo "Changed to $dir"
if [[ -d ".git" ]]; then
echo "-----------------------------------";
#echo "ensuring SSH agent is running...";
#weasel-pageant;
#echo "...done";
#echo "-------------";
if [ -f ".nvmrc" ]; then
echo "setting node version...";
nvm use;
echo "...done";
fi
echo "-------------";
echo "git-fetching origin (incl. tags)...";
git fetch origin --tags;
echo "...done";
echo "-------------";
echo "Git branches:";
git br;
echo "-------------";
echo "Recent commits:";
git recent -n 3
echo "-----------";
echo "Git status:";
if [[ `git status --porcelain` ]]; then
# Changes
git st;
else
# No changes
echo "Repo is clean."
fi
echo "-----------------------------------";
fi;
fi
}
## change to a component project's directory
function comp()
{
basedir="/mnt/c/Users/nathan/documents/components/"
if [[ $# -eq 0 ]]; then
echo "No component specified"
echo "Usage: comp <componentname>"
echo "cd $basedir"
cd $basedir
return 0;
elif [[ -d "$basedir$1" ]]; then
dir="$basedir$1";
else
for f in $basedir$1*; do
if [[ -e $f && -d $f ]]; then
dirsfound=()
COUNTER=0
for g in $basedir$1*; do
if [[ -d $g ]]; then
tempdir=$g
dirsfound+=(${g/$basedir/})
let COUNTER=COUNTER+1
fi
done
if [ "$COUNTER" -eq "1" ]; then
dir=$tempdir
else
echo "$COUNTER found, need to be more specific"
for h in ${dirsfound[@]}; do
echo " - $h"
done
echo "cd $basedir"
cd $basedir
dir=""
fi
else
echo "Can't find component '$1'";
return 0;
fi
break
done
fi
if [[ $# -ge 2 ]]; then
if [[ -d "$dir/$2" ]]; then
dir="$dir/$2";
else
echo "Can't find subfolder '$2'";
return 0;
fi
fi
if [ $dir ]; then
cd $dir
#explorer .
echo "Changed to $dir"
if [[ -d ".git" ]]; then
echo "-----------------------------------";
#echo "ensuring SSH agent is running...";
#weasel-pageant;
#echo "...done";
#echo "-------------";
echo "git-fetching origin (incl. tags)...";
git fetch origin --tags;
echo "...done";
echo "-------------";
echo "Git branches:";
git br;
echo "-------------";
echo "Recent commits:";
git recent -n 3
echo "-----------";
echo "Git status:";
if [[ `git status --porcelain` ]]; then
# Changes
git st;
else
# No changes
echo "Repo is clean."
fi
echo "-----------------------------------";
fi;
fi
}
## GIST: https://gist.github.com/949740
## Only ask for my SSH key passpharase once!
# Sourced from http://mah.everybody.org/docs/ssh
SSH_ENV="${HOME}/.ssh/environment"
# Function to start the SSH-Agent
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 ${SSH_AGENT_PID} doesn't work under cywgin
ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
start_agent;
}
else
start_agent;
fi

@ -0,0 +1,54 @@
call plug#begin("~/.vim/plugged")
" Colour Scheme
Plug 'morhetz/gruvbox'
" Tree view
Plug 'nvim-tree/nvim-tree.lua'
"Plug 'nvim-tree/nvim-web-devicons'
" Fuzzy finder(s)
Plug 'ibhagwan/fzf-lua', {'branch': 'main'}
" Colour highlighter
Plug 'norcalli/nvim-colorizer.lua'
" Vim tweaks, and additions
" Vim Move (C-hjkl)
Plug 'matze/vim-move'
" Add surround to vim (much like, around, inside, etc)
Plug 'tpope/vim-surround'
" Add easy commenting
Plug 'preservim/nerdcommenter'
"Git (Show changes in files)
Plug 'mhinz/vim-signify'
call plug#end()
" Vim stuff
source ~/.vimrc
" Colour Scheme
if (has("termguicolors"))
set termguicolors
endif
syntax enable
colorscheme gruvbox
" Colourizer
lua require'colorizer'.setup()
" Tree
lua require'nvim-tree'.setup {}
nnoremap <C-n> :NvimTreeToggle<CR>
" Signify
let g:signify_sign_add = '+'
let g:signify_sign_delete = '-'
let g:signify_sign_change = '│'
"hi DiffDelete guifg=#ff5555 guibg=none
" Fzf
nnoremap <C-p> <cmd>lua require('fzf-lua').files()<CR>
" Vim Move
let g:move_key_modifier = 'C'

@ -0,0 +1,25 @@
Host pi1
Hostname 192.168.0.100
User nathan
Port 2020
Host local
Hostname 127.0.0.1 #10.0.2.15 # NAT
User nathan
Port 2020
Host rn2
Hostname rn2.aney.co.uk
User nathan
Port 2020
Host alphavps
Hostname alphavps.aney.co.uk
User nathan
Port 2020
Host av1
Hostname alphavps.aney.co.uk
User nathan
Port 2020

@ -0,0 +1,21 @@
#!/bin/bash
DIRS=$(ls -d */)
#stow -d
# First make hidden files not wildcardable
shopt -u dotglob
# Loop the directories
for i in "${DIRS[@]}"
do
echo $i
# Stow adopt, like -d, but it replaces the content in stow dir with
# what already exists
stow --adopt $i --target ~/
done
# Now to revert the --adopt, and make it act like -d
# !Make sure there's nothing new/uncommited in dotfiles dir first
git reset --hard

@ -1,4 +1,8 @@
# Bind r to reload the source
unbind C-b
set-option -g prefix C-a
bind-key C-a send-prefix
bind r source ~/.tmux.conf
# Remove ESC moving panes, etc
@ -20,10 +24,10 @@ bind -n M-k select-pane -U
bind -n M-l select-pane -R
# Resize Panes with CTRL+Shift+HJKL (or just caps)
bind -n C-S-h resize-pane -L 2
bind -n C-S-j resize-pane -D 2
bind -n C-S-k resize-pane -U 2
bind -n C-S-l resize-pane -R 2
bind -n M-C-h resize-pane -L 2
bind -n M-C-j resize-pane -D 2
bind -n M-C-k resize-pane -U 2
bind -n M-C-l resize-pane -R 2
# Switch Panes
bind -r > swap-pane -D # Next pane
@ -34,6 +38,8 @@ bind -n M-< swap-pane -U # Next pane
# Splits
bind -n M-/ split-window -h # Split panes horizontal
bind -n M-? split-window -v # Split panes vertically
# Close
bind -n M-q kill-pane
# Zoom into the current pane
bind-key z resize-pane -Z
@ -43,8 +49,7 @@ bind -n C-z resize-pane -Z
#unbind n
#unbind p
bind -r C-h previous-window # select previous window
bind -r C-l next-window # select next window
bind Tab last-window # move to last active window
bind -r C-l next-window # select next window bind Tab last-window # move to last active window
# ---- Session Controls ----
bind -n C-s new-session
@ -59,7 +64,7 @@ bind P choose-buffer
# ------ General ------
# Enable mouse control (clickable windows, panes, resizable panes)
#set -g mouse on
set -g mouse on
# Disable auto renames
set-option -g allow-rename off
@ -81,6 +86,8 @@ set -g status-fg white
set-window-option -g window-status-current-style fg=black,bg=white
set -g status-interval 60
set -g status-left-length 30
# Set colours
set -g default-terminal "screen-256color"
# https://www.hamvocke.com/blog/a-guide-to-customizing-your-tmux-conf/
# loud or quiet?

@ -3,8 +3,13 @@ set tabstop =4 " The amount of spaces per tab
set shiftwidth =4 " The amount of spaces when shifting >> <<
syntax on " Syntax highlighting
set number " Line numbers
set relativenumber " Relative lines numbers (also)
set cursorline " Shows a line on the cursor's line
" Stop automatic comments on carriage
"set formatoptions-=cro
autocmd FileType * setlocal formatoptions-=c formatoptions-=r formatoptions-=o
" Search settings
set incsearch " Search as characters are entered
set hlsearch " Highlight all matches
@ -16,3 +21,8 @@ call matchadd('ColorColumn', '\%81v', 100)
set path+=** " Search down subdirectories
set wildmenu " Display all the matching files when tab completing
" File Management
set hidden " Allow switching between buffers without saving
" No sudo, no problem
cmap w!! w !sudo tee >/dev/null %

@ -4,6 +4,8 @@ export ZSH="/home/nathan/.oh-my-zsh"
# See https://github.com/ohmyzsh/ohmyzsh/wiki/Themes
ZSH_THEME="robbyrussell"
source ~/.bashrc
source ~/.bash_aliases
# Uncomment the following line to use case-sensitive completion.
# CASE_SENSITIVE="true"
Loading…
Cancel
Save