id = "ubersicht" name = "Übersicht" homepage = "https://tracesof.net/uebersicht/" description = "Übersicht lets you run system commands and display their output on your desktop in little containers, called widgets." # The app icon, from the asset catalogue in the project's repository. icon = "https://raw.githubusercontent.com/felixhageloh/uebersicht/master/Uebersicht/Images.xcassets/AppIcon.appiconset/256.png" # Übersicht ships no command-line tool, so `detect` is the bundle identifier — # the one the Homebrew cask quits, `uninstall quit: "tracesOf.Uebersicht"`. executables = [] platforms = ["macos"] [installation] macos_bundle_ids = ["tracesOf.Uebersicht"] [dotfiles] # The widgets directory is built in the app's own source, # UBPreferencesController.m, -ensureDefaultsWidgetDir: # NSArray* urls = [[NSFileManager defaultManager] # URLsForDirectory:NSApplicationSupportDirectory inDomains:NSUserDomainMask]; # NSURL* defaultDir = [urls[0] # URLByAppendingPathComponent:@"Übersicht/widgets" isDirectory:YES]; # and registered as the default for the "widgetDirectory" preference, which the # preferences window's file picker can point somewhere else. So the path is # ~/Library/Application Support/Übersicht/widgets, with the app name spelled # with its umlaut. The Homebrew cask's `zap trash:` names the same directory # plus ~/Library/Preferences/tracesOf.Uebersicht.plist. # # A widget is a .jsx (or the older .coffee) file that the README describes as # "JavaScript modules that expose a few key properties and methods … defined in # a single file with a .jsx extension for Übersicht to pick them up", together # with whatever CSS, images and node_modules it ships. paths = [ "[appData]/Übersicht/widgets/", "[preferences]/tracesOf.Uebersicht.plist", ] # ~/Library/Application Support/tracesOf.Uebersicht, ~/Library/Caches/ # tracesOf.Uebersicht and ~/Library/WebKit/tracesOf.Uebersicht — the rest of # what the cask zaps — are outside the paths above. # Widgets are shell commands and the markup that renders their output; nothing # Übersicht itself stores is a credential. A widget that calls an API with a # key would carry that key in its own source, which is the widget author's file # rather than a shape this entry can name. secret = [] # No machine_lines: the preferences file is a property list, which neither # prefix nor key_path matching can read. Its widgetDirectory value is an # archived absolute URL and so belongs to one machine; a consumer that can read # plists should drop it.