Amethyst: Demande de fonctionnalité : créez de nouveaux espaces avec Amethyst

Créé le 31 mars 2014  ·  7Commentaires  ·  Source: ianyh/Amethyst

Parfois, j'ai besoin de créer un nouvel espace et de lancer des fenêtres dans le nouvel espace. Il serait utile (pour moi) de pouvoir gérer cela avec Amethyst.

Le meilleur flux de travail que j'ai trouvé jusqu'à présent pour ajouter un nouvel espace :

  • utilisez le raccourci clavier Mission Control pour afficher tous les espaces
  • maintenez la touche ⌥ enfoncée (pour que les x apparaissent sur chaque espace ainsi que le grand "signe plus" dans le coin supérieur droit de l'écran)
  • utilisez une souris pour cliquer sur le signe plus
  • puis retournez dans un espace et utilisez Amethyst pour gérer les fenêtres

J'ai essayé d'utiliser AppleScript et Accessibility Inspector, et j'ai également effectué quelques recherches sommaires dans les documents du développeur d'Apple et dans la source Amethyst pour voir si je pouvais trouver une solution possible ou une fonctionnalité associée. Mais il est vrai que mes compétences de débutant ont échoué et j'ai échoué :)

Est-ce possible? Si c'est le cas, je serais heureux de poursuivre mes efforts avec un coup de pouce dans la bonne direction - même s'il s'avère que je ne pourrai pas utiliser Amethyst pour le faire.

Carte Trello

discussion needed enhancement

Commentaire le plus utile

@codehearts Lorsque

> pbpaste | osascript
35:121: execution error: System Events got an error: sh: /Applications/Mission Control.app/Contents/MacOS/Mission Control: No such file or directory (127)

Remplacer "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control" par /System/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control" fonctionne pour moi sur

> sw_vers -productVersion
10.15.2

Tous les 7 commentaires

Hmm, je devrais plonger plus profondément dans l'API d'Apple pour voir à ce sujet. La solution la plus brutale serait de la gérer de la même manière que nous gérons le déplacement de fenêtres vers un autre espace (qui consiste à manipuler la souris pour cliquer et faire glisser la fenêtre tout en utilisant un raccourci clavier pour passer à un autre espace). C'est plutôt inélégant, et je ne sais pas comment cela se traduirait par différentes tailles d'écran/configurations, mais une solution serait de faire la même chose.

c'est à dire

  • Déclencher le raccourci de contrôle de mission
  • Déplacez la souris et effectuez un événement souris enfoncée sur le nouveau bouton espace.
  • Utilisez un raccourci clavier pour vous déplacer vers le nouvel espace

Il pourrait également y avoir un moyen de créer un nouvel espace en utilisant l'API privée pour les espaces, mais si vous deviez emprunter cette route, il ne serait pas fusionné dans Amethyst car Ian ne souhaite pas utiliser d'API privées.

@leonardt ,

Cette réponse de SO utilise AppleScript et MouseTools pour créer un nouvel espace, mais je préfère également éviter les dépendances inutiles.

delay 0.5 -- time to release command if the script is run with command-R
tell application "System Events"
    key code 126 using control down -- control-up
    delay 1
    do shell script "MouseTools -x 1900 -y 60;sleep 1;MouseTools -leftClickNoRelease;MouseTools -releaseMouse"
    key code 53 -- escape
end tell

^ Pour contourner les dépendances de MouseTools et de la taille de l'écran, j'ai fouillé dans l'inspecteur d'accessibilité et j'ai appris que la description du bouton pour le signe plus est "ajouter un bureau", ce qui semble unique, mais je ne sais pas comment dire à AppleScript de trouver un bouton en cette description après l'affichage des espaces et l'apparition du signe plus. Sais-tu comment faire cela?

Une autre réponse de SO suggère de modifier com.apple.spaces.plist pour ajouter un espace, puis de redémarrer le processus du Finder, mais je pense que cela pourrait être trop compliqué. :)

Les pensées?

Quelque chose qui est lié à cela est que la fenêtre focalisée sur les raccourcis vers l'espace crée un espace avant de lancer si l'espace demandé n'existe pas.

Sur Mojave j'ai pu automatiser la création de nouveaux espaces avec ceci :

tell application "System Events"
  do shell script "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
  click button 1 of group "Spaces Bar" of group 1 of group "Mission Control" of process "Dock"
  do shell script "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control"
end tell

Cette approche ne nécessite pas non plus de définir une combinaison de touches Mission Control, mais les fenêtres se rétrécissent pendant une fraction de seconde lorsque l'animation démarre et s'arrête. L'ajout de delay 0.5 après le clic donne suffisamment de temps à l'animation pour afficher la nouvelle création d'espace

@codehearts Lorsque

> pbpaste | osascript
35:121: execution error: System Events got an error: sh: /Applications/Mission Control.app/Contents/MacOS/Mission Control: No such file or directory (127)

Remplacer "/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control" par /System/Applications/Mission\\ Control.app/Contents/MacOS/Mission\\ Control" fonctionne pour moi sur

> sw_vers -productVersion
10.15.2

Le script
-- il serait peut-être intéressant de packager cette fonction dans Amethyst ; actuellement, c'est un problème pour moi sur mac (par rapport à l'utilisation d'i3 sur linux où tout se fait systématiquement via le clavier)

La seule et les deux seules fonctionnalités restantes qui feront que l'améthyste remplacera à 100% le yabai pour moi est de créer de nouveaux espaces lorsque je veux lancer quelque chose (lancer l'application de l'espace 1 à l'espace 7, cela créera un deuxième espace au lieu d'en faire 5 vides) et destruction automatique des espaces vides lorsque vous en retirez la dernière application restante

Cette page vous a été utile?
0 / 5 - 0 notes