diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5d71c03 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Neil Sardesai + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Manila Finder Extension/Assets.xcassets/Contents.json b/Manila Finder Extension/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Icons/Contents.json b/Manila Finder Extension/Assets.xcassets/Icons/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Icons/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_128x128.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_128x128.png new file mode 100644 index 0000000..9020ecc Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_128x128.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_128x128@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..83f039f Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_128x128@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_16x16.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_16x16.png new file mode 100644 index 0000000..8a3d64e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_16x16.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_16x16@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..9be8560 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_16x16@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_256x256.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_256x256.png new file mode 100644 index 0000000..14a35f2 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_256x256.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_256x256@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..5fb0081 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_256x256@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_32x32.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_32x32.png new file mode 100644 index 0000000..c941bc6 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_32x32.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_32x32@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..6fc3371 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_32x32@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_512x512.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_512x512.png new file mode 100644 index 0000000..67ed3ff Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_512x512.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_512x512@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..14c18cb Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/gray.iconset/icon_512x512@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_128x128.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_128x128.png new file mode 100644 index 0000000..e7db462 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_128x128.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_128x128@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..b8718ce Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_128x128@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_16x16.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_16x16.png new file mode 100644 index 0000000..f10c3be Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_16x16.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_16x16@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..46e2fe3 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_16x16@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_256x256.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_256x256.png new file mode 100644 index 0000000..f9ed273 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_256x256.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_256x256@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..207025b Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_256x256@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_32x32.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_32x32.png new file mode 100644 index 0000000..f617d91 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_32x32.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_32x32@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..b52dae8 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_32x32@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_512x512.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_512x512.png new file mode 100644 index 0000000..bb1512e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_512x512.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_512x512@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..e895129 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/green.iconset/icon_512x512@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_128x128.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_128x128.png new file mode 100644 index 0000000..6f86754 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_128x128.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_128x128@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..9a05734 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_128x128@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_16x16.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_16x16.png new file mode 100644 index 0000000..47a9887 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_16x16.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_16x16@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..b1050f4 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_16x16@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_256x256.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_256x256.png new file mode 100644 index 0000000..33ac20c Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_256x256.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_256x256@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..5c874d3 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_256x256@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_32x32.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_32x32.png new file mode 100644 index 0000000..a1784b4 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_32x32.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_32x32@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..520aa1b Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_32x32@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_512x512.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_512x512.png new file mode 100644 index 0000000..596b21b Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_512x512.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_512x512@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..7a6f8ab Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/orange.iconset/icon_512x512@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_128x128.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_128x128.png new file mode 100644 index 0000000..8faf4e2 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_128x128.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_128x128@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..be36a8e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_128x128@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_16x16.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_16x16.png new file mode 100644 index 0000000..38e5d5f Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_16x16.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_16x16@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..e94f68a Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_16x16@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_256x256.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_256x256.png new file mode 100644 index 0000000..1bf0f87 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_256x256.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_256x256@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..774358a Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_256x256@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_32x32.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_32x32.png new file mode 100644 index 0000000..1ee0eef Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_32x32.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_32x32@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..9c95058 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_32x32@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_512x512.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_512x512.png new file mode 100644 index 0000000..d23e0c8 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_512x512.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_512x512@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..490b07e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/purple.iconset/icon_512x512@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_128x128.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_128x128.png new file mode 100644 index 0000000..e1ddfce Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_128x128.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_128x128@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..31f58c6 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_128x128@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_16x16.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_16x16.png new file mode 100644 index 0000000..458fcda Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_16x16.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_16x16@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..0e622f6 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_16x16@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_256x256.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_256x256.png new file mode 100644 index 0000000..c187df2 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_256x256.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_256x256@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..0a4b3f3 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_256x256@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_32x32.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_32x32.png new file mode 100644 index 0000000..0cd94fa Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_32x32.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_32x32@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..6563ac7 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_32x32@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_512x512.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_512x512.png new file mode 100644 index 0000000..07b0475 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_512x512.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_512x512@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..c67efe8 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/red.iconset/icon_512x512@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_128x128.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_128x128.png new file mode 100644 index 0000000..2753582 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_128x128.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_128x128@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_128x128@2x.png new file mode 100644 index 0000000..f7b33f6 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_128x128@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_16x16.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_16x16.png new file mode 100644 index 0000000..df9fb1b Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_16x16.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_16x16@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_16x16@2x.png new file mode 100644 index 0000000..43c725e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_16x16@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_256x256.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_256x256.png new file mode 100644 index 0000000..e0106ee Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_256x256.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_256x256@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_256x256@2x.png new file mode 100644 index 0000000..1a92c47 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_256x256@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_32x32.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_32x32.png new file mode 100644 index 0000000..4ddfd0d Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_32x32.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_32x32@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_32x32@2x.png new file mode 100644 index 0000000..ed54956 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_32x32@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_512x512.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_512x512.png new file mode 100644 index 0000000..cd1396f Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_512x512.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_512x512@2x.png b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_512x512@2x.png new file mode 100644 index 0000000..12ec4f0 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Icons/yellow.iconset/icon_512x512@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..5abe60e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..891af29 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu blue.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..8a3d64e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..9be8560 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu gray.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..f10c3be Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..46e2fe3 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu green.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..47a9887 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..b1050f4 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu orange.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..38e5d5f Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..e94f68a Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu purple.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..458fcda Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..0e622f6 Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu red.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/Contents.json b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/Contents.json new file mode 100644 index 0000000..8e8f6e2 --- /dev/null +++ b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/Contents.json @@ -0,0 +1,18 @@ +{ + "images" : [ + { + "filename" : "icon_16x16_Normal.png", + "idiom" : "mac", + "scale" : "1x" + }, + { + "filename" : "icon_16x16_Normal@2x.png", + "idiom" : "mac", + "scale" : "2x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/icon_16x16_Normal.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/icon_16x16_Normal.png new file mode 100644 index 0000000..df9fb1b Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/icon_16x16_Normal.png differ diff --git a/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/icon_16x16_Normal@2x.png b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/icon_16x16_Normal@2x.png new file mode 100644 index 0000000..43c725e Binary files /dev/null and b/Manila Finder Extension/Assets.xcassets/Menu Icons/menu yellow.imageset/icon_16x16_Normal@2x.png differ diff --git a/Manila Finder Extension/Color.swift b/Manila Finder Extension/Color.swift new file mode 100644 index 0000000..0b9c2f5 --- /dev/null +++ b/Manila Finder Extension/Color.swift @@ -0,0 +1,56 @@ +// +// Color.swift +// Manila Finder Extension +// +// Created by Neil Sardesai on 2/23/22. +// + +import Foundation + +enum Color: String, CaseIterable { + case red + case orange + case yellow + case green + case blue + case purple + case gray + + var localizedName: String { + switch self { + case .red: + return String(localized: "Red") + case .orange: + return String(localized: "Orange") + case .yellow: + return String(localized: "Yellow") + case .green: + return String(localized: "Green") + case .blue: + return String(localized: "Blue") + case .purple: + return String(localized: "Purple") + case .gray: + return String(localized: "Gray") + } + } + + var menuImageName: String { + switch self { + case .red: + return "menu red" + case .orange: + return "menu orange" + case .yellow: + return "menu yellow" + case .green: + return "menu green" + case .blue: + return "menu blue" + case .purple: + return "menu purple" + case .gray: + return "menu gray" + } + } +} diff --git a/Manila Finder Extension/FinderSync.swift b/Manila Finder Extension/FinderSync.swift new file mode 100644 index 0000000..cc7a94b --- /dev/null +++ b/Manila Finder Extension/FinderSync.swift @@ -0,0 +1,72 @@ +// +// FinderSync.swift +// Manila Finder Extension +// +// Created by Neil Sardesai on 1/23/22. +// + +import Cocoa +import FinderSync + +class FinderSync: FIFinderSync { + + private let extendedAttributeName = "com.NeilSardesai.Manila.FolderColor" + + override init() { + super.init() + + // Set up the directory we are syncing. + FIFinderSyncController.default().directoryURLs = [URL(fileURLWithPath: "/")] + } + + // MARK: - Menu and toolbar item support + + override func menu(for menu: FIMenuKind) -> NSMenu? { + guard case .contextualMenuForItems = menu, + let selectedItemURLs = FIFinderSyncController.default().selectedItemURLs(), + selectedItemURLs.filter({ !$0.hasDirectoryPath }).isEmpty + else { return nil } + + let currentColorRawValues = Set(selectedItemURLs + .map { try? $0.extendedAttribute(forName: extendedAttributeName) } + .map { data in data.map { String(data: $0, encoding: .utf8)! } }) + + let menu = NSMenu(title: "") + let rootItem = NSMenuItem(title: String(localized: "Color"), action: nil, keyEquivalent: "") + let submenu = NSMenu(title: "") + + let submenuItems = Color.allCases.map { color -> NSMenuItem in + let menuItem = NSMenuItem(title: color.localizedName, action: #selector(handleMenuItem(_:)), keyEquivalent: "") + menuItem.image = NSImage(named: color.menuImageName) + if currentColorRawValues.count == 1 { + let currentColor = currentColorRawValues[currentColorRawValues.startIndex] + if currentColor == color.rawValue || currentColor == nil && color == .blue { menuItem.state = .on } + } + return menuItem + } + + submenu.items = submenuItems + rootItem.submenu = submenu + menu.addItem(rootItem) + return menu + } + + @objc private func handleMenuItem(_ sender: NSMenuItem) { + let selectedItemURLs = FIFinderSyncController.default().selectedItemURLs() + + for itemURL in selectedItemURLs! { + let color = Color.allCases.first { $0.localizedName == sender.title }! + var image: NSImage? + if color != .blue { image = NSImage(named: color.rawValue) } + + if NSWorkspace.shared.setIcon(image, forFile: itemURL.path, options: []) { + if image == nil { + try? itemURL.removeExtendedAttribute(forName: extendedAttributeName) + } else { + try? itemURL.setExtendedAttribute(data: color.rawValue.data(using: .utf8)!, forName: extendedAttributeName) + } + } + } + } + +} diff --git a/Manila Finder Extension/Info.plist b/Manila Finder Extension/Info.plist new file mode 100644 index 0000000..3f16c6c --- /dev/null +++ b/Manila Finder Extension/Info.plist @@ -0,0 +1,17 @@ + + + + + LSUIElement + + NSExtension + + NSExtensionAttributes + + NSExtensionPointIdentifier + com.apple.FinderSync + NSExtensionPrincipalClass + $(PRODUCT_MODULE_NAME).FinderSync + + + diff --git a/Manila Finder Extension/Manila_Finder_Extension.entitlements b/Manila Finder Extension/Manila_Finder_Extension.entitlements new file mode 100644 index 0000000..4fe1fe2 --- /dev/null +++ b/Manila Finder Extension/Manila_Finder_Extension.entitlements @@ -0,0 +1,14 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + com.apple.security.temporary-exception.files.absolute-path.read-write + + / + + + diff --git a/Manila Finder Extension/URL+XATTR.swift b/Manila Finder Extension/URL+XATTR.swift new file mode 100644 index 0000000..6a4d0d3 --- /dev/null +++ b/Manila Finder Extension/URL+XATTR.swift @@ -0,0 +1,55 @@ +// +// URL+XATTR.swift +// Manila Finder Extension +// +// Created by Neil Sardesai on 2/23/22. +// + +import Foundation + +/// Via https://stackoverflow.com/a/38343753 +extension URL { + + /// Get extended attribute. + func extendedAttribute(forName name: String) throws -> Data { + let data = try self.withUnsafeFileSystemRepresentation { fileSystemPath -> Data in + // Determine attribute size: + let length = getxattr(fileSystemPath, name, nil, 0, 0, 0) + guard length >= 0 else { throw URL.posixError(errno) } + + // Create buffer with required size: + var data = Data(count: length) + + // Retrieve attribute: + let result = data.withUnsafeMutableBytes { [count = data.count] in + getxattr(fileSystemPath, name, $0.baseAddress, count, 0, 0) + } + guard result >= 0 else { throw URL.posixError(errno) } + return data + } + return data + } + + /// Set extended attribute. + func setExtendedAttribute(data: Data, forName name: String) throws { + try self.withUnsafeFileSystemRepresentation { fileSystemPath in + let result = data.withUnsafeBytes { + setxattr(fileSystemPath, name, $0.baseAddress, data.count, 0, 0) + } + guard result >= 0 else { throw URL.posixError(errno) } + } + } + + /// Remove extended attribute. + func removeExtendedAttribute(forName name: String) throws { + try self.withUnsafeFileSystemRepresentation { fileSystemPath in + let result = removexattr(fileSystemPath, name, 0) + guard result >= 0 else { throw URL.posixError(errno) } + } + } + + /// Helper function to create an NSError from a Unix errno. + private static func posixError(_ err: Int32) -> NSError { + return NSError(domain: NSPOSIXErrorDomain, code: Int(err), userInfo: [NSLocalizedDescriptionKey: String(cString: strerror(err))]) + } +} diff --git a/Manila.xcodeproj/project.pbxproj b/Manila.xcodeproj/project.pbxproj new file mode 100644 index 0000000..8db6298 --- /dev/null +++ b/Manila.xcodeproj/project.pbxproj @@ -0,0 +1,546 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 55; + objects = { + +/* Begin PBXBuildFile section */ + 28486D9827DAD12700FDC8AA /* MainWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28486D9727DAD12700FDC8AA /* MainWindow.swift */; }; + 28486D9C27DAE01500FDC8AA /* Welcome.mp4 in Resources */ = {isa = PBXBuildFile; fileRef = 28486D9B27DAE01400FDC8AA /* Welcome.mp4 */; }; + 28486D9E27DAE16700FDC8AA /* WindowMovingImageView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28486D9D27DAE16700FDC8AA /* WindowMovingImageView.swift */; }; + 28A558A627C6F7E40073C3DC /* URL+XATTR.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A558A527C6F7E40073C3DC /* URL+XATTR.swift */; }; + 28A558A827C70C3B0073C3DC /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28A558A727C70C3B0073C3DC /* Color.swift */; }; + 28B87FC027DAEE5B00A1A4E7 /* VideoContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28B87FBF27DAEE5B00A1A4E7 /* VideoContainerView.swift */; }; + 28FDF717279E1D4800573C23 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28FDF716279E1D4800573C23 /* AppDelegate.swift */; }; + 28FDF719279E1D4800573C23 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28FDF718279E1D4800573C23 /* ViewController.swift */; }; + 28FDF71B279E1D4900573C23 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 28FDF71A279E1D4900573C23 /* Assets.xcassets */; }; + 28FDF71E279E1D4900573C23 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 28FDF71C279E1D4900573C23 /* Main.storyboard */; }; + 28FDF72C279E1D6F00573C23 /* FinderSync.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28FDF72B279E1D6F00573C23 /* FinderSync.swift */; }; + 28FDF731279E1D6F00573C23 /* Manila Finder Extension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 28FDF729279E1D6F00573C23 /* Manila Finder Extension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + 28FDF737279E202800573C23 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 28FDF736279E202800573C23 /* Assets.xcassets */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + 28FDF72F279E1D6F00573C23 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 28FDF70B279E1D4800573C23 /* Project object */; + proxyType = 1; + remoteGlobalIDString = 28FDF728279E1D6F00573C23; + remoteInfo = "Manila Finder Extension"; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + 28FDF735279E1D6F00573C23 /* Embed App Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + 28FDF731279E1D6F00573C23 /* Manila Finder Extension.appex in Embed App Extensions */, + ); + name = "Embed App Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 28486D9727DAD12700FDC8AA /* MainWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainWindow.swift; sourceTree = ""; }; + 28486D9B27DAE01400FDC8AA /* Welcome.mp4 */ = {isa = PBXFileReference; lastKnownFileType = file; path = Welcome.mp4; sourceTree = ""; }; + 28486D9D27DAE16700FDC8AA /* WindowMovingImageView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowMovingImageView.swift; sourceTree = ""; }; + 28A558A527C6F7E40073C3DC /* URL+XATTR.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "URL+XATTR.swift"; sourceTree = ""; }; + 28A558A727C70C3B0073C3DC /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; + 28B87FBF27DAEE5B00A1A4E7 /* VideoContainerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoContainerView.swift; sourceTree = ""; }; + 28FDF713279E1D4800573C23 /* Manila.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Manila.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 28FDF716279E1D4800573C23 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 28FDF718279E1D4800573C23 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 28FDF71A279E1D4900573C23 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 28FDF71D279E1D4900573C23 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; + 28FDF71F279E1D4900573C23 /* Manila.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Manila.entitlements; sourceTree = ""; }; + 28FDF729279E1D6F00573C23 /* Manila Finder Extension.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = "Manila Finder Extension.appex"; sourceTree = BUILT_PRODUCTS_DIR; }; + 28FDF72B279E1D6F00573C23 /* FinderSync.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinderSync.swift; sourceTree = ""; }; + 28FDF72D279E1D6F00573C23 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 28FDF72E279E1D6F00573C23 /* Manila_Finder_Extension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Manila_Finder_Extension.entitlements; sourceTree = ""; }; + 28FDF736279E202800573C23 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 28FDF710279E1D4800573C23 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 28FDF726279E1D6F00573C23 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 28FDF70A279E1D4800573C23 = { + isa = PBXGroup; + children = ( + 28FDF715279E1D4800573C23 /* Manila */, + 28FDF72A279E1D6F00573C23 /* Manila Finder Extension */, + 28FDF714279E1D4800573C23 /* Products */, + ); + sourceTree = ""; + }; + 28FDF714279E1D4800573C23 /* Products */ = { + isa = PBXGroup; + children = ( + 28FDF713279E1D4800573C23 /* Manila.app */, + 28FDF729279E1D6F00573C23 /* Manila Finder Extension.appex */, + ); + name = Products; + sourceTree = ""; + }; + 28FDF715279E1D4800573C23 /* Manila */ = { + isa = PBXGroup; + children = ( + 28FDF716279E1D4800573C23 /* AppDelegate.swift */, + 28486D9727DAD12700FDC8AA /* MainWindow.swift */, + 28FDF718279E1D4800573C23 /* ViewController.swift */, + 28486D9D27DAE16700FDC8AA /* WindowMovingImageView.swift */, + 28B87FBF27DAEE5B00A1A4E7 /* VideoContainerView.swift */, + 28FDF71A279E1D4900573C23 /* Assets.xcassets */, + 28FDF71C279E1D4900573C23 /* Main.storyboard */, + 28FDF71F279E1D4900573C23 /* Manila.entitlements */, + 28486D9B27DAE01400FDC8AA /* Welcome.mp4 */, + ); + path = Manila; + sourceTree = ""; + }; + 28FDF72A279E1D6F00573C23 /* Manila Finder Extension */ = { + isa = PBXGroup; + children = ( + 28FDF72B279E1D6F00573C23 /* FinderSync.swift */, + 28A558A727C70C3B0073C3DC /* Color.swift */, + 28A558A527C6F7E40073C3DC /* URL+XATTR.swift */, + 28FDF736279E202800573C23 /* Assets.xcassets */, + 28FDF72D279E1D6F00573C23 /* Info.plist */, + 28FDF72E279E1D6F00573C23 /* Manila_Finder_Extension.entitlements */, + ); + path = "Manila Finder Extension"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 28FDF712279E1D4800573C23 /* Manila */ = { + isa = PBXNativeTarget; + buildConfigurationList = 28FDF722279E1D4900573C23 /* Build configuration list for PBXNativeTarget "Manila" */; + buildPhases = ( + 28FDF70F279E1D4800573C23 /* Sources */, + 28FDF710279E1D4800573C23 /* Frameworks */, + 28FDF711279E1D4800573C23 /* Resources */, + 28FDF735279E1D6F00573C23 /* Embed App Extensions */, + ); + buildRules = ( + ); + dependencies = ( + 28FDF730279E1D6F00573C23 /* PBXTargetDependency */, + ); + name = Manila; + productName = Manila; + productReference = 28FDF713279E1D4800573C23 /* Manila.app */; + productType = "com.apple.product-type.application"; + }; + 28FDF728279E1D6F00573C23 /* Manila Finder Extension */ = { + isa = PBXNativeTarget; + buildConfigurationList = 28FDF732279E1D6F00573C23 /* Build configuration list for PBXNativeTarget "Manila Finder Extension" */; + buildPhases = ( + 28FDF725279E1D6F00573C23 /* Sources */, + 28FDF726279E1D6F00573C23 /* Frameworks */, + 28FDF727279E1D6F00573C23 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Manila Finder Extension"; + productName = "Manila Finder Extension"; + productReference = 28FDF729279E1D6F00573C23 /* Manila Finder Extension.appex */; + productType = "com.apple.product-type.app-extension"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 28FDF70B279E1D4800573C23 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1320; + LastUpgradeCheck = 1330; + TargetAttributes = { + 28FDF712279E1D4800573C23 = { + CreatedOnToolsVersion = 13.2.1; + }; + 28FDF728279E1D6F00573C23 = { + CreatedOnToolsVersion = 13.2.1; + }; + }; + }; + buildConfigurationList = 28FDF70E279E1D4800573C23 /* Build configuration list for PBXProject "Manila" */; + compatibilityVersion = "Xcode 13.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 28FDF70A279E1D4800573C23; + productRefGroup = 28FDF714279E1D4800573C23 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 28FDF712279E1D4800573C23 /* Manila */, + 28FDF728279E1D6F00573C23 /* Manila Finder Extension */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 28FDF711279E1D4800573C23 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28486D9C27DAE01500FDC8AA /* Welcome.mp4 in Resources */, + 28FDF71B279E1D4900573C23 /* Assets.xcassets in Resources */, + 28FDF71E279E1D4900573C23 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 28FDF727279E1D6F00573C23 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28FDF737279E202800573C23 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 28FDF70F279E1D4800573C23 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28486D9E27DAE16700FDC8AA /* WindowMovingImageView.swift in Sources */, + 28FDF719279E1D4800573C23 /* ViewController.swift in Sources */, + 28B87FC027DAEE5B00A1A4E7 /* VideoContainerView.swift in Sources */, + 28486D9827DAD12700FDC8AA /* MainWindow.swift in Sources */, + 28FDF717279E1D4800573C23 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 28FDF725279E1D6F00573C23 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 28FDF72C279E1D6F00573C23 /* FinderSync.swift in Sources */, + 28A558A627C6F7E40073C3DC /* URL+XATTR.swift in Sources */, + 28A558A827C70C3B0073C3DC /* Color.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + 28FDF730279E1D6F00573C23 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = 28FDF728279E1D6F00573C23 /* Manila Finder Extension */; + targetProxy = 28FDF72F279E1D6F00573C23 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + 28FDF71C279E1D4900573C23 /* Main.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 28FDF71D279E1D4900573C23 /* Base */, + ); + name = Main.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 28FDF720279E1D4900573C23 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 28FDF721279E1D4900573C23 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++17"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 12.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + 28FDF723279E1D4900573C23 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Manila/Manila.entitlements; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ZW9695993M; + ENABLE_HARDENED_RUNTIME = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSDesktopFolderUsageDescription = "Allow access to change the colors of folders on your Desktop."; + INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "Allow access to change the colors of folders in your Documents folder."; + INFOPLIST_KEY_NSDownloadsFolderUsageDescription = "Allow access to change the colors of folders in your Downloads folder."; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Neil Sardesai\nAll rights reserved."; + INFOPLIST_KEY_NSMainStoryboardFile = Main; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.NeilSardesai.Manila; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 28FDF724279E1D4900573C23 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = Manila/Manila.entitlements; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ZW9695993M; + ENABLE_HARDENED_RUNTIME = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities"; + INFOPLIST_KEY_NSDesktopFolderUsageDescription = "Allow access to change the colors of folders on your Desktop."; + INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "Allow access to change the colors of folders in your Documents folder."; + INFOPLIST_KEY_NSDownloadsFolderUsageDescription = "Allow access to change the colors of folders in your Downloads folder."; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Neil Sardesai\nAll rights reserved."; + INFOPLIST_KEY_NSMainStoryboardFile = Main; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.NeilSardesai.Manila; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + 28FDF733279E1D6F00573C23 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = "Manila Finder Extension/Manila_Finder_Extension.entitlements"; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ZW9695993M; + ENABLE_HARDENED_RUNTIME = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Manila Finder Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Manila Finder Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Neil Sardesai\nAll rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.NeilSardesai.Manila.Manila-Finder-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + 28FDF734279E1D6F00573C23 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = "Manila Finder Extension/Manila_Finder_Extension.entitlements"; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = ZW9695993M; + ENABLE_HARDENED_RUNTIME = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Manila Finder Extension/Info.plist"; + INFOPLIST_KEY_CFBundleDisplayName = "Manila Finder Extension"; + INFOPLIST_KEY_NSHumanReadableCopyright = "Copyright © 2022 Neil Sardesai\nAll rights reserved."; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = "com.NeilSardesai.Manila.Manila-Finder-Extension"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 28FDF70E279E1D4800573C23 /* Build configuration list for PBXProject "Manila" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 28FDF720279E1D4900573C23 /* Debug */, + 28FDF721279E1D4900573C23 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 28FDF722279E1D4900573C23 /* Build configuration list for PBXNativeTarget "Manila" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 28FDF723279E1D4900573C23 /* Debug */, + 28FDF724279E1D4900573C23 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 28FDF732279E1D6F00573C23 /* Build configuration list for PBXNativeTarget "Manila Finder Extension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 28FDF733279E1D6F00573C23 /* Debug */, + 28FDF734279E1D6F00573C23 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 28FDF70B279E1D4800573C23 /* Project object */; +} diff --git a/Manila.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Manila.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Manila.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Manila.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Manila.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Manila.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Manila.xcodeproj/xcshareddata/xcschemes/Manila Finder Extension.xcscheme b/Manila.xcodeproj/xcshareddata/xcschemes/Manila Finder Extension.xcscheme new file mode 100644 index 0000000..12c4252 --- /dev/null +++ b/Manila.xcodeproj/xcshareddata/xcschemes/Manila Finder Extension.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Manila.xcodeproj/xcshareddata/xcschemes/Manila.xcscheme b/Manila.xcodeproj/xcshareddata/xcschemes/Manila.xcscheme new file mode 100644 index 0000000..4580a85 --- /dev/null +++ b/Manila.xcodeproj/xcshareddata/xcschemes/Manila.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Manila.xcodeproj/xcuserdata/neil.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/Manila.xcodeproj/xcuserdata/neil.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..ed7f3be --- /dev/null +++ b/Manila.xcodeproj/xcuserdata/neil.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,6 @@ + + + diff --git a/Manila.xcodeproj/xcuserdata/neil.xcuserdatad/xcschemes/xcschememanagement.plist b/Manila.xcodeproj/xcuserdata/neil.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..f340afb --- /dev/null +++ b/Manila.xcodeproj/xcuserdata/neil.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,32 @@ + + + + + SchemeUserState + + Manila Finder Extension.xcscheme_^#shared#^_ + + orderHint + 0 + + Manila.xcscheme_^#shared#^_ + + orderHint + 1 + + + SuppressBuildableAutocreation + + 28FDF712279E1D4800573C23 + + primary + + + 28FDF728279E1D6F00573C23 + + primary + + + + + diff --git a/Manila/AppDelegate.swift b/Manila/AppDelegate.swift new file mode 100644 index 0000000..b735258 --- /dev/null +++ b/Manila/AppDelegate.swift @@ -0,0 +1,31 @@ +// +// AppDelegate.swift +// Manila +// +// Created by Neil Sardesai on 1/23/22. +// + +import Cocoa + +@main +class AppDelegate: NSObject, NSApplicationDelegate { + + func applicationDidFinishLaunching(_ aNotification: Notification) { + // Insert code here to initialize your application + UserDefaults.standard.set(true, forKey: "NSApplicationCrashOnExceptions") + } + + func applicationWillTerminate(_ aNotification: Notification) { + // Insert code here to tear down your application + } + + func applicationSupportsSecureRestorableState(_ app: NSApplication) -> Bool { + return true + } + + func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { + return true + } + +} + diff --git a/Manila/Assets.xcassets/AccentColor.colorset/Contents.json b/Manila/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Manila/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/Contents.json b/Manila/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..64dc11e --- /dev/null +++ b/Manila/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "icon_16x16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "icon_16x16@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "icon_32x32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "icon_32x32@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "icon_128x128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "icon_128x128@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "icon_256x256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "icon_256x256@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "icon_512x512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "icon_512x512@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 0000000..7cb6ff1 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_128x128.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png new file mode 100644 index 0000000..b05650c Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_128x128@2x.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 0000000..d156b63 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_16x16.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png new file mode 100644 index 0000000..470b95e Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_16x16@2x.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 0000000..2dd9202 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_256x256.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png new file mode 100644 index 0000000..5dc4566 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_32x32.png new file mode 100644 index 0000000..d2d8d70 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_32x32.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 0000000..cd43318 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_512x512.png new file mode 100644 index 0000000..0790f50 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_512x512.png differ diff --git a/Manila/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/Manila/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 0000000..4d37805 Binary files /dev/null and b/Manila/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png differ diff --git a/Manila/Assets.xcassets/Contents.json b/Manila/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Manila/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Manila/Base.lproj/Main.storyboard b/Manila/Base.lproj/Main.storyboard new file mode 100644 index 0000000..fe90c83 --- /dev/null +++ b/Manila/Base.lproj/Main.storyboard @@ -0,0 +1,542 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Manila is a Finder extension. To use Manila, right click on one or more folders whose color you want to change, go to the Color menu, and pick a color. Manila will continue to work after you close this window. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Manila/MainWindow.swift b/Manila/MainWindow.swift new file mode 100644 index 0000000..4ce1a46 --- /dev/null +++ b/Manila/MainWindow.swift @@ -0,0 +1,20 @@ +// +// MainWindow.swift +// Manila +// +// Created by Neil Sardesai on 3/10/22. +// + +import Cocoa + +class MainWindow: NSWindow { + + override init(contentRect: NSRect, styleMask style: NSWindow.StyleMask, backing backingStoreType: NSWindow.BackingStoreType, defer flag: Bool) { + super.init(contentRect: contentRect, styleMask: style, backing: backingStoreType, defer: flag) + isMovableByWindowBackground = true + standardWindowButton(.miniaturizeButton)?.isHidden = true + standardWindowButton(.zoomButton)?.isHidden = true + center() + } + +} diff --git a/Manila/Manila.entitlements b/Manila/Manila.entitlements new file mode 100644 index 0000000..f2ef3ae --- /dev/null +++ b/Manila/Manila.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/Manila/VideoContainerView.swift b/Manila/VideoContainerView.swift new file mode 100644 index 0000000..cb17713 --- /dev/null +++ b/Manila/VideoContainerView.swift @@ -0,0 +1,53 @@ +// +// VideoContainerView.swift +// Manila +// +// Created by Neil Sardesai on 3/10/22. +// + +import AVKit +import Cocoa + +class VideoContainerView: NSView { + + private var playerLooper: AVPlayerLooper! + + override init(frame frameRect: NSRect) { + super.init(frame: frameRect) + setUpPlayer() + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + setUpPlayer() + } + + override var wantsUpdateLayer: Bool { true } + + override func updateLayer() { + layer!.cornerCurve = .continuous + layer!.cornerRadius = 8 + layer!.masksToBounds = true + } + + private func setUpPlayer() { + let playerView = AVPlayerView() + playerView.translatesAutoresizingMaskIntoConstraints = false + addSubview(playerView) + NSLayoutConstraint.activate([ + playerView.leadingAnchor.constraint(equalTo: leadingAnchor), + playerView.trailingAnchor.constraint(equalTo: trailingAnchor), + playerView.topAnchor.constraint(equalTo: topAnchor), + playerView.bottomAnchor.constraint(equalTo: bottomAnchor), + ]) + let asset = AVAsset(url: Bundle.main.url(forResource: "Welcome", withExtension: "mp4")!) + let item = AVPlayerItem(asset: asset) + let player = AVQueuePlayer(playerItem: item) + playerLooper = AVPlayerLooper(player: player, templateItem: item) + playerView.player = player + playerView.updatesNowPlayingInfoCenter = false + playerView.showsFullScreenToggleButton = true + player.play() + } + +} diff --git a/Manila/ViewController.swift b/Manila/ViewController.swift new file mode 100644 index 0000000..21a6580 --- /dev/null +++ b/Manila/ViewController.swift @@ -0,0 +1,17 @@ +// +// ViewController.swift +// Manila +// +// Created by Neil Sardesai on 1/23/22. +// + +import Cocoa + +class ViewController: NSViewController { + + @IBAction func neilSardesaiClicked(_ sender: Any) { + NSWorkspace.shared.open(URL(string: "https://neilsardesai.com")!) + } + +} + diff --git a/Manila/Welcome.mp4 b/Manila/Welcome.mp4 new file mode 100755 index 0000000..3f26e5a Binary files /dev/null and b/Manila/Welcome.mp4 differ diff --git a/Manila/WindowMovingImageView.swift b/Manila/WindowMovingImageView.swift new file mode 100644 index 0000000..e52fff6 --- /dev/null +++ b/Manila/WindowMovingImageView.swift @@ -0,0 +1,26 @@ +// +// WindowMovingImageView.swift +// Manila +// +// Created by Neil Sardesai on 3/10/22. +// + +import Cocoa + +class WindowMovingImageView: NSImageView { + + override init(frame frameRect: NSRect) { + super.init(frame: frameRect) + cell?.setAccessibilityElement(false) + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + cell?.setAccessibilityElement(false) + } + + override var mouseDownCanMoveWindow: Bool { + return true + } + +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..80a6eb1 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ + + +# Manila +A Finder extension for changing folder colors \ No newline at end of file diff --git a/icon_256x256@2x.png b/icon_256x256@2x.png new file mode 100644 index 0000000..5dc4566 Binary files /dev/null and b/icon_256x256@2x.png differ