Giới thiệu
Chúng ta đều đã từng trải qua tình huống này — khi bạn bắt đầu vệ sinh bàn phím MacBook và bỗng dưng hàng loạt cửa sổ ngẫu nhiên mở ra, tin nhắn được gõ và thậm chí có thể xuất hiện một vài hộp thoại hệ thống. 😅
Liệu có phải sẽ thật tuyệt nếu bạn có thể khóa tạm thời bàn phím trong khi bạn vệ sinh — và sau đó mở khóa chỉ với một lệnh?
Tin tốt là bạn có thể làm điều đó. Trong bài viết này, tôi sẽ hướng dẫn bạn một giải pháp an toàn, có thể khôi phục lại, chỉ bằng mã lệnh mà hoạt động trên macOS mà không cần cài đặt lại driver hay can thiệp vào các tệp hệ thống.
🚀 Tại Sao Không Chỉ Tắt Nguồn?
Một số người sẽ tắt máy Mac của họ, nhưng:
- Điều đó làm gián đoạn quy trình làm việc của bạn.
- Bạn không thể nhìn thấy các vết bẩn một cách rõ ràng khi màn hình tắt.
- Và, hãy thành thật — chúng ta đều thích những mẹo nhanh chóng.
Phương pháp này cho phép bạn chỉ vô hiệu hóa bàn phím (trong khi vẫn giữ cho Mac hoạt động), vì vậy bạn có thể lau bụi, vụn thức ăn và dấu vân tay mà không lo lắng về những lần nhấn phím không mong muốn.
🛠️ Mẹo: Chặn Tất Cả Sự Kiện Phím Bằng Python
Chúng ta sẽ sử dụng một đoạn mã Python nhỏ với API Quartz Event Taps của Apple (thông qua PyObjC).
Khi chạy, đoạn mã này sẽ chặn tất cả các sự kiện phím và đơn giản là bỏ qua chúng.
👉 Dừng đoạn mã, và bàn phím của bạn sẽ trở lại ngay lập tức.
📦 Bước 1 — Cài Đặt Thư Viện Phụ Thuộc
Mở Terminal và cài đặt bridge Quartz:
bash
python3 -m pip install --user pyobjc-framework-Quartz
📄 Bước 2 — Lưu Đoạn Mã
Tạo một tệp có tên disable_keyboard.py:
python
#!/usr/bin/env python3
# Vô hiệu hóa bàn phím Mac trong khi vệ sinh
# Chạy: python3 disable_keyboard.py
# Dừng: Ctrl+C hoặc kết thúc tiến trình
from Quartz import (
CGEventTapCreate, kCGHIDEventTap, kCGHeadInsertEventTap,
kCGEventTapOptionDefault, kCGEventKeyDown, kCGEventKeyUp,
kCGEventFlagsChanged, CGEventTapEnable
)
from Quartz import CFRunLoopGetCurrent, CFMachPortCreateRunLoopSource, CFRunLoopAddSource, CFRunLoopRun
def tap_callback(proxy, type_, event, refcon):
return None # Chặn mọi sự kiện phím
mask = (1 << kCGEventKeyDown) | (1 << kCGEventKeyUp) | (1 << kCGEventFlagsChanged)
tap = CGEventTapCreate(kCGHIDEventTap, kCGHeadInsertEventTap, kCGEventTapOptionDefault, mask, tap_callback, None)
if not tap:
print("⚠️ Cần quyền truy cập! Bật nó trong Cài đặt Hệ thống > Quyền riêng tư & Bảo mật > Truy cập.")
exit(1)
source = CFMachPortCreateRunLoopSource(None, tap, 0)
CFRunLoopAddSource(CFRunLoopGetCurrent(), source, 0)
CGEventTapEnable(tap, True)
print("🧹 Bàn phím đã được vô hiệu hóa. Hãy vệ sinh! Nhấn Ctrl+C để khôi phục.")
CFRunLoopRun()
🔑 Bước 3 — Cấp Quyền Truy Cập
Khi chạy lần đầu tiên, macOS sẽ chặn đoạn mã trừ khi bạn cấp quyền:
- Vào Cài đặt Hệ thống → Quyền riêng tư & Bảo mật → Truy cập.
- Thêm Terminal (hoặc iTerm, hoặc Python.app) vào danh sách.
- Bật quyền cho nó.
Bây giờ chạy lại đoạn mã và voilà — bàn phím đã được khóa.
⏹️ Bước 4 — Mở Khóa Bàn Phím
Khi bạn đã hoàn tất việc vệ sinh:
- Nhấn Ctrl + C trong Terminal, HOẶC
- Trong một terminal khác, chạy:
bash
pkill -f disable_keyboard.py
Nhập liệu bàn phím sẽ được khôi phục ngay lập tức. ✅
🎯 Mẹo Chuyên Nghiệp
- Muốn điều khiển chỉ bằng một cú nhấp chuột? Đóng gói đoạn mã này vào một ứng dụng Automator để bạn có thể bật/tắt từ dock của mình.
- Nếu bạn là người dùng nâng cao, hãy kiểm tra Karabiner-Elements, cho phép bạn xác định các cấu hình để vô hiệu hóa/bật lại bàn phím.
- Luôn giữ một con chuột hoặc trackpad bên cạnh — vì đoạn mã này chặn tất cả các sự kiện phím, các phím tắt sẽ không hoạt động cho đến khi bạn dừng nó.
📝 Kết luận
Vệ sinh Mac của bạn không cần phải cảm thấy như đang gỡ bom 💣 mỗi khi bạn chạm vào một phím.
Với mẹo Python nhỏ này, bạn có thể tạm thời vô hiệu hóa bàn phím, vệ sinh an toàn và khôi phục mọi thứ ngay lập tức.
Thực hành tốt nhất
- Luôn kiểm tra kỹ các quyền truy cập sau khi cài đặt thư viện Python.
- Thực hiện thường xuyên việc vệ sinh máy tính để tăng tuổi thọ của thiết bị.
Những cạm bẫy thường gặp
- Quên cấp quyền truy cập cho Terminal.
- Chạy đoạn mã sai đường dẫn.
Mẹo hiệu suất
- Vệ sinh định kỳ giúp máy hoạt động mượt mà hơn.
Câu hỏi thường gặp
Q: Đoạn mã này có thể chạy trên phiên bản macOS nào?
A: Đoạn mã này hoạt động trên tất cả các phiên bản macOS hỗ trợ Python và PyObjC.
Q: Có cách nào khác để vô hiệu hóa bàn phím không?
A: Bạn có thể sử dụng phần mềm bên thứ ba như Karabiner-Elements để quản lý bàn phím.