Supposons que j'utilise 4 espaces de travail et que j'en ai besoin par ailleurs, existe-t-il un processus automatisé ou, si cela est impossible, un moyen facile d'ajouter accidentellement plus d'espaces de travail (au lieu d'installer, Ubuntu tweak
etc., etc.).
14.04
unity
workspaces
automation
workspace-switcher
kernel_panic
la source
la source
Réponses:
Définissez automatiquement le nombre d'espaces de travail; ajouter et supprimer des colonnes et des lignes, selon vos besoins
Ci-dessous une version d'un (le) script backround qui ajoutera automatiquement des espaces de travail si vous avez entré la dernière colonne ou ligne de votre matrice d'espace de travail.
Voilà comment cela fonctionne:
Si vous arrivez à la dernière colonne ou ligne, des fenêtres supplémentaires sont ajoutées:
Si vos espaces de travail sont inutilisés pendant 5 à 10 secondes et qu'il n'y a pas de fenêtres dessus, les espaces de travail supplémentaires seront à nouveau supprimés. Cependant, vous conserverez toujours une ligne supplémentaire ci-dessous et une colonne supplémentaire à droite de votre fenêtre actuelle:
Le script:
Comment utiliser
add_space.py
Dans la section head du script, éditez les lignes si vous aimez les autres paramètres (nombre maximum d'espaces de travail, matrice par défaut 2x2 par exemple):
Testez-le par la commande:
Si tout fonctionne bien, ajoutez-le à vos applications de démarrage: Dash> Startup Applications> Add the command:
Remarque
Comme toujours, le script est extrêmement "faible en jus" et n'ajoute aucune charge notable à votre processeur.
Explication
L'histoire ci-dessous est un peu compliquée et surtout une explication sur le concept et la procédure , plutôt que sur le codage. Lisez uniquement si vous êtes intéressé.
Comment calculer les espaces de travail nécessaires (exemples de colonnes)
La sortie de
wmctrl -d
ressemble à:Dans la sortie,
VP: 1680,1050
nous donne des informations sur notre position dans l'espace de travail s'étendant (la matrice de toutes les fenêtres). Ces informations ne sont utiles que si nous avons également la résolution de l'écran, car par exemple1680
pourrait être la largeur de deux (peu probable, mais quand même) ou une fois l'écran.Heureusement, nous pouvons analyser la résolution de l'écran à partir de la commande
xrandr
.Ensuite, si nous savons que la taille x de l'écran est
1680
et que nous sommes actuellement allumésVP: 1680,1050
, nous savons que nous sommes sur la deuxième colonne de la matrice de l'espace de travail. Puisque nous connaissons également la taille de la matrice totale (DG: 3360x2100
, également à partir de la sortie dewmctrl -d
), nous savons que la matrice actuelle comprend deux colonnes (3360/1680), et nous sommes sur la "dernière".Le script enverra alors une instruction pour ajouter une colonne à la matrice par la commande:
Tel est le principe.
Comment calculer les espaces de travail à supprimer (exemples de colonnes)
Une fois toutes les 10 secondes, le script exécute la commande pour répertorier toutes les fenêtres actuellement ouvertes, avec la commande:
Cela nous donne également des informations sur la position de la fenêtre, ressemblant à:
Dans la sortie,
3425
est la position x de la fenêtre. Ce chiffre est cependant relatif à l'espace de travail actuel (côté gauche). Pour connaître la position absolue de la fenêtre (dans le sens x) dans la matrice de l'espace de travail, nous devons ajouter le premier nombre des informations de la fenêtre courante (par exempleVP: 1680,1050
, à partir de la sortie dewmctrl -d
).Supposons cependant, pour des raisons de simplicité, supposons que nous sommes sur la fenêtre
1,1
(fenêtre topleft), donc la position relative de la fenêtre est égale à sa position absolue.Puisque la résolution de l'écran est
1680
, nous savons que la fenêtre est sur colonne3425/1680
, arrondie, car tout ce qui se3360 and 5040
trouve entre est sur la même colonne dans la matrice (entre 3 et 4 fois la résolution). Pour un calcul correct, nous utilisonsmath.ceil()
(python
)Étant donné que le script pratique également la règle pour toujours avoir un espace de travail supplémentaire à droite / en dessous, nous devons définir le nombre de colonnes à la valeur la plus élevée de:
Et donc le script fait :)
Les lignes sont gérées exactement selon la même procédure.
la source
Techniquement, il n'y a pas de raccourci pour redimensionner les espaces de travail, mais vous pouvez utiliser le script ci-dessous et le lier à un raccourci.
.local/share/applications
dossier ou où vous le souhaitez.chmod 755 /path/to/script
Par exemple, j'ai cette configuration:
Le script est lié à ShiftCtrlAltI. Mais CtrlAltIpourrait aussi fonctionner. Je donne le chemin complet au script, qui est
Et voici à quoi cela devrait ressembler:
Scénario
Très simple à utiliser, très simple à installer
la source