Utwórz nowe miejsce za pomocą skrótu klawiaturowego

10

Wiem, że możesz to zrobić za pomocą Kontroli misji, klikając i nie ma dostępnego skrótu w „Klawiaturze”.

Czy można to zrobić za pomocą programu innej firmy lub Applescript?

wprowadź opis zdjęcia tutaj

wprowadź opis zdjęcia tutaj

Jonathan De Wet
źródło
Bardzo pomocne pytanie dla mojego przepływu pracy. Chciałbym również wiedzieć o twoim tle pulpitu!
Qcom
1
Cieszę się, że podoba Ci pytanie :) Oto link do tapet somethingpeach.com/wp-content/uploads/2014/06/...
Jonathan De Wet

Odpowiedzi:

1

Aktualizacja: Ta metoda działa w OS X 10.11 i wcześniejszych przynajmniej w OS X 10.8 (nie testowała jej na żadnym starszym niż OS X 10.8), ale nie działa już tak, jak jest zakodowana w macOS 10.12 z powodu znacznych zmian w kontroli misji wprowadzonych przez Apple .


Aby programowo dodać pulpit w ramach kontroli misji, poniższy kod może być używany jako skrypt AppleScript lub BASH w połączeniu z usługą Automatora, używając odpowiednio Run AppleScript lub Run Shell Script, oraz sekwencję klawiszy przypisaną do usługi w Preferencjach systemowych w Klawiaturze Skróty


Kod 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

Kod skryptu 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'

  • Otwórz Automator i wybierz Serwis .

  • Zestaw: usługa nie otrzymuje danych wejściowych w żadnej aplikacji

  • Dodaj akcję Uruchom AppleScript lub Uruchom skrypt powłoki .

  • Dodać odpowiedni kod dla docelowego działania .

  • Zapisz usługę jako, np .: Dodaj nowy pulpit

  • Przypisz skrót klawiaturowy do usługi w Preferencjach systemowych .

Uwaga: Musisz przypisać sekwencję klawiszy, która nie jest używana w innym miejscu w Systemie lub w Finderze, jeśli wybierzesz opcję nad jakąkolwiek aplikacją w Serwisie .

Testowałem to z: ⌃⌥⌘D (Control-Option-Command-D)

użytkownik3439894
źródło
Dzięki, działało świetnie. Czy myślisz, że możesz stworzyć drugi skrypt do usuwania spacji?
Jonathan De Wet
@Jathanathan, dodawanie pulpitu jest swego rodzaju kludge, programowo, na początek i możliwe, ponieważ istnieje AXButton z AXDescription „dodaj pulpit”, który można kliknąć, jednak AXButton (y) pod kontrolą misji za pomocą AXTitle, np. „ Pulpit 2 ”, chociaż ma zamknięty element (okrąg z siekierą, w lewym górnym rogu przycisku), nie można go adresować w ten sam sposób, ponieważ nie ma przycisku„ usuń pulpit ”. Naprawdę nie wiem, jak łatwo usunąć programowo jeden, przepraszam.
user3439894
To ma sens. Dzięki za poświęcenie mi czasu na wyjaśnienie tego
Jonathan De Wet,
Próbowałem tego w systemie macOS (10.12.1) i nie miałem szczęścia. Otwiera Kontrolę misji na 0,5 sekundy, ale przycisk Nowy pulpit nie jest wciśnięty.
domi91c
2
@ user3439894 Tak, właśnie komentowałem na wypadek, gdyby ktoś miał odpowiedź na MacOS. Nie zastanawiałem się nad stworzeniem osobnego pytania; Czy powinienem? Dziękuję, doceniam pomoc.
domi91c
2

OK, używając nagrania Automator, sprawiłem, że działał on ze zmienioną wersją AppleScript w drugiej odpowiedzi.

Zamień „z grupy 1” na „z grupy 2 z grupy 1 z grupy 1 z”:

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
źródło
Sprawdzona odpowiedź nie działała dla mnie, ale ta zadziałała =)
Brian Schermerhorn
1

Tak, to działa. Problem polega na tym, że rozwiązanie user3439894 kończy się zgłaszaniem błędu, jeśli aktywna aplikacja (Finder, SMS-y itp.) Nie została dodana do panelu Bezpieczeństwo i prywatność.

Aby obejść ten problem, potrzebujemy dwóch przepływów pracy, usługi user3439894 ze zaktualizowaną listą grup jako aplikacją Automator oraz drugiej usługi Automator do jej uruchomienia.

Aplikacja Automator (zapisana w / Applications jako „New Desktop”.)

on run {input, parameters}

wykonaj skrypt powłoki „open -a 'Mission Control”

opóźnienie 0,5

każ aplikacji „Zdarzenia systemowe”, aby kliknęła (każdy przycisk, którego wartością atrybutu „AXDescription” jest „dodaj pulpit”) z grupy 2 z grupy 1 z grupy 1 procesu „Dock”

opóźnienie 0,5

powiadomić aplikację „Zdarzenia systemowe” o kodzie klucza 53

zwracane dane wejściowe

koniec biegu

Następnie musimy tylko utworzyć drugi przepływ pracy jako usługę, używając akcji „Uruchom aplikację” i zapisać go jako „New_Desktop”

Ostatnie kroki to dodanie „New Desktop.App” do Preferencji systemowych> Bezpieczeństwo i prywatność> Dostępność

Następnie dodaj skrót klawiaturowy w Preferencjach systemowych> Klawiatura> Skróty> Usługi> Ogólne dla przepływu New_Desktop.work.

Andrusoid
źródło