hackbyte icon

.screenrc_reallyfat_mainscreen

hackbyte | PRO | 07/25/17 09:54:50 PM UTC | 0 ⭐ | 424 👁️ | Never ⏰ | []
text |

15.99 KB

|

None

|

0 👍

/

0 👎

# $Id: hackysscreenrc,v 0.5 2018/07/29 03:15:53 ??? Exp $
# sources and such
# https://unix.stackexchange.com/questions/74785/how-to-open-tabs-windows-in-gnu-screen-execute-commands-within-each-one
################################################################################
# SCREEN SETTINGS
################################################################################
startup_message off
nethack on
#defflow on # will force screen to process ^S/^Q
deflogin on
autodetach on # preserve my precious screen! ;)
# turn visual bell on
vbell on
vbell_msg "GNOP"
# define a bigger scrollback, default is 100 lines
defscrollback 1500
################################################################################
activity "%{= wk} Window %n"
################################################################################
#backtick id lifespan autorefresh command [args] # was this or so: backtick 0 30 30 sh -c 'screen -ls | grep --color=no -o "$PPID[^[:space:]]*"'
# show number of users on the machine (or your own shells in modern times. ;))
backtick 0 10 10 sh -c 'who | wc -l'
#
# bashiges zeugs PROMPT_COMMAND='printf "\033k\033\134"'
#
# when we open a window, where shall its CWD be?
chdir                     # without argument it's my $HOME
################################################################################
# SCREEN KEYBINDINGS
################################################################################
# Remove some stupid / dangerous key bindings
#bind L
bind ^\
# Make them better
bind \\ quit
bind I login on
bind O login off
bind } history
bind + resize +1
bind - resize -1
bind = resize =
bind _ resize max
# unbind kill, rebind to upper case K
bind k
bind ^k
bind K kill
# unbind clear
bind C
# unbind XOFF
bind s
bind ^s
# unbind lock
bind x
bind ^x
###bind s screen -t '% |root:' sudo su -l
# Useful zeugs eventuel
##bind ^h screen -t htop sudo su -l -c "htop -d 1"
# An example of a "screen scraper" which will launch urlview on the current
# screen window
#
#bind ^B eval "hardcopy_append off" "hardcopy -h $HOME/.screen-urlview" "screen urlview $HOME/.screen-urlview"
#
# ... now a little bit of key bindings
# In case we don't have write permission for /etc/utmp (no s-bit)
# we create even local windows via rlogin. -> Et voila: a utmp-slot
# utmp-slots are strongly recomended to keep sccs and talk happy.
# (thus we have ^A# or. ^Ac for windowcreation with or without utmp-slot.)
# but if we run suid-root, we produce all the rlogins with -ln, 
# as nobody shall refer to these pty's.
#bind '!' screen -ln -k faui41 rlogin faui41
#bind '@' screen -ln -k vme2 rlogin faui4_vme2
#bind '#' screen -k faui43
#bind '#' screen -ln -k faui43 rlogin faui43
#bind '$' screen -ln -k faui44 rlogin faui44
#bind '%' screen -ln -k faui45 rlogin faui45
#bind '\^' screen -ln -k sup1 rlogin fausup1
#bind '&' screen -ln -k sup2 rlogin fausup2
#bind '*' screen -ln -k faui48 rlogin faui48
#bind '(' screen -ln -k faui09 rlogin faui09
#bind ')' screen -ln -k faui10 rlogin faui10
#bind 'J' screen -ln -k 4j rlogin faui4j
#bind 'P' screen -ln -k 4p rlogin faui4p
#bind '^C' screen -ln -k 45c rlogin faui45c
#bind '^D' screen -ln -k 45d rlogin faui45d
#bind '^E' screen -ln -k 45e rlogin faui45e
#bind '^I' screen -ln -k 45i rlogin faui45i
#
# these two are logIn and logOut. As a toggle is too stupid.
#bind 'I' set login on
#bind 'O' set login off
bind 'L'
# What happens, when you 'think emacs' and want to erase a whole
# line? You type ^A^K right? Under screen it should be ^Aa^K. But...
# killing the window would be a real punishment for a little mistyping.
bind k		#wow! I even amange to type ^Ak by accident.
#bind ^k
#bind K kill
################################################################################
# TERMINAL SETTINGS
################################################################################
# The vt100 description does not mention "dl". *sigh*
termcapinfo vt100 dl=5\E[M
# Set the hardstatus prop on gui terms to set the titlebar/icon title
termcapinfo xterm*|rxvt*|kterm*|Eterm* hs:ts=\E]0;:fs=\007:ds=\E]0;\007
 ################################################################################
