Esiste un comando per passare ad uno spazio di lavoro specifico?


22

Sto cercando di creare un elenco rapido nel programma di avvio del commutatore dell'area di lavoro che consente di passare rapidamente a un determinato spazio di lavoro. (Il mio amico a volte usa il mio computer e semplicemente non ama le scorciatoie da tastiera, quindi voglio aiutarlo.)

Quindi c'è un comando su cui si potrebbe digitare un terminale che costringerebbe a focalizzare un determinato spazio di lavoro?


Inoltre c'è la possibilità di impostare la scorciatoia da tastiera su systemsettings5 per kwin (cambia desktop o altro) o altro gestore impostazioni desktop. quindi usa xdotool per simulare i tasti di scelta rapida come il tasto xdotool ctrl + alt + b;
Intika,

Risposte:


34

Puoi usare wmctrl .

Comandi di base:
wmctrl -dper mostrare tutte le aree di lavoro.
wmctrl -s <workspace_name>per passare a un'area di lavoro specifica.

Se stai usando Compiz, dovrai fare un trucco perché le "aree di lavoro" di Compiz sono in realtà finestre di un singolo spazio di lavoro.

Istruzioni di trucco

Controlla l'output di wmctrl -dAd esempio, il mio è:

0  * DG: 4098x2304  VP: 1366,0  WA: 0,23 1366x745  N/A  

Ciò significa che in realtà ho uno spazio di lavoro di 4098 x 2304 invece di quello che "penso" di avere (nove "spazi di lavoro", 3 x 3).
Ero in quello che doveva essere "spazio di lavoro" 2, ma in realtà ero a viewport (VP) 1366,0 (4098/3 = 1366), come mostrato dall'output sopra.

Quindi funziona così: prendiamo l'intero spazio di lavoro e dividiamo per il numero di "spazi di lavoro" che "pensiamo" di avere. Nel mio caso: 4098/3 = 1366 e 2304/3 = 768.

Se voglio andare al mio "spazio di lavoro" 1, il comando è:

wmctrl -o 0,0

Quindi, se voglio andare al mio "spazio di lavoro" 4, il comando è:

wmctrl -o 0,768

Se voglio andare al mio "spazio di lavoro" 8, il comando è:

wmctrl -o 1366,1536

Se voglio andare al mio "spazio di lavoro" 9, il comando è:

wmctrl -o 2732,1536

Fatto? ;-)

La -obandiera "tronca" i loro valori. In altre parole, cambia lo "spazio di lavoro" a cui appartiene il pixel effettivo. Sono equivalenti:

wmctrl -o 0,0
wmctrl -o 1365,767

1
C'è un modo per arrivare al "desktop corrente + 1"?
xjcl

9

È meravigliosamente semplice ottenere ciò che desideri xdotool, che ha più opzioni per la gestione di diverse aree di lavoro (note anche come "desktop" nella documentazione del programma). Trovo che possa essere molto interessante e creativo mettere insieme i comandi man xdotool; i comandi che ho formulato di seguito potrebbero essere utili negli script.

Nota: con alcuni gestori di finestre o se si sta utilizzando compiz, potrebbe essere necessario utilizzare xdotoolcomandi come set_desktop_viewporte get_desktop_viewport. Potrebbe essere necessario specificare i comandi in modo diverso come suggerisce desgua sopra, ma per me i comandi set_desktope si set_desktop_for_windowsono dimostrati più utili su un sistema non-compiz.)

( La soluzione è molto utile per gli utenti di Xubuntu / Lubuntu o per quelli che non eseguono compiz, ecc. )

Per elencare il numero di aree di lavoro correnti, inserire

xdotool get_num_desktops

I seguenti comandi funzioneranno solo se hai almeno 1 altro spazio di lavoro.

Per modificare lo stato attivo nell'area di lavoro 1, basta inserire

xdotool set_desktop 1 

Quindi per tornare allo spazio di lavoro predefinito, immettere

xdotool set_desktop 0

L'area di lavoro deve solo essere specificata come ultimo valore nel comando (1 o 2 o 3, ecc.).

Per trovare il numero dell'area di lavoro in cui ci si trova attualmente, è possibile utilizzare

xdotool get_desktop

Questi comandi potrebbero essere utilizzati negli script e dovrebbero essere molto utili per ottenere ciò che vuoi.

Per come passare da un'applicazione a un determinato desktop, vedi la mia risposta qui:

Per ulteriori opzioni utili disponibili per la commutazione dell'area di lavoro, consultare man xdotool.


Mi piace questa risposta meglio di quella accettata, grazie. Ho usato questo per impostare due angoli caldi per passare facilmente tra due aree di lavoro.
agenda

Utile anche: passa al desktop successivo a sinistra / destra usando il relativo flag:xdotool set_desktop --relative -- -1
xjcl


0

C'è uno script chiamato compiz-send.py sul wiki di compiz che risolve parzialmente la tua domanda: non è uno spazio di lavoro specifico ma puoi arrivare a quello accanto ad esso.

Con questo è possibile emettere un comando
./compiz-dbus-send.py put put_viewport_left_key
./compiz-dbus-send.py put put_viewport_right_key
e fare in modo che il viewport passi 1 a sinistra o a destra.


0

Accedere a un'area di lavoro specifica ed eseguire azioni lì può essere implementato con Python e la libreria pyautogui , che consente agli script Python di eseguire clic del mouse, sequenze di tasti, ecc.

Nel forum per Peppermint OS ho scritto un breve tutorial sull'avvio di un'app in un posto di lavoro specifico.

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.