.\" Generated by scdoc 1.11.3
.\" Complete documentation for this program is not available as a GNU info page
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.nh
.ad l
.\" Begin generated content:
.TH "fnott" "5" "2025-07-16"
.PP
.SH NAME
fnott - configuration file
.PP
.SH DESCRIPTION
.PP
\fBfnott\fR uses the standard \fIunix configuration format\fR, with section
based key/value pairs.\& The default (global) section is unnamed
(i.\&e.\& not prefixed with a \fI[section]\fR).\& However it can also be
explicitly named \fI[main]\fR, say if it needs to be reopened after any
of the other sections.\&
.PP
fnott will search for a configuration file in the following locations,
in this order:
.PP
.PD 0
.IP \(bu 4
\fBXDG_CONFIG_HOME/fnott/fnott.\&ini\fR (defaulting to
\fB~/.\&config/fnott/fnott.\&ini\fR if unset)
.IP \(bu 4
\fBXDG_CONFIG_DIRS/fnott/fnott.\&ini\fR (defaulting to
\fB/etc/xdg/fnott/fnott.\&ini\fR if unset)
.PD
.PP
.SH SECTION: default
.PP
.SS Global options
.PP
\fBoutput\fR
.RS 4
The output to display notifications on.\& If left unspecified, the
compositor will choose one for us.\&
.PP
Note that if you \fBdo not\fR specify an output, and the output chosen
by the compositor is scaled, then each new notification will flash
a low-res frame before re-rendering with the correct scale
factor.\& This is because fnott has no way of knowing what the scale
factor is until \fBafter\fR the notification has been mapped
(i.\&e.\& shown).\&
.PP
Default: \fIunspecified\fR.\&
.PP
In Sway, you can use \fBswaymsg -t get_outputs\fR to get a list of
available outputs.\&
.PP
.RE
\fBmin-width\fR
.RS 4
Minimum notification width, in pixels.\& Default: \fI0\fR.\&
.PP
.RE
\fBmax-width\fR
.RS 4
Maximum notification width, in pixels.\& 0 means unlimited.\& Note
that fnott will automatically word-wrap the notification text if
set to a non-zero value.\& Default: \fI0\fR.\&
.PP
.RE
\fBmax-height\fR
.RS 4
Maximum notification height, in pixels.\& 0 means
unlimited.\& Default: \fI0\fR.\&
.PP
.RE
\fBicon-theme\fR
.RS 4
Icon theme to use when a notification has requested an
non-embedded icon.\& Default: \fIdefault\fR.\&
.PP
.RE
\fBmax-icon-size\fR
.RS 4
Maximum icon size, in pixels.\& Icons larger than this will be
scaled down.\& A value of 0 disables icons.\& Default: \fI32\fR.\&
.PP
.RE
\fBstacking-order\fR
.RS 4
How to stack multiple notifications.\&
.PP
.RS 4
.PD 0
.IP \(bu 4
\fBbottom-up\fR : oldest, highest priority furthest away from
the anchor point.\&
.IP \(bu 4
\fBtop-down\fR: oldest, highest priority at the anchor point.\&
.PD
.PP
.RE
Thus, if the notifications are anchored at the top, \fBbottom-up\fR
will have the most recent notification in the upper corner, while
the oldest notification is in the bottom of the stack.\&
.PP
Default: \fIbottom-up\fR.\&
.PP
.RE
\fBanchor\fR
.RS 4
Where notifications are positioned: \fBtop-left\fR, \fBtop-right\fR,
\fBbottom-left\fR, \fBbottom-right\fR or \fBcenter\fR.\& Default: \fItop-right\fR.\&
.PP
.RE
\fBedge-margin-vertical\fR
.RS 4
Vertical margin, in pixels, between the screen edge (top or
bottom, depending on anchor pointer) and notifications.\& Default:
\fI10\fR.\&
.PP
.RE
\fBedge-margin-horizontal\fR
.RS 4
Horizontal margin, in pixels, between the screen edge (left or
right, depending on anchor pointer) and notifications.\& Default:
\fI10\fR.\&
.PP
.RE
\fBnotification-margin\fR
.RS 4
Margin between notifications.\& Default: \fI10\fR.\&
.PP
.RE
\fBselection-helper\fR
.RS 4
Command (and optionally arguments) to execute to display actions
and let the user select an action to run.\&
.PP
The utility should accept (action) entries to display on stdin
(newline separated), and write the selected entry on
stdout.\&
.PP
It is strongly recommended that you enable
\fBselection-helper-uses-null-separator\fR (see below), if your helper
of choice supports it.\&
.PP
Default: \fIdmenu\fR.\&
.PP
.RE
\fBselection-helper-uses-null-separator\fR
.RS 4
Boolean.\& When enabled, the action strings passed to the selection
helper will be NULL separated, instead of newline
separated.\&
.PP
Note that you may also have to adjust \fBselection-helper\fR, to
ensure the selection helper parses the action strings
correctly.\& For example, instead of \fBfuzzel --dmenu\fR, you would
have to use \fBfuzzel --dmenu0\fR.\&
.PP
Default: \fIno\fR.\&
.PP
.RE
\fBplay-sound\fR
.RS 4
Command to execute to play notification sounds.\& \fI${filename}\fR will
be expanded to the path to the audio file to play.\& Default: \fIaplay
${filename}\fR.\&
.PP
.RE
\fBscaling-filter\fR
.PP
.RS 4
Which scaling filter to use when scaling non-SVG notification
images.\&
.PP
Possible values are:
.PD 0
.IP \(bu 4
none
.IP \(bu 4
nearest
.IP \(bu 4
bilinear
.IP \(bu 4
cubic
.IP \(bu 4
lanczos3
.PD
.PP
\fBnone\fR is the fastest, but also looks the worst.\& \fBlanczos3\fR
produces the best result, but is also, by far, the slowest option.\&
.PP
Default: \fIlanczos3\fR
.PP
.RE
.SS Per-urgency default options
.PP
These options can also be specified in an \fIurgency\fR section, in which
case they override the values specified in the default section.\&
.PP
\fBlayer\fR
.RS 4
Layer on which notifications will appear: \fBbackground\fR, \fBbottom\fR,
\fBtop\fR or \fBoverlay\fR.\& Default: \fItop\fR.\&
.PP
.RE
\fBbackground\fR
.RS 4
Background color of the notification, in RGBA format.\& Default:
\fI3f5f3fff\fR.\&
.PP
.RE
\fBborder-color\fR
.RS 4
Border color of the notification, in RGBA format.\& Default:
\fI909090ff\fR.\&
.PP
.RE
\fBborder-radius\fR
.RS 4
Corner radius on the border in pixels.\& Default: \fI0\fR.\&
.PP
.RE
\fBborder-size\fR
.RS 4
Border size, in pixels.\& Default: \fI1\fR.\&
.PP
.RE
\fBpadding-vertical\fR
.RS 4
Vertical padding, in pixels, between the notification edge (top or
bottom) and notification text.\& Default: \fI20\fR.\&
.PP
.RE
\fBpadding-horizontal\fR
.RS 4
Horizontal padding, in pixels, between the notification edge (left
or right) and notification text.\& Default: \fI20\fR.\&
.PP
.RE
\fBdpi-aware\fR
.RS 4
Boolean.\&
.PP
When set to \fByes\fR, fonts are sized using the monitor'\&s DPI, making
a font of a given size have the same physical size, regardless of
monitor.\&
.PP
In this mode, the monitor'\&s scaling factor is ignored; doubling
the scaling factor will \fBnot\fR double the font size.\&
.PP
When set to \fBno\fR, the monitor'\&s DPI is ignored.\& The font is
instead sized using the monitor'\&s scaling factor; doubling the
scaling factor \fBdoes\fR double the font size.\&
.PP
Note that this option typically does not work with bitmap fonts,
which only contains a pre-defined set of sizes, and cannot be
dynamically scaled.\& Whichever size (of the available ones) that
best matches the DPI or scaling factor, will be used.\&
.PP
Also note that if the font size has been specified in pixels
(\fB:pixelsize=\fR\fIN\fR, instead of \fB:size=\fR\fIN\fR), DPI scaling
(\fBdpi-aware=yes\fR) will have no effect (the specified pixel size
will be used as is).\& But, if the monitor'\&s scaling factor is used
to size the font (\fBdpi-aware=no\fR), the font'\&s pixel size will be
multiplied with the scaling factor.\&
.PP
Default: \fIno\fR
.PP
.RE
\fBtitle-font\fR
.RS 4
Font to use for the application title, in fontconfig format (see
\fBFONT FORMAT\fR).\& Default: \fIsans serif\fR.\&
.PP
.RE
\fBtitle-color\fR
.RS 4
Text color to use for the application title, in RGBA
format.\& Default: \fIffffffff\fR.\&
.PP
.RE
\fBtitle-format\fR
.RS 4
Template string for the title portion of the notification (see
\fBFORMAT STRINGS\fR).\& Default: \fI%a%A\fR.\&
.PP
.RE
\fBsummary-font\fR
.RS 4
Font to use for the summary, in fontconfig format (see \fBFONT
FORMAT\fR).\& Default: \fIsans serif\fR.\&
.PP
.RE
\fBsummary-color\fR
.RS 4
Text color to use for the summary, in RGBA format.\& Default:
\fIffffffff\fR.\&
.PP
.RE
\fBsummary-format\fR
.RS 4
Template string for the summary portion of the notification (see
\fBFORMAT STRINGS\fR).\& Default: \fI%s\en\fR.\&
.PP
.RE
\fBbody-font\fR
.RS 4
Font to use for the text body, in fontconfig format (see \fBFONT
FORMAT\fR).\& Default: \fIsans serif\fR.\&
.PP
.RE
\fBbody-color\fR
.RS 4
Text color to use for the text body, in RGBA format.\& Default:
\fIffffffff\fR.\&
.PP
.RE
\fBbody-format\fR
.RS 4
Template string for the body portion of the notification (see
\fBFORMAT STRINGS\fR).\& Default: \fI%b\fR.\&
.PP
.RE
\fBprogress-bar-height\fR
.RS 4
Height, in pixels, of progress bars (rendered when a notification
has an \fIint:value\fR hint).\& Default: \fI20\fR.\&
.PP
.RE
\fBprogress-color\fR
.RS 4
Color, in RGBA format, of progress indicator.\& Default: \fIffffffff\fR.\&
.PP
.RE
\fBprogress-style\fR
.RS 4
Defines the style of the progress indicator in notifications.\&
.PP
Possible values:
.PD 0
.IP \(bu 4
\fBbar\fR: Displays a separate progress bar.\&
.IP \(bu 4
\fBbackground\fR: Fills the notification background with the progress color.\&
.PD
.PP
Default: \fIbar\fR.\&
.PP
.RE
\fBmax-timeout\fR
.RS 4
Time limit, in seconds, before notifications are automatically
dismissed.\& Applications can provide their own timeout when they
create a notification.\& This option can be used to limit that
timeout.\& A value of 0 disables the limit.\& Default: \fI0\fR.\&
.PP
.RE
\fBdefault-timeout\fR
.RS 4
Time, in seconds, before notifications are automatically dismissed
if the notifying application does not specify a timeout.\& A value
of 0 disables the timeout.\& I.\&e.\& if the application does not
provide a timeout, the notification is never automatically
dismissed (unless \fBmax-timeout\fR has been set).\& Default: \fI0\fR.\&
.PP
.RE
\fBidle-timeout\fR
.RS 4
Time, in seconds, that you must be idle to prevent any
notification from being dismissed.\& A value of 0 disables
the timeout.\& Default: \fI0\fR.\&
.PP
.RE
\fBsound-file\fR
.RS 4
Absolute path to audio file to play when a notification is
received.\& If unset, no sound is played.\& Default: \fIunset\fR.\&
.PP
.RE
\fBicon\fR
.RS 4
Icon to use when none is provided by the notifications
themselves.\& Can be either an absolute path, or a name (without
extension).\&
.PP
In the latter case, it will be searched for in the selected icon
theme, using the fallback rules defined by the XDG icon theme
specification.\&
.PP
Default: \fIunset\fR.\&
.PP
.RE
.SH SECTION: low
.PP
This section allows you to override the options listed under
\fBper-urgency default options\fR for \fIlow\fR priority notifications.\&
.PP
By default, the following options are already overridden:
.PP
.PD 0
.IP \(bu 4
\fBbackground\fR: \fI2b2b2bff\fR
.IP \(bu 4
\fBtitle-color\fR \fI888888ff\fR
.IP \(bu 4
\fBsummary-color\fR: \fI888888ff\fR
.IP \(bu 4
\fBbody-color\fR: \fI888888ff\fR
.PD
.PP
.SH SECTION: normal
.PP
This section allows you to override the options listed under
\fBper-urgency default options\fR for \fInormal\fR priority notifications.\&
.PP
By default, the following options are already overridden: \fInone\fR.\&
.PP
.SH SECTION: critical
.PP
This section allows you to override the options listed under
\fBper-urgency default options\fR for \fIcritical\fR priority notifications.\&
.PP
By default, the following options are already overridden:
.PP
.PD 0
.IP \(bu 4
\fBbackground\fR: \fI6c3333ff\fR
.PD
.PP
.PP
.SH FONT FORMAT
.PP
The font is specified in FontConfig syntax.\& That is, a colon-separated
list of font name and font options.\&
.PP
\fIExamples\fR:
.PD 0
.IP \(bu 4
Dina:weight=bold:slant=italic
.IP \(bu 4
Courier New:size=12
.PD
.PP
.SH FORMAT STRINGS
.PP
The \fBtitle-format\fR, \fBsummary-format\fR and \fBbody-format\fR options allow
you to configure what to display for the corresponding portion of the
notification.\&
.PP
They are strings with placeholders that are expanded with attributes
from the notification:
.PP
.PD 0
.IP \(bu 4
\fB%a\fR application name
.IP \(bu 4
\fB%s\fR notification summary
.IP \(bu 4
\fB%b\fR notification body text
.IP \(bu 4
\fB%A\fR action indicator ('\&*'\& if actions are present, empty string otherwise)
.IP \(bu 4
\fB%%\fR a literal '\&%'\&
.IP \(bu 4
\fB\en\fR a literal newline
.PD
.PP
Also supported are the following markup tags:
.PP
.PD 0
.IP \(bu 4
\fB\fR bold
.IP \(bu 4
\fB\fR italic
.IP \(bu 4
\fB\fR underline
.PD
.PP
.PP
.SH SEE ALSO
.PP
\fBfnott\fR(1)