Was sind nützliche .screenrc-Einstellungen?

54

Grundsätzlich wie einige meiner eigenen, die ich unten gepostet habe. Ich suche nach zusätzlichen Funktionen für das Programm "Bildschirm". Schauen Sie sich zumindest die letzte Zeile an, um eine fantastische Menüleiste am Ende einer Bildschirmsitzung zu erhalten.

## gyaresu's .screenrc 2008-03-25
# http://delicious.com/search?p=screenrc

# Don't display the copyright page
startup_message off

# tab-completion flash in heading bar
vbell off

# keep scrollback n lines
defscrollback 1000

# Doesn't fix scrollback problem on xterm because if you scroll back
# all you see is the other terminals history.
# termcapinfo xterm|xterms|xs|rxvt ti@:te@

# These will let you use 
bind -c selectHighs 0 select 10 #these three commands are 
bind -c selectHighs 1 select 11 #added to the command-class
bind -c selectHighs 2 select 12 #selectHighs
bind -c selectHighs 3 select 13
bind -c selectHighs 4 select 14
bind -c selectHighs 5 select 15


bind - command -c selectHighs   #bind the hyphen to 
                                #command-class selectHighs 


screen -t rtorrent  0   rtorrent    
#screen -t tunes        1   ncmpc --host=192.168.1.4 --port=6600 #was for connecting to MPD music server.
screen -t stuff     1
screen -t irssi     2   irssi
screen -t dancing   4       
screen -t python    5   python
screen -t giantfriend   6   these_are_ssh_to_server_scripts.sh
screen -t computerrescue    7   these_are_ssh_to_server_scripts.sh
screen -t BMon      8   bmon -p eth0
screen -t htop      9   htop
screen -t hellanzb  10  hellanzb
screen -t watching  3   
#screen -t interactive.fiction  8
#screen -t hellahella   8   paster serve --daemon  /home/gyaresu/downloads/hellahella/hella.ini 

shelltitle "$ |bash"

# THIS IS THE PRETTY BIT
#change the hardstatus settings to give an window list at the bottom of the                                                                        
##screen, with the time and date and with the current window highlighted                                                                            
hardstatus             alwayslastline                                                                                                                          
#hardstatus string '%{= mK}%-Lw%{= KW}%50>%n%f* %t%{= mK}%+Lw%< %{= kG}%-=%D %d %M %Y %c:%s%{-}'
hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %d/%m %{W}%c %{g}]'

Gareth
quelle

Antworten:

22

Für diejenigen, die einen weniger kryptischen Weg suchen , um einen schönen Bildschirm einzurichten, kann ich von Herzen byobu (früher als Bildschirmprofile bezeichnet) empfehlen . Am unteren Rand des Bildschirms finden Sie einige nützliche Standardeinstellungen: In der unteren Zeile finden Sie verschiedene nützliche Statusinformationen und in der zweiten Zeile finden Sie eine Liste Ihrer Bildschirmfenster. All dies kann in einem schönen einfachen Menü mit F9 konfiguriert werden.

Die Funktionstasten sind allgemeinen Operationen zugeordnet:

  • F2 - Erstellt ein neues Fenster
  • F3 - Gehe zum vorherigen Fenster
  • F4 - Zum nächsten Fenster gehen
  • F5 - Profil neu laden
  • F6 - Trennen Sie sich von der Sitzung
  • F7 - Ruft den Scrollback-Modus auf
  • F8 - Alle Tastenkombinationen anzeigen
  • F9 - Bildschirmprofile konfigurieren
  • F12 - Sperren Sie dieses Terminal

In diesem Artikel finden Sie ein Tutorial und Screenshots .

Byobu befindet sich ab karmic (9.10) in den Ubuntu-Repositories. In fröhlichem wurde es Siebprofile genannt. Davor kann aus installiert werden diese ppa von dieser Download - Seite . Es ist weit verbreitet für andere aktuelle Distributionen.

