Friday, February 13, 2015

Matrix style Kannada shell script

Matrix style Kannada shell script to make your screen look like in the Matrix movie but with kannada characters. Enjoy !!!

You need almost any linux machine. Then you run below commands in the terminal

 
$chmod a+x kannmatrix.sh
$./kannmatrix.sh




  
#!/bin/bash
#
# matrix: matrix-ish display for Bash terminal
# Author: Brett Terpstra 2012 
# Updated By: Ragu 2015 
# Contributors: Lauri Ranta and Carl 
#
# A morning project. Could have been better, but I'm learning when to stop.

### Customization:
blue="\033[0;34m"
brightblue="\033[1;34m"
cyan="\033[0;36m"
brightcyan="\033[1;36m"
green="\033[0;32m"
brightgreen="\033[1;32m"
red="\033[0;31m"
brightred="\033[1;31m"
white="\033[1;37m"
black="\033[0;30m"
grey="\033[0;37m"
darkgrey="\033[1;30m"
# Choose the colors that will be used from the above list
# space-separated list
# e.g. `colors=($green $brightgreen $darkgrey $white)`
colors=($green $brightgreen)
### End customization

### Do not edit below this line
spacing=${1:-100} # the likelihood of a character being left in place
scroll=${2:-0} # 0 for static, positive integer determines scroll speed
screenlines=$(expr `tput lines` - 1 + $scroll)
screencols=$(expr `tput cols` / 2 - 1)

# chars=(a b c d e f g h i j k l m n o p q r s t u v w x y z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 0 1 2 3 4 5 6 7 8 9 ^)
# charset via Carl:
#chars=(ア イ ウ エ オ カ キ ク ケ コ サ シ ス セ ソ タ チ ツ テ ト ナ ニ ヌ ネ ノ ハ ヒ フ ヘ ホ マ ミ ム メ モ ヤ ユ ヨ ラ リ ル レ ロ ワ ン)
chars=(ಅ ಆ ಇ ಈ ಉ ಊ  ಋ ೠ ಎ ಏ ಐ ಒ ಓ ಔ ಕ ಖ ಗ ಘ ಙ ಚ ಛ ಜ ಝ ಞ ಟ ಠ ಡ ಢ ಣ ತ ಥ ದ ಧ ನ ಪ ಫ ಬ ಭ ಮ ಯ ರ ಱ ಲ ವ ಶ ಷ ಸ ಹ ಳ ೞ ೦ ೧ ೨ ೩ ೪ ೫ ೬ ೭ ೮ ೯)

count=${#chars[@]}
colorcount=${#colors[@]}

trap "tput sgr0; clear; exit" SIGTERM SIGINT

if [[ $1 =~ '-h' ]]; then
        echo "Display a Matrix(ish) screen in the terminal"
        echo "Usage:            matrix [SPACING [SCROLL]]"
        echo "Example:  matrix 100 0"
        exit 0
fi


clear
tput cup 0 0
while :
        do for i in $(eval echo {1..$screenlines})
                do for i in $(eval echo {1..$screencols})
                        do rand=$(($RANDOM%$spacing))
                                case $rand in
                                        0)
                                                printf "${colors[$RANDOM%$colorcount]}${chars[$RANDOM%$count]} "
                                                ;;
                                        1)
                                                printf "  "
                                                ;;
                                        *)
                                                printf "\033[2C"
                                                ;;
                                esac
                        done
                        printf "\n"

                        # sleep .005
                done
                tput cup 0 0
        done
  

No comments:

Post a Comment