Tôi muốn tốc độ. Tôi tốc độ. cần Tất cả những lần nhấp chuột này, tất cả việc tìm kiếm này, tất cả những suy nghĩ lặp đi lặp lại và chi phí tinh thần đang cắt giảm việc thực sự hoàn thành công việc. Tôi cần những người máy làm công việc cho tôi. Gần đây tôi đã chuyển sang macOS sau nhiều năm trên Windows, nơi tôi đã mày mò với AutoHotkey. Là một người họ hàng với Mac noob, tôi bắt đầu hack với , và nhanh chóng tìm thấy niềm an ủi dưới dạng Hammerspoon. Alfred Karabiner Ah, . Vâng, tôi đã sử dụng mã và mô-đun - “Những chiếc thìa” - từ những người siêu thông minh mã hóa và mở rộng Hammerspoon và điều đó đã giúp tôi có được một số dặm lớn, nhưng tôi cần . Hammerspoon nhiều hơn thế Sau đó, có Lua. Tôi muốn nâng cao kỹ năng trong Lua. Cách tốt nhất để làm như vậy? Mã cái gì đó. một bộ sưu tập gồm 3 ứng dụng nhỏ được xây dựng dựa trên để bạn có thể tự động hóa các tác vụ, tăng năng suất và loại bỏ thời gian ngốn bằng cách lập trình các phím tắt cho quy trình công việc hàng ngày của mình. , Tham gia Hellfred Hammerspoon Đó là một cách để ánh xạ các tác vụ lặp đi lặp lại, tốn thời gian thành các chuỗi chính, lệnh hoặc văn bản có thể tìm kiếm được. TL; DR và chi nhánh . Vì vậy, bạn muốn nhanh chóng chữa cháy? Chuyển đến phần cài đặt và hướng dẫn bên dưới hoặc tải xuống repo checkout basics git checkout basics Các ứng dụng Lửa địa ngục Một tiện ích ánh xạ nhanh, dựa trên chế độ, phím nóng để hành động. Hỗ trợ kích hoạt phím đơn cũng như trình tự hợp âm chính làm trình kích hoạt. Hiển thị hầu như mọi phím trên bàn phím bao gồm cả các phím bổ trợ để sử dụng làm trình kích hoạt. Các chế độ cho phép cùng một trình kích hoạt có các hành vi khác nhau trong các ngữ cảnh khác nhau. Vui lòng nói tiếng Anh? Khi tôi nhập một ký tự hoặc một chuỗi ký tự, sau đó thực thi một chức năng cụ thể, nhưng chỉ khi tôi đang ở một chế độ cụ thể. Được. Một ví dụ có thể? Khi tôi nhập rồi chạy chức năng (nhưng chỉ khi tôi đang ở Chế độ mặc định) c launchGoogleChromeApp Khi tôi nhập theo sau là rồi chạy function (một lần nữa, trong khi ở Chế độ mặc định) w m changeToWindowManagerMode Khi tôi nhập thì chạy chức năng (trong khi ở chế độ WindowManager) c centerWindowOnScreen Hellfuzz Một tiện ích chọn tìm kiếm mờ với ánh xạ lựa chọn hành động. Hỗ trợ các bộ lựa chọn đa cấp (lồng nhau). Vui lòng nói tiếng Anh? Khi tôi tìm kiếm trong danh sách các lựa chọn và chọn một, sau đó thực thi một chức năng cụ thể. Nếu lựa chọn của tôi có các lựa chọn phụ (nghĩ: ), thì hãy hiển thị cho tôi những lựa chọn đó để tôi có thể tìm kiếm. parent => children Được. Một ví dụ có thể? Giả sử bạn có cấu trúc này: Khi tôi nhập ' ', sau đó đánh dấu lựa chọn ' '. Chọn tùy chọn này sẽ thực thi chức năng . goog Mở Google openGoogleInBrowser Ngoài ra, nếu tôi nhập ' ', sau đó đánh dấu lựa chọn ' '. Việc chọn tùy chọn này sẽ thay thế các lựa chọn hiện tại bằng , và (tập hợp con các lựa chọn cho ) ứng dụng Khởi chạy ứng dụng Thiết bị đầu cuối Ghi chú Lịch Khởi chạy ứng dụng Khi tôi tìm kiếm một cách mờ nhạt qua và chọn một cái, Hellfuzz sẽ thực thi với ứng dụng đã chọn. những cái đó launchOrOpenApp Hellprompt Một tiện ích giống như dòng lệnh với hỗ trợ khớp chuỗi cơ bản. Vui lòng nói tiếng Anh? Khi tôi gõ lệnh và gửi nó, sau đó kiểm tra lệnh của tôi xem có bất kỳ mẫu chuỗi phù hợp nào không và thực thi các chức năng liên quan đến lệnh đó. Được. Một ví dụ có thể? Khi tôi nhập lệnh ' ' và sau đó nhấn , sau đó thực hiện bất kỳ chức năng nào có (ví dụ: lệnh phải bắt đầu bằng từ ' ') và hành vi (ví dụ: mở ứng dụng được liên kết với ' ') phù hợp để mở Ghi chú ứng dụng. mở ghi chú enter filter mở ghi chú Khi tôi nhập ' ' và sau đó nhấn , sau đó thực thi bất kỳ chức năng nào có bộ lọc (ví dụ: lệnh bắt đầu bằng từ ' ') và hành vi (url mở được liên kết với ' ') phù hợp để mở liên kết. Browse github enter Browse github Cài đặt: Firestarter Tải xuống và cài đặt Hammerspoon Cài đặt Hellfred: Sao chép kho lưu trữ vào thư mục ` 'của bạn: ~/.hammerspoon git clone https://github.com/braddevelop/hellfred.git ~/.hammerspoon Bootstrap: Thắp sáng nó Có một cho Hellfred với thiết lập được định cấu hình trước. Hãy tham khảo nó trong tệp init.lua của . tệp bootstrap init.lua https://gist.github.com/braddevelop/bac92b6797c087ca42f9363aab4972e0 Lưu tệp và tải lại cấu hình (hoặc tự tiết kiệm thời gian và sử dụng ) tải lại ưa thích Có cái gì trong hộp vậy? Thử cấu hình trước Ngoài ra, 3 ứng dụng Hellfred đã sẵn sàng để sử dụng và được định cấu hình sẵn với một ví dụ khởi động nhanh. Hãy kiểm tra nó để đảm bảo mọi thứ đều được nối dây và hoạt động. Thử Hellfire Mở bằng phím nóng + + Hellfire shift ⌘ h Gõ ký tự c Repo cho Hellfred sẽ mở trong trình duyệt. Hãy thử Hellfuzz Mở bằng phím nóng + + Hellfuzz shift ⌥ h Nhập từ ' ' wiki Điều này làm nổi bật tùy chọn ' ' Mở Hellfred wiki Nhấn và wiki cho Hellfred sẽ mở trong trình duyệt enter Dùng thử Hellprompt Mở bằng phím nóng + + Hellprompt shift ^ h Nhập ' ' mã mở Nhấn và repo mã cho Hellfred sẽ mở trong trình duyệt enter Những gì , và đạt được là ánh xạ trình hoặc cho một hoặc , kia, và trong khi chúng tôi vừa chứng minh bằng cách sử dụng mỗi ứng dụng để đạt được cùng một kết quả, bạn sẽ thấy mỗi ứng dụng phù hợp hơn với các trường hợp sử dụng nhất định hơn những trường hợp khác. Hellfire Hellfuzz Hellprompt kích hoạt đầu vào hành động hành vi if-this-then-that Hướng dẫn: Thiết lập cơ bản Chúng tôi sẽ lập trình những gì Bây giờ chúng ta hãy tăng nhiệt và cấu hình một cái gì đó hữu ích hơn một chút. Chúng tôi sẽ lập trình để giải quyết các tình huống sau để bạn có thể hiểu được mọi thứ: từng ứng dụng Một trình khởi chạy ứng dụng đơn giản Trình khởi chạy url cho các liên kết thường được truy cập Bạn có thể tìm thấy các tệp cuối cùng cho hướng dẫn này trong thư mục trên nhánh của kho lưu trữ. hellfred / extension / basics cơ bản Các mẫu cần lưu ý Mỗi ứng dụng tuân theo một loạt các bước tương tự. Khởi tạo ứng dụng với ràng buộc phím nóng Định cấu hình các đối tượng ` (Điều này có thể được thực hiện trong nhưng chúng tôi sẽ tạo các tệp riêng biệt để giữ cho mọi thứ sạch sẽ. Chúng tôi sẽ tận dụng các phương thức gốc để giúp việc tạo đối tượng trở nên dễ dàng) Subscriber hellfred-bootstrap.lua Đăng ký người đăng ký với ứng dụng Phím nóng để chạy ứng dụng Phá hủy các nhiệm vụ hút thời gian Thiết lập cho Hellfire Hellfire hoạt động giống như sau: Trình khởi chạy ứng dụng Khởi tạo ứng dụng Điều này đã được thực hiện với cấu hình trước trong . Vui lòng thay đổi phím nóng thành một cái gì đó khác. hellfred-bootstrap.lua https://gist.github.com/braddevelop/49c7e7c7c62350d93e7798ff2bf40541 Định cấu hình các đối tượng Subscriber và do người dùng định nghĩa và được bao bọc bên trong các đối tượng cấu hình đơn giản. Những đối tượng này, hoạt động như những khi được đăng ký với ứng dụng tương ứng và được thông báo bất cứ khi nào có điều gì đó quan trọng xảy ra bên trong ứng dụng. triggers callbacks subscribers Các đối tượng người đăng ký cho Hellfire tuân theo cấu trúc sau: https://gist.github.com/braddevelop/20c9c5b97a85a9a5c4cb924b511e494a : Nếu không được xác định, Hellfire sẽ đặt chế độ theo mặc định, có nghĩa là lệnh gọi lại sẽ kích hoạt ở bất kỳ chế độ nào khi được kích hoạt. Lưu ý fireIfModeIs ANY Tạo cấu trúc thư mục sau nếu nó không tồn tại: . hellfred/extend/basics Sau đó, tạo một tệp Lua mới bên trong thư mục có tên - quy ước đặt tên tệp không có tầm quan trọng. basics hellfirepack-applications.lua Thêm mã này: https://gist.github.com/braddevelop/c12d37d64ce75b83a195666317a10aa2 Đăng ký người đăng ký với ứng dụng Quay lại , chúng ta cần đăng ký gói người đăng ký mà chúng ta vừa định cấu hình. hellfred-bootstrap.lua https://gist.github.com/braddevelop/2298469b805978062421f5a09d01d11a Chạy ứng dụng Nhập Hellfire ( + + ) và nhập bất kỳ trình kích hoạt mới nào: để mở ứng dụng Finder, để mở Terminal hoặc để mở ứng dụng Notes. shift ⌘ h f t n Liên kết Launcher (sử dụng Chế độ Hellfire) Định cấu hình các đối tượng Subscriber Được rồi, bây giờ hãy định cấu hình người đăng ký cho trình khởi chạy url Liên kết chung của chúng tôi. Tạo một tệp Lua mới trong có tên hellfred/extend/basics hellfirepack-common-links.lua Thêm mã này: https://gist.github.com/braddevelop/7d637464f45d2d9a4641e365ad2f20a1 Đăng ký người đăng ký với ứng dụng Quay lại , chúng ta cần đăng ký gói người đăng ký mà chúng ta vừa định cấu hình. hellfred-bootstrap.lua https://gist.github.com/braddevelop/f0dafb518797620747044afbc20da060 Chạy ứng dụng Nhập Hellfire ( + + ) và nhập bất kỳ kích hoạt mới nào: , , hoặc . shift ⌘ h t g h s Bạn có nhận thấy việc nhập kích hoạt để khởi chạy mở trang web không? Đó có lẽ không phải là điều chúng ta muốn xảy ra. Hãy tận dụng . Treo lên! t Terminal cũng như TechCrunch tính năng Chế độ của Hellfire Các chế độ cung cấp một cách để có cùng một trình kích hoạt hoạt động khác nhau trong các bối cảnh khác nhau. Theo mặc định, Hellfire khởi động trong một chế độ được gọi là… bạn đoán nó… chế độ ' '. Chúng tôi có thể định cấu hình một số chế độ tùy chỉnh để sử dụng với Hellfire để các trình kích hoạt có thể hoạt động khác nhau dưới các chế độ khác nhau - hoặc 'không gian tên' nếu bạn muốn. Mặc định Hãy xem xét luồng này: Tạo một tệp Lua mới trong được gọi là expand.lua. hellfred/extend/basics hellfire-modes-extended.lua Chúng tôi sẽ tạo một chế độ riêng biệt để . kích hoạt các liên kết chung Thêm mã này: https://gist.github.com/braddevelop/1e3f345076a8cd5c4cdf843cad785c9e Chúng tôi sẽ yêu cầu tệp này trong vì vậy nó là có thể truy cập. Chúng tôi sẽ làm tương tự với để chúng tôi có quyền truy cập vào các chế độ có sẵn của Hellfire trong các phần khác của ứng dụng của chúng tôi. hellfred-bootstrap.lua toàn cầu tệp Chế độ Hellfire Thêm mã sau vào (trong phần siêu dữ liệu, ở phía trên cùng của tệp) hellfred-bootstrap.lua https://gist.github.com/braddevelop/04a4ec21aab06f50760d1082b216426f Bây giờ chúng tôi cần một cách để thay đổi chế độ thành chế độ Liên kết chung mới của chúng tôi. Chúng tôi sẽ sử dụng chuỗi khóa của theo sau là . c l Chúng tôi cũng cần có thể quay lại chế độ Mặc định Chúng ta sẽ sử dụng dấu chấm phẩy như một sự kích hoạt. ; Đó là tiếp theo… Định cấu hình các đối tượng Người đăng ký kích hoạt thay đổi chế Subscriber Tạo một tệp Lua mới trong được gọi là hellfred/extend/basics hellfire-mode-triggers.lua Thêm mã này: https://gist.github.com/braddevelop/283acacb9634590208c3b29b6039dc12 Đăng ký người đăng ký với ứng dụng Trong , đăng ký người đăng ký để kích hoạt chế độ mới: hellfred-bootstrap.lua https://gist.github.com/braddevelop/8afc4a576d550415f22c3c6fbf4152f1 Thử nghiệm chuyển đổi giữa các chế độ Bây giờ nhập Hellfire ( + + ) và chuyển đổi giữa hai chế độ. shift ⌘ h Chế độ FTW! Cập nhật người đăng ký để hoạt động ở các chế độ Bây giờ chúng tôi cần cập nhật người đăng ký của mình trong để họ chỉ kích hoạt khi đang hoạt động. hellfirepack-common-links.lua chế độ Common Links Chúng tôi sẽ cập nhật phương thức gốc và gán cho thay vì . _G.HELLFIRE_MODES_EXTENDED.COMMON_LINKS fireIfModeIs nil Phương thức được cập nhật sẽ giống như sau: https://gist.github.com/braddevelop/152a16f87efe55f08e7ed7139225f757 Chúng tôi cũng cần cập nhật người đăng ký của mình trong để họ chỉ kích hoạt khi đang hoạt động. hellfirepack-applications.lua chế độ Mặc định của Hellfire Phương thức được cập nhật sẽ giống như sau: https://gist.github.com/braddevelop/8ed8dea04397b0471299c8c89f8a9ae0 Chạy ứng dụng Vào Hellfire ( + + ) và chuyển đổi giữa các chế độ. Kích hoạt hiện hoạt động khác nhau tùy thuộc vào chế độ mà Hellfire đang ở. shift ⌘ h t Thật tuyệt! Thiết lập cho Hellprompt Đây là cách Hellprompt hoạt động: Trình khởi chạy ứng dụng và URL Khởi tạo ứng dụng Điều này đã được thực hiện với cấu hình trước trong . Vui lòng thay đổi phím nóng thành một cái gì đó khác. hellfred-bootstrap.lua https://gist.github.com/braddevelop/11e9b4871182f90c57313ab6ffa939a4 Định cấu hình các đối tượng Subscriber Những người đăng ký cho Hellprompt có cấu trúc khác với những người đăng ký cho Hellfire. Hãy xem xét cấu trúc này: https://gist.github.com/braddevelop/c247d1d1429234c96f3e8c7d8a0b48df : Nếu không được xác định thì lệnh gọi lại sẽ luôn được thực hiện. Lưu ý filter Tạo một tệp Lua mới trong được gọi là hellfred/extend/basics hellpromptpack-commands.lua Thêm mã này: https://gist.github.com/braddevelop/6b18219f83fcf69826083d5dfce5d06f Đăng ký người đăng ký với ứng dụng Quay lại , chúng ta cần đăng ký gói người đăng ký mà chúng ta vừa định cấu hình. hellfred-bootstrap.lua https://gist.github.com/braddevelop/f1b75646b7330fcb1c993a5737fd7d61 Nhập Hellprompt ( + + ) và kiểm tra các lệnh đó. Chạy ứng dụng shift ^ h Inferno! Thử: browse news và: open terminal Thiết lập cho Hellfuzz Đây là cách Hellfuzz hoạt động: Trình khởi chạy ứng dụng Khởi tạo ứng dụng Điều này đã được thực hiện với cấu hình trước trong . Vui lòng thay đổi phím nóng thành một cái gì đó khác. hellfred-bootstrap.lua https://gist.github.com/braddevelop/b18f575ec347503628e7457217b6e187 Định cấu hình các đối tượng Subscriber Những người đăng ký Hellfuzz có cấu trúc khác với các ứng dụng khác. Hãy xem xét cấu trúc này: https://gist.github.com/braddevelop/56e9c22c6f921575637c73d60920d208 : Nếu được xác định thì việc sẽ bị bỏ qua. Lưu ý nextChoicesFn callback Để giúp mọi thứ dễ dàng hơn, chúng tôi sẽ sử dụng phương pháp trợ giúp để định cấu hình người đăng ký cho Hellfuzz Tạo một tệp Lua mới trong có tên hellfred/extend/basics hellfuzzpack-apps-and-links.lua Thêm mã này: https://gist.github.com/braddevelop/3564ad1ec286a30eca1abb94cfd6a69a Đăng ký người đăng ký với ứng dụng Trong , đăng ký gói người đăng ký. hellfred-bootstrap.lua https://gist.github.com/braddevelop/a90f9d5635377d74b145a892845c8273 Chạy ứng dụng Nhập Hellfuzz ( + + ) và nhập lệnh. Ví dụ, bắt đầu nhập từ , bạn sẽ thấy tùy chọn mở Terminal được tô sáng. Nhấn và sẽ mở ra. shift ⌥ h 'Terminal' enter Terminal Hút nóng! Trình khởi chạy liên kết (sử dụng tập hợp lựa chọn lồng nhau) Một tính năng tiện dụng của Hellfuzz là khả năng lồng các tập hợp các lựa chọn. Hãy xem xét quy trình cập nhật này: Hãy thử điều này với tác vụ của chúng tôi, chúng tôi sẽ tạo cấu trúc lựa chọn phân cấp sau: Trình khởi chạy liên kết Cập nhật mã trong như sau: hellfuzzpack-apps-and-links.lua https://gist.github.com/braddevelop/384b0ae9629faca95d5d4cb519cd8e61 Bây giờ nhập Hellfuzz ( + + ) và bắt đầu tìm kiếm ' '. Bạn có thể chọn lựa chọn ' ' và tập hợp con các lựa chọn từ sẽ được hiển thị và có thể được tìm kiếm mờ. Chọn bất kỳ tùy chọn liên kết nào sẽ mở url tương ứng. shift ⌥ h Liên kết chung Liên kết chung commonLinkNextChoices Phần mở rộng: Đổ thêm dầu vào lửa. Để ý các thử nghiệm và tiện ích mở rộng Hellfred sắp tới trên repo bằng cách xem nhánh . extend git checkout extend Bây giờ đi lên địa ngục \m/