# 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