Drift V3 — คู่มือและตัวตรวจบอร์ด

กดปุ่มบนคีย์บอร์ดจริงแล้วปุ่มบนรูปจะสว่าง — ไม่นับคะแนน เพราะหน้าเว็บไม่มีทางรู้ว่า ZMK กำลังอยู่ layer ไหน เห็นแต่ผลลัพธ์ที่ออกมา อยากได้ตัวเลขที่เชื่อได้ให้ไปโหมดทดสอบบอร์ด
กด ⇧ Shift ค้างเพื่อดู legend ชั้นที่สอง
ปุ่มที่ไม่มีวันสว่างในโหมดนี้เพราะ macOS กินไปก่อนถึง browser — ไม่ใช่สวิตช์เสีย: ⌃Space (สลับภาษา — จะเห็นแค่ครึ่ง ⌃ ติดที่มุมล่างซ้าย), ⌘Space (Spotlight), ⌘Tab, ⌘`, ⌃↑ ⌃↓ ⌃← ⌃→ (Mission Control / Spaces), ปุ่ม media และความสว่าง, และ ⌃⌘Q ซึ่งล็อกหน้าจอจริงถ้ากดลองบน adjust
ยังไม่มีการกดปุ่ม

ปุ่มที่ต้องอธิบายบน layer

ตัวอักษร ตัวเลข และเครื่องหมายไม่อยู่ในรายการนี้ — legend บนปุ่มบอกครบแล้ว

encoder — หมุน บน layer

หน้าที่ตอนหมุนเปลี่ยนตาม layer ที่กดค้างอยู่ · กดลงไป: ซ้าย = ปิด/เปิดเสียง, ขวา = เล่น/หยุด

โหมดใช้งาน — ทำงาน / ทั่วไป กับ เกม

ทำงานและใช้ทั่วไป = base

ทุกปุ่มบน base เป็นปุ่มธรรมดา ไม่มี hold-tap ไม่มี combo (พิมพ์ไทยต้องพึ่ง Shift ครึ่งแป้น และหน้าตรวจบอร์ดคิดเป็นช่องต่อช่อง — ดู ADR-0004) · layer อื่นเข้าด้วยการกดค้าง: thumb ซ้ายใน = nav, thumb ขวาใน = mouse, สองอันพร้อมกัน = adjust

เกม = เปิด game ค้างไว้ด้วย nav + mouse + G

  • จอ OLED บน dock ขึ้นคำว่า game ตลอดที่เปิดอยู่ — ไม่ต้องเดา · กดชุดเดียวกันอีกครั้งเพื่อปิด
  • เปลี่ยนแค่ 5 ช่อง: W A S D เป็นแบบ last-input-priority (กด A ค้างแล้วกด D = ไปขวาทันที ไม่ค้าง) และ thumb ซ้ายนอก กลายเป็น — เกมบน Mac ใช้ Option/Control/Shift ไม่ใช้ Command และ ⌘ คือตัวการ ⌘Q / ⌘H / ⌘Tab หลุดกลางเกม (R⌘ ขวายังอยู่ไว้หนีฉุกเฉิน)
  • ที่เหลือทะลุไป base หมด: nav ยังให้ F1–F12, ⌃Space ยังสลับภาษาแชทได้, Space ทั้งสองข้างยังเป็น Space
  • เหตุผลที่เป็น overlay ไม่ใช่ base ที่สอง: ดู ADR-0003

ลดการใช้เมาส์

ครึ่งหนึ่งคีย์บอร์ดทำให้ อีกครึ่งเป็น setting ของ macOS กับ app — แยกป้ายไว้ชัดๆ ว่าอันไหนเป็นของใคร

คีย์บอร์ด keymap นี้ส่งให้เอง app shortcut ของ app / macOS เอง กดจากคีย์บอร์ดไหนก็ได้

1. ฝั่งคีย์บอร์ด — nav + ลูกศร + modifier จริง

ลูกศรบน nav (H J K L) เป็นปุ่มลูกศรธรรมดา ดังนั้นกด modifier จริง ค้างร่วมได้เหมือนคีย์บอร์ดปกติ ไม่ต้องจำปุ่มเพิ่ม:

กดค้างร่วมกับ navH / LJ / Kอื่นๆ
← →↓ ↑Y Home · U PgDn · I PgUp · O End
ถอย / ไป ทีละคำต้น / ท้าย ย่อหน้า+ ลบทีละคำ
ต้น / ท้าย บรรทัดต้น / ท้าย เอกสาร+ ลบถึงต้นบรรทัด
(+ อันไหนก็ได้)เลือกข้อความตามระยะที่เลื่อนเช่น +L เลือกหนึ่งคำ
tile หน้าต่าง ซ้าย / ขวาtile ล่าง / บนF เต็มจอ · C กลางจอ · R คืนขนาดเดิม — ต้องตั้ง App Shortcuts ข้อ 2 ก่อน

มือซ้ายบน nav คือปุ่มจัดการหน้าต่างของ macOS เอง: Q หน้าต่างถัดไปของ app (⌘`) · W Mission Control (⌃↑) · E สลับไป app ล่าสุด (⌘Tab) · A / D ย้าย Space (⌃← ⌃→) · S App Exposé (⌃↓) · Caps Caps Word · Space (ข้างไหนก็ได้) Spotlight (⌘Space)

