Có tiện ích dòng lệnh để hiển thị một chuỗi hoặc hình ảnh trong thanh trạng thái trong Mavericks không?


3

Về cơ bản, tôi muốn đưa ra một lệnh trong tập lệnh bash hoặc Apple Script và xem một số chuỗi (hoặc biểu tượng) trong thanh trạng thái hay còn gọi là "nơi đồng hồ đang ở".

Một cái gì đó tương tự như osascript nhưng cho thanh trạng thái:

/ usr / bin / osascript -e 'hiển thị thông báo "Lorem ipsum dolor sit amet" với tiêu đề "Tiêu đề"'

Câu trả lời:


6

Đây là điều mà tôi đã tìm kiếm trong một thời gian dài trước đây và không tìm thấy một giải pháp thỏa đáng. Câu hỏi của bạn đã truyền cảm hứng cho tôi để hoàn thành dự án mà tôi bắt đầu trở lại khi tôi đang tìm kiếm một giải pháp cho vấn đề này.

Kiểm tra menubarnotifier trên GitHub. Bạn có thể hiển thị thông báo trong thanh thực đơn bằng cách chuyển một chuỗi tới tập lệnh:

./menubarnotifier.py "Notification Text Here"

... và nó sẽ hiển thị trong thanh thực đơn OS X. Nhấp vào thông báo sẽ thoát khỏi ứng dụng.

Ảnh chụp màn hình

Thêm vị trí của tập lệnh vào đường dẫn của bạn (hoặc chỉ cần tạo bí danh cho chính tập lệnh) và bạn sẽ có thể sử dụng tập lệnh đó từ bất kỳ đâu trong Terminal.

Vấn đề với việc triển khai hiện có là nó ghi nhật ký bằng NSLog, ghi vào stderr theo mặc định. Bạn sẽ cần phải loại bỏ các thông điệp NSLog để sử dụng tập lệnh thực sự.

Cách tiếp cận của tôi là thêm chức năng sau vào chức năng của bạn ~/.bash_profilevà sau đó gọi hàm khi bạn muốn thêm thông báo vào thanh thực đơn:

# menubarnotifier.py function
mn () {
    /path/to/menubarnotifier.py "$1" 2>/dev/null &
}

Vì vậy, bạn có thể sử dụng nó chỉ với:

mn "Notification Text Here"

Và nó sẽ không đăng nhập vào thiết bị xuất chuẩn. Nó cũng sẽ chạy trong nền để không yêu cầu Ctrl + C.


Kịch bản sử dụng PyObjC, vì vậy bạn sẽ cần cài đặt nó nếu bạn chưa có nó. Tôi đã cài đặt nó bằng MacPorts một cách dễ dàng sudo port install py27-pyobjc*nhưng tôi nghĩ bạn có thể thoát khỏi chỉ với sudo port install py27-pyobjc py27-pyobjc-cocoa.

Ý tưởng là sử dụng NSStatusBar.systemStatusBar().statusItemWithLength_()để tạo một mục mới trong thanh thực đơn OS X.

self.statusItem = NSStatusBar.systemStatusBar().statusItemWithLength_(NSVariableStatusItemLength)
self.statusItem.setTitle_(display_text)

Tôi sẽ thêm nhiều chức năng sau (chẳng hạn như hình ảnh như bạn đã đề cập trong câu hỏi của bạn). Tôi cũng cần tìm ra một cơ chế ghi nhật ký tốt hơn để bạn có thể chạy nó và không thấy đầu ra NSLog. Hiện tại, hãy sử dụng hàm bash mà tôi đã viết ở trên để có được điều này để vận hành theo cách bạn muốn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.