Posizione nell'area di lavoro centrale all'accesso


12

Ho impostato il selettore dell'area di lavoro 3x3 e per impostazione predefinita desidero che la mia posizione sia quella centrale. È possibile?

Risposte:


7

Grazie a Marco, ho capito come usare wmctrl.

Poiché le aree di lavoro di compiz sono in realtà viewport di un singolo desktop, la soluzione è spostare la viewport corrente in modo da coprire l'area centrale del desktop.

Innanzitutto, chiama wmctrl -dper ottenere le informazioni sul desktop corrente:

read desktop_id _ast \
    DG_ geometry \
    VP_ viewport \
    WA_ wa_off wa_size \
    title \
    < <(LANG=C wmctrl -d | grep '*')

geom_w=${geometry%x*}
geom_h=${geometry#*x}

# The workarea size isn't accurate, because the top/bottom panel is excluded. 
viewport_w=${wa_size%x*}
viewport_h=${wa_size#*x}

rows=$((geom_w / viewport_w))
cols=$((geom_h / viewport_h))

# Fix the viewport size
viewport_w=$((geom_w / rows))
viewport_h=$((geom_h / cols))

Quindi, calcola l'origine della finestra centrale:

center_row=$((rows / 2))
center_col=$((cols / 2))

center_x=$((center_col * viewport_w))
center_y=$((center_row * viewport_h))

center_viewport=$center_x,$center_y

E sposta la finestra lì:

wmctrl -o $center_viewport

6

Sì: installa wmctrl

sudo apt-get install wmctrl

e crea un file ~/.config/autostart/wmctrl.desktopcon il seguente:

[Desktop Entry]
Name=Desktop Switcher
Exec=/usr/bin/wmctrl -s 4
Type=Application

1
C'è solo un desktop in Compiz. Ma wmctrlpuò comunque cambiare viewport all'interno del desktop. Vedi la mia risposta qui sotto.
Xiè Jìléi,

2
  1. Per prima cosa scarica questo script di supportotesto alternativo per il controllo di compiz dalla riga di comando. Salvalo come compiz-send.pynella tua cartella home.
  2. Esegui il comando python compiz-send.py vpswitch switch_to_5_keyper assicurarti che funzioni correttamente. Dovrebbe passare allo spazio di lavoro centrale.
  3. Se funziona, crea un file chiamato .switch_to_center_workspace.shnella tua cartella home e incolla al suo interno quanto segue:

    #!/bin/bash
    sleep 5 && python /home/user/compiz-send.py vpswitch switch_to_5_key
    

    sostituendo usercon il tuo nome utente.

  4. Apri Applicazioni di avvio, Sistema -> Preferenze -> Applicazioni di avvio .

  5. Fare clic su Aggiungi e nel comando: inserimento voce /home/user/.switch_to_center_workspace.sh. Inserisci quello che vuoi nelle voci Nome: e Commento:.

  6. Disconnettersi e riconnettersi e verificare che funzioni.


Sfortunatamente la sceneggiatura non funzionadbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "activate" with signature "si" on interface "org.freedesktop.compiz" doesn't exist
Xiè Jìléi

@ 谢 继 雷 Cambia la sleep 5parte dello script con un numero più alto, come sleep 10per assicurarti che compiz sia già in esecuzione quando lo script è in esecuzione. Stai usando compiz giusto?
Isaia,

Provo a eseguire lo script in gnome-terminal e ottengo l'eccezione. Sto usando Compiz 0.8.6.
Xiè Jìléi,

Nello script, si dice che la firma del metodo "si" non esiste, quindi immagino che gli argomenti (string, int) passati ad
activ

2

Stavo per fare la domanda simile, ma per 3 aree di lavoro orizzontali e sto anche eseguendo compiz, e l' wmctrl -doutput (per area di lavoro) è simile al seguente:

  • Nello spazio di lavoro 1: 0 * DG: 4098x768 VP: 0,0 WA: 0,24 1366x744 Workspace 1
  • Nello spazio di lavoro 2: 0 * DG: 4098x768 VP: 1366,0 WA: 0,24 1366x744 Workspace 1
  • Nello spazio di lavoro 3: 0 * DG: 4098x768 VP: 2732,0 WA: 0,24 1366x744 Workspace 1

Di quanto ho semplicemente usato wmctrl -o 1366,0( valori VP ) per rendere il centro come spazio di lavoro predefinito all'avvio. Potrebbe non funzionare per tutti, ma per ogni evenienza;)


Il comando che sto usando in "Sistema -> Preferenze -> Applicazioni di avvio":sh -c "sleep 2;/usr/bin/wmctrl -o 1366,0
wiki

... potrebbe essere necessario regolare il valore del sonno, ad esempio provare 10, 15, ecc.
wiki

Grazie per questa nota - scusa se non l'ho letto prima di leggere la tua risposta :)
sdaau,

0

Solo una breve nota: sto usando Natty e, grazie alla risposta di @ 谢 继 雷, ho notato che quanto segue viene riportato spostando il terminale in ciascuna delle quattro 'aree di lavoro' in Unity:

$ wmctrl -d
# top left
0  * DG: 2048x1200  VP: 0,0  WA: 0,24 1024x576  Workspace 1
# bottom left
0  * DG: 2048x1200  VP: 0,600  WA: 0,24 1024x576  Workspace 1
# top right
0  * DG: 2048x1200  VP: 1024,0  WA: 0,24 1024x576  Workspace 1
# bottom right 
0  * DG: 2048x1200  VP: 1024,600  WA: 0,24 1024x576  Workspace 1

... cioè non sono né desktop separati, né aree di lavoro - semplicemente il viewport cambia!

Quindi, per cambiare tra queste quattro finestre, è sufficiente chiamare il wmctrl -ocomando direttamente con i VPvalori sopra elencati, ovvero:

wmctrl -o 0,0
wmctrl -o 0,600
wmctrl -o 1024,0
wmctrl -o 1024,600

EDIT: Ups, mi dispiace, ho appena visto che questo è lo stesso della risposta di @ wik - unisci / elimina come appropriato ..

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.