ฝั่งคีย์บอร์ด — layer mouse (thumb ขวาในค้าง)

  • H J K L ขยับเคอร์เซอร์ — แตะสั้นขยับนิดเดียว กดค้างเร่งขึ้นเอง (ยังไม่มี layer ละเอียดแยก ถ้าหยาบไปค่อยเพิ่ม)
  • Y U I O scroll ← ↓ ↑ → ทรงเดียวกับ Home/PgDn/PgUp/End บน nav
  • คลิก: Space ซ้าย = ซ้าย · thumb ⌘ ซ้าย = ขวา · F = กลาง · กดคลิกค้างแล้วขยับ = ลาก
  • N / M = ปุ่มเมาส์ 4/5 (Back / Forward ใน browser และ Finder)
  • ⌘-click ใช้ R⌘ นิ้วก้อยขวา เพราะ thumb ⌘ ซ้ายกลายเป็นคลิกขวาไปแล้ว · ⇧-click / ⌥-click ใช้ปุ่มจริงตามปกติ

ฝั่งคีย์บอร์ด — encoder

  • base: ซ้ายหมุน = scroll ขึ้น/ลง · ขวาหมุน = เสียง · กดซ้าย = mute · กดขวา = เล่น/หยุด
  • nav ค้าง: ซ้ายหมุน = scroll ซ้าย/ขวา · ขวาหมุน = สลับ tab (⌃Tab / ⌃⇧Tab — Arc, Chrome, Safari, Zed, Warp ใช้ได้หมด)

2. ฝั่ง macOS — ตั้งครั้งเดียว (หน้านี้บอกวิธี ไม่ได้ตั้งให้)

2.1 Keyboard navigation (Full Keyboard Access) — Tab ไล่ได้ทุกปุ่มใน dialog

  1. System Settings › Keyboard › เปิดสวิตช์ Keyboard navigation
  2. จากนั้น Tab / ⇧Tab ไล่ focus ได้ทุกปุ่มและช่อง ไม่ใช่แค่ช่องกรอก · Space = กดปุ่มที่ focus · Esc = Cancel · = ปุ่ม default
  3. เช็คค่าปัจจุบันได้ด้วย defaults read -g AppleKeyboardUIMode (เครื่องนี้ตอน scan = 0 คือปิดอยู่)

ย้อนกลับ: ปิดสวิตช์เดิม

2.2 App Shortcuts ให้ tile หน้าต่างด้วย ⌃⌥ + ลูกศร

macOS มี tiling ในเมนู Window › Move & Resize อยู่แล้ว แต่ shortcut เดิมเป็น fn+ลูกศร ซึ่ง ZMK ส่งปุ่ม fn ไม่ได้ เลยย้ายมาเป็น ที่ nav+HJKL ส่งได้:

  1. เปิด Finder แล้วดูเมนู Window › Move & Resize ก่อน — จดชื่อเมนูตามที่เห็นจริงบนเครื่องคุณ (ปกติคือ Left, Right, Top, Bottom, Fill, Center, Return to Previous Size)
  2. System Settings › Keyboard › Keyboard Shortcuts…App Shortcuts+ › Application: All Applications
  3. เพิ่มทีละรายการ Menu Title สะกดให้ตรงเป๊ะ: Left⌃⌥← · Right⌃⌥→ · Top⌃⌥↑ · Bottom⌃⌥↓ · Fill⌃⌥F · Center⌃⌥C · Return to Previous Size⌃⌥R
  4. ทดสอบ: กด nav ค้าง + จริง + H → หน้าต่างไปครึ่งซ้าย

ย้อนกลับ: เลือกรายการใน App Shortcuts แล้วกด − · ไม่ต้องลง app จัดหน้าต่างเพิ่ม (เครื่องนี้ไม่มี Rectangle/AeroSpace อยู่แล้ว)

2.3 Vimium ใน Arc — คลิกลิงก์ด้วยตัวอักษร

  1. Arc ลง extension จาก Chrome Web Store ได้: ค้น Vimium › Add to Chrome
  2. f ขึ้นตัวอักษรบนทุกลิงก์ พิมพ์ตามแล้วเปิด · F เปิดใน tab ใหม่ · j / k เลื่อน · J / K สลับ tab · o เปิด URL หรือค้นหา · x ปิด tab · / ค้นในหน้า · gi เข้าช่องกรอกแรก
  3. หน้าที่ต้องพิมพ์เยอะ (Gmail, Slack web) ให้กด i เข้า insert mode หรือใส่ไว้ใน excluded URLs ของ Vimium

ย้อนกลับ: ถอด extension ออก · ตอน scan เครื่องนี้ยังไม่มี Vimium ในทุก browser

3. ต่อ app — ที่ใช้อยู่จริงในเครื่องนี้

Zed (keymap default ของ Zed)

  • app⌘P เปิดไฟล์ · ⌘⇧P command palette
  • app⌘⇧F ค้นทั้งโปรเจกต์ · ⌘⇧O outline ของไฟล์
  • app⌘J terminal ล่าง · ⌘B ซ่อน/โชว์ sidebar · ⌘⇧E project panel
  • คีย์บอร์ดnav+= = F12 ไป definition · ⌃- กลับ · nav+8 = F8 ไป error ถัดไป
  • คีย์บอร์ดnav+Caps Caps Word พิมพ์ CONSTANT_NAME · +nav+H/L กระโดดคำ
  • appvim mode ปิดอยู่ (ตั้งใจ) — เปิดได้ที่ settings.json "vim_mode": true ถ้าอยากได้ hjkl ในตัวแก้

Warp + tmux

  • appWarp: ⌘P command palette · ⌘T tab ใหม่ · ⌘D / ⌘⇧D แบ่ง pane
  • appWarp: ⌘↑ / ⌘↓ เลื่อนทีละ block · ⌃R ค้นประวัติคำสั่ง
  • apptmux (จาก .tmux.conf ของคุณ): ⌃A แล้ว hjkl ย้าย pane · | / - แบ่ง · r reload
  • apptmux copy: ⌃A [ เข้า copy-mode (vi) · y ก๊อปเข้า clipboard ของ Mac
  • คีย์บอร์ด อยู่มุมล่างซ้าย + A home row = prefix ถึงง่าย · encoder ซ้ายเลื่อน scrollback แทนเมาส์

Arc (+ Vimium)

  • app⌘T command bar (เปิด URL / ค้นหา / สลับ tab) · ⌘S ซ่อน/โชว์ sidebar
  • app⌥⌘← / ⌥⌘→ tab ก่อน/ถัดไป · ⌘⇧C ก๊อป URL · ⌘1–8 ไป tab/favorite ตามเลข
  • คีย์บอร์ดnav ค้าง + หมุน encoder ขวา = สลับ tab
  • คีย์บอร์ดmouse ค้าง + N / M = Back / Forward · Y U I O scroll หน้า
  • appVimium (หลังลงตามข้อ 2.3): f คลิกลิงก์ · j/k เลื่อน · J/K สลับ tab

Slack

  • app⌘K ไปห้อง/คน (พิมพ์ชื่อ) · ⌘⇧K DM ทั้งหมด
  • app⌘⇧A ยังไม่ได้อ่านทั้งหมด · ⌘⇧T threads · ⌥↑ / ⌥↓ ห้องก่อน/ถัดไป
  • app ในช่องพิมพ์ = แก้ข้อความล่าสุดของตัวเอง · Esc mark ห้องว่าอ่านแล้ว
  • คีย์บอร์ดnav+K = ↑ ใช้แก้ข้อความล่าสุดได้โดยไม่ยกมือ · ⌃Space สลับไทย/อังกฤษก่อนพิมพ์

Claude Code (CLI ใน Warp)

  • appEsc หยุด Claude กลางคัน (งานที่ทำแล้วยังอยู่) · ⌃C ล้างช่องพิมพ์ กดซ้ำ = ออก · ⌃D ออก
  • app⇧⏎ ขึ้นบรรทัดใหม่ (Warp รองรับในตัว) · \+ ได้ทุก terminal
  • app⌃O เปิด/ปิด transcript เห็น tool ทุกตัว · ⌃R ค้นประวัติ prompt · ⌃L วาดจอใหม่
  • app⌃G แก้ prompt ใน editor · ⌃V วางรูปจาก clipboard · ⇧Tab สลับโหมด permission
  • app! รัน shell เอง · @ เลือกไฟล์ · / คำสั่ง (/compact /clear /model) · ? ดู shortcut ทั้งหมด
  • คีย์บอร์ด มุมล่างซ้าย + O/R/L/G ถึงง่าย · Esc มุมบนซ้าย · nav+K/J = ↑↓ เรียก prompt เก่า

Claude Desktop

  • appQuick entry: แตะ สองครั้ง (default) — เปลี่ยนเป็น ⌥Space หรือ custom ได้ที่ Settings › General › Desktop app
  • appในกล่อง quick entry พิมพ์แล้ว = แชทใหม่ · แคปหน้าจอ / แชร์หน้าต่างได้จากตรงนั้น
  • appVoice dictation ใช้ Caps Lock (ปิดอยู่โดย default) — บนบอร์ดนี้ Caps Lock จริงอยู่ adjust+Caps ไม่ชนกับ ⌃Space
  • app⇧⏎ ขึ้นบรรทัดใหม่ · ส่ง
  • คีย์บอร์ด อยู่ล่างซ้ายถัดจาก ⌃ แตะสองครั้งเร็วๆ = เปิด quick entry จากทุก app · หรือ nav+Space Spotlight แล้วพิมพ์ Claude

OpenCode (TUI ใน Warp — keybind default)

  • appleader = ⌃X แล้วตามด้วยตัวอักษรภายใน 2 วิ: n session ใหม่ · l รายการ session · m เลือก model · a เลือก agent · c compact · q ออก
  • app⌃P command list ทุกคำสั่ง · Tab / ⇧Tab สลับ agent · Esc หยุด · ⌃C ล้างช่องพิมพ์
  • app⇧⏎ หรือ ⌃J ขึ้นบรรทัดใหม่ · ส่ง · ⌃X e เปิด editor · ⌃X b sidebar
  • appPgUp/PgDn เลื่อนข้อความ · Home/End บนสุด/ล่างสุด · ⌃X y copy · ⌃X u/r undo/redo
  • คีย์บอร์ดnav+U/I = PgDn/PgUp · nav+Y/O = Home/End · leader: ล่างซ้าย + X ข้างๆ

macOS ทั่วไป

  • คีย์บอร์ดnav+E สลับ app ล่าสุด · nav+Q หน้าต่างถัดไปของ app · nav+W Mission Control
  • คีย์บอร์ดnav+A/D ย้าย Space · adjust+L ล็อกจอ · nav+PgUp/PgDn/⌘C ถ่ายจอ ⌘⇧4 / 3 / 5
  • คีย์บอร์ดnav+Space Spotlight (⌘Space) — ค้นหา/เปิด app/คำนวณ โดยไม่แตะเมาส์
  • app⌘, settings ของ app · ⌘⌥Esc force quit
  • appหลังเปิด Keyboard navigation (2.1): Tab / ⇧Tab ไล่ปุ่มใน dialog · Space กด · ⌃F2 เข้าเมนูบาร์ (nav+2 ค้าง ⌃)
  • appFinder: ⌘↑ ขึ้นโฟลเดอร์ · ⌘↓ / ⌘O เปิด · ⌘⇧G พิมพ์ path · Space Quick Look