Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # $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.
- #
- #
- #
Add Comment
Please, Sign In to add comment