feat: add an app icon and menubar icon (closes #38)

This commit is contained in:
Louis Pontoise authored and lwouis committed 2020-03-10 14:00:37 +09:00
1 parent 51a88382d1
commit a345dae361
11 files changed
+368 -12

No files matched your search

+8 -10
View File
@@ -2,12 +2,12 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ATSApplicationFontsPath</key>
<string></string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
@@ -20,25 +20,23 @@
<string>#VERSION#</string>
<key>CFBundleVersion</key>
<string>#VERSION#</string>
<key>FeedbackToken</key>
<string>#FEEDBACK_TOKEN#</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>LSUIElement</key>
<string>true</string>
<key>NSHumanReadableCopyright</key>
<string>GPL-3.0 licence</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>LSUIElement</key>
<string>true</string>
<key>ATSApplicationFontsPath</key>
<string></string>
<key>NSSupportsSuddenTermination</key>
<string>true</string>
<key>SUEnableAutomaticChecks</key>
<string>true</string>
<key>SUFeedURL</key>
<string>https://raw.githubusercontent.com/lwouis/alt-tab-macos/master/appcast.xml</string>
<key>SUEnableAutomaticChecks</key>
<string>true</string>
<key>SUPublicEDKey</key>
<string>2e9SQOBoaKElchSa/4QDli/nvYkyuDNfynfzBF6vJK4=</string>
<key>FeedbackToken</key>
<string>#FEEDBACK_TOKEN#</string>
</dict>
</plist>
+24 -1
View File
@@ -8,6 +8,7 @@
/* Begin PBXBuildFile section */
4807A6C623A9CD190052A53E /* SkyLight.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4807A6C523A9CD190052A53E /* SkyLight.framework */; };
4858C9B323FBA80200A5BCD9 /* rasterized.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4858C9B223FBA80200A5BCD9 /* rasterized.xcassets */; };
76D02BB22BFE7C9E0056008D /* Pods_alt_tab_macos.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C0712B3BEA2B3780398C0999 /* Pods_alt_tab_macos.framework */; };
D04BA004884A273D4D2D3EF1 /* HelperExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = D04BAD91161791D42FEC4A60 /* HelperExtensions.swift */; };
D04BA084CD1236EC78D90A01 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = D04BACCBE5F97BE9B6CA645B /* Localizable.strings */; };
@@ -65,6 +66,7 @@
/* Begin PBXFileReference section */
38C426DAE17708EDD4FDADBF /* Pods-alt-tab-macos.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-alt-tab-macos.release.xcconfig"; path = "Target Support Files/Pods-alt-tab-macos/Pods-alt-tab-macos.release.xcconfig"; sourceTree = "<group>"; };
4807A6C523A9CD190052A53E /* SkyLight.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SkyLight.framework; path = ../../../../System/Library/PrivateFrameworks/SkyLight.framework; sourceTree = "<group>"; };
4858C9B223FBA80200A5BCD9 /* rasterized.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = rasterized.xcassets; sourceTree = "<group>"; };
BF12DEA89785CA78B0FE2706 /* Pods-alt-tab-macos.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-alt-tab-macos.debug.xcconfig"; path = "Target Support Files/Pods-alt-tab-macos/Pods-alt-tab-macos.debug.xcconfig"; sourceTree = "<group>"; };
C0712B3BEA2B3780398C0999 /* Pods_alt_tab_macos.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_alt_tab_macos.framework; sourceTree = BUILT_PRODUCTS_DIR; };
D04BA015A45DE7AFDC9794FE /* Window.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Window.swift; sourceTree = "<group>"; };
@@ -126,7 +128,7 @@
D04BA82F792DF53958D92572 /* AltTab.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = AltTab.app; sourceTree = BUILT_PRODUCTS_DIR; };
D04BA8DB8AA7E5570DAC568A /* Sysctl.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Sysctl.swift; sourceTree = "<group>"; };
D04BA926AF41D226EA1ACBA1 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = "<group>"; };
D04BA92541D46EA4F6943A72 /* package-lock.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = "package-lock.json"; sourceTree = "<group>"; };
D04BA97D4F5B72B3AB87A4A5 /* app-icon.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; path = "app-icon.svg"; sourceTree = "<group>"; };
D04BA9B93823398A542FF7A0 /* Preferences.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Preferences.swift; sourceTree = "<group>"; };
D04BA9EF65B2E7AF9E3ADCA3 /* 2 windows - 1 line.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "2 windows - 1 line.jpg"; sourceTree = "<group>"; };
D04BAA34E0CB00DED7C04B4F /* 2-rows.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "2-rows.jpg"; sourceTree = "<group>"; };
@@ -157,6 +159,7 @@
D04BAD91161791D42FEC4A60 /* HelperExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HelperExtensions.swift; sourceTree = "<group>"; };
D04BADB20AB31BF83593E0BE /* greetings.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.yaml; path = greetings.yml; sourceTree = "<group>"; };
D04BAE1243C9B4BE3ED1B524 /* 7 windows - 2 lines - extra wide window.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "7 windows - 2 lines - extra wide window.jpg"; sourceTree = "<group>"; };
D04BAE31C445719E8F8C60E1 /* menubar-icon.svg */ = {isa = PBXFileReference; lastKnownFileType = file.svg; path = "menubar-icon.svg"; sourceTree = "<group>"; };
D04BAE757BB2B605234FBF58 /* TabViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TabViewController.swift; sourceTree = "<group>"; };
D04BAE93A5854C501639C640 /* update_homebrew_cask.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = update_homebrew_cask.sh; sourceTree = "<group>"; };
D04BAF076A30A1BAFEDBEA66 /* 5 windows - 2 lines.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; path = "5 windows - 2 lines.jpg"; sourceTree = "<group>"; };
@@ -405,6 +408,15 @@
path = scripts;
sourceTree = "<group>";
};
D04BA7568B7165A7726306A7 /* icons */ = {
isa = PBXGroup;
children = (
4858C9B223FBA80200A5BCD9 /* rasterized.xcassets */,
D04BAAE3B28A88C49177414C /* originals */,
);
path = icons;
sourceTree = "<group>";
};
D04BA85F16881B290C4A33CD /* de.lproj */ = {
isa = PBXGroup;
children = (
@@ -420,6 +432,7 @@
D04BA0CDCFF1F0B1A77E3E86 /* SF-Pro-Text-Regular.otf */,
D04BAC2FF99F629CD4ED20FC /* MainMenu.xib */,
D04BAC2B70BC798C57B0B492 /* l10n */,
D04BA7568B7165A7726306A7 /* icons */,
);
path = resources;
sourceTree = "<group>";
@@ -455,6 +468,15 @@
path = img;
sourceTree = "<group>";
};
D04BAAE3B28A88C49177414C /* originals */ = {
isa = PBXGroup;
children = (
D04BA97D4F5B72B3AB87A4A5 /* app-icon.svg */,
D04BAE31C445719E8F8C60E1 /* menubar-icon.svg */,
);
path = originals;
sourceTree = "<group>";
};
D04BABCD12CA72B06290C248 /* preferences-window */ = {
isa = PBXGroup;
children = (
@@ -560,6 +582,7 @@
D04BA8D6055F6F2E42C976EA /* InfoPlist.strings in Resources */,
D04BAC3169D54014CBA9ACE5 /* Localizable.strings in Resources */,
D04BA100BD0F47828EB649FF /* InfoPlist.strings in Resources */,
4858C9B323FBA80200A5BCD9 /* rasterized.xcassets in Resources */,
D04BA3C24F4F644EA91DE38C /* Localizable.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
+1
View File
@@ -10,3 +10,4 @@ IDEDerivedDataPathOverride = DerivedData
FRAMEWORK_SEARCH_PATHS[config=*] = $(inherited) /System/Library/PrivateFrameworks // for SkyLight.framework
ENABLE_HARDENED_RUNTIME = YES // for notarization
OTHER_CODE_SIGN_FLAGS = --timestamp --deep --options runtime // for notarization
ASSETCATALOG_COMPILER_APPICON_NAME = app-icon
+232
View File
@@ -0,0 +1,232 @@
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_d)">
<g filter="url(#filter1_ii)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M43.2653 291.8C43.1946 293.059 43.256 294.346 43.4614 295.643L142.516 921.048C144.071 930.866 153.291 937.565 163.11 936.01L905.155 818.482C914.385 817.02 920.858 808.785 920.309 799.646L920.357 799.934L920.749 828.022C920.874 836.968 914.41 844.647 905.574 846.05L163.109 963.979C153.288 965.539 144.062 958.839 142.507 949.017L41.7523 312.88C41.5126 311.366 41.4671 309.828 41.6172 308.302L43.2399 291.803L43.2653 291.8Z" fill="url(#paint0_linear)"/>
</g>
<g filter="url(#filter2_i)">
<rect x="40.6455" y="277.864" width="787.295" height="669.201" rx="18" transform="rotate(-9 40.6455 277.864)" fill="url(#paint1_linear)"/>
</g>
</g>
<g filter="url(#filter3_d)">
<g filter="url(#filter4_ii)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.124 177.45C114.8 179.339 114.775 181.312 115.091 183.31L214.145 808.715C215.701 818.534 224.921 825.233 234.74 823.678L976.785 706.149C985.349 704.793 991.539 697.605 991.95 689.275L992.729 720.141C992.956 729.161 986.47 736.956 977.558 738.372L235.269 856.276C225.448 857.835 216.223 851.136 214.667 841.314L112.926 198.946C112.653 197.223 112.632 195.469 112.864 193.74L115.044 177.46L115.124 177.45ZM991.828 686.119C991.848 686.281 991.866 686.442 991.883 686.603L991.878 686.421L991.828 686.119Z" fill="url(#paint2_linear)"/>
</g>
<g filter="url(#filter5_d)">
<rect x="112.274" y="165.532" width="787.295" height="669.201" rx="18" transform="rotate(-9 112.274 165.532)" fill="url(#paint3_linear)"/>
</g>
</g>
<g style="mix-blend-mode:multiply" filter="url(#filter6_f)">
<rect x="70.2812" y="241.96" width="797.465" height="669.201" rx="18" transform="rotate(-9 70.2812 241.96)" fill="url(#paint4_linear)"/>
</g>
<g filter="url(#filter7_d)">
<g filter="url(#filter8_i)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M125.235 247.067L123.623 262.421C123.459 263.985 123.5 265.563 123.746 267.117L214.743 841.65C216.3 851.478 225.536 858.179 235.362 856.608L913.066 748.318L912.397 714.939L910.111 703.3L912.183 716.388L234.786 823.678C224.967 825.233 215.747 818.534 214.192 808.715L125.235 247.067Z" fill="url(#paint5_linear)"/>
</g>
<g filter="url(#filter9_i)">
<path d="M125.243 247.115L802.641 139.826C812.46 138.271 821.68 144.97 823.235 154.789L912.184 716.388L234.786 823.678C224.967 825.233 215.747 818.534 214.192 808.715L125.243 247.115Z" fill="url(#paint6_linear)"/>
</g>
</g>
<g filter="url(#filter10_di)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M584.391 324.8C583.309 317.969 590.016 312.521 596.48 314.98L768.947 380.58C775.445 383.052 776.806 391.645 771.389 396.004L627.635 511.689C622.247 516.025 614.186 512.916 613.104 506.085L606.155 462.211C605.377 457.302 600.767 453.952 595.858 454.73L501.12 469.735C496.211 470.512 491.6 467.163 490.823 462.254L481.577 403.875C480.799 398.966 484.149 394.355 489.058 393.578L583.795 378.573C588.705 377.795 592.054 373.185 591.277 368.276L584.391 324.8Z" fill="url(#paint7_linear)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M433.452 485.856C432.37 479.025 424.309 475.916 418.921 480.252L275.167 595.937C269.75 600.296 271.111 608.889 277.609 611.361L450.076 676.961C456.54 679.42 463.247 673.972 462.165 667.141L455.216 623.267C454.439 618.358 457.788 613.748 462.697 612.97L557.435 597.965C562.345 597.188 565.694 592.577 564.917 587.668L555.67 529.289C554.893 524.38 550.283 521.031 545.373 521.808L450.635 536.813C445.726 537.591 441.116 534.241 440.338 529.332L433.452 485.856Z" fill="url(#paint8_linear)"/>
</g>
<g filter="url(#filter11_di)">
<circle cx="206.587" cy="303.705" r="23.3845" transform="rotate(-9 206.587 303.705)" fill="url(#paint9_linear)"/>
<circle cx="272.577" cy="293.253" r="23.3845" transform="rotate(-9 272.577 293.253)" fill="url(#paint10_linear)"/>
<circle cx="339.277" cy="282.689" r="23.3845" transform="rotate(-9 339.277 282.689)" fill="url(#paint11_linear)"/>
</g>
<defs>
<filter id="filter0_d" x="14.5322" y="154.704" width="920.64" height="844.091" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dx="-8" dy="16"/>
<feGaussianBlur stdDeviation="8"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
</filter>
<filter id="filter1_ii" x="38.5322" y="164.716" width="888.64" height="806.08" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0"/>
<feBlend mode="normal" in2="effect1_innerShadow" result="effect2_innerShadow"/>
</filter>
<filter id="filter2_i" x="40.6455" y="154.704" width="882.288" height="788.122" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
</filter>
<filter id="filter3_d" x="88.2744" y="42.3718" width="914.288" height="846.129" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dx="-8" dy="16"/>
<feGaussianBlur stdDeviation="8"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
</filter>
<filter id="filter4_ii" x="112.704" y="173.45" width="880.03" height="687.051" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.08 0"/>
<feBlend mode="normal" in2="effect1_innerShadow" result="effect2_innerShadow"/>
</filter>
<filter id="filter5_d" x="108.274" y="42.3718" width="890.288" height="792.122" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
</filter>
<filter id="filter6_f" x="62.2812" y="109.209" width="908.333" height="801.713" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feGaussianBlur stdDeviation="4" result="effect1_foregroundBlur"/>
</filter>
<filter id="filter7_d" x="99.5244" y="139.602" width="821.542" height="749.235" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dx="-8" dy="16"/>
<feGaussianBlur stdDeviation="8"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
</filter>
<filter id="filter8_i" x="123.524" y="247.067" width="789.542" height="613.77" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
</filter>
<filter id="filter9_i" x="125.243" y="139.602" width="786.94" height="688.3" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
</filter>
<filter id="filter10_di" x="260.874" y="308.913" width="517.52" height="383.226" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dx="-3.64421" dy="7.28843"/>
<feGaussianBlur stdDeviation="3.64421"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-5.46632"/>
<feGaussianBlur stdDeviation="2.73316"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="shape" result="effect2_innerShadow"/>
</filter>
<filter id="filter11_di" x="177.199" y="255.301" width="187.466" height="79.7918" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0"/>
<feOffset dx="-2" dy="4"/>
<feGaussianBlur stdDeviation="2"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow"/>
<feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="-4"/>
<feGaussianBlur stdDeviation="2"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0"/>
<feBlend mode="normal" in2="shape" result="effect2_innerShadow"/>
</filter>
<linearGradient id="paint0_linear" x1="147.206" y1="947.458" x2="929.056" y2="823.625" gradientUnits="userSpaceOnUse">
<stop stop-color="#AF1C3F"/>
<stop offset="0.00957865" stop-color="#E24E8E"/>
<stop offset="0.0209771" stop-color="#C6186B"/>
<stop offset="0.975229" stop-color="#C6186B"/>
<stop offset="0.989118" stop-color="#DE3471"/>
<stop offset="1" stop-color="#AF1C3F"/>
</linearGradient>
<linearGradient id="paint1_linear" x1="434.293" y1="277.864" x2="434.293" y2="947.065" gradientUnits="userSpaceOnUse">
<stop stop-color="#D619AC"/>
<stop offset="1" stop-color="#D0224C"/>
</linearGradient>
<linearGradient id="paint2_linear" x1="216.437" y1="835.868" x2="990.025" y2="711.145" gradientUnits="userSpaceOnUse">
<stop offset="0.00272434" stop-color="#1598D0"/>
<stop offset="0.0143901" stop-color="#4BBAF2"/>
<stop offset="0.0222045" stop-color="#1CA8D4"/>
<stop offset="0.75" stop-color="#1D8CDC"/>
<stop offset="0.973724" stop-color="#1CA8D5"/>
<stop offset="1" stop-color="#1A81CC"/>
</linearGradient>
<linearGradient id="paint3_linear" x1="505.922" y1="165.532" x2="505.922" y2="834.732" gradientUnits="userSpaceOnUse">
<stop stop-color="#1DDFDF"/>
<stop offset="1" stop-color="#1D8CDC"/>
</linearGradient>
<linearGradient id="paint4_linear" x1="469.014" y1="241.96" x2="469.014" y2="911.16" gradientUnits="userSpaceOnUse">
<stop stop-color="#F0E57E" stop-opacity="0"/>
<stop offset="1" stop-color="#FFE600"/>
</linearGradient>
<linearGradient id="paint5_linear" x1="211.033" y1="831.064" x2="906.144" y2="721.575" gradientUnits="userSpaceOnUse">
<stop stop-color="#0D0C4E"/>
<stop offset="0.0218244" stop-color="#23208B"/>
<stop offset="0.0439993" stop-color="#161386"/>
<stop offset="0.265625" stop-color="#100E5B"/>
<stop offset="1" stop-color="#100E5B"/>
</linearGradient>
<linearGradient id="paint6_linear" x1="472.831" y1="192.063" x2="564.596" y2="771.441" gradientUnits="userSpaceOnUse">
<stop stop-color="#161386"/>
<stop offset="1" stop-color="#0A093D"/>
</linearGradient>
<linearGradient id="paint7_linear" x1="614.667" y1="310.879" x2="646.2" y2="509.969" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#EAFEFE"/>
</linearGradient>
<linearGradient id="paint8_linear" x1="400.356" y1="481.972" x2="431.889" y2="681.062" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#EAFEFE"/>
</linearGradient>
<linearGradient id="paint9_linear" x1="206.587" y1="280.32" x2="206.587" y2="327.089" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#EAFEFE"/>
</linearGradient>
<linearGradient id="paint10_linear" x1="272.577" y1="269.868" x2="272.577" y2="316.637" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#EAFEFE"/>
</linearGradient>
<linearGradient id="paint11_linear" x1="339.277" y1="259.304" x2="339.277" y2="306.073" gradientUnits="userSpaceOnUse">
<stop stop-color="white"/>
<stop offset="1" stop-color="#EAFEFE"/>
</linearGradient>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,17 @@
<svg width="32" height="30" viewBox="0 0 32 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<g filter="url(#filter0_i)">
<path fill-rule="evenodd" clip-rule="evenodd" d="M5 0C2.23858 0 0 2.23858 0 5V25C0 27.7614 2.23858 30 5 30H27C29.7614 30 32 27.7614 32 25V5C32 2.23858 29.7614 0 27 0H5ZM29.0712 13.3713L19.7019 8.00004V11.4314H13.9999V15.291H19.7019V18.7426L29.0712 13.3713ZM12.3691 16L2.99986 21.3713L12.3691 26.7426L12.3691 23.291H18.0712V19.4314H12.3691L12.3691 16ZM4.49996 6.00002C5.32839 6.00002 5.99996 5.32845 5.99996 4.50002C5.99996 3.6716 5.32839 3.00002 4.49996 3.00002C3.67153 3.00002 2.99996 3.6716 2.99996 4.50002C2.99996 5.32845 3.67153 6.00002 4.49996 6.00002ZM11 4.50002C11 5.32845 10.3284 6.00002 9.49996 6.00002C8.67153 6.00002 7.99996 5.32845 7.99996 4.50002C7.99996 3.6716 8.67153 3.00002 9.49996 3.00002C10.3284 3.00002 11 3.6716 11 4.50002ZM14.5 6.00002C15.3284 6.00002 16 5.32845 16 4.50002C16 3.6716 15.3284 3.00002 14.5 3.00002C13.6715 3.00002 13 3.6716 13 4.50002C13 5.32845 13.6715 6.00002 14.5 6.00002Z" fill="black"/>
</g>
<defs>
<filter id="filter0_i" x="0" y="0" width="32" height="30.2294" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
<feFlood flood-opacity="0" result="BackgroundImageFix"/>
<feBlend mode="normal" in="SourceGraphic" in2="BackgroundImageFix" result="shape"/>
<feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
<feOffset dy="0.229351"/>
<feGaussianBlur stdDeviation="0.114676"/>
<feComposite in2="hardAlpha" operator="arithmetic" k2="-1" k3="1"/>
<feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.2 0"/>
<feBlend mode="normal" in2="shape" result="effect1_innerShadow"/>
</filter>
</defs>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}
@@ -0,0 +1,59 @@
{
"images" : [
{
"idiom" : "mac",
"size" : "16x16",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "16x16",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "32x32",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "32x32",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "128x128",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "128x128",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "256x256",
"scale" : "1x"
},
{
"idiom" : "mac",
"size" : "256x256",
"scale" : "2x"
},
{
"idiom" : "mac",
"size" : "512x512",
"scale" : "1x"
},
{
"size" : "512x512",
"idiom" : "mac",
"filename" : "icon_512x512@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 662 KiB

@@ -0,0 +1,17 @@
{
"images" : [
{
"idiom" : "mac",
"scale" : "1x"
},
{
"idiom" : "mac",
"filename" : "icon_16x16@2x.png",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 656 B

+4 -1
View File
@@ -3,7 +3,10 @@ import Cocoa
class Menubar {
static func make(_ app: App) -> NSStatusItem {
let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength)
item.button!.title = "AltTab"
let image = NSImage(named: "menubar-icon")
image!.isTemplate = true
item.button!.image = image
item.button!.imageScaling = .scaleProportionallyUpOrDown
item.menu = NSMenu()
item.menu!.addItem(
withTitle: NSLocalizedString("Show", comment: ""),