HORST.CONF(5)

πŸ’– HORST.CONF πŸ’–

okay bestie, sit down, hydrate, because this is the manual page for horst.conf β€” the configuration file for horst(8) β€” and it's honestly not that deep, but we ARE going to get every single detail right. no skipping. periodt. πŸŽ€


✨ SYNOPSIS ✨

/etc/horst.conf

that's it. that's the path. the file lives at /etc/horst.conf and it's the default configuration file, and it's lowkey the main character of this whole page. πŸ¦‹


🌸 DESCRIPTION 🌸

so here's the vibe: the file /etc/horst.conf is the default configuration file. it's made up of zero or more lines (yes, zero, it can literally be empty, she's chill like that), and every single line has to be either EMPTY, a COMMENT, or an OPTION. and every line β€” every one β€” must end with a new line character ('\n', ASCII 0xa). no cap, that's mandatory. πŸ’…

EMPTY lines can have zero or more spaces in them (' ', ASCII 0x20). just vibing. blank. empty. iconic.

COMMENT lines have to start with a hash sign ('#', ASCII 0x23). that's how you talk to yourself in the config file, and honestly, valid.

OPTION lines have to look exactly like this:

option[=value]

which options exist and what values they'll accept is all spelled out below in the OPTIONS section, keep scrolling bestie. πŸ‘‘

⚠️ and listen β€” if a line does NOT match the format above, horst will exit with non-zero status. like, immediately. it's not playing. the vibe check is failed and the process is gone. πŸ’€

πŸ‘‘ OPTIONS πŸ‘‘

one bullet per option, all 22 of them, let's go, we're eating today:

  • channel=CHANNEL_NUMBER β€” sets the initial channel number that horst tunes the radio to when it starts up. the opening act. 🌈
  • channel_dwell=MILLISECONDS β€” sets how long horst scans each channel, but only when channel_scan=1 is defined. it's the dwell time, bestie, in milliseconds. ⏳
  • channel_scan β€” makes horst change/scan channels automatically, in ascending numeric order. no options, no value, just pure chaotic momentum. πŸ”₯
  • channel_scan_rounds=N β€” sets how many rounds horst scans the channel range, but only when channel_scan=1 is defined. when N is reached, horst exits with zero status (a clean exit, a graceful goodbye 🫢). and if N is a negative number, horst scans the channel range infinitely. forever. she's committed. 😭
  • channel_upper=CHANNEL_NUMBER β€” sets the highest channel horst will change to when channel_scan=1 is defined. and when CHANNEL_NUMBER is reached, the next channel goes right back to 1. it's a loop, it's a cycle, it's giving circle of life. 🎠
  • client=SERVER_ADDRESS β€” runs horst in client mode and connects to a server that's running at SERVER_ADDRESS. you're the client, they're the server, it's a whole relationship. πŸ’ž
  • control_pipe=FILEPATH β€” accepts control commands on a named pipe. very FILEPATH, very named pipe, very slay. πŸŽ€
  • display_interval=MILLISECONDS β€” sets the refresh interval of the user interface display. and pro tip (from the manpage itself, not from me, i don't invent facts): this option can be used to reduce CPU load by using longer intervals. your laptop's fans will thank you. 🧚
  • display_view=history|essid|statistics|spectrum β€” sets the initial display view. pick your fave: history, essid, statistics, or spectrum. choose your own adventure. 🌟
  • filter_bssid=BSSID[,BSSID]... β€” ignores all packets except the packets belonging to BSSID. you can list more than one, comma-separated, the [,BSSID]... is right there. 🚫
  • filter_mac=MAC_ADDRESS[,MAC_ADDRESS]... β€” ignores all packets except packets originating from MAC_ADDRESS. again with the comma-separated party. πŸ’Œ
  • filter_mode=MODE[,MODE]... β€” ignores all packets/nodes except packets/nodes of mode MODE. plural-friendly, comma it up. πŸ¦‹
  • filter_packet=PACKET_TYPE[,PACKET_TYPE]... β€” ignores all packets except packets of type PACKET_TYPE. same energy, different filter. ✨
  • interface=INTERFACE_NAME β€” sets the wireless interface horst uses to monitor the radio spectrum. and here's the tea: if the interface INTERFACE_NAME is not already in monitor mode at startup, horst first tries to put the interface into monitor mode, and if that fails, a temporary virtual monitor interface is added and used instead. the name of that temporary virtual monitor interface is in the form horst[0-9]+. and the virtual interface that horst created is deleted at exit. so tidy. so considerate. πŸ‘‘
  • add_monitor β€” always add a virtual monitor interface. don't even try to set the existing interface to monitor mode. no attempts, no games, just do it. πŸ’…
  • mac_names=FILEPATH β€” the file containing a mapping from MAC addresses to host names. this file can either be a dhcp.leases file from dnsmasq, or it can contain mappings in the form "MAC<space>name" (for example: "00:01:02:03:04:05 test"), line by line. two formats, both valid, pick your fighter. πŸ“
  • node_timeout=SECONDS β€” sets the time after which nodes will be removed if no frames have been received from them. ghosted = removed. πŸ’€
  • outfile=FILEPATH β€” writes information about each received packet to FILEPATH. every packet. all of them. the receipts are kept. 🧾
  • port=PORT_NUMBER β€” sets the port horst listens to when run in server mode, or the port horst connects to when run in client mode. one option, two moods. 🌈
  • quiet β€” makes horst less verbose and suppresses the user interface. she's quiet. she's mysterious. she's not talking to you. πŸ™ˆ
  • receive_buffer=BYTES β€” sets the size of the receive buffer. and per the manpage: this option can be used to tune memory consumption and reduce packet loss under high load. big brain energy. 🧠
  • server β€” runs horst in server mode. the counterpart to client. the other half of the duo. πŸ‘―

πŸ”— SEE ALSO πŸ”—

  • horst(8) β€” go read it, bestie, this whole config file exists to serve her. 🫢

and that's the whole page!! every option, every default, every format, nothing dropped, nothing invented, all facts intact. i love that for us. πŸ’œ

this was the File Formats Manual page for HORST.CONF(5), dated September 29, 2016 β€” so yeah she's an older queen but she still ate. mwah. πŸ’…βœ¨