Skip to content

Instantly share code, notes, and snippets.

@Anon-Exploiter
Created September 17, 2020 12:31
Show Gist options
  • Save Anon-Exploiter/4e12193df0099183d18720c6471d571a to your computer and use it in GitHub Desktop.
Save Anon-Exploiter/4e12193df0099183d18720c6471d571a to your computer and use it in GitHub Desktop.
.zshrc of Kali Linux 2020.3 including the lit prompt
# ~/.zshrc file for zsh non-login shells.
# see /usr/share/doc/zsh/examples/zshrc for examples
setopt autocd # change directory just by typing its name
#setopt correct # auto correct mistakes
setopt interactivecomments # allow comments in interactive mode
setopt ksharrays # arrays start at 0
setopt magicequalsubst # enable filename expansion for arguments of the form ‘anything=expression’
setopt nonomatch # hide error message if there is no match for the pattern
setopt notify # report the status of background jobs immediately
setopt numericglobsort # sort filenames numerically when it makes sense
setopt promptsubst # enable command substitution in prompt
WORDCHARS=${WORDCHARS//\/} # Don't consider certain characters part of the word
# hide EOL sign ('%')
export PROMPT_EOL_MARK=""
# configure key keybindings
bindkey -e # emacs key bindings
bindkey ' ' magic-space # do history expansion on space
bindkey '^[[3;5~' kill-word # ctrl + Supr
bindkey '^[[1;5C' forward-word # ctrl + ->
bindkey '^[[C' forward-word # ctrl + ->
bindkey '^[[1;5D' backward-word # ctrl + <-
bindkey '^[[D' backward-word # ctrl + <-
bindkey '^[[5~' beginning-of-buffer-or-history # page up
bindkey '^[[6~' end-of-buffer-or-history # page down
bindkey '^[[Z' undo # shift + tab undo last action
# enable completion features
autoload -Uz compinit
compinit -d ~/.cache/zcompdump
zstyle ':completion:*:*:*:*:*' menu select
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' # case insensitive tab completion
# History configurations
HISTFILE=~/.zsh_history
HISTSIZE=1000
SAVEHIST=2000
setopt hist_expire_dups_first # delete duplicates first when HISTFILE size exceeds HISTSIZE
setopt hist_ignore_dups # ignore duplicated commands history list
setopt hist_ignore_space # ignore commands that start with space
setopt hist_verify # show command with history expansion to user before running it
#setopt share_history # share command history data
# force zsh to show the complete history
alias history="history 0"
# 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
PROMPT=$'%F{%(#.blue.green)}┌──${debian_chroot:+($debian_chroot)──}(%B%F{%(#.red.blue)}%n%(#.💀.㉿)%m%b%F{%(#.blue.green)})-[%B%F{reset}%(6~.%-1~/…/%4~.%5~)%b%F{%(#.blue.green)}]\n└─%B%(#.%F{red}#.%F{blue}$)%b%F{reset} '
RPROMPT=$'%(?.. %? %F{red}%B⨯%b%F{reset})%(1j. %j %F{yellow}%B⚙%b%F{reset}.)'
# enable syntax-highlighting
if [ -f /home/placeDirectoryorUserNameHere/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh ] && [ "$color_prompt" = yes ]; then
# ksharrays breaks the plugin. This is fixed now but let's disable it in the
# meantime.
# https://github.com/zsh-users/zsh-syntax-highlighting/pull/689
unsetopt ksharrays
. /home/placeDirectoryorUserNameHere/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
ZSH_HIGHLIGHT_STYLES[default]=none
ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=red,bold
ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=cyan,bold
ZSH_HIGHLIGHT_STYLES[suffix-alias]=fg=green,underline
ZSH_HIGHLIGHT_STYLES[global-alias]=fg=magenta
ZSH_HIGHLIGHT_STYLES[precommand]=fg=green,underline
ZSH_HIGHLIGHT_STYLES[commandseparator]=fg=blue,bold
ZSH_HIGHLIGHT_STYLES[autodirectory]=fg=green,underline
ZSH_HIGHLIGHT_STYLES[path]=underline
ZSH_HIGHLIGHT_STYLES[path_pathseparator]=
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]=
ZSH_HIGHLIGHT_STYLES[globbing]=fg=blue,bold
ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=blue,bold
ZSH_HIGHLIGHT_STYLES[command-substitution]=none
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]=fg=magenta
ZSH_HIGHLIGHT_STYLES[process-substitution]=none
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]=fg=magenta
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=fg=magenta
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=fg=magenta
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]=fg=blue,bold
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=yellow
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=yellow
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]=fg=yellow
ZSH_HIGHLIGHT_STYLES[rc-quote]=fg=magenta
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=magenta
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=magenta
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=fg=magenta
ZSH_HIGHLIGHT_STYLES[assign]=none
ZSH_HIGHLIGHT_STYLES[redirection]=fg=blue,bold
ZSH_HIGHLIGHT_STYLES[comment]=fg=black,bold
ZSH_HIGHLIGHT_STYLES[named-fd]=none
ZSH_HIGHLIGHT_STYLES[numeric-fd]=none
ZSH_HIGHLIGHT_STYLES[arg0]=fg=green
ZSH_HIGHLIGHT_STYLES[bracket-error]=fg=red,bold
ZSH_HIGHLIGHT_STYLES[bracket-level-1]=fg=blue,bold
ZSH_HIGHLIGHT_STYLES[bracket-level-2]=fg=green,bold
ZSH_HIGHLIGHT_STYLES[bracket-level-3]=fg=magenta,bold
ZSH_HIGHLIGHT_STYLES[bracket-level-4]=fg=yellow,bold
ZSH_HIGHLIGHT_STYLES[bracket-level-5]=fg=cyan,bold
ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]=standout
fi
else
PROMPT='${debian_chroot:+($debian_chroot)}%n@%m:%~%# '
fi
unset color_prompt force_color_prompt
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
TERM_TITLE='\e]0;${debian_chroot:+($debian_chroot)}%n@%m: %~\a'
;;
*)
;;
esac
new_line_before_prompt=yes
precmd() {
# Print the previously configured title
print -Pn "$TERM_TITLE"
# Print a new line before the prompt, but only if it is not the first line
if [ "$new_line_before_prompt" = yes ]; then
if [ -z "$_NEW_LINE_BEFORE_PROMPT" ]; then
_NEW_LINE_BEFORE_PROMPT=1
else
print ""
fi
fi
}
# enable color support of ls, less and man, 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'
alias diff='diff --color=auto'
alias ip='ip --color=auto'
export LESS_TERMCAP_mb=$'\E[1;31m' # begin blink
export LESS_TERMCAP_md=$'\E[1;36m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # reset bold/blink
export LESS_TERMCAP_so=$'\E[01;33m' # begin reverse video
export LESS_TERMCAP_se=$'\E[0m' # reset reverse video
export LESS_TERMCAP_us=$'\E[1;32m' # begin underline
export LESS_TERMCAP_ue=$'\E[0m' # reset underline
# Take advantage of $LS_COLORS for completion as well
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
fi
# some more ls aliases
alias ll='ls -l'
alias la='ls -A'
alias l='ls -CF'
# enable auto-suggestions based on the history
if [ -f /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh ]; then
. /usr/share/zsh-autosuggestions/zsh-autosuggestions.zsh
# change suggestion color
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#999'
fi
@elfatherdz
Copy link

