ฉันสามารถสร้างทางลัดเพื่อเปิดแอปพลิเคชันเฉพาะบน OS X ได้หรือไม่


51

ฉันต้องการสร้างแป้นพิมพ์ลัดเพื่อเปิด Firefox ในขณะที่ทำงานในแอปพลิเคชันอื่น ฉันรู้ว่าฉันสามารถใช้⌘ CMD+ Tเมื่อฉันอยู่ใน Firefox เพื่อเปิดแท็บใหม่

ฉันไม่พบวิธีสร้างทางลัดชนิดนั้นในการตั้งค่าระบบ

ความคิดใด ๆ


1
ดังนั้นคุณหมายถึงแป้นพิมพ์ลัดใช่ไหม
Rabarberski

ดูบริการบนเมนูแอปพลิเคชันใด ๆ ที่เขียนโดย Cocoa จะมีรหัสเหล่านี้และสามารถกำหนดกุญแจได้ น่าเสียดายที่ฉันคิดว่า Firefox ไม่ได้เขียนขึ้นเพื่อใช้งาน Safari สามารถใช้ได้ที่นี่
user151019

นี่อาจไม่ได้เป็นตัวเลือกในปี 2011 เมื่อคำถามถูกถามครั้งแรก แต่ตอนนี้มันค่อนข้างง่ายที่จะใช้ Automator ดูhowtogeek.com/209725/…สำหรับการสอน
Edward Falk

เป็นเรื่องที่ค่อนข้างน่าอัศจรรย์สำหรับฉันที่ Apple ซึ่งมีการใช้งานไม่ถูกต้องไม่เห็นว่าเหมาะสมที่จะสร้างใน MacOS แบบตรงไปตรงมาในการกำหนดคีย์ลัดสำหรับเรียกใช้แอปพลิเคชัน
Teemu Leisti

คำตอบ:


44

Karabiner-Elements (10.12 ขึ้นไป)

Karabiner หยุดทำงานใน 10.12 เนื่องจากการเปลี่ยนแปลงในสถาปัตยกรรมเคอร์เนลและ Karabiner ถูกเขียนใหม่เป็น Karabiner-Elements ซึ่งใช้รูปแบบ JSON ใหม่สำหรับไฟล์การกำหนดค่า