# HARDSTATUS AND FOO
################################################################################
 # use this for the hard status string
#hardstatus string "%h%? users: %u%?"
 # An alternative hardstatus to display a bar at the bottom listing the
# windownames and highlighting the current windowname in blue. (This is only
# enabled if there is no hardstatus setting for your terminal)
#
#hardstatus lastline "%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%< %{+b}%=%Y%M%d-%c"
##hardstatus string '%{= kG}[%{G}%H%? %1`%?%{g}][%= %{= kw}%-w%{+b yk} %n*%t%?(%u)%? %{-}%+w %=%{g}][%{B}%m/%d %{W}%C%A%{g}]'
#
 # old default i think.
#hardstatus alwayslastline "%{Wb}%H%{-}%70>%-Lw%{Yb}%n%f*!!%t%{-}%+Lw%< %=|%{+b}%2D|%Y%m%d-%c"
 caption always
caption string "%{Yb}%?%F%{+B Rb}%?%2n %f %t%? %h%?%?%F%{-}%?%=%?%u%?%?%F%{Rb}%?%l"
 # out hardstatus will _always_ get displayed in the last line of the terminal screen recognizes..
hardstatus alwayslastline
 # old fancy variant, no longer used and changes at 20180729T0240+20:00 (CEST)
#hardstatus string "%{+b dC}%H%{-} %{-b dd}%S%{-} %{+b dy}Usr:%`%{-} %{+b dR}|%{-} %?%{dc}%-Lw%{-}%?%50>%{+b kR}>>%2n%f%{-} %{+b kY}%t%{-} %{+b dR}<<%{-}%?%{kc}%+Lw%{=b dd}%<%?%=%{=b dR}|%{-} %{kC}%Y-%m-%d %c:%s"
 # And here we set our hardstatus
hardstatus string "%{+b dC}%H%{-} %{-b dd}%S%{-} %{+b dy}Usr:%`%{-} %{+b dR}|%{-} %?%{dc}%-Lw%{-}%?%50>%{+b kR}>>%2n%f%{-} %{+b kY}%t%{-} %{+b dR}<<%{-}%?%{kc}%+Lw%{=b dd}%<%?%=%{=b dR}|%{-} %{kC}%Y-%m-%d %c:%s"
 #hardstatus string 'translation', part by part
#
#%{+b dC}						# add specified set of attributes (b=bold, d=default background, C = bright cyan)
#%H%							# print %H (hostname if you might wonder)
#{-}							# - remove the set from the current attributes (i like to clean up behind myself.. ;)
#%{-b dd}						# remove specified attributes (d=default background, d=default foreground) ## yah, i know i'm crazy .. sort of.. ;)
#%S%{-}							# print $S (yeah, our session name.. oh, and clean up!)							
#%{+b dy}Usr:%`%{-}					# add attributes; b=bold, d=default background, y=yellow foreground, print the number of users from a `backticks` command above - and don't forget to clean up! ;)
#%{+b dR}|%{-}						# boring stuff, we paint just in bold red on default background a | char. ;)
#%?							# NOW, we're talking and getting really fancy.
#							#  the part to the next %? is displayed only if a % escape inside the part expands to a non-empty string
#	%{dc}						# default bacckground, cyan foreground
#	%-L						#
#	%{-}						# aaand, reset. ;)O
#	%?%50>						# 
#	%{+b kR}>>					# set bold, black foreground red and print just '>>' ;) 
#	%2n
#	%f						# flags of the window
#	%{-}
#%{+b kY}%t%{-}
#%{+b dR}<<%{-}%?%{kc}%+Lw%{=b dd}%<%?%=%{=b dR}|%{-}
#%{kC}%Y-%m-%d %c:%s					## The easiest one, kC sets a color and "%Y-%m-%d %c:%s" is just a timestamp (based on ISO8609)
 ##hardstatus string "%{= KW} %H [%`] %{= Kw}|%{-} %-Lw%{= bW}%n%f %t%{-}%+Lw %{}%=%Y%m%d-%c"
