Измените значки приложений рабочего стола на Mac, программно.2019 - PullRequest
0 голосов
/ 13 февраля 2019

Есть ли способ изменить значки в настольных приложениях для macbooks, который повторяет то же действие, которое происходит при копировании / вставке значков в окне поиска?Либо через терминал, node.js или что-нибудь?До сих пор я пробовал:

1) Мне не нравится это через терминал, удаляя и заменяя сами значки, потому что он полностью удаляет исходный значок и не работает на каждом приложении.

2) Через node.js и терминал создать иконку?файл, однако это не работает на всех программах, и у меня были проблемы с доступом.Если у кого-то есть решение для этого, я хотел бы услышать это.

3) С яблочным сценарием это работало, но перебирать несколько значков одновременно было слишком много для него.

Я искал об этом в течение нескольких дней, но информация либо очень ограничена, либо устарела.Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 15 февраля 2019

Чтобы изменить значок приложения, я использую скрипт оболочки с applecript.Цель состоит в том, чтобы изменить «Файл значка» в приложении info.plist и скопировать значок (файл) в ресурсы приложения."application" .app / Contents / Resources / ". Все сделано в виде капли, на которую я перетаскиваю нужный значок, после того, как открывается окно выбора приложения, значок которого необходимо изменить. С помощью plutil я конвертирую файл info.plist вxml1 (который я сохраняю в «.app / Contents / infoo.plist», чтобы избежать проблем и найти оригинал). Чтобы изменить значение «Файл значка», я использую «/ usr / libexec / PlistBuddy» с «-c Set: "чтобы увидеть изменения, вам нужно запустить приложение (чей значок был изменен), в доке вы должны увидеть новый значок (если активна опция дока)

Под скриптом капли

    global testdir
on open draggedItems
    repeat with currentItem in draggedItems
        set icon_image_file_string to POSIX path of (draggedItems)
        set {name:Nm, name extension:Ex} to info for POSIX file icon_image_file_string
        set Nm to do shell script "echo " & Nm & " | sed 's#." & Ex & "##'"

        set testdir to POSIX path of (choose file of type {"APPL"} with prompt "Choisissez  l'Application pour changer son icone  :")
        set {name:Nmm, name extension:Ex} to info for POSIX file testdir

        do shell script "plutil -convert xml1 " & quoted form of (testdir & "Contents/Info.plist ") & " | cat " & quoted form of (testdir & "Contents/Info.plist") & " >" & quoted form of (testdir & "Contents/Infoo.plist")
        try
            do shell script "cp -f " & quoted form of icon_image_file_string & " " & quoted form of (testdir & "Contents/Resources/")
        end try
        try
            set icon_image_file to do shell script "/usr/libexec/PlistBuddy   " & quoted form of (testdir & "Contents/Info.plist") & " -c \"Set:CFBundleIconFile " & Nm & "\""
        end try
    end repeat
end open
...