Screen: Difference between revisions

From Halfface
Jump to navigation Jump to search
Line 23: Line 23:
Toggles screen's visual bell mode.
Toggles screen's visual bell mode.
  C-a C-g
  C-a C-g
Move tab in split screen.
CTRL a -> CTRL i
Close split screen
CTRL a -> X


=external links=
=external links=

Revision as of 09:17, 27 June 2019

screen

Start program in screen.

screen -d -m

CTRL + a +

S split
? help
tab move between windowss
Q only this windows
" show list
esc histor/copy mode
] paste
A name window
? / search in history mode.
:number 666 Change number of window.

detatch screen inside screen

CTRL + a -> a -> d

Rename screen session.

CTRL + a -> :sessionname new-session-name

Wrap

C-a r

Wrap no

C-a C-r

Toggles screen's visual bell mode.

C-a C-g

Move tab in split screen.

CTRL a -> CTRL i

Close split screen

CTRL a -> X

external links

http://www.gnu.org/software/screen/manual/screen.html

functions

# Run a command in a group of windows.
screen_cluster(){
  if [ $# -lt 3 ]
  then
    echo "You wrote: ${FUNCNAME} ${@}"
    echo "${FUNCNAME} SESSIONNAME 'command' SCREENS"
    SESSIONNAMES=$(screen -ls | grep -E '[[:blank:]][0-9]{2,}' | awk '{print $1}' | sed 's/^[0-9.]*//g')
    echo "SESSIONNAME available are:"
    echo "${SESSIONNAMES}"
  else
    SESSIONNAME=${1}
    COMMAND=${2}
    shift 2
    SCREENS="${@}"
    for SCREEN in ${SCREENS}
    do
      screen -S ${SESSIONNAME} -p ${SCREEN} -X stuff "^A#
${COMMAND}
"
      if [ $? -ne 0 ]
      then
        screen_cluster
        return 1
      fi
    done
  fi
}

# Split screen in regions with wanted windows.
screen_split(){
  if [ $# -lt 2 ]
  then
    echo "Splits screen in regions and show chosen windows."
    echo "${FUNCNAME} SESSIONNAME SCREENS"
  else
    SCREENSESSION="${1}"
    shift
    WINDOWSTART="${1}"
    NUMBERSCREEN="${#}"
    shift
    WINDOWSOPEN="${@}"
    screen -S ${SCREENSESSION} -p ${WINDOWSTART} -X select ${WINDOWSTART}
    screen -S ${SCREENSESSION} -p ${WINDOWSTART} -X only
    sleep 0.2
    for WINDOWOPEN in ${WINDOWSOPEN}
    do
      sleep 0.2
      screen -S ${SCREENSESSION} -p ${WINDOWSTART} -X split
      screen -S ${SCREENSESSION} -p ${WINDOWSTART} -X focus
      screen -S ${SCREENSESSION} -p ${WINDOWOPEN} -X select ${WINDOWOPEN}
    done
    screen -S ${SCREENSESSION} -p ${WINDOWSTART} -X wall "Opened ${NUMBERSCREEN} screen windows"
  fi
}