Es hängt zwar von Python ab, aber sobald Sie Byobu nach Ihren Wünschen eingerichtet haben, können Sie einen Teerball generieren lassen, der alles enthält, was Sie benötigen, um Ihren Bildschirm mithilfe von Byobu-Export auf einem anderen Computer neu zu erstellen .

Hamish Downer
quelle
Bildschirmprofile sind fantastisch . Ich würde gleich antworten.
Jtimberman
12

Ich verwende auch eine ziemlich komplizierte Kombination aus Untertitel- und Hardstatuszeile, um den Effekt von Dropdown-Registerkarten zu simulieren (die Untertitelzeile ist durchgehend grau und die aktuelle Registerkarte im Hardstatus hat dieselbe Farbe).

Ich habe auch einen Shell-Tell-Bildschirm, der anzeigt, wie der aktuelle Prozessname lautet und in welchem ​​Verzeichnis ich mich befinde, damit meine Registerkartennamen immer auf dem neuesten Stand sind, was ich in den einzelnen Registerkarten tue. Dies ist wichtig, damit Sie sich merken können, was ich wo mache, ohne alle meine geöffneten Registerkarten durchblättern zu müssen.

 # don't use the hardstatus line for system messages, use reverse video instead
 # (we'll be using it for the list of tab windows - see hardstatus alwayslastline
 # below)
 hardstatus off

 # use the caption line for the computer name, load, hstatus (as set by zsh), & time
 # the caption line gets repeated for each window being displayed (using :split),
 # so we'll use color cues to differentiate the caption of the current, active
 # window, and the others.
 #    always                  - display the caption continuously.  Since
 #                              hardstatus is 'alwayslastline', it will be on the
 #                              next to last line.
 #    "%?%F"                  - if (leading '%?') this region has focus ('%F') 
 #                              (e.g. it's the only region being displayed, or,
 #                              if in split-screen mode, it's the currently active
 #                              region)
 #      "%{= Kk}"               - set the colorscheme to blac[k] on grey (bright blac[K]),
 #                                with no other effects (standout, underline, etc.)
 #    "%:"                    - otherwise ('%:' between a pair of '%?'s)
 #      "%{=u kR}"              - set the colorscheme to [R]ed on blac[k], and
 #                                underline it, but no other effects (bold, standout, etc.) 
 #    "%?"                    - end if (trailing '%?')
 #    "  %h "                 - print two spaces, tthne the [h]ardstatus of the
 #                              current tab window (as set by zsh - see zshrc) and
 #                              then another space.
 #    "%-024="                - either pad (with spaces) or truncate the previous
 #                              text so that the rest of the caption string starts
 #                              24 characters ('024') from the right ('-') edge of
 #                              the caption line.
 #                              NOTE: omitting the '0' before the '24' would pad
 #                              or truncate the text so it would be 24% from the
 #                              right.
 #    "%{+b}                  - add ('+') [b]old to the current text effects, but
 #                              don't change the current colors.
 #    " %C:%s%a %D %d %M %Y"  - print the [C]urrent time, a colon, the [s]econds,
 #                              whether it's [a]m or pm, the [D]ay name, the [d]ay
 #                              of the month, the [M]onth, and the [Y]ear.
 #                              (this takes up 24 characters, so the previous
 #                              pad/truncate command makes sure the clock doesn't
 #                              get pushed off of the caption line)
 #    "%{= dd}"               - revert to the [d]efault background and [d]efault
 #                              foreground colors, respectively, with no ('= ')
 #                              other effects.
 #  other things that might be useful later are
 #    " %H"                   - print a space, then the [H]ostname.
 #    "(%{.K}%l%{-}):"        - print a '(', then change the text color to grey
 #                              (aka bright blac[K]), and print the current system
 #                              [l]oad.  Then revert to the previous colorscheme
 #                              ('%{-}') and print a close ')' and a colon.
 #                              NOTE: the load is only updated when some other
 #                              portion of the caption string needs to be changed
 #                              (like the seconds in the clock, or if there were a
 #                              backtick command)
 #    "%0`"                   - put the output of a backtick command in the line
 #    "%-024<"                - don't pad, just truncate if the string is past 24
 #                              characters from the right edge
 #    "%-="                   - pad (with spaces) the previous text text so that
 #                              the rest of the caption string is justified
 #                              against the right edge of the screen.
 #                              NOTE: doesn't appear to truncate previous text.
 caption always           "%?%F%{= Kk}%:%{=u kR}%?  %h %-024=%{+b} %C%a %D %d %M %Y%{= db}"
 # use the hardstatus line for the window list
 #    alwayslastline      - always display the hardstatus as the last line of the
 #                          terminal
 #    "%{= kR} %-Lw"      - change to a blac[k] background with bright [R]ed text,
 #                          and print all the tab [w]indow numbers and titles in
 #                          the [L]ong format (ie with flags) upto ('-') the
 #                          current tab window
 #    "%{=b Kk} %n%f %t " - change to grey (bright blac[K]) background with
 #                          [b]old blac[k] text, with no other effects, and print
 #                          the [n]umber of the current tab window, any [f]lags it
 #                          might have, and the [t]itle of the current tab window
 #                          (as set by zsh - see zshrc).
 #                          NOTE: the color match with the caption line makes it
 #                          appear as if a 'tab' is dropping down from the caption
 #                          line, highlighting the number & title of the current
 #                          tab window.  Nifty, ain't it)
 #    "%{-}%+Lw "         - revert to the previous color scheme (red on black)
 #                          and print all the tab [w]indow numbers and titles in
 #                          the [L]ong format (ie with flags) after ('+') the
 #                          current tab window.
 #    "%=%{= dd}"         - pad all the way to the right (since there is no text
 #                          that follows this) and revert to the [d]efault
 #                          background and [d]efault foreground colors, with no
 #                          ('= ') other effects.
 hardstatus alwayslastline "%{= kR} %-Lw%{=b Kk} %n%f %t %{-}%+Lw %=%{= dd}"

