From 59ff25cb27561e593a42d30985d4997c785b97eb Mon Sep 17 00:00:00 2001 From: Gustavo Lima <23362688+athousanddetails@users.noreply.github.com> Date: Sun, 4 Oct 2026 03:49:29 +0100 Subject: [PATCH 1/2] feat: show MacPacker document icon for archives --- MacPacker/ArchiveDocument.icns | Bin 0 -> 111010 bytes MacPacker/Info.plist | 88 ++++++++++++++ MacPacker/Info_Store.plist | 88 ++++++++++++++ scripts/generate-archive-document-icon.swift | 117 +++++++++++++++++++ 4 files changed, 293 insertions(+) create mode 100644 MacPacker/ArchiveDocument.icns create mode 100644 scripts/generate-archive-document-icon.swift diff --git a/MacPacker/ArchiveDocument.icns b/MacPacker/ArchiveDocument.icns new file mode 100644 index 0000000000000000000000000000000000000000..b2a3e10fafe660f1e121d9b0ff570107ddcb8316 GIT binary patch literal 111010 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 literal 0 HcmV?d00001 diff --git a/MacPacker/Info.plist b/MacPacker/Info.plist index 32b6f573..52f47202 100644 --- a/MacPacker/Info.plist +++ b/MacPacker/Info.plist @@ -13,6 +13,8 @@ CFBundleTypeName 7Z Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer CFBundleVersion @@ -33,6 +35,8 @@ CFBundleTypeName LZ4 Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -52,6 +56,8 @@ CFBundleTypeName LZ4 Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -70,6 +76,8 @@ CFBundleTypeName ZIP Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -90,6 +98,8 @@ CFBundleTypeName ZIPX Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -108,6 +118,8 @@ CFBundleTypeName Android Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -122,6 +134,8 @@ CFBundleTypeName Android Package + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -140,6 +154,8 @@ CFBundleTypeName Comic Book ZIP Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -158,6 +174,8 @@ CFBundleTypeName Comic Book RAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -172,6 +190,8 @@ CFBundleTypeName XZ Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -192,6 +212,8 @@ CFBundleTypeName XZ Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -212,6 +234,8 @@ CFBundleTypeName RAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -231,6 +255,8 @@ CFBundleTypeName StuffIt Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -251,6 +277,8 @@ CFBundleTypeName Self-Extracting Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -269,6 +297,8 @@ CFBundleTypeName Amiga LZX Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -289,6 +319,8 @@ CFBundleTypeName BZIP2 Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -314,6 +346,8 @@ CFBundleTypeName BZIP2 Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -334,6 +368,8 @@ CFBundleTypeName GZIP Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -354,6 +390,8 @@ CFBundleTypeName GZIP Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -372,6 +410,8 @@ CFBundleTypeName TAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -391,6 +431,8 @@ CFBundleTypeName CPIO Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -409,6 +451,8 @@ CFBundleTypeName ISO Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -428,6 +472,8 @@ CFBundleTypeName LHA Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -446,6 +492,8 @@ CFBundleTypeName Windows Cabinet File + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -465,6 +513,8 @@ CFBundleTypeName Unix Compress File + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -484,6 +534,8 @@ CFBundleTypeName Z Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -503,6 +555,8 @@ CFBundleTypeName Archiver Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -519,6 +573,8 @@ CFBundleTypeName ARJ Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -539,6 +595,8 @@ CFBundleTypeName Apple Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -558,6 +616,8 @@ CFBundleTypeName FAT Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -572,6 +632,8 @@ CFBundleTypeName Microsoft Compiled HTML Help + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -591,6 +653,8 @@ CFBundleTypeName NTFS Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -605,6 +669,8 @@ CFBundleTypeName Apple Software Package + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -623,6 +689,8 @@ CFBundleTypeName QCOW2 Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -637,6 +705,8 @@ CFBundleTypeName Linux RPM archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -655,6 +725,8 @@ CFBundleTypeName SquashFS Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -673,6 +745,8 @@ CFBundleTypeName VDI Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -687,6 +761,8 @@ CFBundleTypeName VMDK Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -701,6 +777,8 @@ CFBundleTypeName VHD Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -715,6 +793,8 @@ CFBundleTypeName VHDX Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -729,6 +809,8 @@ CFBundleTypeName XAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -747,6 +829,8 @@ CFBundleTypeName Microsoft Windows application + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -765,6 +849,8 @@ CFBundleTypeName Microsoft MSI Installer + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -882,6 +968,8 @@ CFBundleTypeName Split Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank diff --git a/MacPacker/Info_Store.plist b/MacPacker/Info_Store.plist index fbbd42b6..dd5d9733 100644 --- a/MacPacker/Info_Store.plist +++ b/MacPacker/Info_Store.plist @@ -13,6 +13,8 @@ CFBundleTypeName 7Z Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer CFBundleVersion @@ -33,6 +35,8 @@ CFBundleTypeName LZ4 Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -52,6 +56,8 @@ CFBundleTypeName LZ4 Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -70,6 +76,8 @@ CFBundleTypeName ZIP Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -90,6 +98,8 @@ CFBundleTypeName ZIPX Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -108,6 +118,8 @@ CFBundleTypeName Android Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -122,6 +134,8 @@ CFBundleTypeName Android Package + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -140,6 +154,8 @@ CFBundleTypeName Comic Book ZIP Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -158,6 +174,8 @@ CFBundleTypeName Comic Book RAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -172,6 +190,8 @@ CFBundleTypeName XZ Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -192,6 +212,8 @@ CFBundleTypeName XZ Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -212,6 +234,8 @@ CFBundleTypeName RAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -231,6 +255,8 @@ CFBundleTypeName StuffIt Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -251,6 +277,8 @@ CFBundleTypeName Self-Extracting Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -269,6 +297,8 @@ CFBundleTypeName Amiga LZX Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -289,6 +319,8 @@ CFBundleTypeName BZIP2 Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -314,6 +346,8 @@ CFBundleTypeName BZIP2 Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -334,6 +368,8 @@ CFBundleTypeName GZIP Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -354,6 +390,8 @@ CFBundleTypeName GZIP Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -372,6 +410,8 @@ CFBundleTypeName TAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -391,6 +431,8 @@ CFBundleTypeName CPIO Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -409,6 +451,8 @@ CFBundleTypeName ISO Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -428,6 +472,8 @@ CFBundleTypeName LHA Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -446,6 +492,8 @@ CFBundleTypeName Windows Cabinet File + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -465,6 +513,8 @@ CFBundleTypeName Unix Compress File + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -484,6 +534,8 @@ CFBundleTypeName Z Tarball Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -503,6 +555,8 @@ CFBundleTypeName Archiver Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -519,6 +573,8 @@ CFBundleTypeName ARJ Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -539,6 +595,8 @@ CFBundleTypeName Apple Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -558,6 +616,8 @@ CFBundleTypeName FAT Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -572,6 +632,8 @@ CFBundleTypeName Microsoft Compiled HTML Help + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -591,6 +653,8 @@ CFBundleTypeName NTFS Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -605,6 +669,8 @@ CFBundleTypeName Apple Software Package + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -623,6 +689,8 @@ CFBundleTypeName QCOW2 Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -637,6 +705,8 @@ CFBundleTypeName Linux RPM archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -655,6 +725,8 @@ CFBundleTypeName SquashFS Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -673,6 +745,8 @@ CFBundleTypeName VDI Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -687,6 +761,8 @@ CFBundleTypeName VMDK Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -701,6 +777,8 @@ CFBundleTypeName VHD Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -715,6 +793,8 @@ CFBundleTypeName VHDX Disk Image + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -729,6 +809,8 @@ CFBundleTypeName XAR Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -747,6 +829,8 @@ CFBundleTypeName Microsoft Windows application + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -765,6 +849,8 @@ CFBundleTypeName Microsoft MSI Installer + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank @@ -882,6 +968,8 @@ CFBundleTypeName Split Archive + CFBundleTypeIconFile + ArchiveDocument.icns CFBundleTypeRole Viewer LSHandlerRank diff --git a/scripts/generate-archive-document-icon.swift b/scripts/generate-archive-document-icon.swift new file mode 100644 index 00000000..a70e06af --- /dev/null +++ b/scripts/generate-archive-document-icon.swift @@ -0,0 +1,117 @@ +#!/usr/bin/env swift + +// Rebuild the archive document icon after changing MacPacker's icon palette. +// Usage: swift scripts/generate-archive-document-icon.swift + +import AppKit +import Foundation + +guard CommandLine.arguments.count == 3 else { + fatalError("Expected output .icns path and scratch directory") +} + +let output = URL(fileURLWithPath: CommandLine.arguments[1]) +let scratch = URL(fileURLWithPath: CommandLine.arguments[2], isDirectory: true) +let iconset = scratch.appendingPathComponent("ArchiveDocument.iconset", isDirectory: true) +let fm = FileManager.default +try fm.createDirectory(at: iconset, withIntermediateDirectories: true) + +func color(_ hex: UInt32) -> NSColor { + NSColor(calibratedRed: CGFloat((hex >> 16) & 255) / 255, + green: CGFloat((hex >> 8) & 255) / 255, + blue: CGFloat(hex & 255) / 255, alpha: 1) +} + +func render(size: Int) throws -> Data { + let image = NSImage(size: NSSize(width: 1024, height: 1024), flipped: false) { _ in + let page = NSBezierPath() + page.move(to: NSPoint(x: 185, y: 120)) + page.line(to: NSPoint(x: 185, y: 895)) + page.curve(to: NSPoint(x: 220, y: 930), controlPoint1: NSPoint(x: 185, y: 916), controlPoint2: NSPoint(x: 200, y: 930)) + page.line(to: NSPoint(x: 620, y: 930)) + page.line(to: NSPoint(x: 840, y: 710)) + page.line(to: NSPoint(x: 840, y: 120)) + page.curve(to: NSPoint(x: 805, y: 85), controlPoint1: NSPoint(x: 840, y: 100), controlPoint2: NSPoint(x: 825, y: 85)) + page.line(to: NSPoint(x: 220, y: 85)) + page.curve(to: NSPoint(x: 185, y: 120), controlPoint1: NSPoint(x: 200, y: 85), controlPoint2: NSPoint(x: 185, y: 100)) + page.close() + NSColor.white.setFill() + page.fill() + color(0xC9CBD0).setStroke() + page.lineWidth = 14 + page.stroke() + + let fold = NSBezierPath() + fold.move(to: NSPoint(x: 620, y: 930)) + fold.line(to: NSPoint(x: 620, y: 740)) + fold.curve(to: NSPoint(x: 650, y: 710), controlPoint1: NSPoint(x: 620, y: 722), controlPoint2: NSPoint(x: 632, y: 710)) + fold.line(to: NSPoint(x: 840, y: 710)) + fold.close() + color(0xE9EAED).setFill() + fold.fill() + color(0xC9CBD0).setStroke() + fold.stroke() + + let badge = NSBezierPath(roundedRect: NSRect(x: 260, y: 205, width: 505, height: 500), xRadius: 90, yRadius: 90) + color(0xFE910E).setFill() + badge.fill() + NSGraphicsContext.saveGraphicsState() + badge.addClip() + color(0xFC6229).setFill() + NSRect(x: 260, y: 205, width: 252, height: 500).fill() + NSGraphicsContext.restoreGraphicsState() + + let zipper = NSBezierPath() + zipper.move(to: NSPoint(x: 420, y: 700)) + zipper.line(to: NSPoint(x: 488, y: 555)) + zipper.line(to: NSPoint(x: 488, y: 355)) + zipper.line(to: NSPoint(x: 536, y: 355)) + zipper.line(to: NSPoint(x: 536, y: 555)) + zipper.line(to: NSPoint(x: 604, y: 700)) + zipper.lineWidth = 26 + color(0x343537).setStroke() + zipper.stroke() + for row in 0..<6 { + let y = CGFloat(610 - row * 39) + color(0x343537).setFill() + NSBezierPath(roundedRect: NSRect(x: 439, y: y, width: 60, height: 22), xRadius: 4, yRadius: 4).fill() + NSBezierPath(roundedRect: NSRect(x: 525, y: y, width: 60, height: 22), xRadius: 4, yRadius: 4).fill() + } + let pull = NSBezierPath(roundedRect: NSRect(x: 464, y: 255, width: 96, height: 120), xRadius: 28, yRadius: 28) + color(0x343537).setFill() + pull.fill() + return true + } + guard let tiff = image.tiffRepresentation, + let bitmap = NSBitmapImageRep(data: tiff), + let resized = NSBitmapImageRep(bitmapDataPlanes: nil, pixelsWide: size, pixelsHigh: size, + bitsPerSample: 8, samplesPerPixel: 4, hasAlpha: true, + isPlanar: false, colorSpaceName: .deviceRGB, bytesPerRow: 0, + bitsPerPixel: 0), + let context = NSGraphicsContext(bitmapImageRep: resized) else { fatalError("Could not render icon") } + NSGraphicsContext.saveGraphicsState() + NSGraphicsContext.current = context + context.imageInterpolation = .high + bitmap.draw(in: NSRect(x: 0, y: 0, width: size, height: size)) + context.flushGraphics() + NSGraphicsContext.restoreGraphicsState() + guard let png = resized.representation(using: .png, properties: [:]) else { fatalError("Could not encode icon") } + return png +} + +for (name, pixels) in [ + ("icon_16x16.png", 16), ("icon_16x16@2x.png", 32), + ("icon_32x32.png", 32), ("icon_32x32@2x.png", 64), + ("icon_128x128.png", 128), ("icon_128x128@2x.png", 256), + ("icon_256x256.png", 256), ("icon_256x256@2x.png", 512), + ("icon_512x512.png", 512), ("icon_512x512@2x.png", 1024) +] { + try render(size: pixels).write(to: iconset.appendingPathComponent(name)) +} + +let iconutil = Process() +iconutil.executableURL = URL(fileURLWithPath: "/usr/bin/iconutil") +iconutil.arguments = ["-c", "icns", iconset.path, "-o", output.path] +try iconutil.run() +iconutil.waitUntilExit() +guard iconutil.terminationStatus == 0 else { fatalError("iconutil failed") } From a3ef5ce13cae39660a3bbdb6a265645362a367a6 Mon Sep 17 00:00:00 2001 From: Gustavo Lima <23362688+athousanddetails@users.noreply.github.com> Date: Sun, 4 Oct 2026 03:51:56 +0100 Subject: [PATCH 2/2] feat: note archive document icons --- Config/products/macpacker.json | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/Config/products/macpacker.json b/Config/products/macpacker.json index a81e610c..9219ceed 100644 --- a/Config/products/macpacker.json +++ b/Config/products/macpacker.json @@ -38,6 +38,30 @@ { "version": "1.0.1", "items": [ + { + "type": "feat", + "title": { + "en": "Show MacPacker icons for archive files", + "zh-Hans": "显示 MacPacker 的压缩文件图标", + "fr": "Afficher les icônes MacPacker pour les archives", + "de": "MacPacker-Symbole für Archivdateien anzeigen", + "it": "Mostra le icone MacPacker per gli archivi", + "ja": "アーカイブに MacPacker のアイコンを表示", + "fa": "نمایش نمادهای MacPacker برای فایل‌های بایگانی", + "pl": "Pokazuj ikony MacPacker dla archiwów", + "pt-BR": "Mostrar ícones do MacPacker para arquivos compactados", + "ru": "Показывать значки MacPacker для архивов", + "uk": "Показувати значки MacPacker для архівів", + "es-MX": "Mostrar íconos de MacPacker para archivos comprimidos", + "ko": "압축 파일에 MacPacker 아이콘 표시", + "nl": "MacPacker-pictogrammen voor archieven tonen", + "tr": "Arşiv dosyaları için MacPacker simgelerini göster", + "vi": "Hiển thị biểu tượng MacPacker cho tệp nén" + }, + "issues": [ + "297" + ] + }, { "type": "fix", "highlight": true,