id = "autokey" name = "AutoKey" homepage = "https://github.com/autokey/autokey" description = "A desktop automation utility for Linux and X11: text expansion, phrases and scripts bound to hotkeys." # The app icon, from the project's repository. icon = "https://raw.githubusercontent.com/autokey/autokey/master/config/autokey.svg" executables = ["autokey", "autokey-gtk", "autokey-qt", "autokey-run"] platforms = ["linux"] [dotfiles] # lib/autokey/common.py: # XDG_CONFIG_HOME = os.environ.get('XDG_CONFIG_HOME', os.path.expanduser('~/.config')) # CONFIG_DIR = os.path.join(XDG_CONFIG_HOME, "autokey") # and lib/autokey/configmanager/configmanager_constants.py: # CONFIG_FILE = os.path.join(common.CONFIG_DIR, "autokey.json") # CONFIG_DEFAULT_FOLDER = os.path.join(common.CONFIG_DIR, "data") # The FAQ says the same in prose: "By default AutoKey stores your settings in # the ~/.config/autokey folder", and "Folders containing phrases and scripts # can be freely copied between machines" # (https://github.com/autokey/autokey/wiki/FAQ). # # [configHome] because the tool reads $XDG_CONFIG_HOME itself, per the line # above. autokey is X11-only, so there is no macOS or Windows spelling. paths = [ "[configHome]/autokey/autokey.json", "[configHome]/autokey/data/", ] # autokey.json~ is the backup the config manager writes before each save # (CONFIG_FILE_BACKUP in the same file); it is a copy, not a second config. exclude = [ "[configHome]/autokey/autokey.json~", ] # Phrases, scripts and hotkey settings. Nothing here is an account of # AutoKey's own; a user script that holds a password is the script's problem # and the consumer's content scan, not a file this entry can name. secret = [] # save_config() writes {"version", "userCodeDir", "settings", "folders"} # (configmanager.py). userCodeDir and every entry of folders are absolute # paths into this machine's disk — the phrase and script directories the user # added. They name where the user's own scripts live, which is the one thing # they would need back after a rebuild, so they are kept: backup. [[dotfiles.machine_lines]] file = "[configHome]/autokey/autokey.json" match = { key_path = ["userCodeDir", "folders"] } scope = "backup" # settings.pathLastOpen is split out of the rule above because it is not the # same kind of value: it is whatever directory the editor happened to open # last, rewritten as the user clicks around and of no use to anyone. It stays # local while the script directories are kept. [[dotfiles.machine_lines]] file = "[configHome]/autokey/autokey.json" match = { key_path = ["settings.pathLastOpen"] }