Come smettere di riordinare le stesse finestre di anteprima multipla nello scambio di attività?


21

Quando si utilizza la commutazione di attività nella modalità grafica predefinita di Ubuntu 12.04, se si tratta di più finestre dello stesso tipo, ad es. più finestre Terminale, puoi vederle tutte insieme e selezionare quale vuoi.

inserisci qui la descrizione dell'immagine

Il mio problema è che l'ordine di queste finestre è costantemente cambiato. Segue l'ordine "ultimo usato". Li voglio sempre in un ordine fisso; Come posso farlo?


3
Funzionalità molto fastidiosa. Ho fatto la stessa domanda qui askubuntu.com/questions/271506/… ma purtroppo ancora nessuna risposta.
Gumkins,

5
Questo "problema" esiste anche nel 14.04! Queste finestre dovrebbero davvero essere ordinate in base alla loro posizione relativa sullo schermo e sui desktop, quando sono visualizzate in anteprima finestre da più di un desktop. Solo quando una vedova è posizionata strettamente sopra l'altra (misurata entro un certo intervallo di pixel), il posizionamento dell'anteprima dovrebbe dipendere dalla regola dell'ultimo "usato". Vorrei anche fare un altro "aggiustamento" a questa regola: applicare le preferenze della lingua regionale, del testo "da sinistra a destra" o "da destra a sinistra", per decidere quale lato dello schermo è considerato "primo" - - a sinistra o a destra.
PJ Singh,

1
Una possibile soluzione sarebbe quella di mantenere le finestre nell'ordine in cui sono state create, ma almeno mantenerle fisse nell'ordine. Preferirei un ordine casuale ma stabile rispetto a questo casino, mi sento come se stessi destreggiandosi costantemente tra gli schermi.
Minos

1
Credo che ciò richiederebbe la modifica del codice di unità. Puoi iniziare qui: unity3d.com/learn/documentation
Elder Geek,

Ho ancora questo problema nel 2018, versione 18.04. Super fastidioso.
Jesse Busman,

Risposte:


2

Invece di modificare la base di codice di unità, potresti prendere in considerazione l'utilizzo dei desktop per ottenere il risultato desiderato.

Esempio di utilizzo di Compiz Desktop Cube in CompizConfigSettingsManager

Apri CompizConfigSettingsManager ( ccsm) e modifica le impostazioni in modo che corrispondano a quanto segue:

ccsm-1

ccsm-2

Apri il terminale 1

Utilizzare la scorciatoia da tastiera CTRL-ALT -> (freccia destra) per passare al desktop successivo a destra.

Apri il terminale 2

Utilizzare la scorciatoia da tastiera CTRL-ALT -> (freccia destra) per tornare nuovamente al desktop successivo a destra.

Aprire il terminale 3

Utilizzare la scorciatoia da tastiera CTRL-ALT - <- (freccia sinistra) per andare al desktop precedente contenente il terminale 2 (o due volte per tornare al terminale 1)

Un'altra opzione

Utilizzare il viewport manager in CompizConfig SettingManager e assegnare una combinazione di tasti per accedere direttamente al desktop di propria scelta

Nota: finora sono stato in grado di far funzionare solo 10, anche se 12 dovrebbe essere possibile con questo metodo. ccsm-3

Aggiornamento: basato sulle preoccupazioni espresse nei commenti:

Basta fare clic destro sulla barra del titolo gedit e scegliere sempre nell'area di lavoro visibile ...

Un'altra opzione:

Invece di aprire terminali separati (o aree di lavoro) per le tue numerose attività, puoi anche usare le schede nel terminale GNOME. I tasti di scelta rapida per il cambio di scheda sono disponibili dalle preferenze del terminale. Vedi sotto:

terminale-prefs


Se avessi capito bene, questo mi avrebbe lasciato con la necessità di utilizzare un collegamento diverso o un clic per passare da un'attività all'altra. Si può fare immagino. Tuttavia, come clonerei tutte le finestre non terminali di cui ho bisogno che normalmente hanno solo 1 istanza su tutti i desktop, quando ho bisogno o desidero che l'interazione sia rapida e possibile tra i terminali e le altre finestre?
n611x007