ตอนนี้คุณสามารถเพิ่มกฎเช่นนี้ไปที่karabiner.json( https://pqrs.org/osx/karabiner/json.html ):

{
  "from": {
    "key_code": "t",
    "modifiers": {
      "mandatory": [
        "right_option"
      ]
    }
  },
  "to": [
    {
      "shell_command": "open -aterminal"
    }
  ],
  "type": "basic"
}

สิ่งนี้ทำให้การกดสั้น ๆ ของปุ่มคำสั่งด้านขวาเปิด Emacs:

{
  "from": {
    "key_code": "right_command",
    "modifiers": {
      "optional": [
        "any"
      ]
    }
  },
  "to": [
    {
      "key_code": "right_command",
      "lazy": true
    }
  ],
  "to_if_alone": [
    {
      "shell_command": "open -aemacs"
    }
  ],
  "type": "basic"
}

Karabiner (10.11 ขึ้นไป)

บันทึกไฟล์เช่นนี้เป็นprivate.xml :

<?xml version="1.0"?>
<root>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_Safari</name>
    <url>file:///Applications/Safari.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_iTunes</name>
    <url>file:///Applications/iTunes.app</url>
  </vkopenurldef>
  <vkopenurldef>
    <name>KeyCode::VK_OPEN_URL_EMACS</name>
    <url>file:///Applications/Emacs.app</url>
  </vkopenurldef>
  <item>
    <name>custom</name>
    <identifier>custom</identifier>
    <autogen>__KeyToKey__ KeyCode::F11, KeyCode::VK_OPEN_URL_Safari</autogen>

    <!-- change the right option key into an extra modifier key -->
    <autogen>__KeyToKey__ KeyCode::OPTION_R, KeyCode::VK_MODIFIER_EXTRA1</autogen>

    <autogen>__KeyToKey__ KeyCode::I, ModifierFlag::EXTRA1, KeyCode::VK_OPEN_URL_iTunes</autogen>

    <!-- make a short press of the right command open Emacs -->
    <autogen>__KeyOverlaidModifier__ KeyCode::COMMAND_R, KeyCode::COMMAND_R, KeyCode::VK_OPEN_URL_EMACS</autogen>
  </item>
</root>

อัลเฟรด 2

หากคุณซื้อ Powerpack สำหรับ Alfred 2 คุณสามารถสร้างเวิร์กโฟลว์ดังนี้:

ปุ่มลัดมีการหน่วงเวลาสั้น ๆ ตามค่าเริ่มต้น แต่คุณสามารถลดการหน่วงเวลาได้โดยการเปลี่ยนตัวเลือก "การทำงานของทริกเกอร์" จาก "จำลองการปรับเปลี่ยนปุ่มที่ปล่อย" เป็น "ผ่านการปรับเปลี่ยนปุ่ม (เร็วที่สุด)":

บริการอัตโนมัติ

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

ฉันไม่แนะนำตัวเลือกนี้เนื่องจากอย่างน้อยในระบบของฉันมีความล่าช้าประมาณครึ่งวินาทีก่อนที่แอปพลิเคชันจะเน้นโดยแป้นพิมพ์ลัดที่สร้างขึ้นโดยใช้วิธีนี้และความล่าช้ามักจะนานกว่า นอกจากนี้ยังมีข้อผิดพลาดตั้งแต่ 10.7 ที่แป้นพิมพ์ลัดสำหรับบริการอัตโนมัติไม่ทำงานจนกว่าคุณจะเลื่อนเมาส์ไปที่เมนูบริการจากแถบเมนู (แก้ไข: ตอนนี้ 8 ปีหลังจากที่ฉันเขียนคำตอบนี้และข้อผิดพลาดยังไม่ได้รับการแก้ไข) นอกจากนี้แป้นพิมพ์ลัดสำหรับบริการยังไม่พร้อมใช้งานในบางแอปพลิเคชันเช่น Emacs


3
private.xml อยู่ที่ไหน ที่ใด? มันมีอยู่แล้ว? ฉันหามันไม่เจอ มันไปไหน
boulder_ruby

/Library/Application Support/Karabiner/private.xml@boulder_ruby, หรือเปิด Karabiner GUI> แท็บอื่น ๆ & ถอนการติดตั้ง> แท็บ "Open private.xml" ฉันมีปัญหาเดียวกันที่แน่นอน
Alexander Bird

Karabiner-Elements ยอดเยี่ยมตอนนี้ฉันรู้แล้วว่าฉันสามารถแก้ไขการตั้งค่าได้โดยตรงในไฟล์ json ขอบคุณ! 😃
Quinn Comendant

2
ทำให้ผู้ผลิตรถยนต์อยู่ด้านบนสุดเป็นวิธีที่ง่ายที่สุดสำหรับคนส่วนใหญ่
แฮร์รี่


5

หากคุณไม่ต้องการใช้แอพของบุคคลที่สาม
จากนั้นคุณสามารถใช้ Automator (Services) และแป้นพิมพ์ลัดในตัว

นี่คือวิธีตอบคำถามที่คล้ายกัน

ง่ายมาก.

ในขั้นตอนที่3การสร้างบริการ
ตั้งเป็น 'แอปพลิเคชันใด ๆ '

เช่นการ
ตั้งค่าบริการที่ได้รับ: 'ไม่มีอินพุต' ใน 'แอปพลิเคชันใด ๆ ' (ทำสิ่งนี้โดยใช้เมนูแบบเลื่อนลงที่ด้านบน)


ยินดีที่ได้ทราบว่าเหตุใดจึงลงคะแนนเสียงในเรื่องนี้ การไม่แสดงความคิดเห็นในการลงคะแนนเสียงไม่เป็นประโยชน์กับใครเลย
markhunte


5

รับ Quicksilver, http://www.blacktree.com/ซึ่งจะช่วยให้คุณตั้งค่าแป้นพิมพ์ลัดเพื่อเปิดแอป จริงๆแล้วมีแอพอื่น ๆ อีกมากมายที่ทำเช่นนี้ (Alfred, Keyboard Maestro และอื่น ๆ )

จริง ๆ แล้ว Mac OS X มีวิธีการติดตั้งในตัว แต่ไม่สามารถใช้งานได้กับ Firefox เพราะไม่รองรับบริการ! http://hints.macworld.com/article.php?story=20090903085255430

อัปเดตมกราคม 2555: Blacktree ไม่อัปเดต Quicksilver อีกต่อไป - ผู้พัฒนาไปที่ Google และเปิดตัวGoogle Quick Search Boxแล้ว ปรอทอาศัยอยู่ แต่มันก็มีบ้านใหม่ที่qsapp.com


ขอบคุณ เป็นประโยชน์กับฉันมาก ใช้ Google แต่ไม่พบลิงค์ของคุณ
นักการเมือง

เจ๋งแล้วคุณมาถูกไหม?
พอลเอ็กเซิลส์

1
"ใช่". ติดตั้ง Quicksilver (ทรงพลังมากดีกว่ามีเพียงช็อตคัต) พยายามแป้นพิมพ์มาสโทร ตอนนี้ให้พักก่อนเรียนรู้ทางลัดเหล่านี้ ;-)
นักการเมือง

