summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSyndamia <kamen@syndamia.com>2024-03-01 06:09:12 +0200
committerSyndamia <kamen@syndamia.com>2024-03-01 06:09:12 +0200
commita94453cde8c57625f3878f7da069cd35c40844c3 (patch)
tree4a84a5284d50ece77bbf060c20991d2b0f34a88e
parent699037c2cc90e0fb4abe570442fb489f808b6434 (diff)
downloaddotfiles-a94453cde8c57625f3878f7da069cd35c40844c3.tar
dotfiles-a94453cde8c57625f3878f7da069cd35c40844c3.tar.gz
dotfiles-a94453cde8c57625f3878f7da069cd35c40844c3.zip
[.zshrc] Reworked structure
-rw-r--r--.zsh/.zshrc616
1 files changed, 294 insertions, 322 deletions
diff --git a/.zsh/.zshrc b/.zsh/.zshrc
index ea9821b..0292ea1 100644
--- a/.zsh/.zshrc
+++ b/.zsh/.zshrc
@@ -1,338 +1,310 @@
device='desktop' # can be either "desktop" (default when empty), "server" or "android"
-# General {{{
- # Exports {{{
- export PATH=$HOME/bin:/usr/local/bin:$PATH # Adds ~/bin and /usr/local/bin paths to PATH
- export PATH="$PATH:$HOME/.npm-global/bin" # Adds ~/.npm-global/bin path to PATH
- export PATH="$PATH:$HOME/go/bin" # Adds ~/go/bin to PATH
- export PATH="$PATH:/sbin"
- export FPATH="$FPATH:$HOME/.zsh/completion"
-
- # export LANG=en_US.UTF-8 # You may need to manually set your language environment
-
- if [[ -n $SSH_CONNECTION ]]; then # Preferred editor for local
- export EDITOR='vim'
- else # and remote
- export EDITOR='vim'
- fi
- # }}}
-
- # Theme {{{
- ZSH_THEME="gruvbox"
- SOLARIZED_THEME="dark"
- # }}}
-
- # Completion {{{
- # CASE_SENSITIVE="true" # case-sensitive completion
- # HYPHEN_INSENSITIVE="true" # hyphen-insensitive completion (case_sensitive must be false)
- # }}}
-
- # Updates {{{
- # DISABLE_AUTO_UPDATE="true" # disable bi-weekly auto-update checks
- # DISABLE_UPDATE_PROMPT="true" # update without prompting
- # export UPDATE_ZSH_DAYS=13 # how often to auto-update (in days)
- # DISABLE_MAGIC_FUNCTIONS="true" # uncomment if pasting URLs and other text is messed up
- # ENABLE_CORRECTION="true" # command auto-correction
- # COMPLETION_WAITING_DOTS="true" # display red dots while waiting for completion
- # DISABLE_UNTRACKED_FILES_DIRTY="true" # disable marking untracked files under VCS as dirty; improves status check for large repos
- # }}}
-
- # setopt and autoload {{{
- stty -F/dev/tty -ixon -ixoff # Disables Software Flow Control
- setopt long_list_jobs
-
- # Changing/making/removing directory
- setopt auto_pushd
- setopt pushd_ignore_dups
- setopt pushdminus
-
- # recognize comments
- setopt interactivecomments
-
- # don't backward-kill-word on forward slash
- autoload -U select-word-style
- select-word-style bash
-
- # autoloads completion files
- # Note: remove all ~/.zcompdump files in case something doesn't autoload
- autoload -U compinit
- compinit
- # }}}
-# }}}
-
-# Plugins {{{
- # omz plugins {{{
- source ~/.zsh/omz/history.zsh
- source ~/.zsh/omz/termsupport.zsh
- source ~/.zsh/omz/key-bindings.zsh
- source ~/.zsh/omz/compfix.zsh
- # }}}
-
- # zsh-syntax-highlighting {{{
- source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
- # }}}
-
- # Homelander {{{
- source ~/.zsh/homelander/homelander.zsh
- source ~/.zsh/homelander/homelander-sections.zsh
-
- if [ "$USER" = 'kamen' ]; then
- export PROMPT='$(hl_exitpwd)$(hl_cecho_caps $(hl_user)  ) $(hl_cecho $(hl_precursor)) '
- HL_USER_T='%D{%H:%M}'
- else
- export PROMPT='$(hl_exitpwd)$(hl_cecho_caps $(hl_user)  ) $(hl_cecho $(hl_time)) $(hl_cecho $(hl_precursor)) '
- fi
- export RPROMPT='$(hl_duration)'
-
- hl_hooks() {
- hl_time_async
- hl_precursor_async
- }
-
- # Custom section
- hl_exitpwd() {
- local __bg=$([ -n "$SSH_TTY" ] && echo $HL_USER_SSH || echo $HL_USER_BG)
-
- line=(' |' ' ' ']\n' '\n' '\b' '\b' 0)
- [ "$_exit_code" -ne 0 ] && line+=(o $HL_EXIT_FG ' %? ')
- [ "$_print_directory" -ne 0 ] && line+=(o $__bg ' %d ')
-
- [ ${#line} -gt 7 ] && hl_concatsec $line
- }
- hl_duration() {
- local __dur=($(hl_exec_duration))
-
- [ "${#__dur}" -gt 0 ] && hl_cecho_caps o 140 " ${__dur[*]:2} "   \
- || true
- }
- # }}}
-# }}}
-
-# Functions {{{
- # Funtoo updates {{{
- pre-sync() {
- echo '(.zshrc) Running pre-sync function...'
-
- # Since in post-sync I change the EAPI of a lot of the ebuilds,
- # the overlay can't be synced properly
- _pwd=$(pwd)
- cd /var/db/repos/gentoo
- sudo git reset --hard
- cd $_pwd
-
- echo '(.zshrc) pre-sync finished! :}'
- }
-
- post-sync() {
- echo '(.zshrc) Running post-sync function...'
-
- # Fixes the elusive
- # "!!! Repository name or alias 'gentoo', defined for repository 'core-kit', overrides existing alias or repository."
- # error when enabling gentoo overlay
- sudo sed -i 's/aliases = gentoo/#aliases = gentoo/g' /var/git/meta-repo/kits/core-kit/metadata/layout.conf
-
- # In the gentoo overlay, most packages don't actually use EAPI 8 specific features, so
- # they can safely be rolled back to EAPI 7 (funtoo's portage doesn't support EAPI 8 yet).
- # However, there are still some that do need EAPI 8, so they should be left alone.
- # Since I'm incredibly lazy, for now, this is how I'm gonna do it.
- find '/var/db/repos/gentoo' -type f -name "*.ebuild" ! -path "*dev-qt*" ! -path "*kde-frameworks*" ! -path "*kde-plasma*" \
- | xargs sudo sed -i 's/EAPI=8/EAPI=7/g'
-
- echo '(.zshrc) post-sync finished! :]'
- }
-
- alias sen="pre-sync && sudo ego sync && post-sync && sudo emerge --quiet-build -vuDN @world"
- # }}}
-
- # cdrepo {{{
- cdrepo () {
- [ -n "$2" ] && cd "$HOME/Programming/$1/$2" \
- || cd "$HOME/Programming/$1"
- }
-
- alias cdg="cdrepo GitHub-repos"
- alias cdl="cdrepo GitLab-repos"
- alias cds="cdrepo source"
- # }}}
-
- # plumb.sh {{{
-
- plumb-store-cwd () {
- pwd > /tmp/plumb-cwd
+#
+# Environment variables
+#
+
+export PATH=$HOME/bin:/usr/local/bin:$PATH # Adds ~/bin and /usr/local/bin paths to PATH
+export PATH="$PATH:$HOME/.npm-global/bin" # Adds ~/.npm-global/bin path to PATH
+export PATH="$PATH:$HOME/go/bin" # Adds ~/go/bin to PATH
+export PATH="$PATH:/sbin"
+export FPATH="$FPATH:$HOME/.zsh/completion"
+
+export EDITOR='vim'
+
+#
+# Options
+#
+
+stty -F/dev/tty -ixon -ixoff # Disables Software Flow Control
+setopt long_list_jobs
+
+# Changing/making/removing directory
+setopt auto_pushd
+setopt pushd_ignore_dups
+setopt pushdminus
+
+# recognize comments
+setopt interactivecomments
+
+# don't backward-kill-word on forward slash
+autoload -U select-word-style
+select-word-style bash
+
+# enable (new?) zsh completion system
+# Thanks https://github.com/reo101/dotfiles/blob/master/home/private_dot_config/private_zsh/private_dot_zshrc
+zdumppath="$HOME/.zsh/zcompdump"
+autoload -U compinit
+# Cache completion if nothing changed - faster startup time
+typeset -i updated_at=$(date +'%j' -r "$zdumppath" 2>/dev/null || stat -f '%Sm' -t '%j' "$zdumppath" 2>/dev/null)
+if [ $(date +'%j') != ${updated_at} ]; then
+ compinit -d "$zdumppath" -i
+else
+ compinit -d "$zdumppath" -C -i
+fi
+
+#
+# Binds
+#
+
+bindkey '^H' backward-kill-word
+
+#
+# Theme
+#
+
+ZSH_THEME="gruvbox"
+SOLARIZED_THEME="dark"
+
+source ~/.zsh/homelander/homelander.zsh
+source ~/.zsh/homelander/homelander-sections.zsh
+
+if [ "$USER" = 'kamen' ]; then
+ export PROMPT='$(hl_exitpwd)$(hl_cecho_caps $(hl_user)  ) $(hl_cecho $(hl_precursor)) '
+ HL_USER_T='%D{%H:%M}'
+else
+ export PROMPT='$(hl_exitpwd)$(hl_cecho_caps $(hl_user)  ) $(hl_cecho $(hl_time)) $(hl_cecho $(hl_precursor)) '
+fi
+export RPROMPT='$(hl_duration)'
+[ "$NIX_SHELL" = 'y' ] && HL_USER_BG=202
+
+hl_hooks() {
+ hl_time_async
+ hl_precursor_async
+}
+
+# Custom section
+hl_exitpwd() {
+ __bg=$([ -n "$SSH_TTY" ] && echo $HL_USER_SSH || echo $HL_USER_BG)
+
+ line=(' |' ' ' ']\n' '\n' '\b' '\b' 0)
+ [ "$_exit_code" -ne 0 ] && line+=(o $HL_EXIT_FG ' %? ')
+ [ "$_print_directory" -ne 0 ] && line+=(o $__bg ' %d ')
+
+ [ ${#line} -gt 7 ] && hl_concatsec $line
+}
+hl_duration() {
+ local __dur=($(hl_exec_duration))
+
+ [ "${#__dur}" -gt 0 ] && hl_cecho_caps o 140 " ${__dur[*]:2} "   \
+ || true
+}
+
+#
+# Plugins
+#
+
+source ~/.zsh/omz/history.zsh
+source ~/.zsh/omz/termsupport.zsh
+source ~/.zsh/omz/key-bindings.zsh
+source ~/.zsh/omz/compfix.zsh
+
+source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh
+
+#
+# Custom functions
+#
+
+if [ -n "$ZSHRC_FUNTOO" ]
+then
+ pre-sync() {
+ echo '(.zshrc) Running pre-sync function...'
+
+ # Since in post-sync I change the EAPI of a lot of the ebuilds,
+ # the overlay can't be synced properly
+ _pwd=$(pwd)
+ cd /var/db/repos/gentoo
+ sudo git reset --hard
+ cd $_pwd
+
+ echo '(.zshrc) pre-sync finished! :}'
}
- zle -N plumb-store-cwd
- bindkey "^[[5;7~" plumb-store-cwd
- # }}}
+ post-sync() {
+ echo '(.zshrc) Running post-sync function...'
- # Run in the background
- bgr () {
- nohup sh -c "$@" 2>&1 &
- disown
- }
-
- # Kill process and run in the background
- res () {
- pkill $@
- bgr $@
+ # Fixes the elusive
+ # "!!! Repository name or alias 'gentoo', defined for repository 'core-kit', overrides existing alias or repository."
+ # error when enabling gentoo overlay
+ sudo sed -i 's/aliases = gentoo/#aliases = gentoo/g' /var/git/meta-repo/kits/core-kit/metadata/layout.conf
+
+ # In the gentoo overlay, most packages don't actually use EAPI 8 specific features, so
+ # they can safely be rolled back to EAPI 7 (funtoo's portage doesn't support EAPI 8 yet).
+ # However, there are still some that do need EAPI 8, so they should be left alone.
+ # Since I'm incredibly lazy, for now, this is how I'm gonna do it.
+ find '/var/db/repos/gentoo' -type f -name "*.ebuild" ! -path "*dev-qt*" ! -path "*kde-frameworks*" ! -path "*kde-plasma*" \
+ | xargs sudo sed -i 's/EAPI=8/EAPI=7/g'
+
+ echo '(.zshrc) post-sync finished! :]'
}
-
- if [[ $device == "desktop" ]]; then
-
- if [[ -x "$(command -v vim)" ]]; then
- # Open vim with .vim-session file, if it exists and the vim command doesn't have any parameters
- v () {
- if [ -f ".vim-session" ] && [ -z "$1" ]; then
- vim -S .vim-session
- else
- vim $@
- fi
- }
- fi
-
- if [[ -x "$(command -v grit)" ]]; then
- # Add to grit parent, where first value is parent number and everything else is node value
- grap () {
- parent="$1"
- shift
- grit add -p $parent -- $@
- }
- fi
-
- if [[ -x "$(command -v nemo)" ]]; then
- onemo() {
- bgr "nemo ./"
- }
- fi
-
- # Launch .desktop application (either full path or just name)
- dela () {
- name=$1
- if [[ ${name:0:1} != "/" ]]; then
- name="/usr/share/applications/${name}"
- fi
- if [[ ! $name =~ .desktop$ ]]; then
- name+=".desktop"
- fi
- comm=($(awk -F= '$1=="Exec"{$1=""; print}' "$name"))
- bgr "$comm"
- }
-
- metas() {
- for file in *; do
- [ "$file" != 'cover.jpeg' ] && \
- kid3-cli -c "set title \"$(echo "$file" | sed -e "s/\.[^.]*$//")\"" \
- -c "set artist \"$1\"" -c "set album \"$2\"" -c "set date \"$3\"" \
- -c 'set picture:"./cover.jpeg" ""' "$file" \
- || :
- done
- }
- fi
-# }}}
-
-# Aliases {{{
- # portage {{{
- if [[ -x "$(command -v emerge)" ]]; then
- alias seq="sudo emerge --quiet-build -v"
- alias sep="sudo emerge -pv"
- alias ses="sudo emerge -s"
- alias seS="sudo emerge -S"
- alias senc="sudo emaint sync -A"
- alias sen="sudo emaint sync -A && sudo emerge --quiet-build -vuDN @world"
- alias senp="sudo emaint sync -A && sudo emerge --quiet-build -pvuDN @world"
- alias seN="sudo emerge --quiet-build -vuDN @world"
- alias seNp="sudo emerge --quiet-build -pvuDN @world"
- sedi() {
- sudo emerge --deselect "$1" && sudo emerge --depclean "$1"
- }
-
- alias use="sudo vim /etc/portage/package.use"
- alias unmask="sudo vim /etc/portage/package.unmask"
- alias mask="sudo vim /etc/portage/package.mask"
- fi
- # }}}
-
- # dnf {{{
- if [[ -x "$(command -v dnf)" ]]; then
- alias sdi="sudo dnf install -y"
- alias sdr="sudo dnf remove -y"
- alias sda="sudo dnf autoremove -y"
- # If you're using dotnet from the "packages-microsoft-com-prod" repo, make sure to
- # add "exclude=dotnet* aspnetcore* netstandard*" inside the /etc/yum.repos.d/fedora.repo, /etc/yum.repos.d/fedora-updates.repo and potentially /etc/yum.repos.d/fedora33.repo
- alias sdu="sudo dnf upgrade -y && sudo dnf autoremove -y && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash && needs-restarting -r"
-
- alias ds="dnf search"
- alias dcs="dnf copr search"
- alias dp="dnf provides"
- alias di="dnf info"
-
- alias sdce="sudo dnf copr enable -y"
- alias sdcei='f() { sudo dnf copr enable -y $1 && sudo dnf install -y $2; unset -f f }; f'
- fi
- # }}}
-
- # apt {{{
- if [[ -x "$(command -v apt-get)" ]]; then
- alias sasy="sudo apt install -y"
- alias sary="sudo apt remove -y"
- alias saty="sudo apt autoremove -y"
- alias sagt="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash"
- fi
- # }}}
-
- # General commands {{{
-
- alias q="exit"
- alias x="exit"
-
- if [[ -x "$(command -v exa)" ]]; then
- alias ll="exa --icons --group-directories-first --git --time-style long-iso -a -labh"
- alias lk="exa --icons --group-directories-first --git --time-style long-iso -labhTL"
- alias l.="exa --icons --group-directories-first --git --time-style long-iso -labhTL 2"
- alias l="exa --icons --group-directories-first --time-style long-iso -abh"
+ alias sen="pre-sync && sudo ego sync && post-sync && sudo emerge --quiet-build -vuDN @world"
+fi
+
+# plumb.sh
+plumb-store-cwd () {
+ pwd > /tmp/plumb-cwd
+}
+zle -N plumb-store-cwd
+bindkey "^[[5;7~" plumb-store-cwd
+
+# Run in the background
+bgr() {
+ nohup sh -c "$@" 2>&1 &
+ disown
+}
+
+# Kill process and run in the background
+res() {
+ pkill $@
+ bgr $@
+}
+
+# Open vim with .vim-session file, if it exists and the vim command doesn't have any parameters
+v() {
+ if [ -f ".vim-session" ] && [ -z "$1" ]; then
+ vim -S .vim-session
else
- alias ll="la -alF"
- alias la="ls -A"
- alias l="ls -CF"
+ vim $@
fi
-
- if [[ $device != "server" ]]; then
- else
- alias wudo="sudo -u www-data"
-
+}
+
+# Add to grit parent, where first value is parent number and everything else is node value
+grap() {
+ parent="$1"
+ shift
+ grit add -p $parent -- $@
+}
+
+onemo() {
+ bgr "nemo ./"
+}
+
+# Launch .desktop application (either full path or just name)
+dela() {
+ name=$1
+ if [[ ${name:0:1} != "/" ]]; then
+ name="/usr/share/applications/${name}"
fi
- # }}}
-
- # Application specific {{{
- if [[ $device != "server" ]]; then
-
- alias combinepdf="gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf"
-
- alias lg="lazygit"
-
- alias ydl="youtube-dl -o '%(title)s.%(ext)s'"
- alias ydlba="youtube-dl -o '%(title)s.%(ext)s' --audio-format best -x"
-
- alias gr="grit"
- alias gra="grit add --"
- alias grc="grit check"
- alias grls="grit tree"
-
- alias sdudiscord="wget -O discord.tar.gz \"https://discord.com/api/download?platform=linux&format=tar.gz\" && tar -xzf discord.tar.gz && sudo rm -rf /opt/Discord && sudo mv Discord /opt"
-
+ if [[ ! $name =~ .desktop$ ]]; then
+ name+=".desktop"
fi
- # }}}
-# }}}
-
-# Binds {{{
- bindkey '^H' backward-kill-word
-# }}}
-
-# Execute on startup {{{
-#}}}
+ comm=($(awk -F= '$1=="Exec"{$1=""; print}' "$name"))
+ bgr "$comm"
+}
+
+metas() {
+ for file in *; do
+ [ "$file" != 'cover.jpeg' ] && \
+ kid3-cli -c "set title \"$(echo "$file" | sed -e "s/\.[^.]*$//")\"" \
+ -c "set artist \"$1\"" -c "set album \"$2\"" -c "set date \"$3\"" \
+ -c 'set picture:"./cover.jpeg" ""' "$file" \
+ || :
+ done
+}
+
+#
+# Aliases
+#
+
+if [ -x "$(command -v emerge)" ]
+then
+ alias seq="sudo emerge --quiet-build -v"
+ alias sep="sudo emerge -pv"
+ alias ses="sudo emerge -s"
+ alias seS="sudo emerge -S"
+ alias senc="sudo emaint sync -A"
+ alias sen="sudo emaint sync -A && sudo emerge --quiet-build -vuDN @world"
+ alias senp="sudo emaint sync -A && sudo emerge --quiet-build -pvuDN @world"
+ alias seN="sudo emerge --quiet-build -vuDN @world"
+ alias seNp="sudo emerge --quiet-build -pvuDN @world"
+ sedi() {
+ sudo emerge --deselect "$1" && sudo emerge --depclean "$1"
+ }
+ alias use="sudo vim /etc/portage/package.use"
+ alias unmask="sudo vim /etc/portage/package.unmask"
+ alias mask="sudo vim /etc/portage/package.mask"
+fi
+
+if [ -x "$(command -v dnf)" ]
+then
+ alias sdi="sudo dnf install -y"
+ alias sdr="sudo dnf remove -y"
+ alias sda="sudo dnf autoremove -y"
+ # If you're using dotnet from the "packages-microsoft-com-prod" repo, make sure to
+ # add "exclude=dotnet* aspnetcore* netstandard*" inside the /etc/yum.repos.d/fedora.repo, /etc/yum.repos.d/fedora-updates.repo and potentially /etc/yum.repos.d/fedora33.repo
+ alias sdu="sudo dnf upgrade -y && sudo dnf autoremove -y && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash && needs-restarting -r"
+ alias sdudiscord="wget -O discord.tar.gz \"https://discord.com/api/download?platform=linux&format=tar.gz\" && tar -xzf discord.tar.gz && sudo rm -rf /opt/Discord && sudo mv Discord /opt"
+
+ alias ds="dnf search"
+ alias dcs="dnf copr search"
+ alias dp="dnf provides"
+ alias di="dnf info"
+
+ alias sdce="sudo dnf copr enable -y"
+ alias sdcei='f() { sudo dnf copr enable -y $1 && sudo dnf install -y $2; unset -f f }; f'
+fi
+
+if [ -x "$(command -v apt-get)" ]; then
+ alias sasy="sudo apt install -y"
+ alias sary="sudo apt remove -y"
+ alias saty="sudo apt autoremove -y"
+ alias sagt="sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y && sudo youtube-dl --update && wget -O - https://raw.githubusercontent.com/laurent22/joplin/master/Joplin_install_and_update.sh | bash"
+fi
+
+if [ -x "$(command -v exa)" ]
+then
+ alias ll="exa --icons --group-directories-first --git --time-style long-iso -a -labh"
+ alias lk="exa --icons --group-directories-first --git --time-style long-iso -labhTL"
+ alias l.="exa --icons --group-directories-first --git --time-style long-iso -labhTL 2"
+ alias l="exa --icons --group-directories-first --time-style long-iso -abh"
+else
+ alias ll="la -alF"
+ alias la="ls -A"
+ alias l="ls -CF"
+fi
+
+if [ -x "$(command -v grit)" ]
+then
+ alias gr="grit"
+ alias gra="grit add --"
+ alias grc="grit check"
+ alias grls="grit tree"
+fi
+
+if [ -x "$(command -v youtube-dl)" ]
+then
+ alias ydl="youtube-dl -o '%(title)s.%(ext)s'"
+ alias ydlba="youtube-dl -o '%(title)s.%(ext)s' --audio-format best -x"
+fi
+
+if [ -x "$(command -v combinepdf)" ]
+then
+ alias lg="lazygit"
+fi
+
+if [ -x "$(command -v gs)" ]
+then
+ alias combinepdf="gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=temp.pdf"
+fi
+
+cdrepo () {
+ [ -n "$2" ] && cd "$HOME/Programming/$1/$2" \
+ || cd "$HOME/Programming/$1"
+}
+alias cdg="cdrepo GitHub-repos"
+alias cdl="cdrepo GitLab-repos"
+alias cds="cdrepo source"
+
+alias wudo="sudo -u www-data"
+
+alias q="exit"
+alias x="exit"
+
+#
# Added by scripts:
+#
export PATH="/home/kamen/bin/Sencha/Cmd:$PATH"