Impossibile avere finestre sparse nella schermata di .Xresources
-
03-07-2019 - |
Domanda
Problema iniziale: per non avere finestre sparse quando uso vspilt in Vim all'interno dello schermo
Tentativi di risolvere il problema:
- Impossibile: per aumentare la frequenza di aggiornamento del display per il codice terminale del Mac
- per aggiungere qualcosa a .Xresources
alt text http://dl.getdropbox.com/u/175564/bugWithScreen .png
Unix Power Tools -book dice che il problema può essere risolto in .Xresources. Tuttavia, non specifica esattamente come.
Ho raccolto i seguenti codici sul mio .Xresources
mrxvt*scrollBar: true
mrxvt*loginShell: true
mrxvt*syncTabTitle: true
mrxvt*font: Monaco
mrxvt*faceSize: 11
mrxvt*xft: True
mrxvt*xftFont: Monaco
mrxvt*xftSize: 12
mrxvt*xftAntialias: True
mrxvt*termName: xterm-256color
XTerm*VT100.metaSendsEscape: True
# translations used to coordinate xterm with xcilpboard
# Unix Power Tools: p.117
*VT100.Translations: #override\
Button1 <Btn3Down>: select-end(primary,CUT_BUFFER0,CLIPBOARD)\n\
!Shift <Btn2Up>: insert-selection(CLIPBOARD)\n\
~Shift ~Ctrl ~Meta <Btn2Up>: insert-selection(primary,CUT_BUFFER0)
Soluzione
L'analisi di ~ / .Xresources viene eseguita all'avvio del server X11, come parte degli script di inizializzazione della sessione X11. Se modifichi ~ / .Xresources, devi usare xrdb (1) per caricare il nuovo file per comunicare al server X11 in esecuzione le modifiche.
ATTENZIONE che xrdb (1) sostituirà di default le risorse attuali invece di sovrascriverle e leggere da stdin è l'impostazione predefinita, quindi non invocarle senza parametri! Quindi vuoi usare
xrdb -merge ~/.Xresources
per caricare il file modificato. Puoi usare
xrdb -query
per vedere cosa è già caricato.
Per il Mac, non so che cosa, dove o quando, potrebbero guardare ~ / .Xresources; poiché X11 è un programma eseguito per utilizzare il display, piuttosto che il padrone di tutto ciò che è grafico, potrebbe essere piuttosto minimale e non farlo per impostazione predefinita. xrdb -query sarà di aiuto.
Una cosa che potrebbe aiutare è invece impostare XAPPLRESDIR come variabile di shell esportata; c'è qualche manopola da qualche parte in MacOS per impostare le variabili di ambiente come una cosa di sessione, visibile a tutti i programmi senza colpire la shell dell'utente, ma dimentico dove (l'ho trovato una volta durante l'impostazione del portachiavi SSH). XAPPLRESDIR è una variabile env variabile che punta alle sostituzioni delle risorse dell'applicazione da parte dell'utente. Il suo valore dovrebbe essere una directory ($ HOME / share / xapps / per esempio). Ogni applicazione X11 collegata alla libreria X Intrinsics ( libXt ), al momento dell'inizio di X11, cercherà in quella directory i file corrispondenti al nome della classe dell'applicazione. In questo modo, non devi preoccuparti di caricare risorse, ecc .; modifica il file dell'app, avvia il programma.
Quindi le risorse per xterm vanno in un file XTerm, ecc .; per scoprire la classe di un programma arbitrario, è possibile utilizzare xprop (1) senza argomenti, fare clic nella finestra di destinazione mentre il puntatore è un mirino e quindi guardare stdout da xprop per la proprietà WM_CLASS. Per alcuni strumenti meno recenti come xterm puoi anche usare editres (1) per essere in grado di visualizzare interattivamente i widget di un'applicazione X in esecuzione tramite ispezione remota; c'è una voce di menu Ottieni albero, che ti consente di fare clic sull'app di destinazione e un'altra voce di menu per mostrare i nomi delle classi.
Io stesso, il mio file ~ / share / xapps / XTerm imposta il colore di sfondo del menu su un giallo orribile; in questo modo, quando controllo - < left | middle | right > -click in un XTerm so immediatamente se qualcosa non va e le mie risorse non sono state caricate.
#ifdef COLOR XTerm.SimpleMenu*background: yellow #endif
Altri suggerimenti
Questo si verifica quando si esegue Tlist o quando ci si riconnette a una sessione precedentemente aperta?
Se è quest'ultimo (e le dimensioni della finestra variano), potrebbe essere a causa della schermata delle opzioni con cui è stato avviato. Prova ad avviare la schermata con queste opzioni & Quot; -aADR & Quot ;. quot &; & -a quot; e " -A " forza lo schermo a ridisegnare al momento della riconnessione.