├── .gitattributes ├── .github ├── FUNDING.yml ├── ReadmeGenerator.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ ├── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcuserdata │ │ │ └── serhii-londar.xcuserdatad │ │ │ ├── UserInterfaceState.xcuserstate │ │ │ └── WorkspaceSettings.xcsettings │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── ReadmeGenerator.xcscheme │ └── xcuserdata │ │ └── serhii-londar.xcuserdatad │ │ ├── xcdebugger │ │ └── Breakpoints_v2.xcbkptlist │ │ └── xcschemes │ │ └── xcschememanagement.plist ├── main.swift └── workflows │ ├── main.yml │ └── pr.yml ├── .gitignore ├── CONTRIBUTING.md ├── Dangerfile ├── LICENSE ├── PULL_REQUEST_TEMPLATE.md ├── README.md ├── applications.json ├── categories.json └── icons ├── Lua-16.png ├── Lua.png ├── Objective-c-logo.png ├── Vim script_icon.png ├── app_store-16.png ├── app_store.png ├── applescript-16.png ├── applescript.png ├── c-16.png ├── c.png ├── clojure-16.png ├── clojure.png ├── coffeescript-16.png ├── coffeescript.png ├── cpp-16.png ├── cpp-256.png ├── csharp-16.png ├── csharp.png ├── css-16.png ├── css.png ├── elm-16.png ├── elm.png ├── golang-16.png ├── golang.png ├── haskell-16.png ├── haskell.png ├── icon.png ├── java-16.png ├── java-512.png ├── javascript-16.png ├── javascript-512.png ├── javascript.png ├── objective-c-16.png ├── objective-c.png ├── objective-c1.png ├── objective_c.png ├── python-16.png ├── python.png ├── ruby-16.png ├── ruby.png ├── rust-16.png ├── rust-512.png ├── shell-16.png ├── shell.png ├── swift-16.png ├── swift-1600.png ├── swift.png ├── typescript-16.png └── typescript.png /.gitattributes: -------------------------------------------------------------------------------- 1 | Dangerfile linguist-documentation 2 | README.md merge=union 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | # github: serhii-londar 4 | patreon: serhiilondar 5 | open_collective: open-source-mac-os-apps # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: serhii-londar 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 50; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | E8FDFD7F226E769900FE80E7 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8FDFD7E226E769900FE80E7 /* main.swift */; }; 11 | /* End PBXBuildFile section */ 12 | 13 | /* Begin PBXCopyFilesBuildPhase section */ 14 | E8FDFD70226E74F400FE80E7 /* CopyFiles */ = { 15 | isa = PBXCopyFilesBuildPhase; 16 | buildActionMask = 2147483647; 17 | dstPath = /usr/share/man/man1/; 18 | dstSubfolderSpec = 0; 19 | files = ( 20 | ); 21 | runOnlyForDeploymentPostprocessing = 1; 22 | }; 23 | /* End PBXCopyFilesBuildPhase section */ 24 | 25 | /* Begin PBXFileReference section */ 26 | E8FDFD72226E74F400FE80E7 /* ReadmeGenerator */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = ReadmeGenerator; sourceTree = BUILT_PRODUCTS_DIR; }; 27 | E8FDFD7E226E769900FE80E7 /* main.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = SOURCE_ROOT; }; 28 | /* End PBXFileReference section */ 29 | 30 | /* Begin PBXFrameworksBuildPhase section */ 31 | E8FDFD6F226E74F400FE80E7 /* Frameworks */ = { 32 | isa = PBXFrameworksBuildPhase; 33 | buildActionMask = 2147483647; 34 | files = ( 35 | ); 36 | runOnlyForDeploymentPostprocessing = 0; 37 | }; 38 | /* End PBXFrameworksBuildPhase section */ 39 | 40 | /* Begin PBXGroup section */ 41 | E8FDFD69226E74F400FE80E7 = { 42 | isa = PBXGroup; 43 | children = ( 44 | E8FDFD74226E74F400FE80E7 /* ReadmeGenerator */, 45 | E8FDFD73226E74F400FE80E7 /* Products */, 46 | ); 47 | sourceTree = ""; 48 | }; 49 | E8FDFD73226E74F400FE80E7 /* Products */ = { 50 | isa = PBXGroup; 51 | children = ( 52 | E8FDFD72226E74F400FE80E7 /* ReadmeGenerator */, 53 | ); 54 | name = Products; 55 | sourceTree = ""; 56 | }; 57 | E8FDFD74226E74F400FE80E7 /* ReadmeGenerator */ = { 58 | isa = PBXGroup; 59 | children = ( 60 | E8FDFD7E226E769900FE80E7 /* main.swift */, 61 | ); 62 | path = ReadmeGenerator; 63 | sourceTree = ""; 64 | }; 65 | /* End PBXGroup section */ 66 | 67 | /* Begin PBXNativeTarget section */ 68 | E8FDFD71226E74F400FE80E7 /* ReadmeGenerator */ = { 69 | isa = PBXNativeTarget; 70 | buildConfigurationList = E8FDFD79226E74F400FE80E7 /* Build configuration list for PBXNativeTarget "ReadmeGenerator" */; 71 | buildPhases = ( 72 | E8FDFD6E226E74F400FE80E7 /* Sources */, 73 | E8FDFD6F226E74F400FE80E7 /* Frameworks */, 74 | E8FDFD70226E74F400FE80E7 /* CopyFiles */, 75 | ); 76 | buildRules = ( 77 | ); 78 | dependencies = ( 79 | ); 80 | name = ReadmeGenerator; 81 | productName = ReadmeGenerator; 82 | productReference = E8FDFD72226E74F400FE80E7 /* ReadmeGenerator */; 83 | productType = "com.apple.product-type.tool"; 84 | }; 85 | /* End PBXNativeTarget section */ 86 | 87 | /* Begin PBXProject section */ 88 | E8FDFD6A226E74F400FE80E7 /* Project object */ = { 89 | isa = PBXProject; 90 | attributes = { 91 | LastSwiftUpdateCheck = 1020; 92 | LastUpgradeCheck = 1130; 93 | ORGANIZATIONNAME = "Serhii Londar"; 94 | TargetAttributes = { 95 | E8FDFD71226E74F400FE80E7 = { 96 | CreatedOnToolsVersion = 10.2.1; 97 | LastSwiftMigration = 1020; 98 | }; 99 | }; 100 | }; 101 | buildConfigurationList = E8FDFD6D226E74F400FE80E7 /* Build configuration list for PBXProject "ReadmeGenerator" */; 102 | compatibilityVersion = "Xcode 9.3"; 103 | developmentRegion = en; 104 | hasScannedForEncodings = 0; 105 | knownRegions = ( 106 | en, 107 | Base, 108 | ); 109 | mainGroup = E8FDFD69226E74F400FE80E7; 110 | productRefGroup = E8FDFD73226E74F400FE80E7 /* Products */; 111 | projectDirPath = ""; 112 | projectRoot = ""; 113 | targets = ( 114 | E8FDFD71226E74F400FE80E7 /* ReadmeGenerator */, 115 | ); 116 | }; 117 | /* End PBXProject section */ 118 | 119 | /* Begin PBXSourcesBuildPhase section */ 120 | E8FDFD6E226E74F400FE80E7 /* Sources */ = { 121 | isa = PBXSourcesBuildPhase; 122 | buildActionMask = 2147483647; 123 | files = ( 124 | E8FDFD7F226E769900FE80E7 /* main.swift in Sources */, 125 | ); 126 | runOnlyForDeploymentPostprocessing = 0; 127 | }; 128 | /* End PBXSourcesBuildPhase section */ 129 | 130 | /* Begin XCBuildConfiguration section */ 131 | E8FDFD77226E74F400FE80E7 /* Debug */ = { 132 | isa = XCBuildConfiguration; 133 | buildSettings = { 134 | ALWAYS_SEARCH_USER_PATHS = NO; 135 | CLANG_ANALYZER_NONNULL = YES; 136 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 137 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 138 | CLANG_CXX_LIBRARY = "libc++"; 139 | CLANG_ENABLE_MODULES = YES; 140 | CLANG_ENABLE_OBJC_ARC = YES; 141 | CLANG_ENABLE_OBJC_WEAK = YES; 142 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 143 | CLANG_WARN_BOOL_CONVERSION = YES; 144 | CLANG_WARN_COMMA = YES; 145 | CLANG_WARN_CONSTANT_CONVERSION = YES; 146 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 147 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 148 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 149 | CLANG_WARN_EMPTY_BODY = YES; 150 | CLANG_WARN_ENUM_CONVERSION = YES; 151 | CLANG_WARN_INFINITE_RECURSION = YES; 152 | CLANG_WARN_INT_CONVERSION = YES; 153 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 154 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 155 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 156 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 157 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 158 | CLANG_WARN_STRICT_PROTOTYPES = YES; 159 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 160 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 161 | CLANG_WARN_UNREACHABLE_CODE = YES; 162 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 163 | CODE_SIGN_IDENTITY = "-"; 164 | COPY_PHASE_STRIP = NO; 165 | DEBUG_INFORMATION_FORMAT = dwarf; 166 | ENABLE_STRICT_OBJC_MSGSEND = YES; 167 | ENABLE_TESTABILITY = YES; 168 | GCC_C_LANGUAGE_STANDARD = gnu11; 169 | GCC_DYNAMIC_NO_PIC = NO; 170 | GCC_NO_COMMON_BLOCKS = YES; 171 | GCC_OPTIMIZATION_LEVEL = 0; 172 | GCC_PREPROCESSOR_DEFINITIONS = ( 173 | "DEBUG=1", 174 | "$(inherited)", 175 | ); 176 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 177 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 178 | GCC_WARN_UNDECLARED_SELECTOR = YES; 179 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 180 | GCC_WARN_UNUSED_FUNCTION = YES; 181 | GCC_WARN_UNUSED_VARIABLE = YES; 182 | MACOSX_DEPLOYMENT_TARGET = 10.14; 183 | MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; 184 | MTL_FAST_MATH = YES; 185 | ONLY_ACTIVE_ARCH = YES; 186 | SDKROOT = macosx; 187 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 188 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 189 | }; 190 | name = Debug; 191 | }; 192 | E8FDFD78226E74F400FE80E7 /* Release */ = { 193 | isa = XCBuildConfiguration; 194 | buildSettings = { 195 | ALWAYS_SEARCH_USER_PATHS = NO; 196 | CLANG_ANALYZER_NONNULL = YES; 197 | CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; 198 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; 199 | CLANG_CXX_LIBRARY = "libc++"; 200 | CLANG_ENABLE_MODULES = YES; 201 | CLANG_ENABLE_OBJC_ARC = YES; 202 | CLANG_ENABLE_OBJC_WEAK = YES; 203 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 204 | CLANG_WARN_BOOL_CONVERSION = YES; 205 | CLANG_WARN_COMMA = YES; 206 | CLANG_WARN_CONSTANT_CONVERSION = YES; 207 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 208 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 209 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 210 | CLANG_WARN_EMPTY_BODY = YES; 211 | CLANG_WARN_ENUM_CONVERSION = YES; 212 | CLANG_WARN_INFINITE_RECURSION = YES; 213 | CLANG_WARN_INT_CONVERSION = YES; 214 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 215 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 216 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 217 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 218 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 219 | CLANG_WARN_STRICT_PROTOTYPES = YES; 220 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 221 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; 222 | CLANG_WARN_UNREACHABLE_CODE = YES; 223 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 224 | CODE_SIGN_IDENTITY = "-"; 225 | COPY_PHASE_STRIP = NO; 226 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 227 | ENABLE_NS_ASSERTIONS = NO; 228 | ENABLE_STRICT_OBJC_MSGSEND = YES; 229 | GCC_C_LANGUAGE_STANDARD = gnu11; 230 | GCC_NO_COMMON_BLOCKS = YES; 231 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 232 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 233 | GCC_WARN_UNDECLARED_SELECTOR = YES; 234 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 235 | GCC_WARN_UNUSED_FUNCTION = YES; 236 | GCC_WARN_UNUSED_VARIABLE = YES; 237 | MACOSX_DEPLOYMENT_TARGET = 10.14; 238 | MTL_ENABLE_DEBUG_INFO = NO; 239 | MTL_FAST_MATH = YES; 240 | SDKROOT = macosx; 241 | SWIFT_COMPILATION_MODE = wholemodule; 242 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 243 | }; 244 | name = Release; 245 | }; 246 | E8FDFD7A226E74F400FE80E7 /* Debug */ = { 247 | isa = XCBuildConfiguration; 248 | buildSettings = { 249 | CLANG_ENABLE_MODULES = YES; 250 | CODE_SIGN_IDENTITY = "-"; 251 | CODE_SIGN_STYLE = Automatic; 252 | LD_RUNPATH_SEARCH_PATHS = ( 253 | "$(inherited)", 254 | "@executable_path/../Frameworks", 255 | "@loader_path/../Frameworks", 256 | ); 257 | PRODUCT_NAME = "$(TARGET_NAME)"; 258 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 259 | SWIFT_VERSION = 5.0; 260 | }; 261 | name = Debug; 262 | }; 263 | E8FDFD7B226E74F400FE80E7 /* Release */ = { 264 | isa = XCBuildConfiguration; 265 | buildSettings = { 266 | CLANG_ENABLE_MODULES = YES; 267 | CODE_SIGN_IDENTITY = "-"; 268 | CODE_SIGN_STYLE = Automatic; 269 | LD_RUNPATH_SEARCH_PATHS = ( 270 | "$(inherited)", 271 | "@executable_path/../Frameworks", 272 | "@loader_path/../Frameworks", 273 | ); 274 | PRODUCT_NAME = "$(TARGET_NAME)"; 275 | SWIFT_VERSION = 5.0; 276 | }; 277 | name = Release; 278 | }; 279 | /* End XCBuildConfiguration section */ 280 | 281 | /* Begin XCConfigurationList section */ 282 | E8FDFD6D226E74F400FE80E7 /* Build configuration list for PBXProject "ReadmeGenerator" */ = { 283 | isa = XCConfigurationList; 284 | buildConfigurations = ( 285 | E8FDFD77226E74F400FE80E7 /* Debug */, 286 | E8FDFD78226E74F400FE80E7 /* Release */, 287 | ); 288 | defaultConfigurationIsVisible = 0; 289 | defaultConfigurationName = Release; 290 | }; 291 | E8FDFD79226E74F400FE80E7 /* Build configuration list for PBXNativeTarget "ReadmeGenerator" */ = { 292 | isa = XCConfigurationList; 293 | buildConfigurations = ( 294 | E8FDFD7A226E74F400FE80E7 /* Debug */, 295 | E8FDFD7B226E74F400FE80E7 /* Release */, 296 | ); 297 | defaultConfigurationIsVisible = 0; 298 | defaultConfigurationName = Release; 299 | }; 300 | /* End XCConfigurationList section */ 301 | }; 302 | rootObject = E8FDFD6A226E74F400FE80E7 /* Project object */; 303 | } 304 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/project.xcworkspace/xcuserdata/serhii-londar.xcuserdatad/UserInterfaceState.xcuserstate: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/.github/ReadmeGenerator.xcodeproj/project.xcworkspace/xcuserdata/serhii-londar.xcuserdatad/UserInterfaceState.xcuserstate -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/project.xcworkspace/xcuserdata/serhii-londar.xcuserdatad/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | BuildLocationStyle 6 | UseAppPreferences 7 | CustomBuildIntermediatesPath 8 | Build/Intermediates.noindex 9 | CustomBuildLocationType 10 | RelativeToWorkspace 11 | CustomBuildProductsPath 12 | Build/Products 13 | CustomIndexStorePath 14 | Index/DataStore 15 | DerivedDataLocationStyle 16 | Default 17 | EnabledFullIndexStoreVisibility 18 | 19 | IssueFilterStyle 20 | ShowActiveSchemeOnly 21 | LiveSourceIssuesEnabled 22 | 23 | SharedBuildFolderName 24 | Build 25 | 26 | 27 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/xcshareddata/xcschemes/ReadmeGenerator.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 53 | 55 | 61 | 62 | 63 | 64 | 70 | 72 | 78 | 79 | 80 | 81 | 83 | 84 | 87 | 88 | 89 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/xcuserdata/serhii-londar.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 9 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /.github/ReadmeGenerator.xcodeproj/xcuserdata/serhii-londar.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | SchemeUserState 6 | 7 | ReadmeGenerator.xcscheme_^#shared#^_ 8 | 9 | orderHint 10 | 0 11 | 12 | 13 | SuppressBuildableAutocreation 14 | 15 | E8FDFD71226E74F400FE80E7 16 | 17 | primary 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /.github/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // ReadmeGenerator 4 | // 5 | // Created by Serhii Londar on 4/23/19. 6 | // Copyright © 2019 Serhii Londar. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | let header = """ 12 |
13 | 14 | Stand With Ukraine 15 | 16 | 17 | 18 |

