id = "hexchat" name = "HexChat" homepage = "https://hexchat.github.io" description = "GTK+ IRC client." # The HexChat application icon, from the project's repository. icon = "https://raw.githubusercontent.com/hexchat/hexchat/master/data/icons/hexchat.svg" executables = ["hexchat"] platforms = ["linux", "windows"] [dotfiles] # https://hexchat.readthedocs.io/en/latest/settings.html names the config # directory: "~/.config/hexchat" on Unix and "%APPDATA%\HexChat" on Windows. # HexChat is a GLib program and takes that directory from the user config dir, # which is $XDG_CONFIG_HOME on Unix and %APPDATA% on Windows, so one # [configHome] root stands for both spellings — the documentation capitalises # the Windows one, which resolves to the same directory on that platform's # case-insensitive filesystem. The Flatpak and Snap builds relocate the whole # tree under their own sandbox roots (~/.var/app/io.github.Hexchat/config and # ~/snap/hexchat/current/.config), which no consumer can address from here. # # There are no macOS builds: the same page lists Windows, Unix, Flatpak and Snap # and nothing else, and Homebrew has no hexchat cask. paths = ["[configHome]/hexchat/"] # https://hexchat.readthedocs.io/en/latest/faq.html describes "logs/" as the # chat logs, written per network and channel under a configurable strftime # pattern — a transcript of this machine's conversations, not configuration. exclude = [ "[configHome]/hexchat/logs/", ] # Same FAQ: "certs/" is the directory for the client certificates used for # authentication. A client certificate is the login itself. secret = ["[configHome]/hexchat/certs/"] # src/common/servlist.c writes the network list one `K=value` line at a time and # reads it back through a switch on the letter. `case 'P'` is net->pass — # `fprintf (fp, "P=%s\n", net->pass)` — the single password field the network # dialog fills, used for a server password, a SASL password or a NickServ # password depending on the login method in `L=`. 'A' and 'B' are the separate # SASL and NickServ passwords older releases wrote; the reader still accepts # them for migration, so a config file written by an older HexChat still carries # them and all three are listed. [[dotfiles.secret_paths]] file = "[configHome]/hexchat/servlist.conf" match = { prefix = ["P=", "A=", "B="] } # No machine_lines: the network list, the text events, the colours and the # key bindings in this directory are what a user wants on the next machine.