Skip to content

File Transfer ​

File transfer configuration options.

enabled ​

Control if file transfers are shown in the UI (e.g. file transfer requests are shown, file transfer options are presented in menus, etc).

toml
# Type: boolean
# Values: true, false
# Default: true

[file_transfer]
enabled = true

save_directory ​

Default directory to save files in. If not set, user will see a file dialog. [1] [2]

toml
# Type: string
# Values: any string
# Default: not set

[file_transfer]
save_directory = "/Users/halloy/Downloads"

💡 Tip

Flatpak users will need to grant access to the specified save_directory path:

bash
flatpak override --user --filesystem=~/Downloads org.squidowl.halloy

For more Flatpak tips, see this guide.

passive ​

If true, act as the "client" for the transfer. Requires the remote user act as the server.

toml
# Type: boolean
# Values: true, false
# Default: true

[file_transfer]
passive = true

timeout ​

Time (in seconds) to wait before timing out a transfer waiting to be accepted.

toml
# Type: integer
# Values: any non-negative integer
# Default: 300

[file_transfer]
timeout = 300

send_completion_message ​

If true, send a PRIVMSG to the remote user when a file transfer completes (including the filename and SHA-256 checksum).

toml
# Type: boolean
# Values: true, false
# Default: true

[file_transfer]
send_completion_message = true

auto_accept ​

Configuration for automatically accepting incoming file transfers.

enabled ​

If true, automatically accept incoming file transfers. Requires save_directory to be set.

toml
# Type: boolean
# Values: true, false
# Default: false

[file_transfer.auto_accept]
enabled = false

nicks ​

Automatically accept incoming file transfers from these nicks. Note auto_accept has to be enabled.

toml
# Type: array of strings
# Values: array of any strings
# Default: []

[file_transfer.auto_accept]
nicks = ["nick1", "nick2"]

masks ​

Automatically accept incoming file transfers matching these masks. Matches are made against the full nickname (i.e. nickname, username, and hostname in the format nickname!username@hostname). Note auto_accept has to be enabled.

💡 Tip

Use toml multi-line literal strings '''\bfoo'd\b''' when writing a regex. This allows you to write the regex without escaping. You can also use a literal string '\bfoo\b', but then you can't use ' inside the string.

Without literal strings, you'd have to write the above as "\\bfoo'd\\b"

toml
# Type: array of strings
# Values: array of any strings
# Default: []

[file_transfer.auto_accept]
masks = [
    '''nick!ident@example\.com''',
    '''.*@foobar\.com'''
]

server ​

This section is required if passive is true. One side of the file transfer must operate as the "server", who the other user connects with to establish a connection.

public_address ​

Address advertised to the remote user to connect to.

toml
# Type: string
# Values: any string
# Default: not set

[file_transfer.server]
public_address = "<some ip>"

bind_address ​

Address to bind to when accepting connections.

toml
# Type: string
# Values: any string
# Default: not set

[file_transfer.server]
bind_address = "<some ip>"

bind_port_first ​

First port in port range to bind to.

toml
# Type: integer
# Values: any non-negative integer
# Default: not set

[file_transfer.server]
bind_port_first = 1024

bind_port_last ​

Last port in port range to bind to.

toml
# Type: integer
# Values: any non-negative integer
# Default: not set

[file_transfer.server]
bind_port_last = 5000

  1. Windows path strings should usually be specified as literal strings (e.g. 'C:\Users\Default\'), otherwise directory separators will need to be escaped (e.g. "C:\\Users\\Default\\"). ↩︎

  2. Relative paths are prefixed with the config directory (i.e. if you have your config.toml in /home/me/.config/halloy/config.toml, path .passwd/libera will be converted to /home/me/.config/halloy/.passwd/libera). ↩︎