Sioyek uses four config files:
keys.configwhich stores the default keybindings
keys_user.configwhich stores the modified keybindings
prefs.configwhich stores the default preferences
prefs_user.configwhich stores the modified preferences
The location of these files are OS-dependent. You can open these files by executing
prefs_user commands using the sioyek command line (see Command Menu).
Lines starting with
#are comments and are ignored
command k (command is executed when k is pressed) command <C-k> (command is executed when k is pressed while holding control) command <S-k> (command is executed when k is pressed while holding shift) command <A-k> (command is executed when k is pressed while holding alt) command <S-+> (command is executed when = is pressed while holding shift. Note that <S-=> would not work because of a bug in the command system so when prefixing non-ascii keys with shift, you have to specify the shift modified key in addition to the shift modifier) command <C-S-k> (command is executed when k is pressed while holding control and shift) command gg (command is executed when g is pressed twice) command gt (command is executed when g is pressed and then t is pressed) command g<C-n><S-d>t (command is executed when g is pressed and then n is pressed while holding\ control and then d is pressed while holding shift and then t is pressed)
Specifies the background color of the app (this is different from the background color of PDF page which is configured using custom_background_color and custom_text_color, this color is only shown when the displayed page is smaller than the srceen). The syntax to set colors is:
background_color r g b
where r,g and b red, green and blue values between 0 and 1. For example in order to set the background color to gray we can add the following to our
background_color 0.5 0.5 0.5
Specifies the background color when dark mode is enabled.
White text in dark mode can be annoying for the eyes. This option allows us to dim the white colors when dark mode is enabled. Allowed values are between 0.0 and 1.0.
Highlight color when text is selected using mouse.
This is the color of the transparent visual mark explained in Visual Mark (this feature originally had an entirely different functionality which is why it is called vertical line even though there is nothing vertical about it!).
Allowed values are RGBA colors between 0.0 and 1.0. For example, to set the color to a transparent red we add the following to our
visual_mark_color 1.0 0.0 0.0 0.1
If it is 1, we highlight a rectangle around the current line in visual mark mode. Otherwise, we highlight below the current line.
Additional padding for ruler. Makes the ruler a little larger and more readable.
ruler_padding 1.0 ruler_x_padding 5.0
When we go to the next page while in visual mark mode, this setting determines which location of screen the new line should be located at. The values are between -1 and 1. With 0 being the middle of the screen and 1 and -1 being the top and bottom of the screen respectively.
Determines at which point in screen we move to the next page. Acceptable range is between 0 and
The color used to highlight search results.
Highlight color for synctex forward search highlights.
The web addresses used for performing
external_search command. (see External Search). Example:
The letter corresponding to
search_url_* configs to use when middle clicking/shift-middle clicking on text.
This causes the search engine configures using
search_url_g to be used when middle clicking on text.
The fraction by which we enlarge the page when zooming in/out.
If set, when using mouse wheel to zoom we zoom in on mouse cursor instead of middle of screen.
How many inches we move vertically/horizontally when performing move_* commands.
The fraction of screen by which we move when executing
screen_up commands. (note that despite the name, the values are fractions between 0 and 1, not percentages)
Displays a simplified flat table of contents instead of a hierarchial one. This can improve performance for documents with very large number of table of contents entries (thousands). Acceptable values are 0 and 1.
If set, we initially collapse all table of content entries.
If it is 1, when launching the application if we detect multiple monitors, we automatically launch the helper window in second monitor. Acceptable values are 0 and 1.
If the last opened document is empty, load the tutorial pdf instead.
This is deprecated. Use should_launch_new_window instead.
If it is 0, then we use the previous instance of sioyek when launching a new file, otherwise a new instance is launched every time we open a new file.
If it is 0, then we use the previous window of sioyek when opening a new file, otherwise a new window is opened every time we open a new file.
The command to use when trying to do inverse search into a LaTeX document. %1 expands to the name of the file and %2 expans to the line number. For example:
inverse_search_command "C:\path\to\vscode\Code.exe" -r -g %1:%2
The color to use for highlights of type
If set, we display a checkerboard pattern for unrendered pages (by default we display nothing).
Normally we reuse the rendered page for overview window. This may cause the overview page to be blurry or too sharp if there is a significant difference between the zoom levels of the main window and overview window.
rerender_overview is set, we rerender overview which solves this issue at the cost of some additional computation.
Use dark mode by default.
If set, we sort the bookmarks by their location instead of their creation time.
Size of the UI font.
The font to use for UI text.
ui_font Segoe UI Emoji
A prefix character to use before list of items (for example can be used to display a checkmark before each of the bookmarks).
If set, sioyek checkes for new versions on startup and notifies the user if a new version if available.
Specify the background and text color when using custom color mode (by executing
custom_background_color 0.18 0.20 0.25 custom_text_color 1.0 1.0 1.0
Semicolon-separated list of commands to execute on startup. For example, to start in custom color mode and in visual scroll mode, you can add the following (the command names are the same as the ones displayed when opening the command window using
Allow you to customize the appearance of status bar.
status_bar_color 0 0 0 status_bar_text_color 1 1 1 status_bar_font_size 10
Predefined shell commands to be executed using
%1 expands to the path of the current file,
%2 expands to name of the current file and
%3 expands to current selected text.
For example, suppose you have a command named
ocr which takes a file path and produces an OCR’d version of the document. You can add the following to you
execute_command_o ocr "%1"
You can later quickly invoke this command by executing
execute_predefined_command and then pressing
The command parsing code in sioyek is not very good. For example it can not handle multiple commands like
command1 args;command2 or commands that include spaces. If you want to run a complex command, first put all commands in a script file and then run the script file using using sioyek like this:
/path/to/script.sh %1 %2 %3.
Path to a directory on your computer. Sioyek monitors the changes in this directory and if a new file is added to this directory while we have a pending portal, this file is automatically used as the destination of the portal. This is useful when creating a portal from a reference in a paper to the actual reference file.
Manual resolution scaling. Can be useful for some very high resolution displays which report the wrong resolution.
If set, we use linear texture filtering instead of the normal nearest neighbour filtering. This is useful when using manual display resolution scale which causes the nearest neighbour filter to look bad.
Configures the size and position of the main window and the helper window.
single_main_window_* is used when helper window is closed and the other configs are used when both windows are opened.
These values are automatically written to
auto.cong file when sioyek exits but you can manually override them by setting them in your
single_main_window_size 1824 988 single_main_window_move 22 21 main_window_size 1824 988 main_window_move 18 44 helper_window_size 1891 1033 helper_window_move 1951 0
Can be used to adjust the sensitivity of the touchpad.
Used to adjust the appearance of page separator.
page_separator_width 2 page_separator_color 0.5 0.5 0.5
Ratio of screen width to use when using
fit_to_screen_width_ratio command. Can be useful for very wide screens.
If set and the file doesn’t have a table of contents, we use heuristic methods to create a table of contents. You can use
max_created_toc_size to prevent creating very large table of contents.
create_table_of_contents_if_not_exists 1 max_created_toc_size 5000
Use legacy line detection algorithm instead of the mupdf one.
Adjust the size of overview window. The values are in normalized window coordinates between -1 and 1.
overview_size 0.852604 0.597729 overview_offset -0.0119792 0.120151
Show the full document path instead of just the file name in list of recently opened documents.
If set, we warn the user in command line when overriding already degined keybinds.
If set, single clicking and dragging mouse selects entire words rather than characters.
Custom commands to run when mouse click is pressed while modifier keys are held down. For example:
If set, single clicking and dragging mouse selects entire words rather than characters.
By default we use legacy keybindings which have some problems. For example to bind the
% key, you would have to enter something like this:
which is a little weird. Also legacy keybinds don’t work well with some keyboard layouts. If you set
use_legacy_keybinds to 0, then we use a new method for keybind parsing which allows you to do something like this:
which also works with all keyboard layouts. Since this is a backwards incompatible change,
use_legacy_keybinds is activated by default.
Open helper window when sioyek starts.
When in presentation mode, we pre-render the next page to remove flickering when moving between pages.