Skip to content

Configuration

Quill can be customized via a configuration file written in TOML. The configuration file specified by the -c/--cfg command line argument will be used. If this argument is not provided, a configuration file will automatically be loaded from your user's application settings, if one exists.

Quill uses the dirs crate to access your application settings, which follows the expected conventions in each operating system.

Operating system Location
macOS $HOME/Library/Application Support/quill/config.toml
Linux $HOME/.config/quill/config.toml
Windows C:\\Users\\<User>\\AppData\\Roaming\\quill\\config.toml

Accounts

An Account is a company or organization you receive statements from. This could be your bank, a mobile phone provider, or your municipal government. All Accounts are listed under an [Accounts] table, and each Account is specified in its own sub-table.

Example:

[Accounts]
[Accounts.Chequing]
name =  "Chequing"
institution = "Bank"
statement_fmt = "%Y-%m-%d.pdf"
dir = "~/Documents/expenses/bank-chequing"
statement_period = [15, "Day", 1, "Month"] # (2)!
first_date = 2020-09-18

[Accounts.Savings]
name =  "Savings"
institution = "Bank"
statement_fmt = "%Y-%m-%d_quarter.pdf"
dir = "~/Documents/expenses/bank-savings"
statement_period = [15, "Day", 3, "Month"]
first_date = 2020-09-18

[Accounts.Phone]
name =  "Phone"
institution = "Phone Provider"
statement_fmt = "%Y-%m-%d.csv" # (1)!
dir = "~/Documents/expenses/phone-bill"
statement_period = [-1, "Day", 4, "Week"] # (3)!
first_date = 2020-09-17
  1. Any file extension is allowed. Some companies offer different file formats, not just a PDF summary of your bill.
  2. This array can be read as "the m-th X every n-th Y". In this case, it's the "15th day of every month".
  3. Negative numbers are allowed in the first element and count backwards. In this case, it's the "last day of every 4 weeks".

In each Account, the elements are:

  • name: The name of the account
  • institution: The name of the organization or institution the account is held with
  • statement_fmt: The statement file name format. This string makes use of the strftime/strptime specifiers, such as %Y for year. See the chrono docs for details.
  • dir: The directory containing the statements from this account.
  • statement_period: An array of four elements. This should be read as "the m-th X every n-th Y". As shown in the example above, [15, "Day", 1, "Month"] translates to "the 15th day of every month". Negative numbers in the first element are allowed and are used to count backwards from the end of a time interval. See the kronos docs for acceptable strings in the 2nd and 4th positions.
  • first_date: The date of the first statement. No statements before this date will be expected.

Ignored statements

If there are specific statements for an account that you'd like to skip, you can list the statements in a .quillignore.toml file in the Account's directory. This is helpful if there was an error in producing the statement or a statement was skipped.

Example:

If the Account has its statements in the directory dir, then the file dir/.quillignore.toml will look like this to ignore statements for 2021-07-01 and 2021-08-01:

dates = [
    2021-07-01,
    2021-08-01,
]

Ignored statements are highlighted in grey in the Log tab of the TUI.