Buat ruang baru menggunakan pintasan keyboard

9

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?

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Jonathan De Wet
sumber
Pertanyaan yang sangat membantu untuk alur kerja saya. Saya juga ingin tahu tentang latar belakang desktop Anda!
Qcom
1
Senang Anda menyukai pertanyaan :) Berikut adalah tautan ke wallpaper somethingpeach.com/wp-content/uploads/2014/06/…
Jonathan De Wet

Jawaban:

1

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)

pengguna3439894
sumber
Terima kasih ini berhasil. Apakah Anda pikir Anda bisa membuat skrip kedua untuk menghapus spasi?
Jonathan De Wet
@ Jonathan, Menambahkan Desktop adalah semacam kludge, secara terprogram, untuk memulainya dan mungkin karena ada AXButton dengan AXDeskripsi "add desktop" yang dapat diklik namun AXButton di bawah Kontrol Misi dengan AXTitle, mis. " Desktop 2 ", walaupun memiliki elemen dekat (lingkaran dengan kapak, di sudut kiri atas tombol) tidak dapat dialamatkan dengan cara yang sama karena tidak ada tombol" hapus desktop ". Jadi saya benar-benar tidak tahu cara mudah untuk menghapus satu secara terprogram, maaf.
user3439894
Itu masuk akal. Terima kasih telah meluangkan waktu untuk menjelaskannya kepada saya
Jonathan De Wet
Saya sudah mencoba ini di macOS (10.12.1) dan belum beruntung. Ini membuka Kontrol Misi selama 0,5 detik tetapi tombol Desktop Baru tidak ditekan.
domi91c
2
@ user3439894 Ya, saya hanya berkomentar kalau-kalau ada yang punya jawaban untuk MacOS. Saya belum mempertimbangkan untuk membuat pertanyaan terpisah; Haruskah saya? Terima kasih, saya menghargai bantuannya.
domi91c
1

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
Andrusoid
sumber
Jawaban yang dicentang tidak bekerja untuk saya, tetapi jawaban ini =)
Brian Schermerhorn
1

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.

Andrusoid
sumber