Erstellen Sie mithilfe einer Tastenkombination einen neuen Bereich

10

Ich bin mir bewusst, dass Sie dies über Mission Control tun können, indem Sie auf klicken. In 'Tastatur' ist keine Verknüpfung verfügbar.

Gibt es Möglichkeiten, dies mit einem Programm eines Drittanbieters oder Applescript zu tun?

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Jonathan De Wet
quelle
Sehr hilfreiche Frage für meinen Workflow. Ich würde auch gerne etwas über Ihren Desktop-Hintergrund erfahren!
Qcom
1
Ich bin froh, dass dir die Frage gefallen hat :) Hier ist ein Link zum Hintergrundbild Somethingpeach.com/wp-content/uploads/2014/06/…
Jonathan De Wet

Antworten:

1

Update: Diese Methode funktioniert unter OS X 10.11 und früher mindestens unter OS X 10.8 (wurde nicht auf älteren Versionen als OS X 10.8 getestet), funktioniert jedoch aufgrund der von Apple vorgenommenen wesentlichen Änderungen an Mission Control nicht mehr wie in macOS 10.12 codiert .


Um einen Desktop in Mission Control programmgesteuert hinzuzufügen, kann der folgende Code als AppleScript- oder BASH-Skript in Verbindung mit einem Automator-Dienst verwendet werden, der AppleScript bzw. Shell-Skript ausführen ausführt, und eine Tastenfolge, die dem Dienst in den Systemeinstellungen auf der Tastatur zugewiesen ist Verknüpfungen.


AppleScript-Code:

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

BASH-Skriptcode:

#!/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'

  • Öffnen Sie Automator und wählen Sie Service .

  • Festlegen: Der Dienst erhält in keiner Anwendung Eingaben

  • Fügen Sie entweder eine Aktion " AppleScript ausführen" oder " Shell-Skript ausführen" hinzu .

  • Fügen Sie den entsprechenden Code für die Zielaktion hinzu .

  • Speichern Sie den Dienst unter z. B.: Neuen Desktop hinzufügen

  • Weisen Sie in den Systemeinstellungen eine Tastenkombination für den Dienst zu .

Hinweis: Sie müssen eine Tastenfolge zuweisen, die an keiner anderen Stelle im System oder im Finder verwendet wird, wenn Sie sich für eine Anwendung im Service entscheiden .

Ich habe es getestet mit: ⌃⌥⌘D (Control-Option-Command-D)

user3439894
quelle
Danke, das hat super funktioniert. Denken Sie, Sie könnten ein zweites Skript zum Löschen von Leerzeichen erstellen?
Jonathan De Wet
@Jonathan, das Hinzufügen eines Desktops ist zunächst programmatisch eine Art Kludge und möglich, da es einen AXButton mit der AXDescription "Desktop hinzufügen" gibt, auf den geklickt werden kann, jedoch die AXButton (s) unter Mission Control mit AXTitle, z. Desktop 2 "hat zwar ein enges Element (einen Kreis mit Axt in der oberen linken Ecke der Schaltfläche), kann aber nicht auf die gleiche Weise adressiert werden, wie es keine Schaltfläche" Desktop entfernen "gibt. Ich kenne also wirklich keine einfache Möglichkeit, eine programmgesteuert zu entfernen, sorry.
user3439894
Das macht Sinn. Vielen Dank, dass Sie sich die Zeit genommen haben, es mir zu erklären
Jonathan De Wet
Ich habe dies in macOS (10.12.1) versucht und hatte kein Glück. Es öffnet Mission Control für 0,5 Sekunden, aber die Schaltfläche Neuer Desktop wird nicht gedrückt.
Domi91c
2
@ user3439894 Ja, ich habe nur kommentiert, falls jemand eine Antwort für MacOS hatte. Ich hatte nicht daran gedacht, eine separate Frage zu erstellen. sollte ich? Vielen Dank, ich schätze die Hilfe.
Domi91c
2

OK, mit der Automator-Aufzeichnung habe ich sie mit einer überarbeiteten Version des AppleScript in der anderen Antwort zum Laufen gebracht.

Ersetzen Sie "von Gruppe 1" durch "von Gruppe 2 von Gruppe 1 von Gruppe 1 von":

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
quelle
Die überprüfte Antwort funktionierte nicht für mich, aber diese tat =)
Brian Schermerhorn
1

Ja, das funktioniert irgendwie. Das Problem besteht darin, dass die Lösung von user3439894 einen Fehler auslöst, wenn die aktive Anwendung (Finder, Textedit usw.) nicht zum Bereich Sicherheit und Datenschutz hinzugefügt wurde.

Um dies zu umgehen, benötigen wir zwei Workflows, den Dienst von user3439894 mit der aktualisierten Gruppenliste als Automator-Anwendung und einen zweiten Automator-Dienst, um ihn zu starten.

Die Automator-Anwendung (Gespeichert in / Anwendungen als "Neuer Desktop".)

on run {Eingabe, Parameter}

Shell-Skript "open -a 'Mission Control'"

Verzögerung 0,5

Weisen Sie die Anwendung "Systemereignisse" an, auf Gruppe 2 von Gruppe 1 von Gruppe 1 von Prozess "Dock" zu klicken (jede Schaltfläche, deren Wert des Attributs "AXDescription" "Desktop hinzufügen" ist).

Verzögerung 0,5

Teilen Sie der Anwendung "Systemereignisse" den Schlüsselcode 53 mit

Eingabe zurückgeben

Lauf beenden

Dann müssen wir nur noch den zweiten Workflow als Service erstellen, indem wir die Aktion "Anwendung starten" verwenden und ihn als "New_Desktop" speichern.

Die letzten Schritte sind das Hinzufügen von "New Desktop.App" zu Systemeinstellungen> Sicherheit und Datenschutz> Barrierefreiheit

Fügen Sie dann Ihre Tastenkombination unter Systemeinstellungen> Tastatur> Verknüpfungen> Dienste> Allgemein für den Workflow New_Desktop.workflow hinzu.

Andrusoid
quelle