ปรอทเป็นสิ่งที่ดี ขอบคุณมากสำหรับคำแนะนำ ฉันสร้างสคริปต์ทุบตีเพื่อเปิด gmail และอีกอันเพื่อเปิด mysms ในเบราว์เซอร์ จากนั้นฉันใช้สคริปต์ต่อท้ายเพื่อสร้างแอพ OS X จากตรงนั้นฉันสามารถใช้ Quicksilver เพื่อให้มีแป้นพิมพ์ลัดเพื่อเรียกใช้สิ่งเหล่านี้ ดีมากที่จะมี mathiasbynens.be/notes/shell-script-mac-apps
jbrock

2

มีมากมายของตัวเลือกที่ดีที่นี่มี แต่ฉันต้องการที่จะเพิ่มบุคคลที่ชื่นชอบของฉันที่ฉันได้รับการใช้ตั้งแต่ 10.5 และยังคงทำงานใน 10.11.2: Spark 3

http://www.shadowlab.org/Software/spark.php

มันเป็นฟรีแวร์และติดตั้งง่ายมาก นี่คือคำอธิบายของนักพัฒนา:

Spark เป็นตัวจัดการทางลัดที่ทรงพลังและใช้งานง่าย ด้วย Spark คุณสามารถสร้าง Hot Keys เพื่อเปิดใช้งานแอปพลิเคชันและเอกสารดำเนินการ AppleScript ควบคุม iTunes และอีกมากมาย ... คุณสามารถส่งออกและนำเข้าไลบรารีคีย์ลัดของคุณหรือบันทึกในรูปแบบ HTML เพื่อพิมพ์ Spark ฟรีใช้งานได้โดยไม่ต้องดูแล!

นี่คือภาพหน้าจอของอินเทอร์เฟซ:

ส่วนต่อประสานผู้ใช้ Spark


2

ฉันพบApptivate ที่ใช้ง่ายที่สุด คุณเพียงแค่เลือกแอปพลิเคชันและคุณกำหนดทางลัดส่วนกลาง แค่นั้นแหละ.


1

ฉันรู้ว่าอัลเฟรดได้รับการกล่าวถึงแล้ว แต่ฉันคิดว่าฉันจะพูดเล็กน้อยเกี่ยวกับการเลือกแป้นพิมพ์ลัด ในตอนแรกฉันไม่เห็นชัดเจนว่าชุดทางลัดที่ดีคืออะไร (a) จดจำได้ง่าย (b) ใช้งานง่ายและ (c) ไม่ขัดแย้งกับปุ่มทางลัดของแอปพลิเคชันอื่นหรือระบบ

ฉันลงเอยด้วยการใช้ปุ่ม "alt" เป็นพื้นฐานและโดยทั่วไปจะขึ้นอยู่กับปุ่มที่สามารถเรียกใช้ด้วยมือซ้ายและเลือกตัวอักษรที่สื่อความหมาย (เช่น x สำหรับ Excel) สิ่งนี้จะช่วยให้คุณมีเมาส์ในมือขวาและปุ่มลัดจะเปิดขึ้นทางด้านซ้าย

ประโยชน์อีกประการของการใช้อัลเฟรดฮอตคีย์เพื่อเปิดใช้งานแอปพลิเคชันคือหากแอปพลิเคชันถูกซ่อนอยู่มันจะไม่ถูกซ่อน