Hier sind meine zshrc-Einstellungen, um dem Bildschirm mitzuteilen, was ich in den einzelnen Registerkarten mache.

# ~/.zshrc
# if using GNU screen, let the zsh tell screen what the title and hardstatus
# of the tab window should be.
if [[ $TERM == "screen" ]]; then
  _GET_PATH='echo $PWD | sed "s/^\/Users\//~/;s/^~$USER/~/"'

  # use the current user as the prefix of the current tab title (since that's
  # fairly important, and I change it fairly often)
  TAB_TITLE_PREFIX='"`'$_GET_PATH' | sed "s:..*/::"`$PROMPT_CHAR"'
  # when at the shell prompt, show a truncated version of the current path (with
  # standard ~ replacement) as the rest of the title.
  TAB_TITLE_PROMPT='$SHELL:t'
  # when running a command, show the title of the command as the rest of the
  # title (truncate to drop the path to the command)
  TAB_TITLE_EXEC='$cmd[1]:t'

  # use the current path (with standard ~ replacement) in square brackets as the
  # prefix of the tab window hardstatus.
  TAB_HARDSTATUS_PREFIX='"[`'$_GET_PATH'`] "'
  # when at the shell prompt, use the shell name (truncated to remove the path to
  # the shell) as the rest of the title
  TAB_HARDSTATUS_PROMPT='$SHELL:t'
  # when running a command, show the command name and arguments as the rest of
  # the title
  TAB_HARDSTATUS_EXEC='$cmd'

  # tell GNU screen what the tab window title ($1) and the hardstatus($2) should be
  function screen_set()
  {
    # set the tab window title (%t) for screen
    print -nR $'\033k'$1$'\033'\\\

    # set hardstatus of tab window (%h) for screen
    print -nR $'\033]0;'$2$'\a'
  }
  # called by zsh before executing a command
  function preexec()
  {
    local -a cmd; cmd=(${(z)1}) # the command string
    eval "tab_title=$TAB_TITLE_PREFIX$TAB_TITLE_EXEC"
    eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX$TAB_HARDSTATUS_EXEC"
    screen_set $tab_title $tab_hardstatus
  }
  # called by zsh before showing the prompt
  function precmd()
  {
    eval "tab_title=$TAB_TITLE_PREFIX$TAB_TITLE_PROMPT"
    eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX$TAB_HARDSTATUS_PROMPT"
    screen_set $tab_title $tab_hardstatus
  }
