Tạo crontab nhắc nhở để quản lý thời gian hiệu quả trên MacOS

Mục đích

Tạo một crontab ứng dụng phương pháp quản lý thời gian “không ai chơi lại”, dựa trên ý tưởng của phương pháp tracking được đề cập ở channel web5ngay mà mình đã tìm hiểu.

Lên ý tưởng

#1 Soạn kế hoạch nhắc nhở

#2 Soạn AppleScript, để hiện notification

#3 Setup crontab chạy script ở bước #2

Triển khai

1 Kế hoạch nhắc nhở

Mình sẽ gọi một đơn vị timebox là session. Mỗi session kéo dài 1 tiếng, trong đó:

+ 40 phút đầu: thực hiện công việc

+ 20 phút sau: lên kế hoạch cho session tiếp theo

Và cứ lặp lại như vậy cho đến bất cứ khi nào các bạn muốn kết thúc ngày.

2 Soạn Apple Script, để hiện notification

Script Editor
H1. Mở ứng dụng Script Editor

Sau đó các bạn nhập dòng lệnh như bên dưới, để tạo notification.

Rồi các bạn có thể lưu lại file script ở bất cứ đâu, ở đây mình sẽ lưu theo đường dẫn như sau, với tên file “40min_begin.scpt“:

Apple Script
H2. AppleScript, click Play sẽ thấy hiện notification như hình

3 Setup crontab

System Preferences
H3. System Preferences > Security & Privacy > Full Disk Access
H5. Open path
H4. Cmd + Shift + G > type “/usr/sbin/cron”
H6. Select Cron
H5. Select “cron” > Open
H7. Checked, done
H6. Checked, done

Tiếp đến, các bạn mở Terminal, chạy dòng lệnh sau để setting crontab:

Giả sử mình muốn hiện notification vào 5 phút trước khi bắt đầu Session mới, thì sẽ input như sau:

(để hiểu hơn cách setting của cron, các bạn có thể tham khảo thêm ở đây)

H8. Setup crontab
H7. Setup crontab, run At minute 55 (5 phút trước khi qua giờ mới)

Đến đây, khi nhập xong thì các bạn nhấn Shift + Z + Z (giữ Shift & nhấn 2 lần “Z”) để save cấu hình crontab ở trên.

Và như thế, chúng ta đã hoàn thành phần cấu hình crontab rồi.

3 (advanced)

Thực hiện được các bước ở trên thì chúng ta đã hoàn thành setup một crontab nhắc nhở kiểu “Còn 5 phút nữa bắt đầu nha!

Giả như giờ mình muốn tạo thêm nhắc nhở ở các thời điểm sau thì sẽ như nào?

+ (1) 5 phút trước khi kết thúc block 40 phút

+ (2) vừa kết thúc một block 40 phút

+ (3) bắt đầu một session mới

Các bạn hãy thử suy nghĩ giải pháp trước khi đọc tiếp nhé.


Giải pháp:

Đầu tiên thì chúng ta cũng cần tạo file AppleScript mới cho mỗi câu thông báo, ví dụ:
+ mẫu script cho (1):

+ mẫu script cho (2):

+ mẫu script cho (3):

Sau đó các bạn mở Terminal, gõ crontab -e, và setup thời gian cho cron tương ứng.

Dưới đây là một bộ mẫu mình đã setup tại máy:

H9. Folder Structure
H8. Folder Structure
H10. Script notification
H9. Script notification
H11. Crontab for each script
H10. Crontab for each script

3 (references) một vài câu lệnh hữu ích khác

Kiểm tra xem hiện đang có bao nhiêu cron được setup:

Xoá các crontab hiện có:

Kết

Vậy là chúng ta đã hoàn thành được các mục tiêu: setup crontab trên Mac, dùng AppleScript để show notification, tạo nhắc nhở để quản lý thời gian theo phương pháp trên channel web5ngay.

Nếu các bạn quan tâm có thể tìm hiểu thêm các tác vụ khác nữa mà AppleScript có thể làm tại website chính của Apple ở đây hen.

Thân chúc các bạn thành công!

Tham khảo

  1. Phương pháp quản lý thời gian được chia sẻ tại channel web5ngay: https://youtu.be/5EnYhB6lolE
  2. https://apple.stackexchange.com/questions/24862/how-can-i-configure-my-computer-to-run-an-applescript-at-a-specific-time-caveat/24863#24863
  3. https://apple.stackexchange.com/questions/57412/how-can-i-trigger-a-notification-center-notification-from-an-applescript-or-shel
  4. https://crontab.guru/

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.