ฉันจะทำการตั้งค่า Caps Lock ใหม่ให้กับทั้ง Escape และ Control ได้อย่างไร


22

ฉันมักใช้งาน Linux ฉันใช้เป็นกลุ่มมากดังนั้นปุ่ม Escape จึงมีความสำคัญอย่างยิ่ง ฉันยังใช้แป้นพิมพ์ลัดอื่น ๆ จำนวนมากดังนั้นการควบคุมจึงเป็น "กุญแจ" เช่นกัน บน Linux ฉันได้แก้ไขสิ่งนี้โดยใช้xcapeเพื่อแมปปุ่ม Caps lock เพื่อ Escape หากกดด้วยตัวเองหรือควบคุมถ้ากดร่วมกับปุ่มอื่น สิ่งนี้ทำให้สิ่งที่ดีที่สุดของโลกทั้งสองอยู่ใกล้แค่เอื้อมนิ้วก้อยของฉัน มีวิธีใดบ้างที่ฉันสามารถทำได้บน Mac?

คำตอบ:


19

ใช่ใช้Karabiner (เดิม KeyRemap4Macbook)

ขั้นแรกไปที่บานหน้าต่างการตั้งค่าแป้นพิมพ์คลิก "ตัวปรับเปลี่ยนคีย์ ... " และเปลี่ยน Caps Lock to Control จากนั้นไปที่ Karabiner และค้นหาตัวเลือกนี้:

Control_L to Control_L
      (+ เมื่อคุณพิมพ์ Control_L เท่านั้นส่ง Escape)

ตรวจสอบดูว่าคุณทำเสร็จแล้ว ด้วย Karabiner คุณสามารถทำสิ่งต่าง ๆ ที่น่าสนใจมากมายเช่นการทำแผนที่ (ตอนนี้ไร้ประโยชน์) ของคุณ Escape key ไปที่ Hyper key พร้อมการผูกคีย์มากขึ้น


เป็นไปได้ remap esc เพื่อ caps lock และ map caps lock เพื่อควบคุมและหลบหนี? เพราะบางครั้งฉันยังรู้สึกว่าต้องใช้ตัวพิมพ์ใหญ่เพื่อพิมพ์ตัวพิมพ์ใหญ่ยาว
Aaron Shen

ตอนนี้ Karibiner บอกให้คุณเปลี่ยน Caps Lock เป็น "No Action" ในการตั้งค่าแป้นพิมพ์ OSX (แทนที่จะตั้งค่าไว้ที่ Control) และใช้ Seil ซึ่งเป็นโปรแกรมน้องสาวของ Karabiner เพื่อทำการแมปใหม่ ส่วนสุดท้ายของคำตอบข้างต้น (+ เมื่อคุณพิมพ์ Control_L เท่านั้น ... ) ยังคงทำใน Karabiner
ScoBe

@AaronShen เพิ่งทำการแมปตัวหนีไปยังตัวล็อค ;-)
Ven

@ScoBe ผมอยากแนะนำให้กับทำที่คุณจริงๆไม่จำเป็นต้อง Seil,
Ven

ผมขอแนะนำให้ลด Karabiner ของคีย์วางซ้อนปรับปรุง> หมดเวลาพารามิเตอร์จาก1000msเพื่อ200ms ถ้าฉันถือกุญแจ แต่เปลี่ยนใจแล้วปล่อยฉันไม่ต้องการยิง Escape
joeytwiddle

16

Karabiner ไม่สามารถใช้กับ MacOS Sierra ได้ในขณะนี้ วิธีแก้ปัญหาที่เป็นมิตรกับ Sierra ก็คือกับKeyboard Maestro (ไม่ฟรี) เปลี่ยนพฤติกรรมของปุ่ม Caps-Lock เป็น Control through System Preferences-> Keyboard-> Modifier Keysตามที่คนอื่นแนะนำ

จากนั้นใน Keyboard Maestro ให้ตั้งค่าแมโครดังนี้:

  • ถูกกระตุ้นโดย USB Device Key Trigger
  • กดปุ่ม Caps-Lock บนคีย์บอร์ดของคุณ
  • ถูกแตะหนึ่งครั้ง
  • ด้วยโมดิฟายเออร์เหล่านี้: ^
  • (คุณจะต้องเรียกทริกเกอร์ก่อนหน้านี้ซ้ำสำหรับคีย์บอร์ด USB แต่ละอันที่คุณใช้)
  • จากนั้นเพิ่มการกระทำText->Type a keystroke
  • กด Esc

1
เพิ่งจะมีความชัดเจนมีโครงการที่เรียกว่าองค์ประกอบ Karabinerที่ทำงานบนเซียร์รา (ซึ่งเป็นบรรพบุรุษของ Karabiner รุ่นที่จะทำงานในเซีย) ฉันยังไม่ได้ลองดังนั้นฉันไม่รู้ว่าการทำงานนี้ใช้งานได้หรือไม่
tubedogg

5
Karabiner-Elements ยังไม่รองรับการทำงานกับการแตะปุ่มตัวปรับแต่งซึ่งจำเป็นสำหรับสิ่งนี้
งุ่มง่าม

ตัวเลือกนี้ 'พร้อมด้วยตัวดัดแปลงเหล่านี้: ^' ต้อง^กดร่วมกันกับ capslock เพื่อเรียกการกระทำเท่านั้น มันไม่ได้เป็นสิ่งที่จำเป็นในคำถาม
defhlt

เนื่องจากเราเปลี่ยน Caps-Lock เป็นครั้งแรกเพื่อให้ทำงานเหมือนกับการควบคุมผ่านการตั้งค่าระบบ KM จะเห็นเหตุการณ์ USB ด้วยปุ่มควบคุมลง หากคุณละเว้น^ตัวปรับแต่งการดำเนินการจะไม่ทริกเกอร์
งุ่มง่าม

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

1

วิธีทำด้วยองค์ประกอบของ Karabinerซึ่งรองรับ macOS 10.12 ขึ้นไปเปิด~/.config/karabiner/karabiner.jsonและเพิ่มกฎต่อไปนี้ลงในrulesอาร์เรย์

{
  manipulators: [
    {
      description:
        "Change caps_lock to control when used as modifier, escape when used alone",
      from: {
        key_code: "caps_lock",
        modifiers: {
          optional: ["any"]
        }
      },
      to: [
        {
          key_code: "left_control"
        }
      ],
      to_if_alone: [
        {
          key_code: "escape",
          modifiers: {
            optional: ["any"]
          }
        }
      ],
      type: "basic"
    }
  ]
}

นอกจากนี้คุณยังสามารถลองใช้ControlEscape.spoonกับHammerspoon


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