Clean up files, update .gitignore
This commit is contained in:
parent
8af7c295c6
commit
118488b97f
|
@ -1 +1,2 @@
|
||||||
build/
|
build/
|
||||||
|
**/.vscode
|
||||||
|
|
26
README.md
26
README.md
|
@ -25,8 +25,7 @@ klips/
|
||||||
│ ├── docker
|
│ ├── docker
|
||||||
│ └── nginx
|
│ └── nginx
|
||||||
├── configs
|
├── configs
|
||||||
│ ├── .vimrc
|
│ └── .vimrc
|
||||||
│ └── .vimrc-README
|
|
||||||
├── plates
|
├── plates
|
||||||
│ ├── cpp-cmake
|
│ ├── cpp-cmake
|
||||||
│ └── cpp-launcher
|
│ └── cpp-launcher
|
||||||
|
@ -60,17 +59,12 @@ Roles
|
||||||
|
|
||||||
### configs
|
### configs
|
||||||
- .vimrc - Various settings for vim, can be copied or used with setup-vim.sh)
|
- .vimrc - Various settings for vim, can be copied or used with setup-vim.sh)
|
||||||
- .vimrc-README - What these settings do, output when setup-vim.sh is ran.)
|
|
||||||
|
|
||||||
### plates
|
### plates
|
||||||
- cpp-cmake - Simple cpp executable template, built using cmake
|
- cpp-cmake - Simple cpp executable template, built using cmake
|
||||||
- cpp-launcher - Simple cpp launcher template, built using cmake. Easily expandable.
|
- cpp-launcher - Simple cpp launcher template, built using cmake. Easily expandable.
|
||||||
|
|
||||||
### refs
|
|
||||||
- doxygenROT - Basic rule-of-thumb for Doxygen commenting
|
|
||||||
|
|
||||||
### scripts
|
### scripts
|
||||||
|
|
||||||
adduser.sh - Script to add new user, run with sudo if you want to configure / allow user to sudo
|
adduser.sh - Script to add new user, run with sudo if you want to configure / allow user to sudo
|
||||||
- `./adduser` - (Print help text)
|
- `./adduser` - (Print help text)
|
||||||
- `./adduser <name> <userID>` - (Don't need sudo if new user doesn't need it)
|
- `./adduser <name> <userID>` - (Don't need sudo if new user doesn't need it)
|
||||||
|
@ -78,21 +72,3 @@ adduser.sh - Script to add new user, run with sudo if you want to configure / al
|
||||||
- `sudo ./adduser jeff 1005` - (Create jeff user and assign userID to 1005)
|
- `sudo ./adduser jeff 1005` - (Create jeff user and assign userID to 1005)
|
||||||
- Follow prompts to configure password / sudo depending on needs of new user
|
- Follow prompts to configure password / sudo depending on needs of new user
|
||||||
|
|
||||||
cmake-build.sh
|
|
||||||
- Script to toss around and build cmake projects
|
|
||||||
|
|
||||||
README.md
|
|
||||||
- Further clarification of scripts
|
|
||||||
|
|
||||||
setup-vim.sh
|
|
||||||
- Script for setting up vim configuration
|
|
||||||
- Includes Pathogen Plugin manager
|
|
||||||
- Includes auto-completion (Clang_completion)
|
|
||||||
- Supertab completion interaction (Tab to interact with completion context)
|
|
||||||
- Syntax highlighting
|
|
||||||
- Tabsize 2, use spaces in place of tabs
|
|
||||||
- auto indentation, mouse interaction when supported
|
|
||||||
- Custom keybind (Ctrl-e for jumping windows || Ctrl-w still works if not in a tabbed terminal where the same will close the tab)
|
|
||||||
- See klips/configs/.vimrc-README for more information
|
|
||||||
|
|
||||||
|
|
||||||
|
|
102
configs/.vimrc
102
configs/.vimrc
|
@ -1,5 +1,7 @@
|
||||||
" Single-quote is a comment written to be read
|
" Single-quote is a comment written to be read
|
||||||
" Double-quotes ("") are commented out code and can be removed or added
|
" Double-quotes are commented out code and can be removed or added
|
||||||
|
|
||||||
|
" General Vim Settings
|
||||||
|
|
||||||
" Set tabwidth=2, adjust Vim shiftwidth to the same
|
" Set tabwidth=2, adjust Vim shiftwidth to the same
|
||||||
set tabstop=2 shiftwidth=2
|
set tabstop=2 shiftwidth=2
|
||||||
|
@ -13,22 +15,110 @@ set autoindent
|
||||||
" mouse=a allows for mouse interaction with vim when supported
|
" mouse=a allows for mouse interaction with vim when supported
|
||||||
set mouse=a
|
set mouse=a
|
||||||
|
|
||||||
|
set number
|
||||||
|
|
||||||
|
" Use Powerline symbols
|
||||||
|
"let g:airline_powerline_fonts = 1
|
||||||
|
|
||||||
" Enable Syntax Highlighting in Vim
|
" Enable Syntax Highlighting in Vim
|
||||||
syntax on
|
syntax on
|
||||||
|
" Use Sourcerer color scheme by Xero
|
||||||
|
colorscheme sourcerer
|
||||||
|
|
||||||
" Fix plugin compatibility issues
|
" Fix plugin compatibility issues
|
||||||
set nocp
|
set nocp
|
||||||
" Allow backspace to remove all types of characters
|
" Allow backspace to remove all types of characters
|
||||||
set backspace=indent,eol,start
|
set backspace=indent,eol,start
|
||||||
" set rtp+=/path/to/rtp/that/included/pathogen/vim " if needed
|
|
||||||
" Enable Pathogen plugin manager
|
|
||||||
execute pathogen#infect()
|
|
||||||
filetype plugin indent on
|
|
||||||
|
|
||||||
" Custom Keybindings
|
" Set terminal title when opening file
|
||||||
|
" autocmd BufEnter * let &titlestring = ' ' . expand("%:t")
|
||||||
|
" set title
|
||||||
|
|
||||||
|
" Custom Vim Keybindings
|
||||||
|
|
||||||
" nnoremap <C-e> <C-w> " Modify and remove leading quotation
|
" nnoremap <C-e> <C-w> " Modify and remove leading quotation
|
||||||
|
|
||||||
" Set window jump to custom binding
|
" Set window jump to custom binding
|
||||||
" default Ctrl-W conflict - closes browser tabs
|
" default Ctrl-W conflict - closes browser tabs
|
||||||
nnoremap <C-e> <C-w>
|
nnoremap <C-e> <C-w>
|
||||||
|
|
||||||
|
nnoremap <C-b> :!make -C build/
|
||||||
|
|
||||||
|
" Vim Plugin Settings
|
||||||
|
|
||||||
|
" set rtp+=/path/to/rtp/that/included/pathogen/vim " if needed
|
||||||
|
" Enable Pathogen plugin manager
|
||||||
|
execute pathogen#infect()
|
||||||
|
filetype plugin indent on
|
||||||
|
|
||||||
|
" Set Vim Airline theme
|
||||||
|
" base16 soda base16_pop laederon night_owl kalisi* ayu_mirage* raven
|
||||||
|
let g:airline_theme='kalisi'
|
||||||
|
|
||||||
|
" Gitgutter installed for + - diffs in gutters within repo files
|
||||||
|
|
||||||
|
" Syntastic syntax checker settings
|
||||||
|
" See :help syntastic
|
||||||
|
set statusline+=%#warningmsg#
|
||||||
|
set statusline+=%{SyntasticStatuslineFlag()}
|
||||||
|
set statusline+=%*
|
||||||
|
let g:syntastic_always_populate_loc_list = 1
|
||||||
|
let g:syntastic_auto_loc_list = 1
|
||||||
|
let g:syntastic_check_on_open = 1
|
||||||
|
let g:syntastic_check_on_wq = 0
|
||||||
|
|
||||||
|
" Clang_complete settings
|
||||||
|
let g:clang_library_path='/usr/lib/llvm-8/lib/'
|
||||||
|
|
||||||
|
" Understand how the plugin works: :h signify-modus-operandi
|
||||||
|
" Spare the plugin some work and read: :h g:signify_vcs_list
|
||||||
|
" Signify plugin settings
|
||||||
|
" Diff gutter within Vim
|
||||||
|
" let g:signify_vcs_list = ['git', 'hg']
|
||||||
|
" let g:signify_cursorhold_insert = 1
|
||||||
|
" let g:signify_cursorhold_normal = 1
|
||||||
|
" let g:signify_update_on_bufenter = 0
|
||||||
|
" let g:signify_update_on_focusgained = 1
|
||||||
|
"
|
||||||
|
" Colorizer plugin settings
|
||||||
|
" See :h colorizer in Vim for more info
|
||||||
|
"let g:colorizer_colornames = 0 " Don't color literal names, like red, green, etc
|
||||||
|
"let g:colorizer_auto_color = 1
|
||||||
|
"let g:colorizer_skip_comments = 1
|
||||||
|
"let g:colorizer_auto_filetype ='css,html,vim'
|
||||||
|
|
||||||
|
" Symbols important to vim / terminal layouts
|
||||||
|
|
||||||
|
set termencoding=utf-8
|
||||||
|
set encoding=utf-8
|
||||||
|
|
||||||
|
" air-line
|
||||||
|
let g:airline_powerline_fonts = 1
|
||||||
|
|
||||||
|
if !exists('g:airline_symbols')
|
||||||
|
let g:airline_symbols = {}
|
||||||
|
endif
|
||||||
|
|
||||||
|
" unicode symbols
|
||||||
|
let g:airline_left_sep = '»'
|
||||||
|
let g:airline_left_sep = '▶'
|
||||||
|
let g:airline_right_sep = '«'
|
||||||
|
let g:airline_right_sep = '◀'
|
||||||
|
let g:airline_symbols.linenr = '␊'
|
||||||
|
let g:airline_symbols.linenr = ''
|
||||||
|
let g:airline_symbols.linenr = '¶'
|
||||||
|
let g:airline_symbols.branch = '⎇'
|
||||||
|
let g:airline_symbols.paste = 'ρ'
|
||||||
|
let g:airline_symbols.paste = 'Þ'
|
||||||
|
let g:airline_symbols.paste = '∥'
|
||||||
|
let g:airline_symbols.whitespace = 'Ξ'
|
||||||
|
|
||||||
|
" airline symbols
|
||||||
|
let g:airline_left_sep = ''
|
||||||
|
let g:airline_left_alt_sep = ''
|
||||||
|
let g:airline_right_sep = ''
|
||||||
|
let g:airline_right_alt_sep = ''
|
||||||
|
let g:airline_symbols.branch = ''
|
||||||
|
let g:airline_symbols.readonly = ''
|
||||||
|
let g:airline_symbols.linenr = ''
|
||||||
|
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
Packages Installed / Updated:
|
|
||||||
- vim, git, clang
|
|
||||||
|
|
||||||
Vimrc Settings:
|
|
||||||
- tabwidth is 2, and set to insert SPACE characters instead of TAB symbols with expandtab
|
|
||||||
- shiftwidth is 2 so we can compensate for the conflict with default tab settings
|
|
||||||
- autoindent is on, when moving to a newline vim will indent to the current depth
|
|
||||||
- syntax highlighting is on
|
|
||||||
- mouse interaction is enabled when supported by connecting systems
|
|
||||||
-- https://github.com/shaunrd0/klips/tree/master/configs
|
|
||||||
|
|
||||||
Plugin Settings:
|
|
||||||
- Pathogen vim plugin manager has been installed and .vimrc configured for its use.
|
|
||||||
-- Install new vim plugins by cloning their repositories into ~/.vim/bundle/
|
|
||||||
-- https://github.com/tpope/vim-pathogen
|
|
||||||
|
|
||||||
- Clang_complete vim plugin has been installed and .vimrc configured for its use.
|
|
||||||
- Code-completion is enabled with default clang_complete settings
|
|
||||||
-- https://github.com/xavierd/clang_complete
|
|
||||||
--If you have issues with Clang_complete library linking / loading, check the directory / commands below -
|
|
||||||
cd /usr/lib/x86_64-unknown-linux
|
|
||||||
ln -s libclang.so.1 libclang.so
|
|
||||||
|
|
||||||
- Supertab vim plugin has been installed and .vimrc configured for its use.
|
|
||||||
- Allows the use of TAB to enable code-completion context menu
|
|
||||||
-- https://github.com/ervandew/supertab
|
|
||||||
|
|
||||||
- Enable nocp
|
|
||||||
-- Ensures vim is not set to be compatible with older versions of vi
|
|
||||||
-- Removing this could diable enhancements on some systems
|
|
||||||
-- :help 'compatible' within vim for more information
|
|
||||||
|
|
||||||
- Define backspace scope
|
|
||||||
-- Ensures that backspace has the permissions to remove all character types
|
|
||||||
|
|
||||||
- Custom Keybindings
|
|
||||||
- The keybind (Ctrl-e <ARROW KEY>) allows switching between split vim windows
|
|
||||||
-- Ctrl-w is the default setting, which closes tabbed shells on Chrome OS
|
|
||||||
|
|
||||||
- Backups previous vimrc configurations
|
|
||||||
-- If they were present, previous vim files are stored in /etc/config-vim/backups/
|
|
||||||
|
|
|
@ -1,16 +0,0 @@
|
||||||
alias gitkapp='git config --global user.name "Shaun Reed" && git config --global user.email "shaunrd0@gmail.com"'
|
|
||||||
|
|
||||||
# Overrides for default .bashrc aliases and exports
|
|
||||||
# Alias / export customizations
|
|
||||||
# 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$//'\'')"'
|
|
||||||
|
|
|
@ -1,117 +0,0 @@
|
||||||
# ~/.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\] \W\[\033[01;32m\]]\$\[\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
|
|
||||||
|
|
||||||
# Alias / export customizations
|
|
||||||
|
|
||||||
# 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$//'\'')"'
|
|
||||||
|
|
||||||
# Edit ~/.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
|
|
|
@ -1,71 +0,0 @@
|
||||||
# System-wide .bashrc file for interactive bash(1) shells.
|
|
||||||
|
|
||||||
# To enable the settings / commands in this file for login shells as well,
|
|
||||||
# this file has to be sourced in /etc/profile.
|
|
||||||
|
|
||||||
# If not running interactively, don't do anything
|
|
||||||
[ -z "$PS1" ] && return
|
|
||||||
|
|
||||||
# check the window size after each command and, if necessary,
|
|
||||||
# update the values of LINES and COLUMNS.
|
|
||||||
shopt -s checkwinsize
|
|
||||||
|
|
||||||
# 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, overwrite the one in /etc/profile)
|
|
||||||
# but only if not SUDOing and have SUDO_PS1 set; then assume smart user.
|
|
||||||
if ! [ -n "${SUDO_USER}" -a -n "${SUDO_PS1}" ]; then
|
|
||||||
PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Commented out, don't overwrite xterm -T "title" -n "icontitle" by default.
|
|
||||||
# If this is an xterm set the title to user@host:dir
|
|
||||||
#case "$TERM" in
|
|
||||||
#xterm*|rxvt*)
|
|
||||||
# PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
|
|
||||||
# ;;
|
|
||||||
#*)
|
|
||||||
# ;;
|
|
||||||
#esac
|
|
||||||
|
|
||||||
# enable bash completion in interactive shells
|
|
||||||
#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
|
|
||||||
|
|
||||||
# sudo hint
|
|
||||||
if [ ! -e "$HOME/.sudo_as_admin_successful" ] && [ ! -e "$HOME/.hushlogin" ] ; then
|
|
||||||
case " $(groups) " in *\ admin\ *|*\ sudo\ *)
|
|
||||||
if [ -x /usr/bin/sudo ]; then
|
|
||||||
cat <<-EOF
|
|
||||||
To run a command as administrator (user "root"), use "sudo <command>".
|
|
||||||
See "man sudo_root" for details.
|
|
||||||
|
|
||||||
EOF
|
|
||||||
fi
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
# if the command-not-found package is installed, use it
|
|
||||||
if [ -x /usr/lib/command-not-found -o -x /usr/share/command-not-found/command-not-found ]; then
|
|
||||||
function command_not_found_handle {
|
|
||||||
# check because c-n-f could've been removed in the meantime
|
|
||||||
if [ -x /usr/lib/command-not-found ]; then
|
|
||||||
/usr/lib/command-not-found -- "$1"
|
|
||||||
return $?
|
|
||||||
elif [ -x /usr/share/command-not-found/command-not-found ]; then
|
|
||||||
/usr/share/command-not-found/command-not-found -- "$1"
|
|
||||||
return $?
|
|
||||||
else
|
|
||||||
printf "%s: command not found\n" "$1" >&2
|
|
||||||
return 127
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
fi
|
|
|
@ -1,31 +0,0 @@
|
||||||
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
|
|
||||||
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
|
|
||||||
|
|
||||||
# This line sets the system-wide default text editor to vim
|
|
||||||
export EDITOR='/usr/bin/vim'
|
|
||||||
export VISUAL='/usr/bin/vim'
|
|
||||||
|
|
||||||
if [ "${PS1-}" ]; then
|
|
||||||
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
|
|
||||||
# The file bash.bashrc already sets the default PS1.
|
|
||||||
# PS1='\h:\w\$ '
|
|
||||||
if [ -f /etc/bash.bashrc ]; then
|
|
||||||
. /etc/bash.bashrc
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "`id -u`" -eq 0 ]; then
|
|
||||||
PS1='# '
|
|
||||||
else
|
|
||||||
PS1='$ '
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -d /etc/profile.d ]; then
|
|
||||||
for i in /etc/profile.d/*.sh; do
|
|
||||||
if [ -r $i ]; then
|
|
||||||
. $i
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
unset i
|
|
||||||
fi
|
|
|
@ -1,116 +0,0 @@
|
||||||
####Fail2ban
|
|
||||||
|
|
||||||
Be sure to configure mail notifications if you plan to use them.
|
|
||||||
Found in jail.local -
|
|
||||||
```bash
|
|
||||||
# Destination email address used solely for the interpolations in
|
|
||||||
# jail.{conf,local,d/*} configuration files.
|
|
||||||
destemail = user@gmail.com
|
|
||||||
|
|
||||||
# Sender email address used solely for some actions
|
|
||||||
sender = admin@hostname
|
|
||||||
|
|
||||||
# E-mail action. Since 0.8.1 Fail2Ban uses sendmail MTA for the
|
|
||||||
# mailing. Change mta configuration parameter to mail if you want to
|
|
||||||
# revert to conventional 'mail'.
|
|
||||||
mta = mail
|
|
||||||
|
|
||||||
# Default protocol
|
|
||||||
protocol = tcp
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
Default fail2ban action set to `action = %(action_mwl)s`
|
|
||||||
|
|
||||||
These configurations can be used to activate the below jails within fail2ban -
|
|
||||||
```bash
|
|
||||||
[nginx-noproxy]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-noproxy
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
[nginx-nohome]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-nohome
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
[nginx-badbots]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-badbots
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
[nginx-noscript]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-noscript
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 6
|
|
||||||
|
|
||||||
[nginx-http-auth]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
filter = nginx-http-auth
|
|
||||||
port = http,https
|
|
||||||
logpath = /var/log/nginx/error.log
|
|
||||||
|
|
||||||
[sshd]
|
|
||||||
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
|
|
||||||
# normal (default), ddos, extra or aggressive (combines all).
|
|
||||||
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and[Definition]
|
|
||||||
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi)
|
|
||||||
ignoreregex = details.
|
|
||||||
#mode = normal
|
|
||||||
enabled = true
|
|
||||||
port = 22
|
|
||||||
logpath = %(sshd_log)s
|
|
||||||
backend = %(sshd_backend)s
|
|
||||||
```
|
|
||||||
|
|
||||||
The following filters are also included, which are required to exist within the `/etc/fail2ban/filter.d/` directory. All other jails within this configuration are provided with the default installation of fail2ban on Ubuntu.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# /etc/fail2ban/filter.d/nginx-noscript.conf
|
|
||||||
[Definition]
|
|
||||||
|
|
||||||
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi)
|
|
||||||
|
|
||||||
ignoreregex =
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# /etc/fail2ban/filter.d/nginx-nohome.conf
|
|
||||||
[Definition]
|
|
||||||
|
|
||||||
failregex = ^<HOST> -.*GET .*/~.*
|
|
||||||
|
|
||||||
ignoreregex =
|
|
||||||
```
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# /etc/fail2ban/filter.d/nginx-noproxy.conf
|
|
||||||
[Definition]
|
|
||||||
|
|
||||||
failregex = ^<HOST> -.*GET http.*
|
|
||||||
|
|
||||||
ignoreregex =
|
|
||||||
```
|
|
||||||
|
|
||||||
To use these configurations, nginx must be running on the host. Run the commands below to apply them.
|
|
||||||
```bash
|
|
||||||
git clone https://github.com/shaunrd0/klips;
|
|
||||||
sudo cp klips/configs/fail2ban/jail.local /etc/fail2ban/jail.local;
|
|
||||||
sudo cp klips/configs/fail2ban/nginx* /etc/fail2ban/filter.d/;
|
|
||||||
sudo systemctl restart fail2ban;
|
|
||||||
sudo fail2ban-client status;
|
|
||||||
```
|
|
|
@ -1,914 +0,0 @@
|
||||||
#
|
|
||||||
# WARNING: heavily refactored in 0.9.0 release. Please review and
|
|
||||||
# customize settings for your setup.
|
|
||||||
#
|
|
||||||
# Changes: in most of the cases you should not modify this
|
|
||||||
# file, but provide customizations in jail.local file,
|
|
||||||
# or separate .conf files under jail.d/ directory, e.g.:
|
|
||||||
#
|
|
||||||
# HOW TO ACTIVATE JAILS:
|
|
||||||
#
|
|
||||||
# YOU SHOULD NOT MODIFY THIS FILE.
|
|
||||||
#
|
|
||||||
# It will probably be overwritten or improved in a distribution update.
|
|
||||||
#
|
|
||||||
# Provide customizations in a jail.local file or a jail.d/customisation.local.
|
|
||||||
# For example to change the default bantime for all jails and to enable the
|
|
||||||
# ssh-iptables jail the following (uncommented) would appear in the .local file.
|
|
||||||
# See man 5 jail.conf for details.
|
|
||||||
#
|
|
||||||
# [DEFAULT]
|
|
||||||
# bantime = 1h
|
|
||||||
#
|
|
||||||
# [sshd]
|
|
||||||
# enabled = true
|
|
||||||
#
|
|
||||||
# See jail.conf(5) man page for more information
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Comments: use '#' for comment lines and ';' (following a space) for inline comments
|
|
||||||
|
|
||||||
|
|
||||||
[INCLUDES]
|
|
||||||
|
|
||||||
#before = paths-distro.conf
|
|
||||||
before = paths-debian.conf
|
|
||||||
|
|
||||||
# The DEFAULT allows a global definition of the options. They can be overridden
|
|
||||||
# in each jail afterwards.
|
|
||||||
|
|
||||||
[DEFAULT]
|
|
||||||
|
|
||||||
#
|
|
||||||
# MISCELLANEOUS OPTIONS
|
|
||||||
#
|
|
||||||
|
|
||||||
# "ignorself" specifies whether the local resp. own IP addresses should be ignored
|
|
||||||
# (default is true). Fail2ban will not ban a host which matches such addresses.
|
|
||||||
#ignorself = true
|
|
||||||
|
|
||||||
# "ignoreip" can be a list of IP addresses, CIDR masks or DNS hosts. Fail2ban
|
|
||||||
# will not ban a host which matches an address in this list. Several addresses
|
|
||||||
# can be defined using space (and/or comma) separator.
|
|
||||||
#ignoreip = 127.0.0.1/8 ::1
|
|
||||||
|
|
||||||
# External command that will take an tagged arguments to ignore, e.g. <ip>,
|
|
||||||
# and return true if the IP is to be ignored. False otherwise.
|
|
||||||
#
|
|
||||||
# ignorecommand = /path/to/command <ip>
|
|
||||||
ignorecommand =
|
|
||||||
|
|
||||||
# "bantime" is the number of seconds that a host is banned.
|
|
||||||
bantime = 10m
|
|
||||||
|
|
||||||
# A host is banned if it has generated "maxretry" during the last "findtime"
|
|
||||||
# seconds.
|
|
||||||
findtime = 10m
|
|
||||||
|
|
||||||
# "maxretry" is the number of failures before a host get banned.
|
|
||||||
maxretry = 5
|
|
||||||
|
|
||||||
# "backend" specifies the backend used to get files modification.
|
|
||||||
# Available options are "pyinotify", "gamin", "polling", "systemd" and "auto".
|
|
||||||
# This option can be overridden in each jail as well.
|
|
||||||
#
|
|
||||||
# pyinotify: requires pyinotify (a file alteration monitor) to be installed.
|
|
||||||
# If pyinotify is not installed, Fail2ban will use auto.
|
|
||||||
# gamin: requires Gamin (a file alteration monitor) to be installed.
|
|
||||||
# If Gamin is not installed, Fail2ban will use auto.
|
|
||||||
# polling: uses a polling algorithm which does not require external libraries.
|
|
||||||
# systemd: uses systemd python library to access the systemd journal.
|
|
||||||
# Specifying "logpath" is not valid for this backend.
|
|
||||||
# See "journalmatch" in the jails associated filter config
|
|
||||||
# auto: will try to use the following backends, in order:
|
|
||||||
# pyinotify, gamin, polling.
|
|
||||||
#
|
|
||||||
# Note: if systemd backend is chosen as the default but you enable a jail
|
|
||||||
# for which logs are present only in its own log files, specify some other
|
|
||||||
# backend for that jail (e.g. polling) and provide empty value for
|
|
||||||
# journalmatch. See https://github.com/fail2ban/fail2ban/issues/959#issuecomment-74901200
|
|
||||||
backend = auto
|
|
||||||
|
|
||||||
# "usedns" specifies if jails should trust hostnames in logs,
|
|
||||||
# warn when DNS lookups are performed, or ignore all hostnames in logs
|
|
||||||
#
|
|
||||||
# yes: if a hostname is encountered, a DNS lookup will be performed.
|
|
||||||
# warn: if a hostname is encountered, a DNS lookup will be performed,
|
|
||||||
# but it will be logged as a warning.
|
|
||||||
# no: if a hostname is encountered, will not be used for banning,
|
|
||||||
# but it will be logged as info.
|
|
||||||
# raw: use raw value (no hostname), allow use it for no-host filters/actions (example user)
|
|
||||||
usedns = warn
|
|
||||||
|
|
||||||
# "logencoding" specifies the encoding of the log files handled by the jail
|
|
||||||
# This is used to decode the lines from the log file.
|
|
||||||
# Typical examples: "ascii", "utf-8"
|
|
||||||
#
|
|
||||||
# auto: will use the system locale setting
|
|
||||||
logencoding = auto
|
|
||||||
|
|
||||||
# "enabled" enables the jails.
|
|
||||||
# By default all jails are disabled, and it should stay this way.
|
|
||||||
# Enable only relevant to your setup jails in your .local or jail.d/*.conf
|
|
||||||
#
|
|
||||||
# true: jail will be enabled and log files will get monitored for changes
|
|
||||||
# false: jail is not enabled
|
|
||||||
enabled = false
|
|
||||||
|
|
||||||
|
|
||||||
# "mode" defines the mode of the filter (see corresponding filter implementation for more info).
|
|
||||||
mode = normal
|
|
||||||
|
|
||||||
# "filter" defines the filter to use by the jail.
|
|
||||||
# By default jails have names matching their filter name
|
|
||||||
#
|
|
||||||
filter = %(__name__)s[mode=%(mode)s]
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# ACTIONS
|
|
||||||
#
|
|
||||||
|
|
||||||
# Some options used for actions
|
|
||||||
|
|
||||||
# Destination email address used solely for the interpolations in
|
|
||||||
# jail.{conf,local,d/*} configuration files.
|
|
||||||
destemail = user@gmail.com
|
|
||||||
|
|
||||||
# Sender email address used solely for some actions
|
|
||||||
sender = admin@hostname
|
|
||||||
|
|
||||||
# E-mail action. Since 0.8.1 Fail2Ban uses sendmail MTA for the
|
|
||||||
# mailing. Change mta configuration parameter to mail if you want to
|
|
||||||
# revert to conventional 'mail'.
|
|
||||||
mta = mail
|
|
||||||
|
|
||||||
# Default protocol
|
|
||||||
protocol = tcp
|
|
||||||
|
|
||||||
# Specify chain where jumps would need to be added in ban-actions expecting parameter chain
|
|
||||||
chain = <known/chain>
|
|
||||||
|
|
||||||
# Ports to be banned
|
|
||||||
# Usually should be overridden in a particular jail
|
|
||||||
port = 0:65535
|
|
||||||
|
|
||||||
# Format of user-agent https://tools.ietf.org/html/rfc7231#section-5.5.3
|
|
||||||
fail2ban_agent = Fail2Ban/%(fail2ban_version)s
|
|
||||||
|
|
||||||
#
|
|
||||||
# Action shortcuts. To be used to define action parameter
|
|
||||||
|
|
||||||
# Default banning action (e.g. iptables, iptables-new,
|
|
||||||
# iptables-multiport, shorewall, etc) It is used to define
|
|
||||||
# action_* variables. Can be overridden globally or per
|
|
||||||
# section within jail.local file
|
|
||||||
banaction = iptables-multiport
|
|
||||||
banaction_allports = iptables-allports
|
|
||||||
|
|
||||||
# The simplest action to take: ban only
|
|
||||||
action_ = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
|
|
||||||
|
|
||||||
# ban & send an e-mail with whois report to the destemail.
|
|
||||||
action_mw = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
|
|
||||||
%(mta)s-whois[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s"]
|
|
||||||
|
|
||||||
# ban & send an e-mail with whois report and relevant log lines
|
|
||||||
# to the destemail.
|
|
||||||
action_mwl = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
|
|
||||||
%(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
|
|
||||||
|
|
||||||
# See the IMPORTANT note in action.d/xarf-login-attack for when to use this action
|
|
||||||
#
|
|
||||||
# ban & send a xarf e-mail to abuse contact of IP address and include relevant log lines
|
|
||||||
# to the destemail.
|
|
||||||
action_xarf = %(banaction)s[name=%(__name__)s, bantime="%(bantime)s", port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
|
|
||||||
xarf-login-attack[service=%(__name__)s, sender="%(sender)s", logpath=%(logpath)s, port="%(port)s"]
|
|
||||||
|
|
||||||
# ban IP on CloudFlare & send an e-mail with whois report and relevant log lines
|
|
||||||
# to the destemail.
|
|
||||||
action_cf_mwl = cloudflare[cfuser="%(cfemail)s", cftoken="%(cfapikey)s"]
|
|
||||||
%(mta)s-whois-lines[name=%(__name__)s, sender="%(sender)s", dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s"]
|
|
||||||
|
|
||||||
# Report block via blocklist.de fail2ban reporting service API
|
|
||||||
#
|
|
||||||
# See the IMPORTANT note in action.d/blocklist_de.conf for when to use this action.
|
|
||||||
# Specify expected parameters in file action.d/blocklist_de.local or if the interpolation
|
|
||||||
# `action_blocklist_de` used for the action, set value of `blocklist_de_apikey`
|
|
||||||
# in your `jail.local` globally (section [DEFAULT]) or per specific jail section (resp. in
|
|
||||||
# corresponding jail.d/my-jail.local file).
|
|
||||||
#
|
|
||||||
action_blocklist_de = blocklist_de[email="%(sender)s", service=%(filter)s, apikey="%(blocklist_de_apikey)s", agent="%(fail2ban_agent)s"]
|
|
||||||
|
|
||||||
# Report ban via badips.com, and use as blacklist
|
|
||||||
#
|
|
||||||
# See BadIPsAction docstring in config/action.d/badips.py for
|
|
||||||
# documentation for this action.
|
|
||||||
#
|
|
||||||
# NOTE: This action relies on banaction being present on start and therefore
|
|
||||||
# should be last action defined for a jail.
|
|
||||||
#
|
|
||||||
action_badips = badips.py[category="%(__name__)s", banaction="%(banaction)s", agent="%(fail2ban_agent)s"]
|
|
||||||
#
|
|
||||||
# Report ban via badips.com (uses action.d/badips.conf for reporting only)
|
|
||||||
#
|
|
||||||
action_badips_report = badips[category="%(__name__)s", agent="%(fail2ban_agent)s"]
|
|
||||||
|
|
||||||
# Report ban via abuseipdb.com.
|
|
||||||
#
|
|
||||||
# See action.d/abuseipdb.conf for usage example and details.
|
|
||||||
#
|
|
||||||
action_abuseipdb = abuseipdb
|
|
||||||
|
|
||||||
# Choose default action. To change, just override value of 'action' with the
|
|
||||||
# interpolation to the chosen action shortcut (e.g. action_mw, action_mwl, etc) in jail.local
|
|
||||||
# globally (section [DEFAULT]) or per specific section
|
|
||||||
action = %(action_mwl)s
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# JAILS
|
|
||||||
#
|
|
||||||
|
|
||||||
#
|
|
||||||
# SSH servers
|
|
||||||
#
|
|
||||||
|
|
||||||
[sshd]
|
|
||||||
|
|
||||||
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
|
|
||||||
# normal (default), ddos, extra or aggressive (combines all).
|
|
||||||
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
|
|
||||||
#mode = normal
|
|
||||||
port = 22
|
|
||||||
logpath = %(sshd_log)s
|
|
||||||
backend = %(sshd_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[dropbear]
|
|
||||||
|
|
||||||
port = ssh
|
|
||||||
logpath = %(dropbear_log)s
|
|
||||||
backend = %(dropbear_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[selinux-ssh]
|
|
||||||
|
|
||||||
port = ssh
|
|
||||||
logpath = %(auditd_log)s
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# HTTP servers
|
|
||||||
#
|
|
||||||
|
|
||||||
[apache-auth]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[apache-badbots]
|
|
||||||
# Ban hosts which agent identifies spammer robots crawling the web
|
|
||||||
# for email addresses. The mail outputs are buffered.
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_access_log)s
|
|
||||||
bantime = 48h
|
|
||||||
maxretry = 1
|
|
||||||
|
|
||||||
|
|
||||||
[apache-noscript]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[apache-overflows]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
|
|
||||||
[apache-nohome]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
|
|
||||||
[apache-botsearch]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
|
|
||||||
[apache-fakegooglebot]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_access_log)s
|
|
||||||
maxretry = 1
|
|
||||||
ignorecommand = %(ignorecommands_dir)s/apache-fakegooglebot <ip>
|
|
||||||
|
|
||||||
|
|
||||||
[apache-modsecurity]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
|
|
||||||
[apache-shellshock]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
maxretry = 1
|
|
||||||
|
|
||||||
|
|
||||||
[openhab-auth]
|
|
||||||
|
|
||||||
filter = openhab
|
|
||||||
action = iptables-allports[name=NoAuthFailures]
|
|
||||||
logpath = /opt/openhab/logs/request.log
|
|
||||||
|
|
||||||
[nginx-http-auth]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
logpath = %(nginx_error_log)s
|
|
||||||
|
|
||||||
# To use 'nginx-limit-req' jail you should have `ngx_http_limit_req_module`
|
|
||||||
# and define `limit_req` and `limit_req_zone` as described in nginx documentation
|
|
||||||
# http://nginx.org/en/docs/http/ngx_http_limit_req_module.html
|
|
||||||
# or for example see in 'config/filter.d/nginx-limit-req.conf'
|
|
||||||
[nginx-limit-req]
|
|
||||||
port = http,https
|
|
||||||
logpath = %(nginx_error_log)s
|
|
||||||
|
|
||||||
[nginx-botsearch]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
logpath = %(nginx_error_log)s
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
[nginx-noproxy]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-noproxy
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
[nginx-noscript]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-noscript
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 6
|
|
||||||
|
|
||||||
[nginx-nohome]
|
|
||||||
|
|
||||||
enabled = true
|
|
||||||
port = http,https
|
|
||||||
filter = nginx-nohome
|
|
||||||
logpath = /var/log/nginx/access.log
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
# Ban attackers that try to use PHP's URL-fopen() functionality
|
|
||||||
# through GET/POST variables. - Experimental, with more than a year
|
|
||||||
# of usage in production environments.
|
|
||||||
|
|
||||||
[php-url-fopen]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(nginx_access_log)s
|
|
||||||
%(apache_access_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[suhosin]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(suhosin_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[lighttpd-auth]
|
|
||||||
# Same as above for Apache's mod_auth
|
|
||||||
# It catches wrong authentifications
|
|
||||||
port = http,https
|
|
||||||
logpath = %(lighttpd_error_log)s
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Webmail and groupware servers
|
|
||||||
#
|
|
||||||
|
|
||||||
[roundcube-auth]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(roundcube_errors_log)s
|
|
||||||
# Use following line in your jail.local if roundcube logs to journal.
|
|
||||||
#backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[openwebmail]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = /var/log/openwebmail.log
|
|
||||||
|
|
||||||
|
|
||||||
[horde]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = /var/log/horde/horde.log
|
|
||||||
|
|
||||||
|
|
||||||
[groupoffice]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = /home/groupoffice/log/info.log
|
|
||||||
|
|
||||||
|
|
||||||
[sogo-auth]
|
|
||||||
# Monitor SOGo groupware server
|
|
||||||
# without proxy this would be:
|
|
||||||
# port = 20000
|
|
||||||
port = http,https
|
|
||||||
logpath = /var/log/sogo/sogo.log
|
|
||||||
|
|
||||||
|
|
||||||
[tine20]
|
|
||||||
|
|
||||||
logpath = /var/log/tine20/tine20.log
|
|
||||||
port = http,https
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Web Applications
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
[drupal-auth]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(syslog_daemon)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
[guacamole]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = /var/log/tomcat*/catalina.out
|
|
||||||
|
|
||||||
[monit]
|
|
||||||
#Ban clients brute-forcing the monit gui login
|
|
||||||
port = 2812
|
|
||||||
logpath = /var/log/monit
|
|
||||||
|
|
||||||
|
|
||||||
[webmin-auth]
|
|
||||||
|
|
||||||
port = 10000
|
|
||||||
logpath = %(syslog_authpriv)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[froxlor-auth]
|
|
||||||
|
|
||||||
port = http,https
|
|
||||||
logpath = %(syslog_authpriv)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# HTTP Proxy servers
|
|
||||||
#
|
|
||||||
#
|
|
||||||
|
|
||||||
[squid]
|
|
||||||
|
|
||||||
port = 80,443,3128,8080
|
|
||||||
logpath = /var/log/squid/access.log
|
|
||||||
|
|
||||||
|
|
||||||
[3proxy]
|
|
||||||
|
|
||||||
port = 3128
|
|
||||||
logpath = /var/log/3proxy.log
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# FTP servers
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
[proftpd]
|
|
||||||
|
|
||||||
port = ftp,ftp-data,ftps,ftps-data
|
|
||||||
logpath = %(proftpd_log)s
|
|
||||||
backend = %(proftpd_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[pure-ftpd]
|
|
||||||
|
|
||||||
port = ftp,ftp-data,ftps,ftps-data
|
|
||||||
logpath = %(pureftpd_log)s
|
|
||||||
backend = %(pureftpd_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[gssftpd]
|
|
||||||
|
|
||||||
port = ftp,ftp-data,ftps,ftps-data
|
|
||||||
logpath = %(syslog_daemon)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[wuftpd]
|
|
||||||
|
|
||||||
port = ftp,ftp-data,ftps,ftps-data
|
|
||||||
logpath = %(wuftpd_log)s
|
|
||||||
backend = %(wuftpd_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[vsftpd]
|
|
||||||
# or overwrite it in jails.local to be
|
|
||||||
# logpath = %(syslog_authpriv)s
|
|
||||||
# if you want to rely on PAM failed login attempts
|
|
||||||
# vsftpd's failregex should match both of those formats
|
|
||||||
port = ftp,ftp-data,ftps,ftps-data
|
|
||||||
logpath = %(vsftpd_log)s
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Mail servers
|
|
||||||
#
|
|
||||||
|
|
||||||
# ASSP SMTP Proxy Jail
|
|
||||||
[assp]
|
|
||||||
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = /root/path/to/assp/logs/maillog.txt
|
|
||||||
|
|
||||||
|
|
||||||
[courier-smtp]
|
|
||||||
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[postfix]
|
|
||||||
# To use another modes set filter parameter "mode" in jail.local:
|
|
||||||
mode = more
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(postfix_log)s
|
|
||||||
backend = %(postfix_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[postfix-rbl]
|
|
||||||
|
|
||||||
filter = postfix[mode=rbl]
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(postfix_log)s
|
|
||||||
backend = %(postfix_backend)s
|
|
||||||
maxretry = 1
|
|
||||||
|
|
||||||
|
|
||||||
[sendmail-auth]
|
|
||||||
|
|
||||||
port = submission,465,smtp
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[sendmail-reject]
|
|
||||||
# To use more aggressive modes set filter parameter "mode" in jail.local:
|
|
||||||
# normal (default), extra or aggressive
|
|
||||||
# See "tests/files/logs/sendmail-reject" or "filter.d/sendmail-reject.conf" for usage example and details.
|
|
||||||
#mode = normal
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[qmail-rbl]
|
|
||||||
|
|
||||||
filter = qmail
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = /service/qmail/log/main/current
|
|
||||||
|
|
||||||
|
|
||||||
# dovecot defaults to logging to the mail syslog facility
|
|
||||||
# but can be set by syslog_facility in the dovecot configuration.
|
|
||||||
[dovecot]
|
|
||||||
|
|
||||||
port = pop3,pop3s,imap,imaps,submission,465,sieve
|
|
||||||
logpath = %(dovecot_log)s
|
|
||||||
backend = %(dovecot_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[sieve]
|
|
||||||
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(dovecot_log)s
|
|
||||||
backend = %(dovecot_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[solid-pop3d]
|
|
||||||
|
|
||||||
port = pop3,pop3s
|
|
||||||
logpath = %(solidpop3d_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[exim]
|
|
||||||
# see filter.d/exim.conf for further modes supported from filter:
|
|
||||||
#mode = normal
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(exim_main_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[exim-spam]
|
|
||||||
|
|
||||||
port = smtp,465,submission
|
|
||||||
logpath = %(exim_main_log)s
|
|
||||||
|
|
||||||
|
|
||||||
[kerio]
|
|
||||||
|
|
||||||
port = imap,smtp,imaps,465
|
|
||||||
logpath = /opt/kerio/mailserver/store/logs/security.log
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Mail servers authenticators: might be used for smtp,ftp,imap servers, so
|
|
||||||
# all relevant ports get banned
|
|
||||||
#
|
|
||||||
|
|
||||||
[courier-auth]
|
|
||||||
|
|
||||||
port = smtp,465,submission,imap,imaps,pop3,pop3s
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[postfix-sasl]
|
|
||||||
|
|
||||||
filter = postfix[mode=auth]
|
|
||||||
port = smtp,465,submission,imap,imaps,pop3,pop3s
|
|
||||||
# You might consider monitoring /var/log/mail.warn instead if you are
|
|
||||||
# running postfix since it would provide the same log lines at the
|
|
||||||
# "warn" level but overall at the smaller filesize.
|
|
||||||
logpath = %(postfix_log)s
|
|
||||||
backend = %(postfix_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[perdition]
|
|
||||||
|
|
||||||
port = imap,imaps,pop3,pop3s
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[squirrelmail]
|
|
||||||
|
|
||||||
port = smtp,465,submission,imap,imap2,imaps,pop3,pop3s,http,https,socks
|
|
||||||
logpath = /var/lib/squirrelmail/prefs/squirrelmail_access_log
|
|
||||||
|
|
||||||
|
|
||||||
[cyrus-imap]
|
|
||||||
|
|
||||||
port = imap,imaps
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[uwimap-auth]
|
|
||||||
|
|
||||||
port = imap,imaps
|
|
||||||
logpath = %(syslog_mail)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# DNS servers
|
|
||||||
#
|
|
||||||
|
|
||||||
|
|
||||||
# !!! WARNING !!!
|
|
||||||
# Since UDP is connection-less protocol, spoofing of IP and imitation
|
|
||||||
# of illegal actions is way too simple. Thus enabling of this filter
|
|
||||||
# might provide an easy way for implementing a DoS against a chosen
|
|
||||||
# victim. See
|
|
||||||
# http://nion.modprobe.de/blog/archives/690-fail2ban-+-dns-fail.html
|
|
||||||
# Please DO NOT USE this jail unless you know what you are doing.
|
|
||||||
#
|
|
||||||
# IMPORTANT: see filter.d/named-refused for instructions to enable logging
|
|
||||||
# This jail blocks UDP traffic for DNS requests.
|
|
||||||
# [named-refused-udp]
|
|
||||||
#
|
|
||||||
# filter = named-refused
|
|
||||||
# port = domain,953
|
|
||||||
# protocol = udp
|
|
||||||
# logpath = /var/log/named/security.log
|
|
||||||
|
|
||||||
# IMPORTANT: see filter.d/named-refused for instructions to enable logging
|
|
||||||
# This jail blocks TCP traffic for DNS requests.
|
|
||||||
|
|
||||||
[named-refused]
|
|
||||||
|
|
||||||
port = domain,953
|
|
||||||
logpath = /var/log/named/security.log
|
|
||||||
|
|
||||||
|
|
||||||
[nsd]
|
|
||||||
|
|
||||||
port = 53
|
|
||||||
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
|
|
||||||
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
|
|
||||||
logpath = /var/log/nsd.log
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Miscellaneous
|
|
||||||
#
|
|
||||||
|
|
||||||
[asterisk]
|
|
||||||
|
|
||||||
port = 5060,5061
|
|
||||||
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
|
|
||||||
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
|
|
||||||
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
|
|
||||||
logpath = /var/log/asterisk/messages
|
|
||||||
maxretry = 10
|
|
||||||
|
|
||||||
|
|
||||||
[freeswitch]
|
|
||||||
|
|
||||||
port = 5060,5061
|
|
||||||
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
|
|
||||||
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
|
|
||||||
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s"]
|
|
||||||
logpath = /var/log/freeswitch.log
|
|
||||||
maxretry = 10
|
|
||||||
|
|
||||||
|
|
||||||
# To log wrong MySQL access attempts add to /etc/my.cnf in [mysqld] or
|
|
||||||
# equivalent section:
|
|
||||||
# log-warning = 2
|
|
||||||
#
|
|
||||||
# for syslog (daemon facility)
|
|
||||||
# [mysqld_safe]
|
|
||||||
# syslog
|
|
||||||
#
|
|
||||||
# for own logfile
|
|
||||||
# [mysqld]
|
|
||||||
# log-error=/var/log/mysqld.log
|
|
||||||
[mysqld-auth]
|
|
||||||
|
|
||||||
port = 3306
|
|
||||||
logpath = %(mysql_log)s
|
|
||||||
backend = %(mysql_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
# Log wrong MongoDB auth (for details see filter 'filter.d/mongodb-auth.conf')
|
|
||||||
[mongodb-auth]
|
|
||||||
# change port when running with "--shardsvr" or "--configsvr" runtime operation
|
|
||||||
port = 27017
|
|
||||||
logpath = /var/log/mongodb/mongodb.log
|
|
||||||
|
|
||||||
|
|
||||||
# Jail for more extended banning of persistent abusers
|
|
||||||
# !!! WARNINGS !!!
|
|
||||||
# 1. Make sure that your loglevel specified in fail2ban.conf/.local
|
|
||||||
# is not at DEBUG level -- which might then cause fail2ban to fall into
|
|
||||||
# an infinite loop constantly feeding itself with non-informative lines
|
|
||||||
# 2. Increase dbpurgeage defined in fail2ban.conf to e.g. 648000 (7.5 days)
|
|
||||||
# to maintain entries for failed logins for sufficient amount of time
|
|
||||||
[recidive]
|
|
||||||
|
|
||||||
logpath = /var/log/fail2ban.log
|
|
||||||
banaction = %(banaction_allports)s
|
|
||||||
bantime = 1w
|
|
||||||
findtime = 1d
|
|
||||||
|
|
||||||
|
|
||||||
# Generic filter for PAM. Has to be used with action which bans all
|
|
||||||
# ports such as iptables-allports, shorewall
|
|
||||||
|
|
||||||
[pam-generic]
|
|
||||||
# pam-generic filter can be customized to monitor specific subset of 'tty's
|
|
||||||
banaction = %(banaction_allports)s
|
|
||||||
logpath = %(syslog_authpriv)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[xinetd-fail]
|
|
||||||
|
|
||||||
banaction = iptables-multiport-log
|
|
||||||
logpath = %(syslog_daemon)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
maxretry = 2
|
|
||||||
|
|
||||||
|
|
||||||
# stunnel - need to set port for this
|
|
||||||
[stunnel]
|
|
||||||
|
|
||||||
logpath = /var/log/stunnel4/stunnel.log
|
|
||||||
|
|
||||||
|
|
||||||
[ejabberd-auth]
|
|
||||||
|
|
||||||
port = 5222
|
|
||||||
logpath = /var/log/ejabberd/ejabberd.log
|
|
||||||
|
|
||||||
|
|
||||||
[counter-strike]
|
|
||||||
|
|
||||||
logpath = /opt/cstrike/logs/L[0-9]*.log
|
|
||||||
# Firewall: http://www.cstrike-planet.com/faq/6
|
|
||||||
tcpport = 27030,27031,27032,27033,27034,27035,27036,27037,27038,27039
|
|
||||||
udpport = 1200,27000,27001,27002,27003,27004,27005,27006,27007,27008,27009,27010,27011,27012,27013,27014,27015
|
|
||||||
action = %(banaction)s[name=%(__name__)s-tcp, port="%(tcpport)s", protocol="tcp", chain="%(chain)s", actname=%(banaction)s-tcp]
|
|
||||||
%(banaction)s[name=%(__name__)s-udp, port="%(udpport)s", protocol="udp", chain="%(chain)s", actname=%(banaction)s-udp]
|
|
||||||
|
|
||||||
# consider low maxretry and a long bantime
|
|
||||||
# nobody except your own Nagios server should ever probe nrpe
|
|
||||||
[nagios]
|
|
||||||
|
|
||||||
logpath = %(syslog_daemon)s ; nrpe.cfg may define a different log_facility
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
maxretry = 1
|
|
||||||
|
|
||||||
|
|
||||||
[oracleims]
|
|
||||||
# see "oracleims" filter file for configuration requirement for Oracle IMS v6 and above
|
|
||||||
logpath = /opt/sun/comms/messaging64/log/mail.log_current
|
|
||||||
banaction = %(banaction_allports)s
|
|
||||||
|
|
||||||
[directadmin]
|
|
||||||
logpath = /var/log/directadmin/login.log
|
|
||||||
port = 2222
|
|
||||||
|
|
||||||
[portsentry]
|
|
||||||
logpath = /var/lib/portsentry/portsentry.history
|
|
||||||
maxretry = 1
|
|
||||||
|
|
||||||
[pass2allow-ftp]
|
|
||||||
# this pass2allow example allows FTP traffic after successful HTTP authentication
|
|
||||||
port = ftp,ftp-data,ftps,ftps-data
|
|
||||||
# knocking_url variable must be overridden to some secret value in jail.local
|
|
||||||
knocking_url = /knocking/
|
|
||||||
filter = apache-pass[knocking_url="%(knocking_url)s"]
|
|
||||||
# access log of the website with HTTP auth
|
|
||||||
logpath = %(apache_access_log)s
|
|
||||||
blocktype = RETURN
|
|
||||||
returntype = DROP
|
|
||||||
action = %(action_)s[blocktype=%(blocktype)s, returntype=%(returntype)s]
|
|
||||||
bantime = 1h
|
|
||||||
maxretry = 1
|
|
||||||
findtime = 1
|
|
||||||
|
|
||||||
|
|
||||||
[murmur]
|
|
||||||
# AKA mumble-server
|
|
||||||
port = 64738
|
|
||||||
action = %(banaction)s[name=%(__name__)s-tcp, port="%(port)s", protocol=tcp, chain="%(chain)s", actname=%(banaction)s-tcp]
|
|
||||||
%(banaction)s[name=%(__name__)s-udp, port="%(port)s", protocol=udp, chain="%(chain)s", actname=%(banaction)s-udp]
|
|
||||||
logpath = /var/log/mumble-server/mumble-server.log
|
|
||||||
|
|
||||||
|
|
||||||
[screensharingd]
|
|
||||||
# For Mac OS Screen Sharing Service (VNC)
|
|
||||||
logpath = /var/log/system.log
|
|
||||||
logencoding = utf-8
|
|
||||||
|
|
||||||
[haproxy-http-auth]
|
|
||||||
# HAProxy by default doesn't log to file you'll need to set it up to forward
|
|
||||||
# logs to a syslog server which would then write them to disk.
|
|
||||||
# See "haproxy-http-auth" filter for a brief cautionary note when setting
|
|
||||||
# maxretry and findtime.
|
|
||||||
logpath = /var/log/haproxy.log
|
|
||||||
|
|
||||||
[slapd]
|
|
||||||
port = ldap,ldaps
|
|
||||||
logpath = /var/log/slapd.log
|
|
||||||
|
|
||||||
[domino-smtp]
|
|
||||||
port = smtp,ssmtp
|
|
||||||
logpath = /home/domino01/data/IBM_TECHNICAL_SUPPORT/console.log
|
|
||||||
|
|
||||||
[phpmyadmin-syslog]
|
|
||||||
port = http,https
|
|
||||||
logpath = %(syslog_authpriv)s
|
|
||||||
backend = %(syslog_backend)s
|
|
||||||
|
|
||||||
|
|
||||||
[zoneminder]
|
|
||||||
# Zoneminder HTTP/HTTPS web interface auth
|
|
||||||
# Logs auth failures to apache2 error log
|
|
||||||
port = http,https
|
|
||||||
logpath = %(apache_error_log)s
|
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
[Definition]
|
|
||||||
|
|
||||||
failregex = ^<HOST> -.*GET .*/~.*
|
|
||||||
|
|
||||||
ignoreregex =
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
[Definition]
|
|
||||||
|
|
||||||
failregex = ^<HOST> -.*GET http.*
|
|
||||||
|
|
||||||
ignoreregex =
|
|
|
@ -1,6 +0,0 @@
|
||||||
[Definition]
|
|
||||||
|
|
||||||
failregex = ^<HOST> -.*GET.*(\.php|\.asp|\.exe|\.pl|\.cgi|\.scgi)
|
|
||||||
|
|
||||||
ignoreregex =
|
|
||||||
|
|
|
@ -1,421 +0,0 @@
|
||||||
# i3 config file (v4)
|
|
||||||
# Please see http://i3wm.org/docs/userguide.html for a complete reference!
|
|
||||||
|
|
||||||
# Set mod key (Mod1=<Alt>, Mod4=<Super>)
|
|
||||||
set $mod Mod4
|
|
||||||
|
|
||||||
# set default desktop layout (default is tiling)
|
|
||||||
# workspace_layout tabbed <stacking|tabbed>
|
|
||||||
|
|
||||||
# Configure border style <normal|1pixel|pixel xx|none|pixel>
|
|
||||||
default_border pixel 1
|
|
||||||
default_floating_border normal
|
|
||||||
|
|
||||||
# Hide borders
|
|
||||||
hide_edge_borders none
|
|
||||||
|
|
||||||
# change borders
|
|
||||||
bindsym $mod+u border none
|
|
||||||
bindsym $mod+y border pixel 1
|
|
||||||
bindsym $mod+n border normal
|
|
||||||
|
|
||||||
# Font for window titles. Will also be used by the bar unless a different font
|
|
||||||
# is used in the bar {} block below.
|
|
||||||
font xft:URWGothic-Book 11
|
|
||||||
|
|
||||||
# Use Mouse+$mod to drag floating windows
|
|
||||||
floating_modifier $mod
|
|
||||||
|
|
||||||
# start a terminal
|
|
||||||
bindsym $mod+Return exec terminal
|
|
||||||
|
|
||||||
# kill focused window
|
|
||||||
bindsym $mod+Shift+q kill
|
|
||||||
|
|
||||||
# start program launcher
|
|
||||||
bindsym $mod+d exec --no-startup-id dmenu_recency
|
|
||||||
|
|
||||||
# launch categorized menu
|
|
||||||
bindsym $mod+z exec --no-startup-id morc_menu
|
|
||||||
|
|
||||||
################################################################################################
|
|
||||||
## sound-section - DO NOT EDIT if you wish to automatically upgrade Alsa -> Pulseaudio later! ##
|
|
||||||
################################################################################################
|
|
||||||
|
|
||||||
exec --no-startup-id volumeicon
|
|
||||||
bindsym $mod+Ctrl+m exec terminal -e 'alsamixer'
|
|
||||||
#exec --no-startup-id pulseaudio
|
|
||||||
#exec --no-startup-id pa-applet
|
|
||||||
#bindsym $mod+Ctrl+m exec pavucontrol
|
|
||||||
|
|
||||||
################################################################################################
|
|
||||||
|
|
||||||
# Screen brightness controls
|
|
||||||
# bindsym XF86MonBrightnessUp exec "xbacklight -inc 10; notify-send 'brightness up'"
|
|
||||||
# bindsym XF86MonBrightnessDown exec "xbacklight -dec 10; notify-send 'brightness down'"
|
|
||||||
|
|
||||||
# Start Applications
|
|
||||||
bindsym $mod+Ctrl+b exec terminal -e 'bmenu'
|
|
||||||
bindsym $mod+F2 exec firefox
|
|
||||||
bindsym $mod+F3 exec bitwarden
|
|
||||||
bindsym $mod+F4 exec signal-desktop
|
|
||||||
# bindsym $mod+F3 exec ranger
|
|
||||||
bindsym $mod+Shift+F3 exec pcmanfm_pkexec
|
|
||||||
bindsym $mod+F5 exec terminal -e 'mocp'
|
|
||||||
bindsym $mod+t exec --no-startup-id pkill compton
|
|
||||||
bindsym $mod+Ctrl+t exec --no-startup-id compton -b
|
|
||||||
bindsym $mod+Shift+d --release exec "killall dunst; exec notify-send 'restart dunst'"
|
|
||||||
bindsym Print exec --no-startup-id i3-scrot
|
|
||||||
bindsym $mod+Print --release exec --no-startup-id i3-scrot -w
|
|
||||||
bindsym $mod+Shift+Print --release exec --no-startup-id i3-scrot -s
|
|
||||||
bindsym $mod+Shift+h exec xdg-open /usr/share/doc/manjaro/i3_help.pdf
|
|
||||||
bindsym $mod+Ctrl+x --release exec --no-startup-id xkill
|
|
||||||
|
|
||||||
# focus_follows_mouse no
|
|
||||||
|
|
||||||
# change focus
|
|
||||||
bindsym $mod+j focus left
|
|
||||||
bindsym $mod+k focus down
|
|
||||||
bindsym $mod+l focus up
|
|
||||||
bindsym $mod+semicolon focus right
|
|
||||||
|
|
||||||
# alternatively, you can use the cursor keys:
|
|
||||||
bindsym $mod+Left focus left
|
|
||||||
bindsym $mod+Down focus down
|
|
||||||
bindsym $mod+Up focus up
|
|
||||||
bindsym $mod+Right focus right
|
|
||||||
|
|
||||||
# move focused window
|
|
||||||
bindsym $mod+Shift+j move left
|
|
||||||
bindsym $mod+Shift+k move down
|
|
||||||
bindsym $mod+Shift+l move up
|
|
||||||
bindsym $mod+Shift+semicolon move right
|
|
||||||
|
|
||||||
# alternatively, you can use the cursor keys:
|
|
||||||
bindsym $mod+Shift+Left move left
|
|
||||||
bindsym $mod+Shift+Down move down
|
|
||||||
bindsym $mod+Shift+Up move up
|
|
||||||
bindsym $mod+Shift+Right move right
|
|
||||||
|
|
||||||
# workspace back and forth (with/without active container)
|
|
||||||
workspace_auto_back_and_forth yes
|
|
||||||
bindsym $mod+b workspace back_and_forth
|
|
||||||
bindsym $mod+Shift+b move container to workspace back_and_forth; workspace back_and_forth
|
|
||||||
|
|
||||||
# split orientation
|
|
||||||
bindsym $mod+h split h;exec notify-send 'tile horizontally'
|
|
||||||
bindsym $mod+v split v;exec notify-send 'tile vertically'
|
|
||||||
bindsym $mod+q split toggle
|
|
||||||
|
|
||||||
# toggle fullscreen mode for the focused container
|
|
||||||
bindsym $mod+f fullscreen toggle
|
|
||||||
|
|
||||||
# change container layout (stacked, tabbed, toggle split)
|
|
||||||
bindsym $mod+s layout stacking
|
|
||||||
bindsym $mod+w layout tabbed
|
|
||||||
bindsym $mod+e layout toggle split
|
|
||||||
|
|
||||||
# toggle tiling / floating
|
|
||||||
bindsym $mod+Shift+space floating toggle
|
|
||||||
|
|
||||||
# change focus between tiling / floating windows
|
|
||||||
bindsym $mod+space focus mode_toggle
|
|
||||||
|
|
||||||
# toggle sticky
|
|
||||||
bindsym $mod+Shift+s sticky toggle
|
|
||||||
|
|
||||||
# focus the parent container
|
|
||||||
bindsym $mod+a focus parent
|
|
||||||
|
|
||||||
# move the currently focused window to the scratchpad
|
|
||||||
bindsym $mod+Shift+minus move scratchpad
|
|
||||||
|
|
||||||
# Show the next scratchpad window or hide the focused scratchpad window.
|
|
||||||
# If there are multiple scratchpad windows, this command cycles through them.
|
|
||||||
bindsym $mod+minus scratchpad show
|
|
||||||
|
|
||||||
#navigate workspaces next / previous
|
|
||||||
bindsym $mod+Ctrl+Right workspace next
|
|
||||||
bindsym $mod+Ctrl+Left workspace prev
|
|
||||||
|
|
||||||
# Workspace names
|
|
||||||
# to display names or symbols instead of plain workspace numbers you can use
|
|
||||||
# something like: set $ws1 1:mail
|
|
||||||
# set $ws2 2:
|
|
||||||
set $ws1 1
|
|
||||||
set $ws2 2
|
|
||||||
set $ws3 3
|
|
||||||
set $ws4 4
|
|
||||||
set $ws5 5
|
|
||||||
set $ws6 6
|
|
||||||
set $ws7 7
|
|
||||||
set $ws8 8
|
|
||||||
|
|
||||||
# switch to workspace
|
|
||||||
bindsym $mod+1 workspace $ws1
|
|
||||||
bindsym $mod+2 workspace $ws2
|
|
||||||
bindsym $mod+3 workspace $ws3
|
|
||||||
bindsym $mod+4 workspace $ws4
|
|
||||||
bindsym $mod+5 workspace $ws5
|
|
||||||
bindsym $mod+6 workspace $ws6
|
|
||||||
bindsym $mod+7 workspace $ws7
|
|
||||||
bindsym $mod+8 workspace $ws8
|
|
||||||
|
|
||||||
# Move focused container to workspace
|
|
||||||
bindsym $mod+Ctrl+1 move container to workspace $ws1
|
|
||||||
bindsym $mod+Ctrl+2 move container to workspace $ws2
|
|
||||||
bindsym $mod+Ctrl+3 move container to workspace $ws3
|
|
||||||
bindsym $mod+Ctrl+4 move container to workspace $ws4
|
|
||||||
bindsym $mod+Ctrl+5 move container to workspace $ws5
|
|
||||||
bindsym $mod+Ctrl+6 move container to workspace $ws6
|
|
||||||
bindsym $mod+Ctrl+7 move container to workspace $ws7
|
|
||||||
bindsym $mod+Ctrl+8 move container to workspace $ws8
|
|
||||||
|
|
||||||
# Move to workspace with focused container
|
|
||||||
bindsym $mod+Shift+1 move container to workspace $ws1; workspace $ws1
|
|
||||||
bindsym $mod+Shift+2 move container to workspace $ws2; workspace $ws2
|
|
||||||
bindsym $mod+Shift+3 move container to workspace $ws3; workspace $ws3
|
|
||||||
bindsym $mod+Shift+4 move container to workspace $ws4; workspace $ws4
|
|
||||||
bindsym $mod+Shift+5 move container to workspace $ws5; workspace $ws5
|
|
||||||
bindsym $mod+Shift+6 move container to workspace $ws6; workspace $ws6
|
|
||||||
bindsym $mod+Shift+7 move container to workspace $ws7; workspace $ws7
|
|
||||||
bindsym $mod+Shift+8 move container to workspace $ws8; workspace $ws8
|
|
||||||
|
|
||||||
# Open applications on specific workspaces
|
|
||||||
# assign [class="Thunderbird"] $ws1
|
|
||||||
# assign [class="Pale moon"] $ws2
|
|
||||||
# assign [class="Pcmanfm"] $ws3
|
|
||||||
# assign [class="Skype"] $ws5
|
|
||||||
|
|
||||||
# Open specific applications in floating mode
|
|
||||||
for_window [title="alsamixer"] floating enable border pixel 1
|
|
||||||
for_window [class="calamares"] floating enable border normal
|
|
||||||
for_window [class="Clipgrab"] floating enable
|
|
||||||
for_window [title="File Transfer*"] floating enable
|
|
||||||
for_window [class="fpakman"] floating enable
|
|
||||||
for_window [class="Galculator"] floating enable border pixel 1
|
|
||||||
for_window [class="GParted"] floating enable border normal
|
|
||||||
for_window [title="i3_help"] floating enable sticky enable border normal
|
|
||||||
for_window [class="Lightdm-settings"] floating enable
|
|
||||||
for_window [class="Lxappearance"] floating enable sticky enable border normal
|
|
||||||
for_window [class="Manjaro-hello"] floating enable
|
|
||||||
for_window [class="Manjaro Settings Manager"] floating enable border normal
|
|
||||||
for_window [title="MuseScore: Play Panel"] floating enable
|
|
||||||
for_window [class="Nitrogen"] floating enable sticky enable border normal
|
|
||||||
for_window [class="Oblogout"] fullscreen enable
|
|
||||||
for_window [class="octopi"] floating enable
|
|
||||||
for_window [title="About Pale Moon"] floating enable
|
|
||||||
for_window [class="Pamac-manager"] floating enable
|
|
||||||
for_window [class="Pavucontrol"] floating enable
|
|
||||||
for_window [class="qt5ct"] floating enable sticky enable border normal
|
|
||||||
for_window [class="Qtconfig-qt4"] floating enable sticky enable border normal
|
|
||||||
for_window [class="Simple-scan"] floating enable border normal
|
|
||||||
for_window [class="(?i)System-config-printer.py"] floating enable border normal
|
|
||||||
for_window [class="Skype"] floating enable border normal
|
|
||||||
for_window [class="Timeset-gui"] floating enable border normal
|
|
||||||
for_window [class="(?i)virtualbox"] floating enable border normal
|
|
||||||
for_window [class="Xfburn"] floating enable
|
|
||||||
|
|
||||||
# switch to workspace with urgent window automatically
|
|
||||||
for_window [urgent=latest] focus
|
|
||||||
|
|
||||||
# reload the configuration file
|
|
||||||
bindsym $mod+Shift+c reload
|
|
||||||
|
|
||||||
# restart i3 inplace (preserves your layout/session, can be used to upgrade i3)
|
|
||||||
bindsym $mod+Shift+r restart
|
|
||||||
|
|
||||||
# exit i3 (logs you out of your X session)
|
|
||||||
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -b 'Yes, exit i3' 'i3-msg exit'"
|
|
||||||
|
|
||||||
# Set shut down, restart and locking features
|
|
||||||
bindsym $mod+0 mode "$mode_system"
|
|
||||||
set $mode_system (l)ock, (e)xit, switch_(u)ser, (s)uspend, (h)ibernate, (r)eboot, (Shift+s)hutdown
|
|
||||||
mode "$mode_system" {
|
|
||||||
bindsym l exec --no-startup-id i3exit lock, mode "default"
|
|
||||||
bindsym s exec --no-startup-id i3exit suspend, mode "default"
|
|
||||||
bindsym u exec --no-startup-id i3exit switch_user, mode "default"
|
|
||||||
bindsym e exec --no-startup-id i3exit logout, mode "default"
|
|
||||||
bindsym h exec --no-startup-id i3exit hibernate, mode "default"
|
|
||||||
bindsym r exec --no-startup-id i3exit reboot, mode "default"
|
|
||||||
bindsym Shift+s exec --no-startup-id i3exit shutdown, mode "default"
|
|
||||||
|
|
||||||
# exit system mode: "Enter" or "Escape"
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Resize window (you can also use the mouse for that)
|
|
||||||
bindsym $mod+r mode "resize"
|
|
||||||
mode "resize" {
|
|
||||||
# These bindings trigger as soon as you enter the resize mode
|
|
||||||
# Pressing left will shrink the window’s width.
|
|
||||||
# Pressing right will grow the window’s width.
|
|
||||||
# Pressing up will shrink the window’s height.
|
|
||||||
# Pressing down will grow the window’s height.
|
|
||||||
bindsym j resize shrink width 5 px or 5 ppt
|
|
||||||
bindsym k resize grow height 5 px or 5 ppt
|
|
||||||
bindsym l resize shrink height 5 px or 5 ppt
|
|
||||||
bindsym semicolon resize grow width 5 px or 5 ppt
|
|
||||||
|
|
||||||
# same bindings, but for the arrow keys
|
|
||||||
bindsym Left resize shrink width 10 px or 10 ppt
|
|
||||||
bindsym Down resize grow height 10 px or 10 ppt
|
|
||||||
bindsym Up resize shrink height 10 px or 10 ppt
|
|
||||||
bindsym Right resize grow width 10 px or 10 ppt
|
|
||||||
|
|
||||||
# exit resize mode: Enter or Escape
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
|
|
||||||
# Lock screen
|
|
||||||
bindsym $mod+9 exec --no-startup-id blurlock
|
|
||||||
|
|
||||||
# Autostart applications
|
|
||||||
exec --no-startup-id /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
|
|
||||||
exec --no-startup-id nitrogen --restore; sleep 1; compton -b
|
|
||||||
exec --no-startup-id manjaro-hello
|
|
||||||
exec --no-startup-id nm-applet
|
|
||||||
exec --no-startup-id xfce4-power-manager
|
|
||||||
exec --no-startup-id pamac-tray
|
|
||||||
exec --no-startup-id clipit
|
|
||||||
# exec --no-startup-id blueman-applet
|
|
||||||
# exec_always --no-startup-id sbxkb
|
|
||||||
exec --no-startup-id start_conky_maia
|
|
||||||
# exec --no-startup-id start_conky_green
|
|
||||||
exec --no-startup-id xautolock -time 10 -locker blurlock
|
|
||||||
exec_always --no-startup-id ff-theme-util
|
|
||||||
exec_always --no-startup-id fix_xcursor
|
|
||||||
|
|
||||||
# Color palette used for the terminal ( ~/.Xresources file )
|
|
||||||
# Colors are gathered based on the documentation:
|
|
||||||
# https://i3wm.org/docs/userguide.html#xresources
|
|
||||||
# Change the variable name at the place you want to match the color
|
|
||||||
# of your terminal like this:
|
|
||||||
# [example]
|
|
||||||
# If you want your bar to have the same background color as your
|
|
||||||
# terminal background change the line 362 from:
|
|
||||||
# background #14191D
|
|
||||||
# to:
|
|
||||||
# background $term_background
|
|
||||||
# Same logic applied to everything else.
|
|
||||||
set_from_resource $term_background background
|
|
||||||
set_from_resource $term_foreground foreground
|
|
||||||
set_from_resource $term_color0 color0
|
|
||||||
set_from_resource $term_color1 color1
|
|
||||||
set_from_resource $term_color2 color2
|
|
||||||
set_from_resource $term_color3 color3
|
|
||||||
set_from_resource $term_color4 color4
|
|
||||||
set_from_resource $term_color5 color5
|
|
||||||
set_from_resource $term_color6 color6
|
|
||||||
set_from_resource $term_color7 color7
|
|
||||||
set_from_resource $term_color8 color8
|
|
||||||
set_from_resource $term_color9 color9
|
|
||||||
set_from_resource $term_color10 color10
|
|
||||||
set_from_resource $term_color11 color11
|
|
||||||
set_from_resource $term_color12 color12
|
|
||||||
set_from_resource $term_color13 color13
|
|
||||||
set_from_resource $term_color14 color14
|
|
||||||
set_from_resource $term_color15 color15
|
|
||||||
|
|
||||||
# Start i3bar to display a workspace bar (plus the system information i3status if available)
|
|
||||||
bar {
|
|
||||||
i3bar_command i3bar
|
|
||||||
# status_command i3status
|
|
||||||
status_command ~/.i3/bumblebee-status/bumblebee-status -m kernel git github indicator ping caffeine disk:root cpu sensors memory todo pacman weather time date -p weather.unit="imperial" timetz.format="%H:%M" weather.showcity=false github.token=ec7086ba80092cd51c1768e1f5f1e0040848b299 ping.address=knoats.com date.left-click="gsimplecal" root.path=/ time.format="%H:%M" date.format="%D" -t greyish-powerline
|
|
||||||
position top
|
|
||||||
font pango:Inconsolata 10
|
|
||||||
|
|
||||||
## please set your primary output first. Example: 'xrandr --output eDP1 --primary'
|
|
||||||
# tray_output primary
|
|
||||||
# tray_output eDP1
|
|
||||||
|
|
||||||
bindsym button4 nop
|
|
||||||
bindsym button5 nop
|
|
||||||
# font xft:URWGothic-Book 11
|
|
||||||
strip_workspace_numbers yes
|
|
||||||
|
|
||||||
colors {
|
|
||||||
background #222D31
|
|
||||||
statusline #F9FAF9
|
|
||||||
separator #454947
|
|
||||||
|
|
||||||
# border backgr. text
|
|
||||||
focused_workspace #F9FAF9 #16a085 #292F34
|
|
||||||
active_workspace #595B5B #353836 #FDF6E3
|
|
||||||
inactive_workspace #595B5B #222D31 #EEE8D5
|
|
||||||
binding_mode #16a085 #2C2C2C #F9FAF9
|
|
||||||
urgent_workspace #16a085 #FDF6E3 #E5201D
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# hide/unhide i3status bar
|
|
||||||
bindsym $mod+m bar mode toggle
|
|
||||||
|
|
||||||
# Theme colors
|
|
||||||
# class border backgr. text indic. child_border
|
|
||||||
client.focused #556064 #556064 #80FFF9 #FDF6E3
|
|
||||||
client.focused_inactive #2F3D44 #2F3D44 #1ABC9C #454948
|
|
||||||
client.unfocused #2F3D44 #2F3D44 #1ABC9C #454948
|
|
||||||
client.urgent #CB4B16 #FDF6E3 #1ABC9C #268BD2
|
|
||||||
client.placeholder #000000 #0c0c0c #ffffff #000000
|
|
||||||
|
|
||||||
client.background #2B2C2B
|
|
||||||
|
|
||||||
#############################
|
|
||||||
### settings for i3-gaps: ###
|
|
||||||
#############################
|
|
||||||
|
|
||||||
# Set inner/outer gaps
|
|
||||||
gaps inner 14
|
|
||||||
gaps outer -2
|
|
||||||
|
|
||||||
# Additionally, you can issue commands with the following syntax. This is useful to bind keys to changing the gap size.
|
|
||||||
# gaps inner|outer current|all set|plus|minus <px>
|
|
||||||
# gaps inner all set 10
|
|
||||||
# gaps outer all plus 5
|
|
||||||
|
|
||||||
# Smart gaps (gaps used if only more than one container on the workspace)
|
|
||||||
smart_gaps on
|
|
||||||
|
|
||||||
# Smart borders (draw borders around container only if it is not the only container on this workspace)
|
|
||||||
# on|no_gaps (on=always activate and no_gaps=only activate if the gap size to the edge of the screen is 0)
|
|
||||||
smart_borders on
|
|
||||||
|
|
||||||
# Press $mod+Shift+g to enter the gap mode. Choose o or i for modifying outer/inner gaps. Press one of + / - (in-/decrement for current workspace) or 0 (remove gaps for current workspace). If you also press Shift with these keys, the change will be global for all workspaces.
|
|
||||||
set $mode_gaps Gaps: (o) outer, (i) inner
|
|
||||||
set $mode_gaps_outer Outer Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
|
||||||
set $mode_gaps_inner Inner Gaps: +|-|0 (local), Shift + +|-|0 (global)
|
|
||||||
bindsym $mod+Shift+g mode "$mode_gaps"
|
|
||||||
|
|
||||||
mode "$mode_gaps" {
|
|
||||||
bindsym o mode "$mode_gaps_outer"
|
|
||||||
bindsym i mode "$mode_gaps_inner"
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
mode "$mode_gaps_inner" {
|
|
||||||
bindsym plus gaps inner current plus 5
|
|
||||||
bindsym minus gaps inner current minus 5
|
|
||||||
bindsym 0 gaps inner current set 0
|
|
||||||
|
|
||||||
bindsym Shift+plus gaps inner all plus 5
|
|
||||||
bindsym Shift+minus gaps inner all minus 5
|
|
||||||
bindsym Shift+0 gaps inner all set 0
|
|
||||||
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
||||||
mode "$mode_gaps_outer" {
|
|
||||||
bindsym plus gaps outer current plus 5
|
|
||||||
bindsym minus gaps outer current minus 5
|
|
||||||
bindsym 0 gaps outer current set 0
|
|
||||||
|
|
||||||
bindsym Shift+plus gaps outer all plus 5
|
|
||||||
bindsym Shift+minus gaps outer all minus 5
|
|
||||||
bindsym Shift+0 gaps outer all set 0
|
|
||||||
|
|
||||||
bindsym Return mode "default"
|
|
||||||
bindsym Escape mode "default"
|
|
||||||
}
|
|
|
@ -1,15 +0,0 @@
|
||||||
[
|
|
||||||
{
|
|
||||||
"git": {
|
|
||||||
"token": "84014fake588token55b46751for4297u361223",
|
|
||||||
"id": "shaunrd0",
|
|
||||||
"name": "Shaun Reed",
|
|
||||||
"email": "shaunrd0@gmail.com"
|
|
||||||
},
|
|
||||||
|
|
||||||
"repos": {
|
|
||||||
"klips": "/home/kapper/Code/test",
|
|
||||||
"cmake": "/home/kapper/Code/cmake"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -1,62 +0,0 @@
|
||||||
###############################################################################
|
|
||||||
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
|
||||||
## ##
|
|
||||||
## A test script for using Git APIs and gitpython module ##
|
|
||||||
###############################################################################
|
|
||||||
# gittest.py
|
|
||||||
|
|
||||||
import git
|
|
||||||
import requests
|
|
||||||
import json
|
|
||||||
|
|
||||||
|
|
||||||
def local_status(path):
|
|
||||||
repo = git.Repo(path)
|
|
||||||
if repo.bare is True:
|
|
||||||
print("Error loading repository located at %s, check that it is a repository\n" % path)
|
|
||||||
else:
|
|
||||||
print("Loaded local repository: %s\n\tOrigin URL: %s" % (repo.description, repo.remotes['origin']))
|
|
||||||
return repo
|
|
||||||
|
|
||||||
def remote_status(user, repo):
|
|
||||||
reply = requests.get('https://api.github.com/repos/%s/%s/commits' % (user, repo))
|
|
||||||
commits = reply.json()
|
|
||||||
remoteCommit = []
|
|
||||||
remoteCommit.append(commits[0]['commit']['author']['name'])
|
|
||||||
remoteCommit.append(commits[0]['commit']['author']['email'])
|
|
||||||
remoteCommit.append(commits[0]['commit']['author']['date'])
|
|
||||||
remoteCommit.append(commits[0]['commit']['message'])
|
|
||||||
print("Fetched most recent commit by %s <%s> on %s \n\tCommit message: %s\n" % (tuple(remoteCommit)))
|
|
||||||
return remoteCommit
|
|
||||||
|
|
||||||
def load_config():
|
|
||||||
global user
|
|
||||||
global paths
|
|
||||||
with open(config, 'r') as f:
|
|
||||||
loadedConfig = json.load(f)
|
|
||||||
user = loadedConfig[0]['git']
|
|
||||||
paths = loadedConfig[0]['repos']
|
|
||||||
|
|
||||||
def load_repo(path):
|
|
||||||
global user
|
|
||||||
local = local_status(paths[path])
|
|
||||||
print("\tRepo: ", repo)
|
|
||||||
remote_status(user["id"], repo)
|
|
||||||
print(local.active_branch.name)
|
|
||||||
|
|
||||||
global user
|
|
||||||
global paths
|
|
||||||
user = []
|
|
||||||
paths = []
|
|
||||||
config = 'gitloaded.json'
|
|
||||||
|
|
||||||
# Load user JSON config
|
|
||||||
load_config()
|
|
||||||
print("Loaded user: %s\n" % user)
|
|
||||||
print("Loaded paths: %s\n" % paths)
|
|
||||||
|
|
||||||
for repo in paths:
|
|
||||||
print("Loading path: %s" % paths[repo])
|
|
||||||
load_repo(repo)
|
|
||||||
print()
|
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
#include<iostream>
|
|
||||||
#include<string>
|
|
||||||
#include<sstream>
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
class C : public B {
|
|
||||||
// Private implied..
|
|
||||||
public:
|
|
||||||
// Code...
|
|
||||||
};
|
|
||||||
|
|
||||||
struct D {
|
|
||||||
// Public implied..
|
|
||||||
private:
|
|
||||||
// Code...
|
|
||||||
};
|
|
||||||
|
|
||||||
void f(int* p, int max)
|
|
||||||
{
|
|
||||||
if (p) {
|
|
||||||
// Code...
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i<max; ++i) {
|
|
||||||
// Code...
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
int i = 127;
|
|
||||||
string ss = itos(i);
|
|
||||||
const char* p = ss.c_str();
|
|
||||||
|
|
||||||
cout << ss << " " << p << "\n";
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,48 +0,0 @@
|
||||||
This is a basic rule-of-thumb for using Doxygen comments to document code
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A brief history of JavaDoc-style (C-style) comments.
|
|
||||||
*
|
|
||||||
* This is the typical JavaDoc-style C-style comment. It starts with two
|
|
||||||
* asterisks.
|
|
||||||
*
|
|
||||||
* @param theory Even if there is only one possible unified theory. it is just a
|
|
||||||
* set of rules and equations.
|
|
||||||
*/
|
|
||||||
void cstyle( int theory );
|
|
||||||
|
|
||||||
/*******************************************************************************
|
|
||||||
* A brief history of JavaDoc-style (C-style) banner comments.
|
|
||||||
*
|
|
||||||
* This is the typical JavaDoc-style C-style "banner" comment. It starts with
|
|
||||||
* a forward slash followed by some number, n, of asterisks, where n > 2. It's
|
|
||||||
* written this way to be more "visible" to developers who are reading the
|
|
||||||
* source code.
|
|
||||||
*
|
|
||||||
* Often, developers are unaware that this is not (by default) a valid Doxygen
|
|
||||||
* comment block!
|
|
||||||
*
|
|
||||||
* However, as long as JAVADOC_BLOCK = YES is added to the Doxyfile, it will
|
|
||||||
* work as expected.
|
|
||||||
*
|
|
||||||
* This style of commenting behaves well with clang-format.
|
|
||||||
*
|
|
||||||
* @param theory Even if there is only one possible unified theory. it is just a
|
|
||||||
* set of rules and equations.
|
|
||||||
******************************************************************************/
|
|
||||||
void javadocBanner( int theory );
|
|
||||||
|
|
||||||
/***************************************************************************//**
|
|
||||||
* A brief history of Doxygen-style banner comments.
|
|
||||||
*
|
|
||||||
* This is a Doxygen-style C-style "banner" comment. It starts with a "normal"
|
|
||||||
* comment and is then converted to a "special" comment block near the end of
|
|
||||||
* the first line. It is written this way to be more "visible" to developers
|
|
||||||
* who are reading the source code.
|
|
||||||
* This style of commenting behaves poorly with clang-format.
|
|
||||||
*
|
|
||||||
* @param theory Even if there is only one possible unified theory. it is just a
|
|
||||||
* set of rules and equations.
|
|
||||||
******************************************************************************/
|
|
||||||
void doxygenBanner( int theory );
|
|
||||||
|
|
|
@ -1,200 +0,0 @@
|
||||||
### Scripts
|
|
||||||
|
|
||||||
I write these scripts for my own use, and you may need to tweak them slightly to suit your needs.
|
|
||||||
|
|
||||||
Never run a script you can't read or understand. Comments can be found in the scripts, usually explaining them block-by-block. Below is my personal use cases for the scripts, to provide further insight into how I use them and how they might be useful to you.
|
|
||||||
|
|
||||||
adduser.sh
|
|
||||||
------------
|
|
||||||
|
|
||||||
This script was made on Ubuntu when creating a few users across multiple hosts. Syntax requires at least 2 arguments when running the script, otherwise help text will be output warning of correct usage and available options. The script can be used to configure sudo on a new user if the script itself is ran with sudo. Otherwise, creating a default user with or without a password is possible without sudo. If the script is ran on an existing user or a userID that is already in use is passed, no changes will happen in user-creation but you may still allow the user to sudo and change their password.
|
|
||||||
|
|
||||||
Syntax -
|
|
||||||
|
|
||||||
`./adduser` (Help text)
|
|
||||||
`./adduser jeff 1005` (Create user jeff with userID 1005, can't configure sudo, prompt for possible password creation)
|
|
||||||
|
|
||||||
`sudo ./adduser` (Help text)
|
|
||||||
`sudo ./adduser jeffy 1010` (Create user jeffy with userID 1010, can configure sudo, possible password creation)
|
|
||||||
|
|
||||||
Didn't configure sudo, and don't want to do so manually? Re-run the script on the existing user just as above, and accept the prompt for sudo configuration.
|
|
||||||
`sudo ./adduser jeff 1005` (User creation will fail, follow prompts to configure sudo and / or reset user password)
|
|
||||||
|
|
||||||
cmake-build.sh
|
|
||||||
------------
|
|
||||||
|
|
||||||
I usually run this script within whatever directory I'm working in, hence the infinite loop, I leave the script running until I'm done with my work and move to a new directory / cmake project.
|
|
||||||
|
|
||||||
|
|
||||||
setup-vim.sh
|
|
||||||
------------
|
|
||||||
|
|
||||||
To use this script, run `sudo ./setup-vim.sh` as seen below. Vim configs used for this script are stored in `/etc/config-vim/`. When the script runs into previous vimrc configs they are backed up into `/etc/config-vim/backups/`
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cloud_user@shaunrd03c:~$ ./setup-vim.sh
|
|
||||||
This script must be ran with sudo...
|
|
||||||
sudo ./setup-vim.sh
|
|
||||||
cloud_user@shaunrd03c:~$ sudo ./setup-vim.sh
|
|
||||||
|
|
||||||
Enter 1 to configure vim with the Klips repository, any other value to exit.
|
|
||||||
The up-to-date .vimrc config can be found here: https://github.com/shaunrd0/klips/tree/master/configs
|
|
||||||
Configuring Vim with this tool will update / upgrade your packages
|
|
||||||
|
|
||||||
|
|
||||||
1
|
|
||||||
|
|
||||||
Updating, upgrading required packages...
|
|
||||||
Hit:1 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic InRelease
|
|
||||||
Hit:2 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-updates InRelease
|
|
||||||
Hit:3 http://us-east-1.ec2.archive.ubuntu.com/ubuntu bionic-backports InRelease
|
|
||||||
Hit:4 http://security.ubuntu.com/ubuntu bionic-security InRelease
|
|
||||||
Reading package lists... Done
|
|
||||||
Building dependency tree
|
|
||||||
Reading state information... Done
|
|
||||||
32 packages can be upgraded. Run 'apt list --upgradable' to see them.
|
|
||||||
Reading package lists... Done
|
|
||||||
Building dependency tree
|
|
||||||
Reading state information... Done
|
|
||||||
Calculating upgrade... Done
|
|
||||||
The following packages were automatically installed and are no longer required:
|
|
||||||
linux-aws-headers-4.15.0-1043 linux-headers-4.15.0-1043-aws linux-image-4.15.0-1043-aws
|
|
||||||
linux-modules-4.15.0-1043-aws
|
|
||||||
Use 'sudo apt autoremove' to remove them.
|
|
||||||
The following packages will be upgraded:
|
|
||||||
bind9-host bsdutils dnsutils dpkg dpkg-dev fdisk libbind9-160 libblkid1 libdns-export1100 libdns1100
|
|
||||||
libdpkg-perl libfdisk1 libirs160 libisc-export169 libisc169 libisccc160 libisccfg160 libldap-2.4-2
|
|
||||||
libldap-common liblwres160 libmount1 libprocps6 libsmartcols1 libsoup-gnome2.4-1 libsoup2.4-1
|
|
||||||
libuuid1 mount procps snapd util-linux uuid-runtime xkb-data
|
|
||||||
32 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
|
|
||||||
Need to get 20.5 MB of archives.
|
|
||||||
After this operation, 1001 kB of additional disk space will be used.
|
|
||||||
Reading package lists... Done
|
|
||||||
Building dependency tree
|
|
||||||
Reading state information... Done
|
|
||||||
git is already the newest version (1:2.17.1-1ubuntu0.4).
|
|
||||||
vim is already the newest version (2:8.0.1453-1ubuntu1.1).
|
|
||||||
The following packages were automatically installed and are no longer required:
|
|
||||||
linux-aws-headers-4.15.0-1043 linux-headers-4.15.0-1043-aws linux-image-4.15.0-1043-aws
|
|
||||||
linux-modules-4.15.0-1043-aws
|
|
||||||
Use 'sudo apt autoremove' to remove them.
|
|
||||||
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
|
|
||||||
|
|
||||||
Gathering resources from Klips repository..
|
|
||||||
Cloning into 'temp'...
|
|
||||||
remote: Enumerating objects: 339, done.
|
|
||||||
remote: Counting objects: 100% (339/339), done.
|
|
||||||
remote: Compressing objects: 100% (221/221), done.
|
|
||||||
remote: Total 339 (delta 135), reused 283 (delta 82), pack-reused 0
|
|
||||||
Receiving objects: 100% (339/339), 59.76 KiB | 19.92 MiB/s, done.
|
|
||||||
Resolving deltas: 100% (135/135), done.
|
|
||||||
mkdir: created directory '/etc/config-vim'
|
|
||||||
'temp/README.md' -> '/etc/config-vim/README.md'
|
|
||||||
'temp/configs/' -> '/etc/config-vim/configs'
|
|
||||||
'temp/configs/.vimrc' -> '/etc/config-vim/configs/.vimrc'
|
|
||||||
'temp/configs/.vimrc-README' -> '/etc/config-vim/configs/.vimrc-README'
|
|
||||||
'temp/configs/fail2ban' -> '/etc/config-vim/configs/fail2ban'
|
|
||||||
'temp/configs/fail2ban/README.md' -> '/etc/config-vim/configs/fail2ban/README.md'
|
|
||||||
'temp/configs/fail2ban/jail.local' -> '/etc/config-vim/configs/fail2ban/jail.local'
|
|
||||||
'temp/configs/fail2ban/nginx-nohome.conf' -> '/etc/config-vim/configs/fail2ban/nginx-nohome.conf'
|
|
||||||
'temp/configs/fail2ban/nginx-noproxy.conf' -> '/etc/config-vim/configs/fail2ban/nginx-noproxy.conf'
|
|
||||||
'temp/configs/fail2ban/nginx-noscript.conf' -> '/etc/config-vim/configs/fail2ban/nginx-noscript.conf'
|
|
||||||
|
|
||||||
Klips configs gathered
|
|
||||||
See /etc/config-vim/README.md for more information.
|
|
||||||
|
|
||||||
mkdir: created directory '/etc/config-vim/backup/'
|
|
||||||
|
|
||||||
Backup directory created - /etc/config-vim/backup/
|
|
||||||
mv: cannot stat '/home/cloud_user/.vimrc': No such file or directory
|
|
||||||
mv: cannot stat '/etc/skel/.vimrc': No such file or directory
|
|
||||||
renamed '/usr/share/vim/vimrc' -> '/etc/config-vim/backup/share/vimrc'
|
|
||||||
renamed '/etc/vim/vimrc' -> '/etc/config-vim/backup/etc/vimrc'
|
|
||||||
Your local .vimrc configurations have been stashed in /etc/config-vim/backup/
|
|
||||||
|
|
||||||
New ~/.vimrc configuration installed.
|
|
||||||
New /etc/skel/.vimrc configuration installed.
|
|
||||||
New /etc/vim/vimrc configuration installed.
|
|
||||||
|
|
||||||
Removing any previous installations of Pathogen...
|
|
||||||
|
|
||||||
Installing Pathogen plugin manager for Vim....
|
|
||||||
|
|
||||||
If they don't exist, we will create the following directories:
|
|
||||||
/usr/share/vim/vimfiles/autoload/ /usr/share/vim/vimfiles/bundle/mkdir: created directory '/usr/share/vim/vimfiles/autoload'
|
|
||||||
mkdir: created directory '/usr/share/vim/vimfiles/bundle'
|
|
||||||
|
|
||||||
Pathogen has been installed! Plugins plugins can now be easily installed.
|
|
||||||
|
|
||||||
Removing plugins installed by this tool...
|
|
||||||
rm: cannot remove '/usr/share/vim/vimfiles/bundle/*': No such file or directory
|
|
||||||
/usr/share/vim/vimfiles/bundle ~
|
|
||||||
|
|
||||||
Installing updated plugins...
|
|
||||||
Cloning into 'supertab'...
|
|
||||||
remote: Enumerating objects: 687, done.
|
|
||||||
remote: Total 687 (delta 0), reused 0 (delta 0), pack-reused 687
|
|
||||||
Receiving objects: 100% (687/687), 186.15 KiB | 20.68 MiB/s, done.
|
|
||||||
Resolving deltas: 100% (267/267), done.
|
|
||||||
|
|
||||||
Supertab plugin has been installed
|
|
||||||
|
|
||||||
Cloning into 'clang_complete'...
|
|
||||||
remote: Enumerating objects: 2720, done.
|
|
||||||
remote: Total 2720 (delta 0), reused 0 (delta 0), pack-reused 2720
|
|
||||||
Receiving objects: 100% (2720/2720), 725.96 KiB | 25.03 MiB/s, done.
|
|
||||||
Resolving deltas: 100% (1132/1132), done.
|
|
||||||
|
|
||||||
Clang Completion plugin has been installed
|
|
||||||
|
|
||||||
|
|
||||||
Vim has been configured with the Klips repository.
|
|
||||||
|
|
||||||
Configuration Changes:
|
|
||||||
~
|
|
||||||
Packages Installed / Updated:
|
|
||||||
- vim, git, clang
|
|
||||||
|
|
||||||
Vimrc Settings:
|
|
||||||
- tabwidth is 2, and set to insert SPACE characters instead of TAB symbols with expandtab
|
|
||||||
- shiftwidth is 2 so we can compensate for the conflict with default tab settings
|
|
||||||
- autoindent is on, when moving to a newline vim will indent to the current depth
|
|
||||||
- syntax highlighting is on
|
|
||||||
- mouse interaction is enabled when supported by connecting systems
|
|
||||||
-- https://github.com/shaunrd0/klips/tree/master/configs
|
|
||||||
|
|
||||||
Plugin Settings:
|
|
||||||
- Pathogen vim plugin manager has been installed and .vimrc configured for its use.
|
|
||||||
-- Install new vim plugins by cloning their repositories into ~/.vim/bundle/
|
|
||||||
-- https://github.com/tpope/vim-pathogen
|
|
||||||
|
|
||||||
- Clang_complete vim plugin has been installed and .vimrc configured for its use.
|
|
||||||
- Code-completion is enabled with default clang_complete settings
|
|
||||||
-- https://github.com/xavierd/clang_complete
|
|
||||||
--If you have issues with Clang_complete library linking / loading, check the directory / commands below -
|
|
||||||
cd /usr/lib/x86_64-unknown-linux
|
|
||||||
ln -s libclang.so.1 libclang.so
|
|
||||||
|
|
||||||
- Supertab vim plugin has been installed and .vimrc configured for its use.
|
|
||||||
- Allows the use of TAB to enable code-completion context menu
|
|
||||||
-- https://github.com/ervandew/supertab
|
|
||||||
|
|
||||||
- Enable nocp
|
|
||||||
-- Ensures vim is not set to be compatible with older versions of vi
|
|
||||||
-- Removing this could diable enhancements on some systems
|
|
||||||
-- :help 'compatible' within vim for more information
|
|
||||||
|
|
||||||
- Define backspace scope
|
|
||||||
-- Ensures that backspace has the permissions to remove all character types
|
|
||||||
|
|
||||||
- Custom Keybindings
|
|
||||||
- The keybind (Ctrl-e <ARROW KEY>) allows switching between split vim windows
|
|
||||||
-- Ctrl-w is the default setting, which closes tabbed shells on Chrome OS
|
|
||||||
|
|
||||||
- Backups previous vimrc configurations
|
|
||||||
-- If they were present, previous vim files are stored in /etc/config-vim/backups/
|
|
||||||
cloud_user@shaunrd03c:~$
|
|
||||||
```
|
|
||||||
|
|
||||||
Now just open a file in vim to test things out
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
|
||||||
## A custom bash script for building cmake projects. ##
|
|
||||||
## Intended to be ran in root directory of the project alongside CMakeLists ##
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# Infinite while loop - break on conditions
|
|
||||||
while true
|
|
||||||
do
|
|
||||||
|
|
||||||
printf "\nEnter 1 to build, 2 to cleanup previous build, 0 to exit.\n"
|
|
||||||
read bChoice
|
|
||||||
|
|
||||||
if [ $bChoice -eq 1 ] # Build project
|
|
||||||
then
|
|
||||||
mkdir build
|
|
||||||
(cd build && cmake .. && cmake --build .)
|
|
||||||
elif [ $bChoice -eq 2 ] ; then # Cleanup build
|
|
||||||
rm -Rv build/
|
|
||||||
elif [ $bChoice -eq 0 ] ; then # Exit script
|
|
||||||
break
|
|
||||||
else
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
|
|
||||||
done
|
|
||||||
|
|
|
@ -1,98 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
## Author: Shaun Reed | Contact: shaunrd0@gmail.com | URL: www.shaunreed.com ##
|
|
||||||
## A custom bash script to configure vim with my preferred settings ##
|
|
||||||
## Run as user with sudo within directory to store / stash .vimrc configs ##
|
|
||||||
###############################################################################
|
|
||||||
|
|
||||||
# For easy colorization of printf
|
|
||||||
GREEN=$(tput setaf 2)
|
|
||||||
RED=$(tput setaf 1)
|
|
||||||
UNDERLINE=$(tput smul)
|
|
||||||
NORMAL=$(tput sgr0)
|
|
||||||
|
|
||||||
if [ "$(whoami)" != "root" ]; then
|
|
||||||
echo "This script must be ran with sudo..."
|
|
||||||
echo "sudo ./setup-vim.sh"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
welcome=( "\nEnter 1 to configure vim with the Klips repository, any other value to exit." \
|
|
||||||
"The up-to-date .vimrc config can be found here: https://github.com/shaunrd0/klips/tree/master/configs" \
|
|
||||||
"${RED}Configuring Vim with this tool will update / upgrade your packages${NORMAL}\n\n")
|
|
||||||
|
|
||||||
printf '%b\n' "${welcome[@]}"
|
|
||||||
read cChoice
|
|
||||||
|
|
||||||
if [ $cChoice -eq 1 ] ; then
|
|
||||||
|
|
||||||
printf "\nUpdating, upgrading required packages...\n"
|
|
||||||
sudo apt -y update && sudo apt -y upgrade
|
|
||||||
sudo apt install vim git
|
|
||||||
|
|
||||||
printf "\nGathering resources from Klips repository..\n"
|
|
||||||
# Clone klips repository in a temp directory
|
|
||||||
git clone https://github.com/shaunrd0/klips temp/
|
|
||||||
# Relocate the files we need and remove the temp directory
|
|
||||||
sudo mkdir -pv /etc/config-vim
|
|
||||||
sudo cp -fruv temp/README.md /etc/config-vim/
|
|
||||||
sudo cp -fruv temp/configs/ /etc/config-vim/
|
|
||||||
rm -Rf temp/
|
|
||||||
printf "\n${GREEN}Klips configs gathered"
|
|
||||||
printf "\nSee /etc/config-vim/README.md for more information.${NORMAL}\n\n"
|
|
||||||
|
|
||||||
# Create backup dir for .vimrc files
|
|
||||||
sudo mkdir -pv /etc/config-vim/backup/
|
|
||||||
printf "\n${GREEN}Backup directory created - /etc/config-vim/backup/${NORMAL}\n"
|
|
||||||
|
|
||||||
# Stash current .vimrc configs to protect loss of information
|
|
||||||
sudo mkdir /etc/config-vim/backup/home/ && sudo mv -bv ~/.vimrc /etc/config-vim/backup/home/
|
|
||||||
sudo mkdir /etc/config-vim/backup/skel/ && sudo mv -bv /etc/skel/.vimrc /etc/config-vim/backup/skel/.vimrc
|
|
||||||
sudo mkdir /etc/config-vim/backup/share/ && sudo mv -bv /usr/share/vim/vimrc /etc/config-vim/backup/share/vimrc
|
|
||||||
sudo mkdir /etc/config-vim/backup/etc/ && sudo mv -bv /etc/vim/vimrc /etc/config-vim/backup/etc/vimrc
|
|
||||||
printf "${RED}Your local .vimrc configurations have been stashed in /etc/config-vim/backup/${NORMAL}\n\n"
|
|
||||||
|
|
||||||
# Copy our cloned config into the active user home directory
|
|
||||||
sudo cp /etc/config-vim/configs/.vimrc ~/
|
|
||||||
printf "${GREEN}New ~/.vimrc configuration installed.${NORMAL}\n"
|
|
||||||
# Copy our cloned config into the global user directories
|
|
||||||
sudo cp /etc/config-vim/configs/.vimrc /etc/skel/.vimrc
|
|
||||||
printf "${GREEN}New /etc/skel/.vimrc configuration installed.${NORMAL}\n"
|
|
||||||
sudo cp /etc/config-vim/configs/.vimrc /etc/vim/vimrc
|
|
||||||
printf "${GREEN}New /etc/vim/vimrc configuration installed.${NORMAL}\n"
|
|
||||||
|
|
||||||
|
|
||||||
# Reinstall Pathogen plugin manager for vim
|
|
||||||
# https://github.com/tpope/vim-pathogen
|
|
||||||
printf "\n${RED}Removing any previous installations of Pathogen...${NORMAL}\n"
|
|
||||||
sudo rm -f /usr/share/vim/vimfiles/autoload/pathogen.vim
|
|
||||||
|
|
||||||
# Install Pathogen
|
|
||||||
printf "\n${GREEN}Installing Pathogen plugin manager for Vim....\n"
|
|
||||||
printf "\nIf they don't exist, we will create the following directories:\n"
|
|
||||||
printf "/usr/share/vim/vimfiles/autoload/ /usr/share/vim/vimfiles/bundle/${NORMAL}"
|
|
||||||
mkdir -pv /usr/share/vim/vimfiles/autoload /usr/share/vim/vimfiles/bundle && \
|
|
||||||
sudo curl -LSso /usr/share/vim/vimfiles/autoload/pathogen.vim https://tpo.pe/pathogen.vim
|
|
||||||
printf "\n${GREEN}Pathogen has been installed! Plugins plugins can now be easily installed.\n"\
|
|
||||||
"Clone any plugin repositories into /usr/share/vim/vimfiles/bundles${NORMAL}\n"
|
|
||||||
|
|
||||||
# Remove any plugins managed by this config tool (Klips)
|
|
||||||
printf "\n${RED}Removing plugins installed by this tool...${NORMAL}\n"
|
|
||||||
sudo rm -R /usr/share/vim/vimfiles/bundle/*
|
|
||||||
|
|
||||||
# Clone plugin repos into pathogen plugin directory
|
|
||||||
pushd /usr/share/vim/vimfiles/bundle/
|
|
||||||
printf "\n${GREEN}Installing updated plugins...${NORMAL}\n"
|
|
||||||
git clone https://github.com/ervandew/supertab && \
|
|
||||||
printf "\n${GREEN}Supertab plugin has been installed${NORMAL}\n\n" && \
|
|
||||||
git clone https://github.com/xavierd/clang_complete && \
|
|
||||||
printf "\n${GREEN}Clang Completion plugin has been installed${NORMAL}\n\n"
|
|
||||||
vimConf=( "\n${UNDERLINE}Vim has been configured with the Klips repository.${NORMAL}" \
|
|
||||||
"\nConfiguration Changes: " )
|
|
||||||
printf '%b\n' "${vimConf[@]}"
|
|
||||||
popd
|
|
||||||
else
|
|
||||||
printf "\nExiting..\n"
|
|
||||||
fi
|
|
||||||
|
|
||||||
sudo cat /etc/config-vim/configs/.vimrc-README
|
|
||||||
|
|
Loading…
Reference in New Issue