Saya sadar Anda dapat melakukannya dari Mission Control dengan mengklik dan tidak ada pintasan yang tersedia di 'Keyboard'.
Apakah ada cara untuk melakukan ini dengan menggunakan program pihak ketiga atau Applescript?
Saya sadar Anda dapat melakukannya dari Mission Control dengan mengklik dan tidak ada pintasan yang tersedia di 'Keyboard'.
Apakah ada cara untuk melakukan ini dengan menggunakan program pihak ketiga atau Applescript?
Jawaban:
Pembaruan: Metode ini berfungsi di OS X 10.11 dan sebelumnya setidaknya untuk OS X 10.8 (tidak mengujinya pada yang lebih tua dari OS X 10.8) tetapi tidak lagi berfungsi seperti yang dikodekan di macOS 10.12 karena perubahan signifikan pada Kontrol Misi yang dibuat oleh Apple. .
Untuk secara terprogram menambahkan Desktop dalam Kontrol Misi, kode di bawah ini dapat digunakan sebagai AppleScript atau BASH Script bersama dengan Layanan Automator menggunakan Run AppleScript atau Run Shell Script, masing-masing, dan urutan kunci yang ditetapkan untuk Layanan di System Preferences di Keyboard. Pintasan.
Kode 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
Kode Skrip 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'
Buka Automator dan pilih Layanan .
Set: Layanan tidak menerima input dalam aplikasi apa pun
Tambahkan Run AppleScript atau Run Shell Script Action .
Tambahkan kode yang sesuai untuk Aksi target .
Simpan Layanan sebagai, misalnya: Tambahkan Desktop Baru
Tetapkan pintasan keyboard untuk Layanan di System Preferences .
Catatan: Anda harus menetapkan urutan kunci yang tidak digunakan di tempat lain pada Sistem atau di Finder jika Anda memilih di atas aplikasi apa pun di Layanan .
Saya mengujinya dengan: ⌃⌥⌘D (Control-Option-Command-D)
OK, menggunakan rekaman Automator, saya membuatnya bekerja dengan versi revisi dari AppleScript di jawaban lain.
Ganti "grup 1" dengan "grup 2 grup 1 grup 1 dari":
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
Yap, itu berhasil, semacam. Masalahnya adalah bahwa solusi user3439894 akhirnya menimbulkan kesalahan jika aplikasi yang aktif (Finder, textedit, dll.) Tidak ditambahkan ke panel Keamanan & Privasi Aksesibilitas.
Untuk menyiasatinya, kita membutuhkan dua alur kerja, layanan user3439894 dengan daftar grup yang diperbarui sebagai aplikasi Automator, dan layanan Automator kedua untuk meluncurkannya.
Aplikasi Automator (Disimpan ke / Aplikasi sebagai "Desktop Baru".)
dalam proses {input, parameter}
lakukan script shell "open -a 'Mission Control'"
menunda 0,5
beri tahu aplikasi "System Events" untuk mengklik (setiap tombol yang nilainya atribut "AXDescription" adalah "add desktop") dari grup 2 grup 1 dari grup 1 proses "Dock"
menunda 0,5
beri tahu aplikasi "System Events" ke kode kunci 53
mengembalikan input
akhirnya jalankan
Maka kita hanya perlu membuat alur kerja kedua sebagai layanan, menggunakan tindakan "Luncurkan Aplikasi" dan simpan sebagai "New_Desktop"
Langkah terakhir adalah menambahkan "New Desktop.App" ke Preferensi Sistem> Keamanan & Privasi> Aksesibilitas
Kemudian tambahkan pintasan keyboard Anda di System Preferences> Keyboard> Shortcuts> Services> General untuk New_Desktop.workflow.