# Default config for tofi
#
# Copy this file to ~/.config/tofi/config and get customising!
#
# A complete reference of available options can be found in `man 5 tofi`.

#
### Fonts
#
	# Font to use, either a path to a font file or a name.
	#
	# If a path is given, tofi will startup much quicker, but any
	# characters not in the chosen font will fail to render.
	#
	# Otherwise, fonts are interpreted in Pango format.
	font = "Sans"

	# Point size of text.
	font-size = 24

	# Comma separated list of OpenType font feature settings to apply,
	# if supported by the chosen font. The format is similar to the CSS
	# "font-feature-settings" property.
	#
	# Examples:
	#
	# font-features = "smcp, c2sc" (all small caps)
	# font-features = "liga 0" (disable ligatures)
	font-features = ""

	# Comma separated list of OpenType font variation settings to apply
	# to variable fonts. The format is similar to the CSS
	# "font-variation-settings" property.
	#
	# Examples:
	#
	# font-variations = "wght 900" (Extra bold)
	# font-variations = "wdth 25, slnt -10" (Narrow and slanted)
	font-variations = ""

	# Perform font hinting. Only applies when a path to a font has been
	# specified via `font`. Disabling font hinting speeds up text
	# rendering appreciably, but will likely look poor at small font pixel
	# sizes.
	hint-font = true

#
### Text theming
#
	# Default text color
	#
	# All text defaults to this color if not otherwise specified.
	text-color = #FFFFFF

	# All pieces of text have the same theming attributes available:
	#
	# *-color
	#     Foreground color
	#
	# *-background
	#     Background color
	#
	# *-background-padding
	#     Background padding in pixels (comma-delimited, CSS-style list).
	#     See "DIRECTIONAL VALUES" under `man 5 tofi` for more info.
	#
	# *-background-corner-radius
	#     Radius of background box corners in pixels

	# Prompt text theme
	# prompt-color = #FFFFFF
	prompt-background = #00000000
	prompt-background-padding = 0
	prompt-background-corner-radius = 0

	# Placeholder text theme
	placeholder-color = #FFFFFFA8
	placeholder-background = #00000000
	placeholder-background-padding = 0
	placeholder-background-corner-radius = 0

	# Input text theme
	# input-color = #FFFFFF
	input-background = #00000000
	input-background-padding = 0
	input-background-corner-radius = 0

	# Default result text theme
	# default-result-color = #FFFFFF
	default-result-background = #00000000
	default-result-background-padding = 0
	default-result-background-corner-radius = 0

	# Alternate (even-numbered) result text theme
	#
	# If unspecified, these all default to the corresponding
	# default-result-* attribute.
	#
	# alternate-result-color = #FFFFFF
	# alternate-result-background = #00000000
	# alternate-result-background-padding = 0
	# alternate-result-background-corner-radius = 0

	# Selection text
	selection-color = #F92672
	selection-background = #00000000
	selection-background-padding = 0
	selection-background-corner-radius = 0

	# Matching portion of selection text
	selection-match-color = #00000000


#
### Text cursor theme
#
	# Style of the optional text cursor.
	#
	# Supported values: bar, block, underscore
	text-cursor-style = bar

	# Color of the text cursor
	#
	# If unspecified, defaults to the same as input-color
	# text-cursor-color = #FFFFFF

	# Color of text behind the text cursor when text-cursor-style = block
	#
	# If unspecified, defaults to the same as background-color
	# text-cursor-background = #000000

	# Corner radius of the text cursor
	text-cursor-corner-radius = 0

	# Thickness of the bar and underscore text cursors.
	#
	# If unspecified, defaults to a font-dependent value when
	# text-cursor-style = underscore, or to 2 otherwise.
	# text-cursor-thickness = 2

#
### Text layout
#
	# Prompt to display.
	prompt-text = "run: "

	# Extra horizontal padding between prompt and input.
	prompt-padding = 0

	# Placeholder input text.
	placeholder-text = ""

	# Maximum number of results to display.
	# If 0, tofi will draw as many results as it can fit in the window.
	num-results = 0

	# Spacing between results in pixels. Can be negative.
	result-spacing = 0

	# List results horizontally.
	horizontal = false

	# Minimum width of input in horizontal mode.
	min-input-width = 0