Di quanti casi hai bisogno? L'uso di Viewport Manager ti darebbe fino a 12. Tastiera attivata. È "scattante"?
Elder Geek


Penso di essere stato incomprensibile ... Gli spazi di lavoro sono sufficienti. Vorrei provare a dirlo in questo modo. Esempio ipotetico. Prima: 3 terminali, 't1', 't2', 't3', + 1 finestra gedit. Copia-incolla avanti e indietro tra gedit e sia 't1' che 't2'. L'ordine del cambio di attività è errato. Dopo (applicando la soluzione alternativa): ho 3 terminali su 3 aree di lavoro 'w1', 'w2', 'w3' rispettivamente, una finestra gedit su 'w1'. Devo copiare e incollare tra gedit e sia 't1' che 't2'. Come posso copiare e incollare tra 't2' e gedit su 'w2' nel modo più comodo?
n611x007

Non ho avuto problemi a copiare e incollare tra le aree di lavoro, quindi non sono sicuro esattamente cosa stai chiedendo. Poiché "il modo più comodo" è una questione di opinione piuttosto che un fatto misurabile, hai le mie scuse ma non credo di poter rispondere logicamente a questo.
Elder Geek

1

Un'altra opzione, se il tuo desktop è abbastanza grande, è impostare alcune finestre su "sempre in primo piano" e disporle in modo da poter passare con il mouse. È un kludge ... ma a volte lo trovo utile quando lavoro con più finestre dello stesso tipo.

Ancora un altro è definire diversi profili terminali con combinazioni di colori diversi e usarne uno diverso per ogni terminale ... ciò li renderebbe facili da identificare. inserisci qui la descrizione dell'immagine Sì, anche questo è una soluzione alternativa.


1

Penso che puoi ottenere questo risultato modificando il codice sorgente di Unity 7 . Basta seguire i passaggi descritti sul sito dello sviluppatore ma prima di iniziare il processo di costruzione aprire: ./trunk/plugins/unityshell/src/unityshell.cppe dare un'occhiata alla SetUpAndShowSwitcherfunzione:

void UnityScreen::SetUpAndShowSwitcher(switcher::ShowMode show_mode)
{
  RaiseInputWindows();

  if (!optionGetAltTabBiasViewport())
  {
    if (show_mode == switcher::ShowMode::CURRENT_VIEWPORT)
      show_mode = switcher::ShowMode::ALL;
    else
      show_mode = switcher::ShowMode::CURRENT_VIEWPORT;
  }

  auto results = launcher_controller_->GetAltTabIcons(show_mode == switcher::ShowMode::CURRENT_VIEWPORT,
                                                      switcher_controller_->show_desktop_disabled());

  if (switcher_controller_->CanShowSwitcher(results))
    switcher_controller_->Show(show_mode, switcher::SortMode::FOCUS_ORDER, results);
}

Qui puoi vedere chiaramente che questa è esattamente la funzione che stavamo cercando. La parte superiore è responsabile del cambio delle modalità di visualizzazione:

Mostra modalità

Questa commutazione appare ogni volta che ci spostiamo in un gruppo di app o se ci spostiamo fuori dal gruppo. optionGetAltTabBiasViewportindica quando ciò accade. Quindi GetAltTabIconsè coinvolto per ottenere le icone giuste. E infine la Showfunzione con il SortMode::FOCUS_ORDERviene chiamata per visualizzare le nostre icone ordinate. SortMode è un enum:

enum class SortMode
{
  LAUNCHER_ORDER,
  FOCUS_ORDER,
};

e cambiando FOCUS_ORDERa LAUNCHER_ORDERdovrebbe risolvere il tuo problema. È possibile inserire un'istruzione if aggiuntiva prima di chiamare Showper impedire l'ordinamento dell'ordine di avvio nel ShowMode::ALLcaso.

Si noti che il codice sorgente di Unity 8 sembra completamente diverso. Quindi questa soluzione potrebbe funzionare solo per Unity 7. Dopo mezz'ora riparando le dipendenze mancanti e dopo un'altra ora combattendo con cmake ho deciso di non rovinare il mio sistema e provarlo domani in VM;)

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.