id = "textual" name = "Textual" homepage = "https://www.codeux.com/textual/" description = "Textual is an IRC client created specifically for macOS." # The app icon, the favicon on the project's page at codeux.com. icon = "https://www.codeux.com/textual/public/images/favicon.png" # Textual ships no command-line tool, so `detect` is the bundle identifier — # the one the Homebrew cask's preferences domain is named after # (~/Library/Preferences/com.codeux.apps.textual.plist, Casks/t/textual.rb). executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["com.codeux.apps.textual"] [dotfiles] # Textual's own source builds the support directory in # Sources/App/Classes/Preferences/TPCPathInfo.m, +applicationSupport: # NSArray *pathArray = NSSearchPathForDirectoriesInDomains( # NSApplicationSupportDirectory, NSUserDomainMask, YES); # NSString *basePath = [pathArray.firstObject # stringByAppendingPathComponent:@"/Textual/"]; # i.e. ~/Library/Application Support/Textual. That is also what the Homebrew # cask's `zap trash:` names, together with the preferences domain. # # The Mac App Store build is sandboxed and uses the group-container spelling # from the same file (+groupContainerApplicationSupportURL, the container URL # plus "/Library/Application Support/Textual/"); that identifier is not written # into the source and is not guessed at here, so only the standalone build's # locations are listed. paths = [ "[appData]/Textual/", "[preferences]/com.codeux.apps.textual.plist", ] # Textual's own logs go somewhere else entirely — +applicationLogs in the same # file builds them from NSLibraryDirectory plus "/Logs//", # i.e. ~/Library/Logs — so nothing above needs carving out. # No whole-file credential among the paths above: the support directory holds # the user's styles, scripts and extensions, and the preferences domain holds # the server list and the client's settings. Server and NickServ passwords are # the fields inside that server list, and this schema has no plist matcher to # name them — a consumer that can read plists should treat the identity # entries in com.codeux.apps.textual.plist as secret. secret = [] # No machine_lines: these are property lists, which neither prefix nor key_path # matching can read.