|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302 |
- # ~/.bashrc: executed by bash(1) for non-login shells.
- # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
- # for examples
-
- # If not running interactively, don't do anything
- case $- in
- *i*) ;;
- *) return;;
- esac
-
- # don't put duplicate lines or lines starting with space in the history.
- # See bash(1) for more options
- HISTCONTROL=ignoreboth
-
- # append to the history file, don't overwrite it
- shopt -s histappend
-
- # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
- HISTSIZE=1000
- HISTFILESIZE=2000
-
- # check the window size after each command and, if necessary,
- # update the values of LINES and COLUMNS.
- shopt -s checkwinsize
-
- # If set, the pattern "**" used in a pathname expansion context will
- # match all files and zero or more directories and subdirectories.
- #shopt -s globstar
-
- # make less more friendly for non-text input files, see lesspipe(1)
- #[ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)"
-
- # set variable identifying the chroot you work in (used in the prompt below)
- if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then
- debian_chroot=$(cat /etc/debian_chroot)
- fi
-
- # set a fancy prompt (non-color, unless we know we "want" color)
- case "$TERM" in
- xterm-color|*-256color) color_prompt=yes;;
- esac
-
- # uncomment for a colored prompt, if the terminal has the capability; turned
- # off by default to not distract the user: the focus in a terminal window
- # should be on the output of commands, not on the prompt
- #force_color_prompt=yes
-
- if [ -n "$force_color_prompt" ]; then
- if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
- # We have color support; assume it's compliant with Ecma-48
- # (ISO/IEC-6429). (Lack of such support is extremely rare, and such
- # a case would tend to support setf rather than setaf.)
- color_prompt=yes
- else
- color_prompt=
- fi
- fi
-
- if [ "$color_prompt" = yes ]; then
- PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
- else
- PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ '
- fi
- unset color_prompt force_color_prompt
-
- # If this is an xterm set the title to user@host:dir
- case "$TERM" in
- xterm*|rxvt*)
- PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
- ;;
- *)
- ;;
- esac
-
- # enable color support of ls and also add handy aliases
- if [ -x /usr/bin/dircolors ]; then
- test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)"
- alias ls='ls --color=auto'
- #alias dir='dir --color=auto'
- #alias vdir='vdir --color=auto'
-
- #alias grep='grep --color=auto'
- #alias fgrep='fgrep --color=auto'
- #alias egrep='egrep --color=auto'
- fi
-
- # colored GCC warnings and errors
- #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01'
-
- # some more ls aliases
- #alias ll='ls -l'
- #alias la='ls -A'
- #alias l='ls -CF'
-
- # Alias definitions.
- # You may want to put all your additions into a separate file like
- # ~/.bash_aliases, instead of adding them here directly.
- # See /usr/share/doc/bash-doc/examples in the bash-doc package.
-
- if [ -f ~/.bash_aliases ]; then
- . ~/.bash_aliases
- fi
-
- # enable programmable completion features (you don't need to enable
- # this, if it's already enabled in /etc/bash.bashrc and /etc/profile
- # sources /etc/bash.bashrc).
- if ! shopt -oq posix; then
- if [ -f /usr/share/bash-completion/bash_completion ]; then
- . /usr/share/bash-completion/bash_completion
- elif [ -f /etc/bash_completion ]; then
- . /etc/bash_completion
- fi
- fi
-
- # Directory changes
- alias cdn='vim ~/Notes "+cd ~/Notes" "+enew" "+CtrlP"'
- alias cdd='cd $HOME/Downloads/'
- alias cdo='cd $HOME/Source/'
- alias cdc='cd $HOME/.config/'
- alias cd-projects='cd $HOME/Projects/'
- alias cd-x='cd $HOME/Encrypted/x/'
- alias cd-vim='cd /usr/share/vim/vim82/pack/my-plugins/start'
- alias cdz='cd $((mru listdirs | fzf --height=50%) || printf ".")'
-
- # General
- alias v='vim'
- alias yt='youtube-dl'
- alias ytb='youtube-dl --no-progress'
- alias depth='echo $SHLVL'
- alias lsg='ls -la | grep' #Determines if a file or folder with a name containing a sequence of characters is in the current directory
- alias show='apt show'
- alias lynx='lynx -vikeys'
- alias lsa='ls -laF'
- alias doihave='apt list --installed'
- alias email='neomutt'
-
- # Utilities
- alias ins='sudo apt-get install'
- alias uns='sudo apt-get purge'
- alias update='sudo apt-get update; sudo apt-get upgrade;'
- alias nnn='nnn -xE'
- alias do-xbind='xbindkeys -f $HOME/Source/configs/xbindkeysrc'
- alias get-rndnum='head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8'
- alias music="ncmpcpp"
-
-
- # Programming
- alias py='ipython3 --TerminalInteractiveShell.editing_mode=vi'
- alias g='git'
- alias gc='git clone'
- alias gs='git status'
- alias ga='git add'
- alias gb='git branch'
- alias gl='git log'
- alias gd='git diff'
-
- # Edit config and system files
- alias edit-bashrc='vim $HOME/.bashrc'
- alias edit-profile='vim $HOME/.profile'
- alias edit-vimrc='sudo vim /etc/vim/vimrc.local'
- alias edit-xkb='vim $HOME/.config/xkb/custom.xkb'
- alias edit-xr='vim ~/.config/xfiles/Xresources'
- alias edit-sources='sudo vim /etc/apt/sources.list'
- alias edit-tmux='vim $HOME/.config/tmux/tmux.conf'
- alias edit-git='vim $HOME/.config/git/config'
- alias load-xr='xrdb ~/.config/xfiles/Xresources'
- alias load-xkb='xkbcomp $HOME/.config/xkb/custom.xkb $DISPLAY'
- alias load-xt='xrdb $HOME/.config/Xresources'
- alias load-profile='source $HOME/.profile'
- alias lo='load-profile'
- alias betterXev="xev | awk -F'[ )]+' '/^KeyPress/ { a[NR+2] } NR in a { printf \"%-3s %s\\n\", $5, $8 }'"
-
-
- # Encryption
- alias mntx='encfs $HOME/Encrypted/.x/ $HOME/Encrypted/x/'
- alias umntx='encfs -u $HOME/Encrypted/x/'
-
- # Applications
- alias scan='sudo arp-scan 192.168.0.1/24'
- alias weechat='weechat -d "$XDG_CONFIG_HOME"/weechat'
-
-
- #Special functions! :D
-
- search() {
- apt search $@ | less
- }
-
- clean() {
- #Check if there is too many arguments
- if [ "$#" -gt "1" ]
- then
- echo "Too many arguments. There are $#."
- return
- fi
-
- case "$1" in
- '')
- ;;
- soft)
- history -c ;;
- hard)
- history -c
- rm -r $HOME/tmp/; mkdir $HOME/tmp/ ;;
- *)
- echo "Invalid arguments"; return ;;
- esac
-
- echo "History clear"
- sudo apt-get autoremove #Cleanup packages
- echo "Clean complete"
- }
-
- firewall() {
- if [ "$#" -gt "1" ]
- then
- echo "Too many arguments. There are $#."
- return
- fi
-
- case "$1" in
- on)
- sudo iptables -F
-
- #Allows lo, allows SSH in, allows packets related to connections established with output
- sudo iptables -A walkin -i lo -j ACCEPT
- sudo iptables -A walkin -p tcp --dport 22 -j ACCEPT
- sudo iptables -A walkin -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-
- #Allows lo, allows ssh out, allows connections out that are owned by root, allows vpn
- sudo iptables -A walkout -o lo -j ACCEPT
- sudo iptables -A walkout -p tcp --dport 22 -j ACCEPT
- sudo iptables -A walkout -m owner --uid-owner root -j ACCEPT
- sudo iptables -A walkout -o tun0 -j ACCEPT
-
- sudo iptables -A INPUT -j walkin
- sudo iptables -A INPUT -j DROP
-
- sudo iptables -A OUTPUT -j walkout
- sudo iptables -A OUTPUT -j DROP
- #Not needed
- sudo iptables -P INPUT DROP
- sudo iptables -P OUTPUT DROP
- echo "Firewall is on"
- ;;
- off)
- sudo iptables -F
- sudo iptables -P INPUT ACCEPT
- sudo iptables -P OUTPUT ACCEPT
- echo "Firewall is off"
- ;;
- *)
- echo "Invalid arguments"; return ;;
- esac
- }
-
- define() {
- dict $1 | less;
- }
-
- n () {
- # Block nesting of nnn in subshells
- if [ -n $NNNLVL ] && [ "${NNNLVL:-0}" -ge 1 ]; then
- echo "nnn is already running"
- return
- fi
-
- # The default behaviour is to cd on quit (nnn checks if NNN_TMPFILE is set)
- # To cd on quit only on ^G, remove the "export" as in:
- # NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"
- # NOTE: NNN_TMPFILE is fixed, should not be modified
- NNN_TMPFILE="${XDG_CONFIG_HOME:-$HOME/.config}/nnn/.lastd"
-
- # Unmask ^Q (, ^V etc.) (if required, see `stty -a`) to Quit nnn
- # stty start undef
- # stty stop undef
- # stty lwrap undef
- # stty lnext undef
-
- nnn "$@"
-
- if [ -f "$NNN_TMPFILE" ]; then
- . "$NNN_TMPFILE"
- rm -f "$NNN_TMPFILE" > /dev/null
- fi
- }
-
- rebind() {
- sudo cp "$1" /usr/local/bin/
- }
-
- export GOPATH="$HOME/go"
- export GO111MODULE=on
- export EDITOR='vim'
- export PAGER='less'
- export NNN_BMS='h:~/;c:~/.config;n:~/Notes;m:/mnt/media'
- export NNN_FIFO=/tmp/nnn.fifo
- export NNN_PLUG='p:preview-tui;c:x2sel;i:imgview;s:tmspawn'
- export USE_PISTOL=0
- export XDG_CONFIG_HOME=$HOME/.config
- export XDG_CACHE_HOME=$HOME/.cache
- export XDG_DATA_HOME=$HOME/.local/share
|