fi
Rampion
quelle
10

Die nützlichste Bildschirmanpassung, IMHO, besteht darin, den Modifikatorschlüssel in etwas anderes als Ca zu ändern. Das ist einfach zu wichtig für einen Schlüssel, um ihn gegessen zu haben. Ich benutze Cz, da ich Anwendungen viel seltener aussetzen muss, als etwas am Anfang der Zeile zu bearbeiten.

Das Zauberwort lautet:

escape ^za
jrockway
quelle
1
Ich setze meine auf Strg-K, weil es die am seltensten verwendete Strg-Taste in den Apps ist, die ich verwende. ^ A ist in Bash / Readline zu nützlich, um es zu opfern.
cas
1
Um zu überprüfen, womit Sie in Konflikt geraten, konsultieren Sie bitte superuser.com/questions/120333/… (was ich in diesem Sinne gefragt habe).
Hamish Downer
2
Zu Ihrer Information: Wenn Sie Ca als Moderator-Taste belassen möchten, springt Ca a an den Anfang der Zeile. Ich habe eine Weile gebraucht, um das herauszufinden.
Coomer
9

Ich habe oft mehr als 10 laufende Fenster und wollte eine Möglichkeit, sie auszuwählen. Ich fand heraus, wie man Ca Shift + 0 bis 9 konfiguriert, um die Fenster 10 bis 19 auszuwählen.

bind  ! select 11
bind  @ select 12
bind \# select 13
bind  $ select 14
bind  % select 15
bind \^ select 16
bind  & select 17
bind  * select 18
bind  ( select 19
bind  ) select 10

Beachten Sie die Escapezeichen bei # und ^.

staticsan
quelle
6

Haben Sie Probleme mit Vollbildprogrammen wie vim, die nach dem Schließen im Scrollback-Puffer verbleiben? Wäre es nicht großartig, wenn sie komplett verschwinden würden, so wie Sie es tun, wenn Sie nicht mit dem Bildschirm arbeiten? Fügen Sie dies in Ihre ~ / .screenrc-Datei ein ...

altscreen on
Sean Colsen
quelle
2

Ich verwende Strg + Alt + Links und Strg + Alt + Rechts, um zwischen den Bildschirmfenstern zu wechseln. Für meinen IRSSI-Kanal verwende ich Alt + Links und Alt + Rechts, und für die GNOME-Arbeitsbereichsumschaltung verwende ich Strg + Alt + Umschalt + Links / Rechts. Es scheint kompliziert, aber es funktioniert wirklich gut.

Die Zeichencodes für das GNOME-Terminal unterscheiden sich von den Zeichencodes beim Herstellen einer Verbindung über PuTTy, sodass ich die Einträge duplizieren musste. Sie können cat> / dev / null verwenden , um die entsprechenden Zeichencodes für Sie zu ermitteln.

#     KEYBOARD SHORTCUTS    #
# execute 'cat > /dev/null' to see the character codes

# Change Escape Combination to Ctrl+f (Ctrl+a is too useful to lose)
escape ^Ff