thanks :D i like it bro

@luisadha
Copy link

Compatibe with zsh theme with termux?

@RenatoExpert
Copy link

Compatibe with zsh theme with termux?

As I remeber it is, bro

@luisadha
Copy link

What is the name of the theme bro, I want to install zsh with this configuration

@RenatoExpert
Copy link

Install zsh and copy that file to your ~ directory.
Its a customized theme. When zsh starts, it reads the file ~/.zshrc to load its settings. Just let that file at your ~ directory and run zsh.
If you installed Kali, this file comes with the system.

@luisadha
Copy link

hey prompt saya hey my prompt doesn't look like kali linux, how do I get around it? btw I've set it to xterm and utf-8 support but it still doesn't change

@RenatoExpert
Copy link

hey prompt saya hey my prompt doesn't look like kali linux, how do I get around it? btw I've set it to xterm and utf-8 support but it still doesn't change
It also runs fine on xterm.
You need to be sure you have zsh installed. Type zsh in terminal to use it.
I will let a small script you may run to do it for you.

@luisadha
Copy link

i have zsh installed, i will attach a screenshot later when i get home

@RenatoExpert
Copy link

I made a script for you
Just paste this command at your terminal

curl -sS https://gist.githubusercontent.com/RenatoExpert/ac18993e17aed25b1d638d7c944926ec/raw/ab2e123cee875b8912b201340aa69f90151a6367/install_zsh_with_kali_theme.sh > script.sh; sh script.sh

