id = "skhd" name = "skhd" homepage = "https://github.com/koekeishiya/skhd" # The project's own README, first sentence. description = "A simple hotkey daemon for macOS that focuses on responsiveness and performance." executables = ["skhd"] platforms = ["macos"] [dotfiles] # `get_config_file` in the project's own src/skhd.c tries, in order: # # getenv("XDG_CONFIG_HOME") + "/skhd/skhdrc" # getenv("HOME") + "/.config/skhd/skhdrc" # getenv("HOME") + "/.skhdrc" (SKHD_CONFIG_FILE = ".skhdrc") # # with `skhd --config | -c ` overriding all three. The first two are one # location — skhd reads $XDG_CONFIG_HOME itself, so [configHome] is right # rather than a hard-coded ~/.config, and on macOS that root is ~/.config. The # third is joined to the home directory and stays literal. Both are listed # because both are shapes skhd has shipped and a machine has one or the other. paths = [ "[configHome]/skhd/skhdrc", "~/.skhdrc", ] # Nothing generated sits beside the config file: the README puts the pid file # at /tmp/skhd_$USER.pid and the service logs at /tmp/skhd_$USER.out.log and # /tmp/skhd_$USER.err.log, all outside the home directory. exclude = [] # A list of key combinations and the shell commands they run. No credential # file. secret = [] # No machine_lines: the keybindings are the whole reason to carry the file. A # command in an skhdrc line can name an absolute path, but it sits inside the # shell command after the `:` rather than in a key of its own, so a prefix rule # would have to hold back the whole binding. # The README: "skhd is able to hotload its config file, meaning that hotkeys # can be edited and updated live while skhd is running" — so rewriting the file # under a running daemon is what the daemon is built for, not a hazard. side_effect = false