Awesome macOS Open Source Applications

19 |

A curated list of open source applications for macOS

20 |

21 | Awesome 22 | Join the chat at gitter 23 | Telegram Channel 24 |

25 |
26 | 27 |

28 | Audio • 29 | Backup • 30 | Browser • 31 | Chat • 32 | Crypto • 33 | Database • 34 | Dev • 35 | Editors • 36 | Graphics • 37 | Productivity • 38 | Utilities 39 |

40 | 41 | List of awesome open source applications for macOS. This list contains a lot of native, and cross-platform apps. The main goal of this repository is to find free open source apps and start contributing. Feel free to [contribute](CONTRIBUTING.md) to the list, any suggestions are welcome! 42 | 43 | To receive all new or popular applications you can join our [telegram channel](https://t.me/opensourcemacosapps). 44 | 45 | ## Support 46 | 47 | Hey friend! Help me out for a couple of :beers:! Patreon donate button 48 | 49 | ## Languages 50 | 51 | You can see in which language an app is written. Currently there are following languages: 52 | 53 | - ![c_icon] - C language. 54 | - ![cpp_icon] - C++ language. 55 | - ![c_sharp_icon] - C# language. 56 | - ![clojure_icon] - Clojure language. 57 | - ![coffee_script_icon] - CoffeeScript language. 58 | - ![css_icon] - CSS language. 59 | - ![go_icon] - Go language. 60 | - ![elm_icon] - Elm language. 61 | - ![haskell_icon] - Haskell language. 62 | - ![javascript_icon] - JavaScript language. 63 | - ![lua_icon] - Lua language. 64 | - ![objective_c_icon] - Objective-C language. 65 | - ![python_icon] - Python language. 66 | - ![ruby_icon] - Ruby language. 67 | - ![rust_icon] - Rust language. 68 | - ![shell_icon] - Shell language. 69 | - ![swift_icon] - Swift language. 70 | - ![typescript_icon] - TypeScript language. 71 | 72 | 73 | ## Contents 74 | - [Audio](#audio) 75 | - [Backup](#backup) 76 | - [Browser](#browser) 77 | - [Chat](#chat) 78 | - [Cryptocurrency](#cryptocurrency) 79 | - [Database](#database) 80 | - [Development](#development) 81 | - [Git](#git) 82 | - [iOS / macOS](#ios--macos) 83 | - [JSON Parsing](#json-parsing) 84 | - [Web development](#web-development) 85 | - [Other development](#other-development) 86 | - [Downloader](#downloader) 87 | - [Editors](#editors) 88 | - [CSV](#csv) 89 | - [JSON](#json) 90 | - [Markdown](#markdown) 91 | - [TeX](#tex) 92 | - [Text](#text) 93 | - [Extensions](#extensions) 94 | - [Finder](#finder) 95 | - [Games](#games) 96 | - [Graphics](#graphics) 97 | - [IDE](#ide) 98 | - [Images](#images) 99 | - [Keyboard](#keyboard) 100 | - [Mail](#mail) 101 | - [Menubar](#menubar) 102 | - [Music](#music) 103 | - [News](#news) 104 | - [Notes](#notes) 105 | - [Other](#other) 106 | - [Podcast](#podcast) 107 | - [Productivity](#productivity) 108 | - [Screensaver](#screensaver) 109 | - [Security](#security) 110 | - [Sharing Files](#sharing-files) 111 | - [Social Networking](#social-networking) 112 | - [Streaming](#streaming) 113 | - [System](#system) 114 | - [Terminal](#terminal) 115 | - [Touch Bar](#touch-bar) 116 | - [Utilities](#utilities) 117 | - [VPN & Proxy](#vpn--proxy) 118 | - [Video](#video) 119 | - [Wallpaper](#wallpaper) 120 | - [Window Management](#window-management) 121 | 122 | ## Applications 123 | 124 | """ 125 | 126 | let footer = """ 127 | 128 |
⬆️ Back to Top
129 | 130 | ## Contributors 131 | 132 | Thanks to all the people who contribute: 133 | 134 | 135 | 136 | [app_store]: ./icons/app_store-16.png 'App Store.' 137 | [c_icon]: ./icons/c-16.png 'C language.' 138 | [cpp_icon]: ./icons/cpp-16.png 'C++ language.' 139 | [c_sharp_icon]: ./icons/csharp-16.png 'C# Language' 140 | [clojure_icon]: ./icons/clojure-16.png 'Clojure Language' 141 | [coffee_script_icon]: ./icons/coffeescript-16.png 'CoffeeScript language.' 142 | [css_icon]: ./icons/css-16.png 'CSS language.' 143 | [go_icon]: ./icons/golang-16.png 'Go language.' 144 | [elm_icon]: ./icons/elm-16.png 'Elm Language' 145 | [haskell_icon]: ./icons/haskell-16.png 'Haskell language.' 146 | [java_icon]: ./icons/java-16.png 'Java language.' 147 | [javascript_icon]: ./icons/javascript-16.png 'JavaScript language.' 148 | [lua_icon]: ./icons/Lua-16.png 'Lua language.' 149 | [objective_c_icon]: ./icons/objective-c-16.png 'Objective-C language.' 150 | [python_icon]: ./icons/python-16.png 'Python language.' 151 | [ruby_icon]: ./icons/ruby-16.png 'Ruby language.' 152 | [rust_icon]: ./icons/rust-16.png 'Rust language.' 153 | [shell_icon]: ./icons/shell-16.png 'Shell language.' 154 | [swift_icon]: ./icons/swift-16.png 'Swift language.' 155 | [typescript_icon]: ./icons/typescript-16.png 'TypeScript language.' 156 | """ 157 | 158 | class JSONApplications: Codable { 159 | let applications: [JSONApplication] 160 | 161 | enum CodingKeys: String, CodingKey { 162 | case applications 163 | } 164 | 165 | init(applications: [JSONApplication]) { 166 | self.applications = applications 167 | } 168 | 169 | required public init(from decoder: Decoder) throws { 170 | let values = try decoder.container(keyedBy: CodingKeys.self) 171 | applications = try values.decodeIfPresent([JSONApplication].self, forKey: .applications) ?? [] 172 | } 173 | } 174 | 175 | class JSONApplication: Codable { 176 | var title: String 177 | var iconURL: String 178 | var repoURL: String 179 | var shortDescription: String 180 | var languages: [String] 181 | var screenshots: [String] 182 | var categories: [String] 183 | var officialSite: String 184 | 185 | enum CodingKeys: String, CodingKey { 186 | case title 187 | case iconURL = "icon_url" 188 | case repoURL = "repo_url" 189 | case shortDescription = "short_description" 190 | case languages 191 | case screenshots 192 | case categories 193 | case officialSite = "official_site" 194 | } 195 | 196 | init(title: String, iconURL: String, repoURL: String, shortDescription: String, languages: [String], screenshots: [String], categories: [String], officialSite: String) { 197 | self.title = title 198 | self.iconURL = iconURL 199 | self.repoURL = repoURL 200 | self.shortDescription = shortDescription 201 | self.languages = languages 202 | self.screenshots = screenshots 203 | self.categories = categories 204 | self.officialSite = officialSite 205 | } 206 | } 207 | 208 | class Categories: Codable { 209 | let categories: [Category] 210 | 211 | init(categories: [Category]) { 212 | self.categories = categories 213 | } 214 | 215 | required public init(from decoder: Decoder) throws { 216 | let values = try decoder.container(keyedBy: CodingKeys.self) 217 | categories = try values.decodeIfPresent([Category].self, forKey: .categories) ?? [] 218 | } 219 | } 220 | 221 | class Category: Codable { 222 | let title, id, description: String 223 | let parent: String? 224 | 225 | init(title: String, id: String, description: String, parent: String?) { 226 | self.title = title 227 | self.id = id 228 | self.description = description 229 | self.parent = parent 230 | } 231 | } 232 | 233 | class ReadmeGenerator { 234 | var readmeString = String.empty 235 | 236 | func generateReadme() { 237 | print("Start") 238 | do { 239 | // get current file path: 240 | let thisFilePath:String = #file 241 | var url = URL(fileURLWithPath: thisFilePath) 242 | 243 | //cd ../ to the root folder: (delete `.github/main.swift` 244 | url = url.deletingLastPathComponent().deletingLastPathComponent() 245 | 246 | let applicationsUrl = url.appendingPathComponent(FilePaths.applications.rawValue) 247 | let applicationsData = try Data(contentsOf: applicationsUrl) 248 | let categoriesData = try Data(contentsOf: url.appendingPathComponent(FilePaths.categories.rawValue)) 249 | let jsonDecoder = JSONDecoder() 250 | let applicationsObject = try jsonDecoder.decode(JSONApplications.self, from: applicationsData) 251 | let categoriesObject = try jsonDecoder.decode(Categories.self, from: categoriesData) 252 | 253 | var categories = categoriesObject.categories 254 | let subcategories = categories.filter({ $0.parent != nil && !$0.parent!.isEmpty }) 255 | let applications = applicationsObject.applications 256 | 257 | for subcategory in subcategories { 258 | if let index = categories.lastIndex(where: { $0.parent != subcategory.id }) { 259 | categories.remove(at: index) 260 | } 261 | } 262 | 263 | categories = categories.sorted(by: { $0.title < $1.title }) 264 | 265 | readmeString.append(header) 266 | print("Start iteration....") 267 | 268 | for category in categories { 269 | // Add category header with emoji and count 270 | let categoryApps = applications.filter({ $0.categories.contains(category.id) }) 271 | let categoryCount = categoryApps.count 272 | let categoryEmoji = getCategoryEmoji(category.id) 273 | readmeString.append(String.enter + String.section + String.space + categoryEmoji + String.space + category.title + String.space + "(\(categoryCount))" + String.enter) 274 | 275 | var categoryApplications = categoryApps 276 | categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title }) 277 | 278 | for application in categoryApplications { 279 | readmeString.append(application.markdownDescription()) 280 | readmeString.append(String.enter) 281 | } 282 | 283 | // Add "Back to Top" link at the end of each category 284 | readmeString.append("
⬆️ Back to Top
" + String.enter) 285 | 286 | var subcategories = subcategories.filter({ $0.parent == category.id }) 287 | guard subcategories.count > 0 else { continue } 288 | subcategories = subcategories.sorted(by: { $0.title < $1.title }) 289 | for subcategory in subcategories { 290 | // Add subcategory header with emoji and count 291 | let subcategoryApps = applications.filter({ $0.categories.contains(subcategory.id) }) 292 | let subcategoryCount = subcategoryApps.count 293 | let subcategoryEmoji = getCategoryEmoji(subcategory.id) 294 | readmeString.append(String.enter + String.subsection + String.space + subcategoryEmoji + String.space + subcategory.title + String.space + "(\(subcategoryCount))" + String.enter) 295 | 296 | var categoryApplications = subcategoryApps 297 | categoryApplications = categoryApplications.sorted(by: { $0.title < $1.title }) 298 | 299 | for application in categoryApplications { 300 | readmeString.append(application.markdownDescription()) 301 | readmeString.append(String.enter) 302 | } 303 | 304 | // Add "Back to Top" link at the end of each subcategory 305 | readmeString.append("
⬆️ Back to Top
" + String.enter) 306 | } 307 | } 308 | print("Finish iteration...") 309 | readmeString.append(footer) 310 | try readmeString.data(using: .utf8)?.write(to: url.appendingPathComponent(FilePaths.readme.rawValue)) 311 | print("Finish") 312 | } catch { 313 | print(error) 314 | } 315 | } 316 | } 317 | 318 | extension String { 319 | static let empty = "" 320 | static let space = " " 321 | static let enter = "\n" 322 | static let section = "###" 323 | static let subsection = "####" 324 | static let iconPrefix = "_icon" 325 | } 326 | 327 | extension JSONApplication { 328 | func markdownDescription() -> String { 329 | var markdownDescription = String.empty 330 | var languages: String = String.empty 331 | for lang in self.languages { 332 | languages.append("![\(lang)\(String.iconPrefix)] ") 333 | } 334 | 335 | // Create a collapsible section for each application 336 | markdownDescription.append("
") 337 | markdownDescription.append("[\(self.title)](\(self.repoURL)) - \(self.shortDescription)") 338 | markdownDescription.append("

") 339 | 340 | // Add languages 341 | markdownDescription.append("Languages: \(languages)
") 342 | 343 | // Add official site if available 344 | if !self.officialSite.isEmpty { 345 | markdownDescription.append("Website: \(self.officialSite)
") 346 | } 347 | 348 | // Add screenshots with lazy loading to improve page load performance 349 | if self.screenshots.count > 0 { 350 | markdownDescription.append("Screenshots:
") 351 | 352 | // Limit to first 3 screenshots to reduce load time 353 | let limitedScreenshots = self.screenshots.count > 3 ? Array(self.screenshots.prefix(3)) : self.screenshots 354 | 355 | limitedScreenshots.forEach({ 356 | markdownDescription.append("
") 357 | }) 358 | 359 | // Add a note if there are more screenshots 360 | if self.screenshots.count > 3 { 361 | markdownDescription.append("(\(self.screenshots.count - 3) more screenshots available in the repository)
") 362 | } 363 | } 364 | 365 | markdownDescription.append("

") 366 | markdownDescription.append("
") 367 | 368 | return markdownDescription 369 | } 370 | } 371 | 372 | // Helper function to get emoji for categories 373 | func getCategoryEmoji(_ categoryId: String) -> String { 374 | switch categoryId { 375 | case "audio": return "🎵" 376 | case "backup": return "💾" 377 | case "browser": return "🌐" 378 | case "chat": return "💬" 379 | case "cryptocurrency": return "💰" 380 | case "database": return "🗄️" 381 | case "development": return "👨‍💻" 382 | case "downloader": return "⬇️" 383 | case "editors": return "📝" 384 | case "extensions": return "🧩" 385 | case "finder": return "🔍" 386 | case "games": return "🎮" 387 | case "graphics": return "🎨" 388 | case "ide": return "💻" 389 | case "images": return "🖼️" 390 | case "keyboard": return "⌨️" 391 | case "mail": return "📧" 392 | case "menubar": return "📊" 393 | case "music": return "🎧" 394 | case "news": return "📰" 395 | case "notes": return "📔" 396 | case "productivity": return "⏱️" 397 | case "security": return "🔒" 398 | case "sharing-files": return "📤" 399 | case "social-networking": return "👥" 400 | case "system": return "⚙️" 401 | case "terminal": return "📺" 402 | case "utilities": return "🛠️" 403 | case "video": return "🎬" 404 | case "vpn--proxy": return "🔐" 405 | case "wallpaper": return "🖥️" 406 | case "window-management": return "🪟" 407 | default: return "📦" 408 | } 409 | } 410 | 411 | enum FilePaths: String { 412 | case readme = "./README.md" 413 | case applications = "./applications.json" 414 | case categories = "./categories.json" 415 | } 416 | 417 | struct Constants { 418 | static let detailsBeginString = "
Screenshots

" 419 | static let detailsEndString = "

" 420 | static let srcLinePattern = "" 421 | 422 | static let startProcessString = "### Database" 423 | static let endProcessString = "### Development" 424 | 425 | static func regex(for type: String) -> String { 426 | return "\\((.+\\.\(type))" 427 | } 428 | static func regex1(for type: String) -> String { 429 | return "\\\"(.+\\.\(type))" 430 | } 431 | } 432 | 433 | ReadmeGenerator().generateReadme() 434 | 435 | -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- 1 | name: Generate Readme 2 | on: 3 | push: 4 | branches: 5 | - master 6 | jobs: 7 | generate-readme: 8 | runs-on: macos-latest 9 | steps: 10 | - uses: actions/checkout@v3 11 | - run: swift ./.github/main.swift 12 | - run: git config user.name "serhii-londar" 13 | - run: git config user.email "serhii.londar@gmail.com" 14 | - run: git add README.md 15 | - run: git commit -m "Generate README" 16 | - run: git push --quiet "https://${API_TOKEN}@github.com/serhii-londar/open-source-mac-os-apps.git" master:master > /dev/null 2>&1 17 | -------------------------------------------------------------------------------- /.github/workflows/pr.yml: -------------------------------------------------------------------------------- 1 | name: Check PR 2 | on: 3 | pull_request: 4 | branches: 5 | - master 6 | jobs: 7 | setup: 8 | runs-on: macos-latest 9 | steps: 10 | - run: gem install awesome_bot 11 | - run: gem install bundler 12 | - run: gem install danger 13 | - uses: actions/checkout@v3 14 | - run: awesome_bot applications.json -w https://matrix.org,https://camo.githubusercontent.com,http://joshparnham.com,https://pock.pigigaldi.com,https://docs.microsoft.com/powershell/scripting/install/installing-powershell-core-on-macos?view=powershell-6,https://adequate.systems/ --allow 429 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .github/ReadmeGenerator.xcodeproj/project.xcworkspace/xcuserdata/serhii-londar.xcuserdatad/UserInterfaceState.xcuserstate 2 | .github/ReadmeGenerator.xcodeproj/xcuserdata/serhii-londar.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contribution Guidelines 2 | 3 | Please ensure your pull request adheres to the following guidelines: 4 | 5 | - Search previous suggestions before making a new one, as yours may be a duplicate. 6 | - Make an individual pull request for each suggestion. 7 | - Edit [applications.json](https://github.com/serhii-londar/open-source-mac-os-apps/blob/master/applications.json) instead of [README.md](https://github.com/serhii-londar/open-source-mac-os-apps/blob/master/README.md). 8 | - Use the following format: 9 | ```json 10 | { 11 | "short_description": "Description of repository", 12 | "categories": [ 13 | "Application category 1", 14 | "Application category 2" 15 | ], 16 | "repo_url": "Link to repository", 17 | "title": "Name of application", 18 | "icon_url": "URL to application icon", 19 | "screenshots": [ 20 | "Screenshot url 1", 21 | "Screenshot url 2" 22 | ], 23 | "official_site": "Official site link", 24 | "languages": [ 25 | "Language name" 26 | ] 27 | } 28 | ``` 29 | - New categories, or improvements to the existing categorization are welcome. List of all categories can be found in [categories.json](https://github.com/serhii-londar/open-source-mac-os-apps/blob/master/categories.json). 30 | - Keep descriptions short and simple, but descriptive. 31 | - End all descriptions with a full stop/period. 32 | - Check your spelling and grammar. 33 | - Make sure your text editor is set to remove trailing whitespace. 34 | 35 | #### Deleting 36 | 37 | Typical reasons for deleting a project: 38 | 39 | - Doesn't build in the current Xcode 40 | - No updates / no longer works 41 | - Deprecated 42 | - Lacks license 43 | 44 | #### Projects are ineligible if: 45 | 46 | - Lack recent commit 47 | - README is not clear or not written in English 48 | 49 | Your contributions are always welcome! Thank you for your suggestions! :smiley: 50 | -------------------------------------------------------------------------------- /Dangerfile: -------------------------------------------------------------------------------- 1 | # Ensure there is a summary for a pull request 2 | fail 'Please provide a summary in the Pull Request description' if github.pr_body.length < 5 3 | 4 | # Warn when there are merge commits in the diff 5 | warn 'Please rebase to get rid of the merge commits in this Pull Request' if git.commits.any? { |c| c.message =~ /^Merge branch 'master'/ } 6 | 7 | # Warn if pull request is not updated 8 | warn 'Please update the Pull Request title to contain the library name' if github.pr_title.include? 'Update README.md' 9 | 10 | # Check links 11 | require 'json' 12 | results = File.read 'ab-results-applications.json-markdown-table.json' 13 | j = JSON.parse results 14 | if j['error']==true 15 | m = j['title'] 16 | m << ', a project collaborator will take care of these, thanks :)' 17 | warn m 18 | markdown j['message'] 19 | end 20 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | CC0 1.0 Universal 2 | 3 | Statement of Purpose 4 | 5 | The laws of most jurisdictions throughout the world automatically confer 6 | exclusive Copyright and Related Rights (defined below) upon the creator and 7 | subsequent owner(s) (each and all, an "owner") of an original work of 8 | authorship and/or a database (each, a "Work"). 9 | 10 | Certain owners wish to permanently relinquish those rights to a Work for the 11 | purpose of contributing to a commons of creative, cultural and scientific 12 | works ("Commons") that the public can reliably and without fear of later 13 | claims of infringement build upon, modify, incorporate in other works, reuse 14 | and redistribute as freely as possible in any form whatsoever and for any 15 | purposes, including without limitation commercial purposes. These owners may 16 | contribute to the Commons to promote the ideal of a free culture and the 17 | further production of creative, cultural and scientific works, or to gain 18 | reputation or greater distribution for their Work in part through the use and 19 | efforts of others. 20 | 21 | For these and/or other purposes and motivations, and without any expectation 22 | of additional consideration or compensation, the person associating CC0 with a 23 | Work (the "Affirmer"), to the extent that he or she is an owner of Copyright 24 | and Related Rights in the Work, voluntarily elects to apply CC0 to the Work 25 | and publicly distribute the Work under its terms, with knowledge of his or her 26 | Copyright and Related Rights in the Work and the meaning and intended legal 27 | effect of CC0 on those rights. 28 | 29 | 1. Copyright and Related Rights. A Work made available under CC0 may be 30 | protected by copyright and related or neighboring rights ("Copyright and 31 | Related Rights"). Copyright and Related Rights include, but are not limited 32 | to, the following: 33 | 34 | i. the right to reproduce, adapt, distribute, perform, display, communicate, 35 | and translate a Work; 36 | 37 | ii. moral rights retained by the original author(s) and/or performer(s); 38 | 39 | iii. publicity and privacy rights pertaining to a person's image or likeness 40 | depicted in a Work; 41 | 42 | iv. rights protecting against unfair competition in regards to a Work, 43 | subject to the limitations in paragraph 4(a), below; 44 | 45 | v. rights protecting the extraction, dissemination, use and reuse of data in 46 | a Work; 47 | 48 | vi. database rights (such as those arising under Directive 96/9/EC of the 49 | European Parliament and of the Council of 11 March 1996 on the legal 50 | protection of databases, and under any national implementation thereof, 51 | including any amended or successor version of such directive); and 52 | 53 | vii. other similar, equivalent or corresponding rights throughout the world 54 | based on applicable law or treaty, and any national implementations thereof. 55 | 56 | 2. Waiver. To the greatest extent permitted by, but not in contravention of, 57 | applicable law, Affirmer hereby overtly, fully, permanently, irrevocably and 58 | unconditionally waives, abandons, and surrenders all of Affirmer's Copyright 59 | and Related Rights and associated claims and causes of action, whether now 60 | known or unknown (including existing as well as future claims and causes of 61 | action), in the Work (i) in all territories worldwide, (ii) for the maximum 62 | duration provided by applicable law or treaty (including future time 63 | extensions), (iii) in any current or future medium and for any number of 64 | copies, and (iv) for any purpose whatsoever, including without limitation 65 | commercial, advertising or promotional purposes (the "Waiver"). Affirmer makes 66 | the Waiver for the benefit of each member of the public at large and to the 67 | detriment of Affirmer's heirs and successors, fully intending that such Waiver 68 | shall not be subject to revocation, rescission, cancellation, termination, or 69 | any other legal or equitable action to disrupt the quiet enjoyment of the Work 70 | by the public as contemplated by Affirmer's express Statement of Purpose. 71 | 72 | 3. Public License Fallback. Should any part of the Waiver for any reason be 73 | judged legally invalid or ineffective under applicable law, then the Waiver 74 | shall be preserved to the maximum extent permitted taking into account 75 | Affirmer's express Statement of Purpose. In addition, to the extent the Waiver 76 | is so judged Affirmer hereby grants to each affected person a royalty-free, 77 | non transferable, non sublicensable, non exclusive, irrevocable and 78 | unconditional license to exercise Affirmer's Copyright and Related Rights in 79 | the Work (i) in all territories worldwide, (ii) for the maximum duration 80 | provided by applicable law or treaty (including future time extensions), (iii) 81 | in any current or future medium and for any number of copies, and (iv) for any 82 | purpose whatsoever, including without limitation commercial, advertising or 83 | promotional purposes (the "License"). The License shall be deemed effective as 84 | of the date CC0 was applied by Affirmer to the Work. Should any part of the 85 | License for any reason be judged legally invalid or ineffective under 86 | applicable law, such partial invalidity or ineffectiveness shall not 87 | invalidate the remainder of the License, and in such case Affirmer hereby 88 | affirms that he or she will not (i) exercise any of his or her remaining 89 | Copyright and Related Rights in the Work or (ii) assert any associated claims 90 | and causes of action with respect to the Work, in either case contrary to 91 | Affirmer's express Statement of Purpose. 92 | 93 | 4. Limitations and Disclaimers. 94 | 95 | a. No trademark or patent rights held by Affirmer are waived, abandoned, 96 | surrendered, licensed or otherwise affected by this document. 97 | 98 | b. Affirmer offers the Work as-is and makes no representations or warranties 99 | of any kind concerning the Work, express, implied, statutory or otherwise, 100 | including without limitation warranties of title, merchantability, fitness 101 | for a particular purpose, non infringement, or the absence of latent or 102 | other defects, accuracy, or the present or absence of errors, whether or not 103 | discoverable, all to the greatest extent permissible under applicable law. 104 | 105 | c. Affirmer disclaims responsibility for clearing rights of other persons 106 | that may apply to the Work or any use thereof, including without limitation 107 | any person's Copyright and Related Rights in the Work. Further, Affirmer 108 | disclaims responsibility for obtaining any necessary consents, permissions 109 | or other rights required for any use of the Work. 110 | 111 | d. Affirmer understands and acknowledges that Creative Commons is not a 112 | party to this document and has no duty or obligation with respect to this 113 | CC0 or use of the Work. 114 | 115 | For more information, please see 116 | 117 | -------------------------------------------------------------------------------- /PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | ## Project URL 4 | 5 | 6 | ## Category 7 | 8 | 9 | ## Description 10 | 11 | 12 | ## Why it should be included to `Awesome macOS open source applications ` (optional) 13 | 14 | 15 | ## Checklist 16 | 17 | 18 | - [ ] Edit [applications.json](https://github.com/serhii-londar/open-source-mac-os-apps/blob/master/applications.json) instead of [README.md](https://github.com/serhii-londar/open-source-mac-os-apps/blob/master/README.md). 19 | - [ ] Only one project/change is in this pull request 20 | - [ ] Screenshots(s) added if any 21 | - [ ] Has a commit from less than 2 years ago 22 | - [ ] Has a **clear** README in English 23 | -------------------------------------------------------------------------------- /categories.json: -------------------------------------------------------------------------------- 1 | { 2 | "categories": 3 | [ 4 | { 5 | "title": "Audio", 6 | "id": "audio", 7 | "description": "" 8 | }, { 9 | "title": "Backup", 10 | "id": "backup", 11 | "description": "" 12 | }, { 13 | "title": "Browser", 14 | "id": "browser", 15 | "description": "" 16 | }, { 17 | "title": "Chat", 18 | "id": "chat", 19 | "description": "" 20 | }, { 21 | "title": "Cryptocurrency", 22 | "id": "cryptocurrency", 23 | "description": "" 24 | }, { 25 | "title": "Database", 26 | "id": "database", 27 | "description": "" 28 | }, { 29 | "title": "Development", 30 | "id": "development", 31 | "description": "" 32 | }, { 33 | "title": "Downloader", 34 | "id": "downloader", 35 | "description": "" 36 | }, { 37 | "title": "Editors", 38 | "id": "editors", 39 | "description": "" 40 | }, { 41 | "title": "Extensions", 42 | "id": "extensions", 43 | "description": "" 44 | }, { 45 | "title": "Finder", 46 | "id": "finder", 47 | "description": "" 48 | }, { 49 | "title": "Games", 50 | "id": "games", 51 | "description": "" 52 | }, { 53 | "title": "Graphics", 54 | "id": "graphics", 55 | "description": "" 56 | }, { 57 | "title": "IDE", 58 | "id": "ide", 59 | "description": "" 60 | }, { 61 | "title": "Images", 62 | "id": "images", 63 | "description": "" 64 | }, { 65 | "title": "Keyboard", 66 | "id": "keyboard", 67 | "description": "" 68 | }, { 69 | "title": "Mail", 70 | "id": "mail", 71 | "description": "" 72 | }, { 73 | "title": "Medical", 74 | "id": "medical", 75 | "description": "" 76 | }, { 77 | "title": "Menubar", 78 | "id": "menubar", 79 | "description": "" 80 | }, { 81 | "title": "Music", 82 | "id": "music", 83 | "description": "" 84 | }, { 85 | "title": "News", 86 | "id": "news", 87 | "description": "" 88 | }, { 89 | "title": "Notes", 90 | "id": "notes", 91 | "description": "" 92 | }, { 93 | "title": "Other", 94 | "id": "other", 95 | "description": "" 96 | }, { 97 | "title": "Player", 98 | "id": "player", 99 | "description": "" 100 | }, { 101 | "title": "Podcast", 102 | "id": "podcast", 103 | "description": "" 104 | }, { 105 | "title": "Productivity", 106 | "id": "productivity", 107 | "description": "" 108 | }, { 109 | "title": "Screensaver", 110 | "id": "screensaver", 111 | "description": "" 112 | }, { 113 | "title": "Security", 114 | "id": "security", 115 | "description": "" 116 | }, { 117 | "title": "Sharing Files", 118 | "id": "sharing-files", 119 | "description": "" 120 | }, { 121 | "title": "Social Networking", 122 | "id": "social-networking", 123 | "description": "" 124 | }, { 125 | "title": "Streaming", 126 | "id": "streaming", 127 | "description": "" 128 | }, { 129 | "title": "System", 130 | "id": "system", 131 | "description": "" 132 | }, { 133 | "title": "Terminal", 134 | "id": "terminal", 135 | "description": "" 136 | }, { 137 | "title": "Touch Bar", 138 | "id": "touch-bar", 139 | "description": "" 140 | }, { 141 | "title": "Utilities", 142 | "id": "utilities", 143 | "description": "" 144 | }, { 145 | "title": "VPN & Proxy", 146 | "id": "vpn--proxy", 147 | "description": "" 148 | }, { 149 | "title": "Video", 150 | "id": "video", 151 | "description": "" 152 | }, { 153 | "title": "Wallpaper", 154 | "id": "wallpaper", 155 | "description": "" 156 | }, { 157 | "title": "Window Management", 158 | "id": "window-management", 159 | "description": "" 160 | }, { 161 | "title": "Git", 162 | "id": "git", 163 | "parent": "development", 164 | "description": "" 165 | }, { 166 | "title": "iOS / macOS", 167 | "id": "ios--macos", 168 | "parent": "development", 169 | "description": "" 170 | }, { 171 | "title": "JSON Parsing", 172 | "id": "json-parsing", 173 | "parent": "development", 174 | "description": "" 175 | }, { 176 | "title": "Web Development", 177 | "id": "web-development", 178 | "parent": "development", 179 | "description": "" 180 | }, { 181 | "title": "Other Development", 182 | "id": "other-development", 183 | "parent": "development", 184 | "description": "" 185 | }, { 186 | "title": "CSV", 187 | "id": "csv", 188 | "parent": "editors", 189 | "description": "" 190 | }, { 191 | "title": "JSON", 192 | "id": "json", 193 | "parent": "editors", 194 | "description": "" 195 | }, { 196 | "title": "Markdown", 197 | "id": "markdown", 198 | "parent": "editors", 199 | "description": "" 200 | }, { 201 | "title": "TeX", 202 | "id": "tex", 203 | "parent": "editors", 204 | "description": "" 205 | }, { 206 | "title": "Text", 207 | "id": "text", 208 | "parent": "editors", 209 | "description": "" 210 | } 211 | ] 212 | } 213 | -------------------------------------------------------------------------------- /icons/Lua-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/Lua-16.png -------------------------------------------------------------------------------- /icons/Lua.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/Lua.png -------------------------------------------------------------------------------- /icons/Objective-c-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/Objective-c-logo.png -------------------------------------------------------------------------------- /icons/Vim script_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/Vim script_icon.png -------------------------------------------------------------------------------- /icons/app_store-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/app_store-16.png -------------------------------------------------------------------------------- /icons/app_store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/app_store.png -------------------------------------------------------------------------------- /icons/applescript-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/applescript-16.png -------------------------------------------------------------------------------- /icons/applescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/applescript.png -------------------------------------------------------------------------------- /icons/c-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/c-16.png -------------------------------------------------------------------------------- /icons/c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/c.png -------------------------------------------------------------------------------- /icons/clojure-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/clojure-16.png -------------------------------------------------------------------------------- /icons/clojure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/clojure.png -------------------------------------------------------------------------------- /icons/coffeescript-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/coffeescript-16.png -------------------------------------------------------------------------------- /icons/coffeescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/coffeescript.png -------------------------------------------------------------------------------- /icons/cpp-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/cpp-16.png -------------------------------------------------------------------------------- /icons/cpp-256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/cpp-256.png -------------------------------------------------------------------------------- /icons/csharp-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/csharp-16.png -------------------------------------------------------------------------------- /icons/csharp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/csharp.png -------------------------------------------------------------------------------- /icons/css-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/css-16.png -------------------------------------------------------------------------------- /icons/css.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/css.png -------------------------------------------------------------------------------- /icons/elm-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/elm-16.png -------------------------------------------------------------------------------- /icons/elm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/elm.png -------------------------------------------------------------------------------- /icons/golang-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/golang-16.png -------------------------------------------------------------------------------- /icons/golang.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/golang.png -------------------------------------------------------------------------------- /icons/haskell-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/haskell-16.png -------------------------------------------------------------------------------- /icons/haskell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/haskell.png -------------------------------------------------------------------------------- /icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/icon.png -------------------------------------------------------------------------------- /icons/java-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/java-16.png -------------------------------------------------------------------------------- /icons/java-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/java-512.png -------------------------------------------------------------------------------- /icons/javascript-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/javascript-16.png -------------------------------------------------------------------------------- /icons/javascript-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/javascript-512.png -------------------------------------------------------------------------------- /icons/javascript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/javascript.png -------------------------------------------------------------------------------- /icons/objective-c-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/objective-c-16.png -------------------------------------------------------------------------------- /icons/objective-c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/objective-c.png -------------------------------------------------------------------------------- /icons/objective-c1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/objective-c1.png -------------------------------------------------------------------------------- /icons/objective_c.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/objective_c.png -------------------------------------------------------------------------------- /icons/python-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/python-16.png -------------------------------------------------------------------------------- /icons/python.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/python.png -------------------------------------------------------------------------------- /icons/ruby-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/ruby-16.png -------------------------------------------------------------------------------- /icons/ruby.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/ruby.png -------------------------------------------------------------------------------- /icons/rust-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/rust-16.png -------------------------------------------------------------------------------- /icons/rust-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/rust-512.png -------------------------------------------------------------------------------- /icons/shell-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/shell-16.png -------------------------------------------------------------------------------- /icons/shell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/shell.png -------------------------------------------------------------------------------- /icons/swift-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/swift-16.png -------------------------------------------------------------------------------- /icons/swift-1600.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/swift-1600.png -------------------------------------------------------------------------------- /icons/swift.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/swift.png -------------------------------------------------------------------------------- /icons/typescript-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/typescript-16.png -------------------------------------------------------------------------------- /icons/typescript.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/serhii-londar/open-source-mac-os-apps/be6046fac5c1d02750deaaaddca6d0e73adb7027/icons/typescript.png --------------------------------------------------------------------------------