นี่เป็นภาพหน้าจอของวิธีการตั้งค่า: ตัวอย่างการกำหนดค่าฮอตคีย์อัลเฟรด


1

วิธีเปิด Terminal โดยใช้แป้นพิมพ์ลัดโดยไม่มีซอฟต์แวร์ของ บริษัท อื่น:

  • เปิด Automator ( ⌘ + Spaceจากนั้นพิมพ์ Automator)
  • ไปที่ไฟล์ -> ใหม่
  • เลือกการดำเนินการด่วน (หรือบริการขึ้นอยู่กับรุ่น Mac ของคุณ)
  • ในที่ที่มันบอกว่าเวิร์กโฟลว์ได้รับเลือกไม่มีอินพุต :

วิธีการเปิด terminal mac ด้วยแป้นพิมพ์ลัด

  • ในคอลัมน์การดำเนินการค้นหาเรียกใช้ AppleScriptและลากไปยังคอลัมน์ด้านขวา
  • วางสิ่งนี้ลงในพื้นที่สคริปต์:

    on run {input, parameters}
    
        tell application "Terminal"
            do script ""
            activate
        end tell
    
    end run
    

PS: ลบdo script ""หากคุณไม่ต้องการอินสแตนซ์ใหม่ของเครื่องทุกครั้งที่คุณกดปุ่มลัด

  • คลิกที่ไฟล์ -> บันทึกและตั้งชื่อทุกอย่างที่คุณต้องการ

Mac open terminal พร้อมแป้นพิมพ์ลัด

  • ตอนนี้ปิด Automator และเปิดการตั้งค่าระบบ -> คีย์บอร์ด -> ทางลัด
  • ในคอลัมน์ด้านซ้ายคลิกที่ "บริการ"
  • เลื่อนลงไปที่ด้านล่างสุดคุณจะเห็นสคริปต์ที่คุณเพิ่งบันทึก คลิกที่ไม่มีเพื่อกำหนดปุ่มลัดให้กับมัน

สิ่งสำคัญที่ต้องพิจารณาคือฮอตคีย์ต้องไม่ซ้ำกันในทุกแอปพลิเคชัน หากคุณกำหนดฮอตคีย์ทั่วไปเช่น⌘ + Tแล้วลองเปิดเทอร์มินัลขณะเรียกดูมันจะขัดแย้งกับฮอตคีย์ของเบราว์เซอร์ส่วนใหญ่เพื่อเปิดแท็บใหม่ดังนั้นจึงไม่ทำงาน นั่นเป็นเหตุผลที่คุณควรลองทางลัดที่จะไม่ขัดแย้งกับแอพใด ๆ

ฉันเลือก⌘ + ⌥ + F12แล้ว ทำงานได้ดีทีเดียว

ปรับปรุง

หากคุณใช้iTerm2 + Oh My Zshเพียงแทนที่Run AppleScriptด้วยLaunch Applicationใน Automator และเลือกiTerm.appจากรายการ


คุณไม่จำเป็นต้องใช้ AppleScript: มีการดำเนินการเรียกใช้แอปพลิเคชัน
benwiggy

1

หากแอปพลิเคชันคือเทอร์มินัลจะมีคีย์ลัดที่กำหนดค่าไว้ในการตั้งค่า: การตั้งค่าระบบแป้นพิมพ์ลัด เทอร์มินัลใหม่ที่โฟลเดอร์^+ +T

อาคารใหม่ที่แท็บโฟลเดอร์+ ^+ +T


โปรดทราบว่าฉันจะตอบคำถามนี้ในปุ่มทางลัดสำหรับคำถามการเปิดตัวเทอร์มินัล อย่างไรก็ตามไม่สามารถตอบได้เนื่องจากมีการทำเครื่องหมายว่าซ้ำซ้อนกับคำถามนี้
Max MacLeod

0

ธ อร์

มีแอพโอเพนซอร์ซที่ดีสะอาดสำหรับที่เรียกว่า Thor ช่วยให้คุณสามารถกำหนดทางลัดส่วนกลางให้กับแอปพลิเคชัน

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

ดาวน์โหลดไบนารีจาก App Store ที่นี่https://itunes.apple.com/app/thor/id1120999687?ls=1&mt=12 หน้าโครงการอยู่ที่นี่https://github.com/gbammc/Thor

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