id = "ogdesign-eagle" name = "Eagle" homepage = "https://eagle.cool" description = "A better way to collect, search and organize your design files in a logical way and all in one place." # Eagle's own sentence, the meta description on https://en.eagle.cool. # Eagle's brand mark. icon = "SimpleIcons:eagle" # The id keeps the vendor prefix because "eagle" is already the name of an # unrelated product — Autodesk EAGLE, the PCB tool, which is what # `brew install --cask eagle` fetches. This entry is Eagle by ogdesign. # # Eagle has no command line, so `detect` carries the bundle identifier. # Verified on a Mac with Eagle installed: # osascript -e 'id of app "Eagle"' → tw.ogdesign.eagle # and ~/Library/Preferences/tw.ogdesign.eagle.plist exists under that name. executables = [] platforms = ["macos", "windows"] [installation] macos_bundle_ids = ["tw.ogdesign.eagle"] [dotfiles] # Eagle is an Electron app: ~/Library/Application Support/Eagle on this machine # holds the Chromium artefacts an Electron userData directory always has # (Code Cache, GPUCache, IndexedDB, blob_storage, Local Storage) beside a # "Preferences" file whose content is `{"electron":{"media":{…}},"spellcheck":…}`. # Electron's app.getPath('userData') is documented as the app's name appended to # `appData`, which is ~/Library/Application Support on macOS and %APPDATA% on # Windows — the [appData] base directory. Eagle ships no Linux build, hence the # two platforms. # # Within that directory the user's own settings are the single "Settings" file, # read on this machine: JSON, holding `preferences.general` (zoom, language, # dock and sidebar behaviour), `preferences.habits` (double-click, scroll, # render and GIF behaviour) and `preferences.shortcuts.keybinds`, the full # keyboard map. Nothing else in the directory is user configuration, so the # file is named rather than the folder — which also keeps the Chromium caches, # the cookie jar and Eagle's own eagle-temp/library-caches out without needing # a carve-out. paths = ["[appData]/Eagle/Settings"] exclude = [] # No credential in the Settings file. Eagle's account sign-in is held in the # Electron cookie jar next to it, which is deliberately not listed above. secret = [] # libraryHistory is the list of Eagle libraries opened on this machine, stored # as absolute paths ("/Users//Pictures/.library/"), and libraryDirs # is the same shape for the directories it scans. Both name this disk's layout; # every other key in the file is a preference the user set. # The file has no extension, so `format` says which parser reads it. [[dotfiles.machine_lines]] file = "[appData]/Eagle/Settings" format = "json" match = { key_path = ["libraryHistory", "libraryDirs"] }