#
# http://www.gnu.org/software/screen/manual/html_node/String-Escapes.html
#
# %=      : expand to fill all space (used here to make remaining content flush right)
# %{= wK} : set colors to bright white (W) on bright black (K) and keep current text styles (=)
# %{= wW} : set colors to white (w) on bright black (K) and keep current text styles (=)
# %{-}    : restore colors to previous colors / undo last color change
# %{= bW} : set colors to bright white (W) on blue (b) and keep current text styles (=)
  # %`	: print output of 'backtick' command (defined elsewhere in .screenrc)
# %H	: hostname
# %f	: window flags
# %t	: window title
# %-Lw	: list windows before current window (L [optional] = "include flags")
# %+Lw	: list windows after current window (L [optional] = "include flags")
# %l	: current load of the system
# %n	: window number 
# %a	: session name
# %t	: window title
# %u	: all other users on this window
# %w	: all window numbers and names. With - qualifier: up to the current window; with + qualifier: starting with the window after the current one.
# %W	: all window numbers and names except the current one
  # %C	: current time (12-hr; 24-hr is %c)
# %a	: am/pm (lowercase; uppercase is %A)
# %s	: seconds
# %Y	: current year
# %m	: current month (0-padded; %M for "Jan" etc.)
# %d	: current date (0-padded)
  # [	: opening bracket character
# ]	: closing bracket character
# |	: bar character
# -	: hyphen character
 # '%-Lw%{= BW}%50>%n%f* %t%{-}%+Lw%<'
#The available windows centered at the current win dow and truncated to the available width. The current window is displayed white on blue.
#This can be used with 'hardstatus alwayslastline'
 ## --> sets %? to true if the window has the focus
#
 # '%?%F%{.R.}%?%3n %t%? [%h]%?'
#The window number and title and the window's hardstatus, if one is set. Also use a red background if this is the active focus.
#Useful for 'caption string'.
 ################################################################################
########## TERMCAP FOO
################################################################################
  # all termcap entries are now duplicated as terminfo entries.
# only difference should be the slightly modified syntax, and check for
# terminfo entries, that are already corected in the database.
# 
# G0    we have a SEMI-GRAPHICS-CHARACTER-MODE
# WS    this sequence resizes our window.
# cs    this sequence changes the scrollregion
# hs@   we have no hardware statusline. screen will only believe that
#       there is a hardware status line if hs,ts,fs,ds are all set.
# ts    to statusline
# fs    from statusline
# ds    delete statusline
# al    add one line
# AL    add multiple lines
# dl    delete one line
# DL    delete multiple lines
# ic    insert one char (space)
# IC    insert multiple chars
# nx    terminal uses xon/xoff
  # set these terminals up to be 'optimal' instead of vt100
termcapinfo xterm*|linux*|rxvt*|Eterm* OP
 # Change the xterm initialization string from is2=\E[!p\E[?3;4l\E[4l\E>
# (This fixes the "Aborted because of window size change" konsole symptoms found
#  in bug #134198)
termcapinfo xterm 'is=\E[r\E[m\E[2J\E[H\E[?7h\E[?1;4;6l'
 # To get screen to add lines to xterm's scrollback buffer, uncomment the