Then then installation script will start automatically.
Check source code

@luisadha
Copy link

IMG_20221029_190801
see in this picture the prompt shows not as expected

@Anon-Exploiter
Copy link
Author

It does show as expected (in your screenshot and in mine), what are you expecting it to be? The really old one? That was based off of .bashrc in old kali versions.

image

@luisadha
Copy link

I mean it's not as neat as yours, my drawing looks like it was cut by something, I use a systemlessly environment (magisk), is this the cause

@Anon-Exploiter
Copy link
Author

It's because you're trying it on a mobile phone? The fonts, their size, and everything will definitely change.

@luisadha
Copy link

thank you i understand

@RenatoExpert
Copy link

RenatoExpert commented Oct 29, 2022

I mean it's not as neat as yours, my drawing looks like it was cut by something, I use a systemlessly environment (magisk), is this the cause

@luisadha
Set your font as monospace, it makes every character have the same size, without distortions, and may fix these issues.
All kind of ascii art or decoration are made using monospace, to avoid variation between different fonts.

@luisadha
Copy link

luisadha commented Oct 30, 2022

@RenatoExpert I have fixed this problem as soon as I read @Anon-Exploiter's reply, I recently installed magisk module 'Droid Sans By XUI Font.zip' to fix the problem😊

@mairm1340
Copy link

It does show as expected (in your screenshot and in mine), what are you expecting it to be? The really old one? That was based off of .bashrc in old kali versions.

image

how did you enter that text ? what tool did you use ? i use the below one but yours looks kewl
image

@mairm1340
Copy link

how to enable web search plugin on kali linux zsh file ?
I tried few times but failed.....
ref:
https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/web-search/web-search.plugin.zsh

@RenatoExpert
Copy link

how to enable web search plugin on kali linux zsh file ? I tried few times but failed..... ref: https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/web-search/web-search.plugin.zsh

@mairm1340 did you read the ohmyzsh's README.md?

@jackwalten
Copy link

just copy paste the function in your zshrc?

@mairm1340
Copy link

just copy paste the function in your zshrc?

I did but it did not work. I could not figure out where i went wrong and hence reached out here..

@mairm1340
Copy link

how to enable web search plugin on kali linux zsh file ? I tried few times but failed..... ref: https://github.com/ohmyzsh/ohmyzsh/blob/master/plugins/web-search/web-search.plugin.zsh

@mairm1340 did you read the ohmyzsh's README.md?

I did mate but i m missing on something. I love the kali zshrc file which i feel is very clean. I just need the web search plugin and i could not make it work. for sure I did something wrong but I could not figure it out and hence need some help/advise so that i can correct it.

@RenatoExpert
Copy link

@mairm1340 Its not just copy .zshrc.
Please really read all the readme file.

It says that you have to replace the .zshrc by this file at first.
Then you need to configure your custom directory. You will let your plugins there.
Then you need to download your plugins in this directory and enable that plugin in your .zshrc

Also, each plugin has another readme with particular notes on its installation and usage.

@mairm1340
Copy link

@mairm1340 Its not just copy .zshrc. Please really read all the readme file.

It says that you have to replace the .zshrc by this file at first. Then you need to configure your custom directory. You will let your plugins there. Then you need to download your plugins in this directory and enable that plugin in your .zshrc

Also, each plugin has another readme with particular notes on its installation and usage.

HI
thank you for your guidance.
I did add the source path for web search plugin and i do have the plugin folder in .oh-my-zsh folder
i did enable syntax highlighting and auto correct and they work without any issues
image

image

@mairm1340
Copy link

Finally worked!! thank you so much
did not understand why but I had to add "export ZSH=/home/amrim/.oh-my-zsh" even though this was part of env variable
image
image

@RenatoExpert
Copy link

RenatoExpert commented Nov 3, 2022

@mairm1340
I'm happy for you! 😄
Nice job, keep rockin'! 🤘

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment