# Inspired by: # - Re-size and Move with Escape Sequences, http://www.osxfaq.com/tips/unix-tricks/week99/monday.ws # - Define Aliases and Functions, http://www.osxfaq.com/tips/unix-tricks/week99/tuesday.ws # - Focus and Dock with Escape Sequences, http://www.osxfaq.com/Tips/unix-tricks/week99/wednesday.ws # Author: Adrian Mayo, http://101.1dot1.com and http://www.peachpit.com/title/0321374118 # also see: http://en.wikipedia.org/wiki/ANSI_escape_code function title() { if [[ $# -eq 1 && -n "$@" ]]; then printf "\e]0;${@}\a"; fi; return 0; } function title() { if [[ -n "$@" ]]; then printf "\033]0;${1}\007"; fi; return 0; } function docktw() { printf "\e[2t"; return 0; } function docktw() { printf "\e[2t"; sleep 5; printf "\e[5t"; return 0; } function bgtw() { printf "\e[6t"; return 0; } function bgtw() { printf "\e[6t"; sleep 5; printf "\e[5t"; return 0; } # background the Terminal window title 'Hello, world!' docktw bgtw # positive integer test (including zero) function positive_int() { return $(test "$@" -eq "$@" > /dev/null 2>&1 && test "$@" -ge 0 > /dev/null 2>&1); } # move the Terminal window function mvtw() { if [[ $# -eq 2 ]] && $(positive_int "$1") && $(positive_int "$2"); then printf "\e[3;${1};${2};t" return 0 fi return 1 } # resize the Terminal window function sizetw() { if [[ $# -eq 2 ]] && $(positive_int "$1") && $(positive_int "$2"); then printf "\e[8;${1};${2};t" /usr/bin/clear return 0 fi return 1 } # full screen function fscreen() { printf "\e[3;0;0;t\e[8;0;0t"; /usr/bin/clear; return 0; } # default screen function dscreen() { printf "\e[8;35;150;t"; printf "\e[3;300;240;t"; /usr/bin/clear; return 0; } # max columns function maxc() { printf "\e[3;0;0;t\e[8;50;0t"; /usr/bin/clear; return 0; } # max rows function maxr() { printf "\e[3;0;0;t\e[8;0;100t"; /usr/bin/clear; return 0; } # show number of lines & columns function lc() { printf "lines: $(/usr/bin/tput lines)\ncolums: $(/usr/bin/tput cols)\n"; return 0; } # move cursor function mvc() { if [[ $# -eq 2 ]] && $(positive_int "$1") && $(positive_int "$2"); then /usr/bin/tput cup "$1" "$2" /usr/bin/tput el # clear to end of line #/usr/bin/tput ed return 0 fi return 1 } # wrap lines according to the number of columns of the Terminal window function wraptw() { declare str var=$(/usr/bin/tput cols) if [[ -s /dev/stdin ]]; then str="$(</dev/stdin)"; else str="$@"; fi printf "%s\n" "$str" | /usr/bin/fmt -w $var #printf "%s\n" "$str" | /usr/bin/fold -w $(/usr/bin/tput cols) return 0 } long_line="$(/usr/bin/jot -b 'This is a test sentence!' 100 | /usr/bin/tr '\n' ' ')" printf "%s\n" "$long_line" | wraptw lc mvtw 0 0 mvtw 0 300 mvtw 300 300 mvtw 80 140 fscreen dscreen maxc maxr lc sizetw 0 0 sizetw 0 50 sizetw 1 50 sizetw 50 50 sizetw 50 500 sizetw 50 150 mvc 2 45 mvc 100 23 mvc 99 3 dscreen #----------------------------------------------------- # customize the Terminal window's title bar text # show the current date as title bar text declare -x PROMPT_COMMAND='printf "\e]0; $(/bin/date)\a"' declare -x PROMPT_COMMAND='printf "\e]0;$(/bin/date "+%a %b %e %H:%M:%S ")\a"' declare -x PROMPT_COMMAND='printf "\e]0;$(/bin/date "+%Y-%m-%d %H:%M:%S ")\a"' # show current working directory declare -x PROMPT_COMMAND='printf "\e]0;$(/bin/pwd) \a"' declare -x PROMPT_COMMAND='printf "\e]0;$(/bin/pwd | /usr/bin/tr -d "[[:cntrl:]]") \a"' # show OLDPWD declare -x PROMPT_COMMAND='printf "\e]0;$(printf %s "$OLDPWD") \a"' declare -x PROMPT_COMMAND='printf "\e]0;$(printf %s "$OLDPWD" | /usr/bin/cut -c 1-100) \a"' export -p | grep -i PROMPT_COMMAND env | grep -i PROMPT_COMMAND unset -v PROMPT_COMMAND # first create environment variable TITLE # cf. Prompt Commands, http://www.osxfaq.com/Tips/unix-tricks/week71/wednesday.ws # Author: Adrian Mayo, http://101.1dot1.com and http://www.peachpit.com/title/0321374118 unset -v TITLE PROMPT_COMMAND declare -x TITLE="Terminal" declare -x PROMPT_COMMAND='printf "\e]0;${TITLE}\a"' # message as title bar text function message_title() { if [[ $# -eq 1 && -n "$@" ]]; then #TITLE="$@" TITLE="$(printf %s "$@" | /usr/bin/cut -c 1-100)" fi return 0 } export -f message_title export -p | grep -i message_title env | grep -i message_title #unset -f message_title message_title 'Hello, world!' # show OS information in title bar function osinfo() { x1="$(/usr/bin/sw_vers -productName)" x2="$(/usr/bin/sw_vers -productVersion)" x3="$(/usr/bin/sw_vers -buildVersion)" x4="$(/usr/bin/arch)" TITLE="${x1} - ${x2} - ${x3} - ${x4}" return 0 } export -f osinfo osinfo function eval_title() { if [[ -n "$(printf %s "$@") | /usr/bin/egrep '^date|whoami|logname|uname|machine|pwd|hostname$'" ]]; then cmd_output="$(eval "$@")" TITLE="$cmd_output" fi return 0 } export -f eval_title eval_title "date" eval_title "whoami" eval_title "logname" eval_title "uname" eval_title "machine" eval_title "pwd" eval_title "hostname" function date_title() { TITLE="$(/bin/date "+%Y-%m-%d")"; return 0; } export -f date_title date_title function logname_title() { TITLE="$(/usr/bin/logname)"; return 0; } export -f logname_title logname_title # show last command in title bar help fc unset -v TITLE PROMPT_COMMAND declare -x PROMPT_COMMAND='printf %b "\e]0;$(fc -ln | tail -n 1 | cut -c 2-150 | tr -d "\\")\a"' # show current command in title bar help history unset -v TITLE PROMPT_COMMAND declare -x PROMPT_COMMAND='printf %b "\e]0;$(history 1 | /usr/bin/cut -c 8-150 | tr -d "\\")\a"' declare -x PROMPT_COMMAND='printf %b "\e]0;$(history 1 | sed -E "s/^[[:space:]]*[[:digit:]]+[[:space:]]+(.*)$/\\1/" | cut -c 1-150 | tr -d "\\")\a"' #----------------------------------------------------- # increase font size function ifont() { /usr/bin/osascript <<__END__ tell application "System Events" to tell process "Terminal" to keystroke "+" using command down __END__ return 0 } ifont # decrease font size function dfont() { /usr/bin/osascript <<__END__ tell application "System Events" to tell process "Terminal" to keystroke "-" using command down __END__ return 0 } dfont # hide all Terminal windows function hideall() { /usr/bin/osascript -e 'tell application "System Events" to set visible of some item of ( get processes whose name = "Terminal" ) to false' return 0 } hideall # create a new Terminal window and cd to the same current working directory # cf. http://justinfrench.com/index.php?id=231 unset -f newin function newin() { /bin/pwd | /usr/bin/pbcopy /usr/bin/open -a Terminal /usr/bin/osascript -e 'tell application "Terminal" to do script with command "cd \"$(/usr/bin/pbpaste)\"; echo \" \" | /usr/bin/pbcopy; /usr/bin/clear"' return 0 } cd ~/Desktop newin
Never been to CodeSnippets before?
Snippets is a public source code repository. Easily build up your personal collection of code snippets, categorize them with tags / keywords, and share them with the world (or not, you can keep them private!)
Terminal window commands (See related posts)
You need to create an account or log in to post comments to this site.
Related Posts
» Terminal window commands in shell osx mac bash unix osascript text window terminal color title bar escape sequence background
» ANSI terminal color chart in shell osx mac bash unix code color escape ansi chart
» Testing Terminal RGB color c... in shell osx mac bash unix applescript osascript window terminal color rgb combination
» Testing Terminal RGB color c... in shell osx mac bash unix applescript osascript window terminal color rgb combination
» Testing Terminal RGB color c... in shell osx mac bash unix applescript osascript window terminal color rgb combination
» Testing Terminal RGB color c... in shell osx mac bash unix applescript osascript window terminal color rgb combination
Snippets (source code soon to be available) developed by Peter Cooper and powered by Ruby On Rails