# PREVIOUS WINDOW
# Ctrl + Alt + Left from gnome-terminal
bindkey ^[[1;7C prev

# Ctrl+Alt+Left from putty
bindkey ^[^[[D prev

# NEXT WINDOW
# Ctrl + Alt + Right from gnome-terminal
bindkey ^[[1;7D next

# Ctrl+Alt+Right from putty
bindkey ^[^[[C next
tboerman
quelle
1

Der Backtick-Befehl ist ziemlich groovig. Lesen Sie darüber im Man-Screen. Ich benutze es so:

backtick 1 15 15 $HOME/bin/cpuusage
# now add '%1`%% CPU' to your hardstatus string. Result is like 38.4% CPU.

Mein cpuusage-Skript für Linux und Mac lautet:

#!/bin/bash
if [[ $(uname) == "Darwin" ]]; then
    top -i1 -l2 -n0|awk '/CPU/{i+=1; gsub(/%/,"",$0);p=substr(sprintf("%3.2f",$8+$10),0,4);if(i==2){printf "%g", p}}'
  else
    awk 'NR==1 {p=substr(sprintf("%3.2f", ($2+$3)/($2+$3+$4+$5)*100),0,4); printf "%g", p;}'</proc/stat
fi
Bruno Bronosky
quelle
0

Ich kann auch nicht ohne die Menüleiste leben. Eine Sache, die ich nicht gerne auf die Speisekarte setze, die viele Leute haben, ist die Zeit; es verhindert, dass PuTTYs Bildlauf zurück bleibt (da dies als Bildschirmaktualisierung angesehen wird)

Mikeage
quelle
1
Sie könnten den eingebauten Scrollback des Bildschirms verwenden? C-A [Standardmäßig werden Sie in den Kopiermodus versetzt und können mit Tastaturbefehlen wie einem Texteditor in Ihrer aktuellen Registerkarte navigieren.
Murali Suriar
@murail Ich bevorzuge die Verwendung des Scrolly Wheel-Dings in meiner Maus, wenn ich Putty verwende. nur Gewohnheit. @mikeage - Ich habe festgestellt, dass der Scrollback-Puffer auf dem Bildschirm ziemlich gut funktioniert, wenn Sie die Sekunden auf der Uhr loswerden. Natürlich habe ich meistens eine Uhr auf meinem Bildschirm, um die dummen Leerlauf-Timeouts zu vermeiden, die wir auf unseren verdammten Firewalls haben. grrr.
Chris
0

Ich habe F11 und F12 eingestellt, um durch Fenster zu blättern. Dies erleichtert das Wechseln zwischen Fenstern, insbesondere bei Fenstern> 10

# Bind F11 and F12 (NOT F1 and F2) to previous and next screen window
bindkey -k F1 prev
bindkey -k F2 next
theotherreceive
quelle
0

Wenn Sie urxvt verwenden, werden die folgenden ermöglichen CTRL+LEFTund CTRL+RIGHTverwendet werden , um zum vorherigen und nächsten Tab - Fenster zu verschieben:

bindkey "^[Od" prev  # ctrl-left
bindkey "^[Oc" next  # ctrl-right

Erneutes Herstellen einer Verbindung zu einer Remote-Bildschirmsitzung, die immer ausgeführt oder sofort erstellt werden soll:

bind V screen -t MYTABNAME ssh -t MYUSERNAME "screen -x main || screen -R -S main"

Wenn Sie die Flusskontrolle standardmäßig ausschalten, können Sie CTRL+Rin rtorrent Folgendes verwenden:

defflow off

Wenn Sie rtorrent als Daemon mit einem eigenen Benutzerkonto ausführen, kann diese .screenrc nützlich sein:

vbell off
startup_message off
escape ^Rr
screen -t rtorrent rtorrent
multiuser on
acladd YOURUSERNAME
defflow off
Trey Hunner
quelle
0
# disable C-a s, which freezes the screen; can be resolved with C-a q
bind s 
Chase T.
quelle