สร้างพื้นที่ใหม่โดยใช้แป้นพิมพ์ลัด


10

ฉันรู้ว่าคุณสามารถทำได้จากการควบคุมโดยคลิกและไม่มีทางลัดใน 'แป้นพิมพ์'

มีวิธีใดบ้างในการทำเช่นนี้โดยใช้โปรแกรมของบุคคลที่สามหรือ Applescript?

ป้อนคำอธิบายรูปภาพที่นี่

ป้อนคำอธิบายรูปภาพที่นี่


คำถามที่มีประโยชน์มากสำหรับกระบวนการทำงานของฉัน ฉันต้องการทราบเกี่ยวกับพื้นหลังเดสก์ทอปของคุณ!
Qcom

1
ดีใจที่คุณชอบคำถาม :) นี่คือลิงค์ไปยังวอลล์เปเปอร์somepeach.com/wp-content/uploads/2014/06/…
Jonathan De Wet

คำตอบ:


1

อัปเดต: วิธีนี้ใช้งานได้ใน OS X 10.11 และก่อนหน้านี้อย่างน้อยเป็น OS X 10.8 (ไม่ได้ทดสอบกับอะไรที่เก่ากว่า OS X 10.8) แต่ไม่ทำงานตามรหัสใน macOS 10.12 อีกต่อไปเนื่องจากการเปลี่ยนแปลงที่สำคัญในการควบคุมภารกิจของ Apple .


ในการเพิ่มเดสก์ท็อปในการควบคุมภารกิจโดยทางโปรแกรมสามารถใช้รหัสด้านล่างเป็น AppleScript หรือ BASH Script ร่วมกับ Automator Service โดยใช้ Run AppleScript หรือ Run Shell Script ตามลำดับและลำดับคีย์ที่กำหนดให้กับบริการในการตั้งค่าระบบในคีย์บอร์ด ทางลัด


รหัส 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

รหัสสคริปต์ 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'

  • เปิดอัตโนมัติและเลือกบริการ

  • Set: Service ไม่ได้รับอินพุตในแอปพลิเคชัน

  • เพิ่มทั้งเรียก AppleScriptหรือเรียก Shell Script การดำเนินการ

  • เพิ่มที่เหมาะสมรหัสสำหรับเป้าหมายการดำเนินการ

  • บันทึกบริการเป็นเช่น: เพิ่มเดสก์ท็อปใหม่

  • กำหนดแป้นพิมพ์ลัดสำหรับการให้บริการในการตั้งค่าระบบ

หมายเหตุ:คุณจะต้องกำหนดลำดับที่สำคัญที่ไม่ได้ใช้ที่อื่น ๆ ในระบบหรือในFinderถ้าคุณเลือกที่จะจบโปรแกรมใด ๆในการให้บริการ

ฉันทดสอบด้วย: ⌃⌥⌘D (การควบคุมตัวเลือกคำสั่ง -D)


ขอบคุณมันใช้งานได้ดี คุณคิดว่าคุณสามารถสร้างสคริปต์ที่สองสำหรับการลบช่องว่างได้หรือไม่?
Jonathan De Wet

@ Jonathan, การเพิ่มเดสก์ท็อปเป็นประเภทของ kludge โดยทางโปรแกรมเพื่อเริ่มต้นและเป็นไปได้เนื่องจากมี AXButton ที่มี AXDescription ของ "เพิ่มเดสก์ท็อป" ที่สามารถคลิกได้ แต่ AXButton ภายใต้ Mission Control with AXTitle เช่น " เดสก์ท็อป 2 "ในขณะที่มันมีองค์ประกอบใกล้ชิด (วงกลมที่มีขวานที่มุมบนซ้ายของปุ่ม) มันไม่สามารถกำหนดแอดเดรสได้ในลักษณะเดียวกับที่ไม่มีปุ่ม" ลบเดสก์ท็อป " ดังนั้นฉันจึงไม่รู้วิธีที่ง่ายในการลบหนึ่งรายการโดยทางโปรแกรมขออภัย
user3439894

นั่นทำให้รู้สึก ขอบคุณที่สละเวลาอธิบายให้ฉัน
Jonathan De Wet

ฉันได้ลองทำสิ่งนี้ใน macOS (10.12.1) แล้วและยังไม่มีโชค มันเปิด Mission Control เป็นเวลา 0.5 วินาที แต่ไม่ได้กดปุ่ม New Desktop
domi91c

2
@ user3439894 ใช่ฉันแค่แสดงความคิดเห็นในกรณีที่บางคนมีคำตอบสำหรับ MacOS ฉันไม่ได้คิดว่าจะสร้างคำถามแยกต่างหาก ฉันควร? ขอบคุณแม้ว่าฉันขอบคุณความช่วยเหลือ
domi91c

2

ตกลงโดยใช้การบันทึกอัตโนมัติฉันทำให้มันทำงานกับ AppleScript รุ่นที่แก้ไขในคำตอบอื่น ๆ

แทนที่ "ของกลุ่ม 1" ด้วย "ของกลุ่ม 2 ของกลุ่ม 1 ของกลุ่ม 1 ของ":

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

คำตอบที่ตรวจสอบไม่ได้ทำงานสำหรับฉัน แต่คนนี้ไม่ได้ =)
ไบรอัน Schermerhorn

1

ใช่แล้วมันใช้งานได้ ปัญหาคือว่าโซลูชันของ user3439894 สิ้นสุดลงโดยมีข้อผิดพลาดหากไม่ได้เพิ่มแอปพลิเคชันที่ใช้งาน (Finder, textedit ฯลฯ ) ลงในบานหน้าต่างความปลอดภัยและความเป็นส่วนตัว

ในการหลีกเลี่ยงปัญหานี้เราจำเป็นต้องมีสองเวิร์กโฟลว์บริการของ user3439894 พร้อมกับรายชื่อกลุ่มที่ได้รับการปรับปรุงเป็นแอปพลิเคชัน Automator และบริการ Automator ตัวที่สองเพื่อเปิดใช้งาน

แอปพลิเคชัน Automator (บันทึก / แอปพลิเคชันเป็น "เดสก์ท็อปใหม่")

เมื่อรัน {อินพุต, พารามิเตอร์}

ทำสคริปต์เชลล์ "open -a 'Mission Control'"

ล่าช้า 0.5

แจ้งให้แอปพลิเคชัน "เหตุการณ์ระบบ" เพื่อคลิก (ทุกปุ่มที่มีค่าแอตทริบิวต์ "AXDescription" คือ "เพิ่มเดสก์ท็อป") ของกลุ่มที่ 2 ของกลุ่มที่ 1 ของกลุ่มที่ 1 ของกระบวนการ "Dock"

ล่าช้า 0.5

บอกแอปพลิเคชัน "เหตุการณ์ของระบบ" ให้กับรหัสคีย์ 53

ป้อนข้อมูลกลับ

สิ้นสุดวิ่ง

จากนั้นเราเพียงแค่ต้องสร้างเวิร์กโฟลว์ที่สองเป็นบริการโดยใช้การดำเนินการ "เรียกใช้แอปพลิเคชัน" และบันทึกเป็น "New_Desktop"

ขั้นตอนสุดท้ายคือการเพิ่ม“ ใหม่ Desktop.App” ในการตั้งค่าระบบ> ความปลอดภัยและความเป็นส่วนตัว> การเข้าถึง

จากนั้นเพิ่มแป้นพิมพ์ลัดของคุณในการตั้งค่าระบบ> คีย์บอร์ด> ทางลัด> บริการ> ทั่วไปสำหรับ New_Desktop.workflow

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.