Skip to content

Instantly share code, notes, and snippets.

@jb-alvarado
Last active August 27, 2020 18:39
Show Gist options
  • Save jb-alvarado/a551c6c957436839bcd2daf0a0d8eac4 to your computer and use it in GitHub Desktop.
Save jb-alvarado/a551c6c957436839bcd2daf0a0d8eac4 to your computer and use it in GitHub Desktop.
#!/bin/bash
# nano syntax highlighting
cat <<EOT > /usr/share/nano/config.nanorc
# config file highlighting
syntax "conf" "(\.(bashrc|zshrc|conf|config|cfg|cnf|cf|rc|lst|list|defs|ini|desktop|mime|types|preset|cache|seat|service|htaccess)$|(^|/)(\w*crontab|mirrorlist|group|hosts|passwd|rpc|netconfig|shadow|fstab|inittab|inputrc|protocols|sudoers)$|conf.d/|.config/)"
# default text
color magenta "^.*$"
# special values
icolor brightblue "(^|\s|=)(default|true|false|on|off|yes|no)(\s|$)"
# keys
icolor cyan "^\s*(set\s+)?[A-Z0-9_\/\.\%\@+-]+\s*([:]|\>)"
# commands
color blue "^\s*set\s+\<"
# punctuation
color blue "[.]"
# numbers
color red "(^|\s|[[/:|<>(){}=,]|\])[-+]?[0-9](\.?[0-9])*%?($|\>)"
# keys
icolor cyan "^\s*(\$if )?([A-Z0-9_\/\.\%\@+-]|\s)+="
# punctuation
color blue "/"
color brightwhite "(\]|[()<>[{},;:=])"
color brightwhite "(^|\[|\{|\:)\s*-(\s|$)"
# section headings
icolor brightyellow "^\s*(\[([A-Z0-9_\.-]|\s)+\])+\s*$"
color brightcyan "^\s*((Sub)?Section\s*(=|\>)|End(Sub)?Section\s*$)"
color brightcyan "^\s*\$(end)?if(\s|$)"
# URLs
icolor green "\b(([A-Z]+://|www[.])[A-Z0-9/:#?&$=_\.\-]+)(\b|$| )"
# XML-like tags
icolor brightcyan "</?\w+((\s*\w+\s*=)?\s*("[^"]*"|'[^']*'|!?[A-Z0-9_:/]))*(\s*/)?>"
# strings
color yellow "\"(\\.|[^"])*\"" "'(\\.|[^'])*'"
# comments
color brightblack "#.*$"
color blue "^\s*##.*$"
color white "^;.*$"
color white start="<!--" end="-->"
EOT
echo
echo "##########################################################################"
echo "install default tools"
echo "##########################################################################"
echo
sleep 1
apt install -y zsh wget git curl fonts-powerline
chsh -s /usr/bin/zsh $(whoami)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh) --unattended"
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="agnoster"\nDEFAULT_USER=\$USER/g' .zshrc
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
sed -i 's/plugins=(git)/plugins=(\n git\n python \n systemd\n zsh-autosuggestions\n)/g' .zshrc
# custom shell
cat <<EOT >> .zshrc
export EDITOR=/bin/nano
alias ls='ls -alh --color=always'
alias .='source'
alias rm='rm -i'
alias cp='cp -i'
alias mv='mv -i'
alias nano='nano -c'
alias grep="grep --color=always"
EOT
echo
echo "##########################################################################"
echo "installation complete"
echo "##########################################################################"
echo
echo "logout and login again"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment