Come mantenere le finestre divise dopo aver rimosso / ricollegato lo schermo GNU


35

Uso lo schermo in un server Ubuntu.

Ho il mio schermo diviso in quattro regioni ognuna con una finestra diversa.

Il problema è quando scollego (o forse ricollego) le quattro finestre ma solo una regione e devo rifare C-a Stutto da capo?

Come posso mantenere lo schermo diviso quando si ricollega?

Risposte:


15

Dalla schermata Domande frequenti :

(La domanda implicita è: "Come posso mantenere le finestre divise su un distacco?")

La risposta è che non puoi. La risposta più lunga è che puoi fingere.

Le divisioni sono una proprietà del tuo display. Il processo di gestione della sessione dello schermo non li conosce davvero; fa solo il singolo processo che mostra la sessione. Pertanto, la sessione dello schermo non riesce a ricordare le divisioni perché non ne è a conoscenza e, una volta distaccato, è terminato il processo che ne era a conoscenza.

L'hacking consiste nell'utilizzare sessioni schermo nidificate. Inizia una sessione e assegnagli una sequenza di escape che non userai molto (o semplicemente disabiliti completamente il suo carattere di escape). Associa la solita sequenza di tasti staccati a questa sessione dello schermo. Ora, avvia o allega alla sessione della schermata principale. Tutto il tuo lavoro verrà svolto nella sessione interna e puoi dividere il display. Quando ti stacchi, tuttavia, sarà la sessione esterna che si stacca, quindi le tue divisioni nella sessione interna verranno preservate.

Supponendo che tu usi il carattere di escape predefinito, Ca, il tuo screenrc alternativo dovrebbe contenere:

escape ""
bindkey ^ad detach

1
Dopo aver trascorso uno o due anni passati a configurare e utilizzare pesantemente sessioni schermo nidificate, lo consiglio. Nel tempo, il dolore della complessità aggiunta diminuisce, mentre aumenta l'utilità della configurazione più flessibile.
funroll

13
La nuova funzionalità, vale a dire layout, invalida questa risposta!
Kadir,

Vedi superuser.com/a/516822/113250 per la "nuova" funzione di layout integrata
Thiago Figueiro,

67

Ho scoperto che se hai già alcune finestre configurate e vuoi salvarle puoi farlo:

Ctrl-a
:
layout save default

Quindi, quando si scollega e si ricollega alla sessione, è necessario ripristinare il layout.

Funziona con la versione schermo 4.00.03jw4 (FAU) 2-mag-06 (Ubuntu 12.04 e 12.10)

Inoltre potresti voler creare una sessione di Deamon come tale:

$> screen -dmSU mysession

e quindi averlo sempre disponibile chiamando:

$> screen -r mysession

5
Soluzione molto migliore. Questa dovrebbe essere la risposta accettata. (So ​​perché scorro sempre verso il basso XD)
BrainStone,

1
Sfortunatamente sembra che la versione corrente su Redhat screen 4.00.03 (FAU) 23-Oct-06non abbia questa funzionalità. Ma dovrebbe!
David Dombrowsky

Questa è una risposta migliore, ma sotto c'è una risposta ancora migliore che salva automaticamente il layout ogni volta che lo utilizza .screenrc. Valorizza questa risposta
Mark Lakata,

14

Nella versione git, è layoutstata introdotta una nuova funzionalità .

dallo schermo (1):

layout nuovo [titolo]

Crea un nuovo layout. Lo schermo cambierà in un'intera regione e passerà alla finestra vuota. Da qui, costruisci le regioni e le finestre che mostrano come desideri. Il nuovo layout verrà numerato con il numero intero più piccolo disponibile, iniziando da zero. Opzionalmente puoi assegnare un titolo al tuo nuovo layout. Altrimenti, avrà un titolo predefinito di "layout". Puoi sempre modificare il titolo in un secondo momento utilizzando il titolo del layout del comando.

anche se hai rimosso la sessione dello schermo, il layout ha ricordato come la regione è stata divisa.

ad esempio, lo schermo inizia con follow configuration.

layout new
split
split -v
screen 0
focus next
screen 1
focus bottom
screen 2
detach

E ricollegando questa sessione, sarai in grado di tornare al layout (selezionato per ultimo) che ha 3 regioni divise.


qualcuno sa quali richieste sono necessarie per ottenere questo (non sono abbastanza nerd per applicare le patch ma non eseguirò mai il codice trunk (ho un karma negativo: P))
borrel

7

Aggiungi semplicemente questa riga al tuo ~/.screenrc:

# This line makes Detach and Re-attach without losing the regions/windows layout
layout save default

6

Sembra che lo facciamux . Questo è un nuovo progetto multiplexer, ispirato allo schermo, ma codificato da zero e con una licenza BSD.

(Scusate se il mio inglese è scomodo da leggere: - °)


-1

Di recente ho letto l'intero screen man e non esiste un modo comune per farlo se lo schermo stesso non lo ricorda automaticamente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.