Làm thế nào để tôi có được tên tập tin của hình nền hiện tại một cách đáng tin cậy?


3

Bản cập nhật Lion mới nhất đã phá vỡ một osascript Geeklet đơn giản sử dụng Sự kiện hệ thống để tra cứu tên ảnh nền. Chạy lệnh liên quan từ thiết bị đầu cuối trả về cùng một tên, mọi lúc, mặc dù hình ảnh đang thay đổi mỗi phút.

Mã dưới đây hoạt động cho màn hình chính trên máy Mac hai đầu của tôi cho đến lần cập nhật cuối cùng này:

osascript -e 'tell application "System Events" to get value of (property list item "LastName" of property list item "default" of property list item "Background" of property list file ((path to preferences as Unicode text) & "com.apple.desktop.plist"))'

Màn hình phụ có id mã hóa cứng trong đó "mặc định" đi; Tôi đã sử dụng ID số, ​​mọi thứ tôi có thể nghĩ ra.

Điều đặc biệt khó chịu là một bãi chứa chỉ sử dụng 'mục danh sách thuộc tính "Nền' trong tập lệnh trên hiển thị tên tệp mới với" LastName "thích hợp. Nhưng chạy tập lệnh ở trên luôn trả về cùng hai tên, các tệp ban đầu được hiển thị trong Tùy chọn Desktop / Screen Saver.

Tôi không phải là một AppleScript hoặc System Events / plist guru, và bất kỳ trợ giúp nào cũng sẽ được đánh giá cao.

- NGÀY--

Sửa đổi phần tử Spaces của nhà cung cấp trên OSX để đặt máy tính để bàn mặc định và một số thử nghiệm với lệnh "mặc định" đã dẫn đến điều sau (ít lý tưởng hơn do các id được nhúng, nhưng ...)

osascript -e 'tell application "System Events" to get value of (property list item "LastName" of property list item "722492885" of property list item "" of property list item "spaces" of property list item "Background" of property list file ((path to preferences as Unicode text) & "com.apple.desktop.plist"))'

Tôi chắc chắn mở cho các giải pháp thanh lịch hơn nhưng chúng phải phản ánh tên tệp thay đổi với "Ngẫu nhiên" được đặt trong Tùy chọn màn hình. Tôi thậm chí muốn xem một phiên bản dễ đọc hơn của những gì được đăng ở trên - tất cả một dòng. Tôi chắc chắn có những cách tốt hơn để đặt ra điều này!

Câu trả lời:


2

Thử

/usr/libexec/PlistBuddy -c 'Print :Background:default:ImageFilePath' ~/Library/Preferences/com.apple.desktop.plist

Tôi ước tôi có thể làm điều đó với defaults read com.apple.Desktop Backgroundnhưng tôi không biết làm thế nào để chỉ định default:ImageFilePath.
lhf

Điều này sẽ hiển thị một đường dẫn tập tin, bạn đã đúng. Thật không may, với cài đặt "Desktop & Screen Saver" của "Thay đổi hình ảnh mỗi phút" & "Ngẫu nhiên", đây là đường dẫn của hình ảnh đầu tiên được chọn. Nó không thay đổi khi phút trôi qua và nền thay đổi.
Ken Gentle

@KenGentle, bạn nói đúng. Có vẻ như com.apple.desktop.plistkhông có được thông tin này. Xin lỗi vì sự ồn ào.
lhf
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.