Créer un nouvel espace à l'aide d'un raccourci clavier

10

Je suis conscient que vous pouvez le faire à partir de Mission Control en cliquant sur et il n'y a pas de raccourci disponible dans «Clavier».

Y a-t-il des moyens de le faire en utilisant un programme tiers ou Applescript?

entrez la description de l'image ici

entrez la description de l'image ici

Jonathan De Wet
la source
Question très utile pour mon flux de travail. J'aimerais aussi connaître votre arrière-plan de bureau!
Qcom
1
Heureux que vous ayez aimé la question :) Voici un lien vers le fond d'écran somethingpeach.com/wp-content/uploads/2014/06/…
Jonathan De Wet

Réponses:

1

Mise à jour: cette méthode fonctionne sous OS X 10.11 et versions antérieures au moins sous OS X 10.8 (ne l'a pas testée sur quelque chose de plus ancien que OS X 10.8) mais ne fonctionne plus comme codé dans macOS 10.12 en raison de modifications importantes apportées à Mission Control par Apple .


Pour ajouter par programme un bureau dans Mission Control, le code ci-dessous peut être utilisé comme un AppleScript ou un script BASH en conjonction avec un service Automator à l'aide de Run AppleScript ou Run Shell Script, respectivement, et une séquence de touches affectée au service dans les préférences système du clavier Raccourcis.


Code AppleScript:

do shell script "open -a 'Mission Control'"
delay 0.5
tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 1 of process "Dock"
delay 0.5
tell application "System Events" to key code 53

Code de script BASH:

#!/bin/bash

open -a 'Mission Control'
osascript -e 'delay 0.5' \
          -e 'tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 1 of process "Dock"' \
          -e 'delay 0.5' \
          -e 'tell application "System Events" to key code 53'

  • Ouvrez Automator et sélectionnez Service .

  • Définir: le service ne reçoit aucune entrée dans aucune application

  • Ajoutez une action Run AppleScript ou Run Shell Script Action .

  • Ajoutez le code approprié pour l' action cible .

  • Enregistrez le service sous, par exemple: Ajouter un nouveau bureau

  • Attribuez un raccourci clavier pour le service dans les préférences système .

Remarque: Vous devrez attribuer une séquence de touches qui n'est pas utilisée ailleurs sur le système ou dans le Finder si vous choisissez est sur n'importe quelle application du service .

Je l'ai testé avec: ⌃⌥⌘D (Control-Option-Command-D)

user3439894
la source
Merci, cela a très bien fonctionné. Pensez-vous que vous pourriez créer un deuxième script pour supprimer des espaces?
Jonathan De Wet
@Jonathan, l'ajout d'un bureau est une sorte de complication, programmatique, pour commencer et possible car il existe un AXButton avec la description AXDes "ajouter un bureau" sur lequel on peut cliquer, mais le ou les AXButton sous Mission Control avec AXTitle, par exemple " Bureau 2 ", bien qu'il ait un élément proche (un cercle avec une hache, dans le coin supérieur gauche du bouton), il n'est pas adressable de la même manière qu'il n'y a pas de bouton" supprimer le bureau ". Donc, je ne connais vraiment pas de moyen facile de supprimer un programme, désolé.
user3439894
Ça a du sens. Merci d'avoir pris le temps de m'expliquer
Jonathan De Wet
J'ai essayé cela sous macOS (10.12.1) et je n'ai pas eu de chance. Il ouvre Mission Control pendant 0,5 seconde mais le bouton Nouveau bureau n'est pas enfoncé.
domi91c
2
@ user3439894 Oui, je commentais juste au cas où quelqu'un aurait une réponse pour MacOS. Je n'avais pas envisagé de créer une question distincte; devrais-je? Merci cependant, j'apprécie l'aide.
domi91c
2

OK, en utilisant l'enregistrement Automator, je l'ai fait fonctionner avec une version révisée d'AppleScript dans l'autre réponse.

Remplacer "du groupe 1" par "du groupe 2 du groupe 1 du groupe 1 de":

on run {input, parameters}

    do shell script "open -a 'Mission Control'"
    delay 0.5
    tell application "System Events" to click (every button whose value of attribute "AXDescription" is "add desktop") of group 2 of group 1 of group 1 of process "Dock"
    delay 0.5
    tell application "System Events" to key code 53

    return input
end run
Andrusoid
la source
La réponse cochée n'a pas fonctionné pour moi, mais celle-ci a fonctionné =)
Brian Schermerhorn
1

Oui, ça marche, en quelque sorte. Le problème est que la solution de user3439894 finit par générer une erreur si l'application active (Finder, textedit, etc.) n'a pas été ajoutée au volet Accessibilité de la sécurité et de la confidentialité.

Pour contourner ce problème, nous avons besoin de deux flux de travail, le service de user3439894 avec la liste de groupes mise à jour en tant qu'application Automator, et un deuxième service Automator pour le lancer.

L'application Automator (enregistrée dans / Applications en tant que "nouveau bureau".)

à l'exécution {entrée, paramètres}

faire un script shell "open -a 'Mission Control'"

retard 0,5

dire à l'application "Evénements système" de cliquer (chaque bouton dont la valeur de l'attribut "AXDescription" est "ajouter un bureau") du groupe 2 du groupe 1 du groupe 1 du processus "Dock"

retard 0,5

indiquer à l'application "Evénements système" le code clé 53

entrée de retour

moyen détourné

Il suffit ensuite de créer le deuxième workflow en tant que service, en utilisant l'action "Lancer l'application" et de l'enregistrer sous "New_Desktop"

Les dernières étapes consistent à ajouter «New Desktop.App» aux Préférences Système> Sécurité et confidentialité> Accessibilité

Ajoutez ensuite votre raccourci clavier dans Préférences Système> Clavier> Raccourcis> Services> Général pour le flux de travail New_Desktop.work.

Andrusoid
la source