#
### Window theming
#
	# Width and height of the window. Can be pixels or a percentage.
	width = 640
	height = 480

	# Window background color
	background-color = #1B1D1E

	# Width of the border outlines in pixels.
	outline-width = 4

	# Border outline color
	outline-color = #080800

	# Width of the border in pixels.
	border-width = 12

	# Border color
	border-color = #F92672

	# Radius of window corners in pixels.
	corner-radius = 0

	# Padding between borders and text. Can be pixels or a percentage.
	padding-top = 8
	padding-bottom = 8
	padding-left = 8
	padding-right = 8

	# Whether to clip text drawing to be within the specified padding. This
	# is mostly important for allowing text to be inset from the border,
	# while still allowing text backgrounds to reach right to the edge.
	clip-to-padding = true

	# Whether to scale the window by the output's scale factor.
	scale = true

#
### Window positioning
#
	# The name of the output to appear on. An empty string will use the
	# default output chosen by the compositor.
	output = ""

	# Location on screen to anchor the window to.
	#
	# Supported values: top-left, top, top-right, right, bottom-right,
	# bottom, bottom-left, left, center.
	anchor = center

	# Set the size of the exclusive zone.
	#
	# A value of -1 means ignore exclusive zones completely.
	# A value of 0 will move tofi out of the way of other windows' zones.
	# A value greater than 0 will set that much space as an exclusive zone.
	#
	# Values greater than 0 are only meaningful when tofi is anchored to a
	# single edge.
	exclusive-zone = -1

	# Window offset from edge of screen. Only has an effect when anchored
	# to the relevant edge. Can be pixels or a percentage.
	margin-top = 0
	margin-bottom = 0
	margin-left = 0
	margin-right = 0

#
### Behaviour
#
	# Hide the mouse cursor.
	hide-cursor = true

	# Show a text cursor in the input field.
	text-cursor = true

	# Sort results by number of usages in run and drun modes.
	history = true

	# Specify an alternate file to read and store history information
	# from / to. This shouldn't normally be needed, and is intended to
	# facilitate the creation of custom modes.
	# history-file = /path/to/histfile

	# Select the matching algorithm used. If normal, substring matching is
	# used, weighted to favour matches closer to the beginning of the
	# string. If prefix, only substrings at the beginning of the string are
	# matched. If fuzzy, searching is performed via a simple fuzzy matching
	# algorithm.
	#
	# Supported values: normal, prefix, fuzzy
	matching-algorithm = normal

	# If true, require a match to allow a selection to be made. If false,
	# making a selection with no matches will print input to stdout.
	# In drun mode, this is always true.
	require-match = true

	# If true, automatically accept a result if it is the only one
	# remaining. If there's only one result on startup, window creation is
	# skipped altogether.
	auto-accept-single = false

	# If true, typed input will be hidden, and what is displayed (if
	# anything) is determined by the hidden-character option.
	hide-input = false

	# Replace displayed input characters with a character. If the empty
	# string is given, input will be completely hidden.
	# This option only has an effect when hide-input is set to true.
	hidden-character = "*"

	# If true, use physical keys for shortcuts, regardless of the current
	# keyboard layout. If false, use the current layout's keys.
	physical-keybindings = true

	# Instead of printing the selected entry, print the 1-based index of
	# the selection. This option has no effect in run or drun mode. If
	# require-match is set to false, non-matching input will still result
	# in the input being printed.
	print-index = false

	# If true, directly launch applications on selection when in drun mode.
	# Otherwise, just print the command line to stdout.
	drun-launch = false

	# The terminal to run terminal programs in when in drun mode.
	# This option has no effect if drun-launch is set to true.
	# Defaults to the value of the TERMINAL environment variable.
	terminal = foot

	# Delay keyboard initialisation until after the first draw to screen.
	# This option is experimental, and will cause tofi to miss keypresses
	# for a short time after launch. The only reason to use this option is
	# performance on slow systems.
	late-keyboard-init = false

	# If true, allow multiple simultaneous processes.
	# If false, create a lock file on startup to prevent multiple instances
	# from running simultaneously.
	multi-instance = false

	# Assume input is plain ASCII, and disable some Unicode handling
	# functions. This is faster, but means e.g. a search for "e" will not
	# match "é".
	ascii-input = false

#
### Inclusion
#
	# Configs can be split between multiple files, and then included
	# within each other.
	# include = /path/to/config