# following termcapinfo line which tells xterm to use the normal screen buffer
# (which has scrollback), not the alternate screen buffer.
#
termcapinfo xterm|xterms|xs|rxvt ti@:te@
 # Make the output buffer large for (fast) xterms.
termcapinfo xterm* OL=10000
#termcapinfo xterm* OL=100
 # tell screen that xterm can switch to dark background and has function
# keys.
termcapinfo xterm 'VR=\E[?5h:VN=\E[?5l'
termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'
termcapinfo xterm 'kh=\EOH:kI=\E[2~:kD=\E[3~:kH=\EOF:kP=\E[5~:kN=\E[6~'
 # special xterm hardstatus: use the window title.
termcapinfo xterm 'hs:ts=\E]2;:fs=\007:ds=\E]2;screen\007'
 #terminfo xterm 'vb=\E[?5h$<200/>\E[?5l'
termcapinfo xterm 'vi=\E[?25l:ve=\E[34h\E[?25h:vs=\E[34l'
 # emulate part of the 'K' charset
termcapinfo   xterm 'XC=K%,%\E(B,[\304,\\\\\326,]\334,{\344,|\366,}\374,~\337'
 # Extend the vt100 desciption by some sequences.
termcap  vt100* ms:AL=\E[%dL:DL=\E[%dM:UP=\E[%dA:DO=\E[%dB:LE=\E[%dD:RI=\E[%dC
terminfo vt100* ms:AL=\E[%p1%dL:DL=\E[%p1%dM:UP=\E[%p1%dA:DO=\E[%p1%dB:LE=\E[%p1%dD:RI=\E[%p1%dC
termcapinfo linux C8
# old rxvt versions also need this
# termcapinfo rxvt C8
 # Enable non-blocking mode to better cope with flaky ssh connections.
#defnonblock 5
defnonblock on
nonblock on
 defutf8 on
utf8 on
  # emulate .logout message
pow_detach_msg "Screen session of \$LOGNAME \$:cr:\$:nl:ended."
 # advertise hardstatus support to $TERMCAP
termcapinfo  * '' 'hs:ts=\E_:fs=\E\\:ds=\E_\E\\'
 # make the shell in every window a login shell
shell -$SHELL
 # don't kill window after the process died
#zombie "^["
 # enable support for the "alternate screen" capability in all windows
altscreen on
    # DEFAULT KEY BINDINGS
#        As mentioned, each screen command consists of a "C-a" followed by one other character.  For your convenience, all commands that are bound to lower-case letters are also bound to their control  charac\u2010
#        ter counterparts (with the exception of "C-a a"; see below), thus, "C-a c" as well as "C-a C-c" can be used to create a window. See section "CUSTOMIZATION" for a description of the command.
# 
#        The following table shows the default key bindings:
# 
#        C-a '       (select)      Prompt for a window name or number to switch to.
# 
#        C-a "       (windowlist -b)
#                                  Present a list of all windows for selection.
# 
#        C-a 0       (select 0)
#         \u2026             \u2026
#        C-a 9       (select 9)
#        C-a -       (select -)    Switch to window number 0 - 9, or to the blank window.
# 
#        C-a tab     (focus)       Switch the input focus to the next region.  See also split, remove, only.
# 
#        C-a C-a     (other)       Toggle  to  the  window  displayed  previously.  Note that this binding defaults to the command character typed twice, unless overridden.  For instance, if you use the option
#                                  "-e]x", this command becomes "]]".
# 
#        C-a a       (meta)        Send the command character (C-a) to window. See escape command.
# 
#        C-a A       (title)       Allow the user to enter a name for the current window.
# 
#        C-a b
#        C-a C-b     (break)       Send a break to window.
# 
#        C-a B       (pow_break)   Reopen the terminal line and send a break.
# 
#        C-a c
#        C-a C-c     (screen)      Create a new window with a shell and switch to that window.
# 
#        C-a C       (clear)       Clear the screen.
# 
#        C-a d
#        C-a C-d     (detach)      Detach screen from this terminal.
# 
#        C-a D D     (pow_detach)  Detach and logout.
# 
#        C-a f
#        C-a C-f     (flow)        Toggle flow on, off or auto.
# 
#        C-a F       (fit)         Resize the window to the current region size.
# 
#        C-a C-g     (vbell)       Toggles screen's visual bell mode.
# 
#        C-a h       (hardcopy)    Write a hardcopy of the current window to the file "hardcopy.n".
# 
#        C-a H       (log)         Begins/ends logging of the current window to the file "screenlog.n".
# 
#        C-a i
#        C-a C-i     (info)        Show info about this window.
# 
#        C-a k
#        C-a C-k     (kill)        Destroy current window.
# 
#        C-a l
#        C-a C-l     (redisplay)   Fully refresh current window.
# 
#        C-a L       (login)       Toggle this windows login slot. Available only if screen is configured to update the utmp database.
# 
#        C-a m
#        C-a C-m     (lastmsg)     Repeat the last message displayed in the message line.
# 
#        C-a M       (monitor)     Toggles monitoring of the current window.
# 
#        C-a space
#        C-a n
#        C-a C-n     (next)        Switch to the next window.
# 
#        C-a N       (number)      Show the number (and title) of the current window.
# 
#        C-a backspace
#        C-a C-h
#        C-a p
#        C-a C-p     (prev)        Switch to the previous window (opposite of C-a n).
# 
#        C-a q
#        C-a C-q     (xon)         Send a control-q to the current window.
# 
#        C-a Q       (only)        Delete all regions but the current one.  See also split, remove, focus.
# 
#        C-a r
#        C-a C-r     (wrap)        Toggle the current window's line-wrap setting (turn the current window's automatic margins on and off).
#        C-a s
#        C-a C-s     (xoff)        Send a control-s to the current window.
# 
#        C-a S       (split)       Split the current region horizontally into two new ones.  See also only, remove, focus.
# 
#        C-a t
#        C-a C-t     (time)        Show system information.
# 
#        C-a v       (version)     Display the version and compilation date.
# 
#        C-a C-v     (digraph)     Enter digraph.
# 
#        C-a w
#        C-a C-w     (windows)     Show a list of window.
# 
#        C-a W       (width)       Toggle 80/132 columns.
# 
#        C-a x
#        C-a C-x     (lockscreen)  Lock this terminal.
# 
#        C-a X       (remove)      Kill the current region.  See also split, only, focus.
# 
#        C-a z
#        C-a C-z     (suspend)     Suspend screen.  Your system must support BSD-style job-control.
# 
#        C-a Z       (reset)       Reset the virtual terminal to its "power-on" values.
# 
#        C-a .       (dumptermcap) Write out a ".termcap" file.
# 
#        C-a ?       (help)        Show key bindings.
# 
#        C-a \       (quit)        Kill all windows and terminate screen.
# 
#        C-a :       (colon)       Enter command line mode.
# 
#        C-a [
#        C-a C-[
#        C-a esc     (copy)        Enter copy/scrollback mode.
# 
#        C-a C-]
#        C-a ]       (paste .)     Write the contents of the paste buffer to the stdin queue of the current window.
# 
#        C-a {
#        C-a }       (history)     Copy and paste a previous (command) line.
# 
#        C-a >       (writebuf)    Write paste buffer to a file.
# 
#        C-a <       (readbuf)     Reads the screen-exchange file into the paste buffer.
# 
#        C-a =       (removebuf)   Removes the file used by C-a < and C-a >.
# 
#        C-a ,       (license)     Shows where screen comes from, where it went to and why you can use it.
# 
#        C-a _       (silence)     Start/stop monitoring the current window for inactivity.
# 
#        C-a |       (split -v)    Split the current region vertically into two new ones.
# 
#        C-a *       (displays)    Show a listing of all currently attached displays.
# 
# 
#

Comments