Configuration

Sioyek uses four config files:

  • keys.config which stores the default keybindings

  • keys_user.config which stores the modified keybindings

  • prefs.config which stores the default preferences

  • prefs_user.config which stores the modified preferences

The location of these files are OS-dependent. You can open these files by executing keys, keys_user, prefs and prefs_user commands using the sioyek command line (see Command Menu).

Syntax of keys.config files

  • 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        K             (command is executed when K is entered, which is shift+k)
command        <A-k>         (command is executed when k is pressed while holding alt)
command        +             (command is executed when = is pressed while holding shift)
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>Dt      (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)

                              you can execute multiple commands using the following syntax:
command1;command2;command3        <keybinding>

Prefrences in prefs.config file

background_color

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 prefs_user.config:

background_color  0.5  0.5  0.5

dark_mode_background_color

Specifies the background color when dark mode is enabled.

dark_mode_contrast

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.

text_highlight_color

Highlight color when text is selected using mouse.

visual_mark_color

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 prefs_user.config:

visual_mark_color  1.0  0.0  0.0  0.1

ruler_mode

If it is 1, we highlight a rectangle around the current line in visual mark mode. Otherwise, we highlight below the current line.

ruler_mode  1

ruler_padding and ruler_x_padding

Additional padding for ruler. Makes the ruler a little larger and more readable.

ruler_padding 1.0
ruler_x_padding 5.0

visual_mark_next_page_fraction

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.

visual_mark_next_page_fraction  0.5

visual_mark_next_page_threshold

Determines at which point in screen we move to the next page. Acceptable range is between 0 and visual_mark_next_page_fraction.

search_highlight_color

The color used to highlight search results.

synctex_highlight_color

Highlight color for synctex forward search highlights.

search_url_a to search_url_z

The web addresses used for performing external_search command. (see External Search). Example:

search_url_g https://www.google.com/search?q=

middle_click_search_engine and shift_middle_click_search_engine

The letter corresponding to search_url_* configs to use when middle clicking/shift-middle clicking on text. Example:

middle_click_search_engine           g

This causes the search engine configures using search_url_g to be used when middle clicking on text.

zoom_inc_factor

The fraction by which we enlarge the page when zooming in/out.

wheel_zoom_on_cursor

If set, when using mouse wheel to zoom we zoom in on mouse cursor instead of middle of screen.

vertical_move_amount and horizontal_move_amount

How many inches we move vertically/horizontally when performing move_* commands.

move_screen_ratio

The fraction of screen by which we move when executing screen_down and screen_up commands. (note that despite the name, the values are fractions between 0 and 1, not percentages)

flat_toc

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.

collapsed_toc

If set, we initially collapse all table of content entries.

should_use_multiple_monitors

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.

should_load_tutorial_when_no_other_file

If the last opened document is empty, load the tutorial pdf instead.

should_launch_new_instance

Warning

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.

should_launch_new_window

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.

inverse_search_command

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

highlight_color_a to highlight_color_z

The color to use for highlights of type a to z.

should_draw_unrendered_pages

If set, we display a checkerboard pattern for unrendered pages (by default we display nothing).

rerender_overview

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. If rerender_overview is set, we rerender overview which solves this issue at the cost of some additional computation.

rerender_overview            1

default_dark_mode

Use dark mode by default.

sort_bookmarks_by_location

If set, we sort the bookmarks by their location instead of their creation time.

shared_database_path

The path of shared.db database file. You can set this path to be in a synchronized folder (for example a dropbox folder) and sioyek data will be automatically synchronized across your devices.

font_size

Size of the UI font.

ui_font

The font to use for UI text.

ui_font              Segoe UI Emoji

item_list_prefix

A prefix character to use before list of items (for example can be used to display a checkmark before each of the bookmarks).

item_list_prefix     ✔️

check_for_updates_on_startup

If set, sioyek checkes for new versions on startup and notifies the user if a new version if available.

check_for_updates_on_startup 1

custom_background_color and custom_text_color

Specify the background and text color when using custom color mode (by executing toggle_custom_color command).

custom_background_color              0.18 0.20 0.25
custom_text_color                    1.0 1.0 1.0

startup_commands

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 :):

startup_commands             toggle_custom_color;toggle_visual_scroll

status_bar_color, status_bar_text_color and status_bar_font_size

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

execute_command_a to execute_command_z

Predefined shell commands to be executed using execute_predefined_command. %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 prefs_user.config:

execute_command_o    ocr "%1"

You can later quickly invoke this command by executing execute_predefined_command and then pressing o.

Warning

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.

papers_folder_path

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.

display_resolution_scale

Manual resolution scaling. Can be useful for some very high resolution displays which report the wrong resolution.

linear_filter

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.

main_window_size, main_window_move, helper_window_size, helper_window_move, single_main_window_size and single_main_window_move

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 prefs_user.config.

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

touchpad_sensitivity

Can be used to adjust the sensitivity of the touchpad.

touchpad_sensitivity    0.1

page_separator_width and page_separator_color

Used to adjust the appearance of page separator.

page_separator_width 2
page_separator_color 0.5 0.5 0.5

fit_to_page_width_ratio

Ratio of screen width to use when using fit_to_screen_width_ratio command. Can be useful for very wide screens.

fit_to_page_width_ratio 0.75

create_table_of_contents_if_not_exists

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

force_custom_line_algorithm

Use legacy line detection algorithm instead of the mupdf one.

overview_size and overview_offset

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_doc_path

Show the full document path instead of just the file name in list of recently opened documents.

should_warn_about_user_key_override

If set, we warn the user in command line when overriding already degined keybinds.

single_click_selects_words

If set, single clicking and dragging mouse selects entire words rather than characters.

shift_click_command, control_click_command, alt_click_command, shift_right_click_command, control_right_click_command, and alt_right_click_command

Custom commands to run when mouse click is pressed while modifier keys are held down. For example:

control_click_command overview_under_cursor

If set, single clicking and dragging mouse selects entire words rather than characters.

use_legacy_keybinds

By default we use legacy keybindings which have some problems. For example to bind the % key, you would have to enter something like this:

command <S-%>

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:

command %

which also works with all keyboard layouts. Since this is a backwards incompatible change, use_legacy_keybinds is activated by default.

multiline_menus

If set, we show long menu items in multiple lines rather than truncating them.

start_with_helper_window

Open helper window when sioyek starts.

prerender_next_page_presentation

When in presentation mode, we pre-render the next page to remove flickering when moving between pages.

highlight_middle_click

If enabled, highlights the selected text by middle clicking on it.

smooth_scroll_speed and smooth_scroll_drag

When smooth scrolling is enabled (using toggle_smooth_scroll command), these control the speed and slowdown of movement.

smooth_scroll_speed 3
smooth_scroll_drag 3000

show_closest_bookmark_in_statusbar

If enabled, displays the text for closest bookmark in the statusbar.

show_close_portal_in_statusbar

If enabled, it displays a statusbar message when we are close to a portal.

prerender_page_count

The number of pages to prerender. The larger it is, the more memory we use but there will be less flickering when quickly moving pages.

show_document_name_in_statusbar

Displays the document name in sioyek’s statusbar.

ui_background_color and ui_text_color

The background and text color of (unselected) UI elements.

ui_selected_background_color and ui_selected_text_color

The background and text color of selected UI elements.

numeric_tags

If enabled we use numeric (instead of alphabetical) tags when executing keyboard_* commands.

source

Includes another config file, which is useful for themes and extensions.

# includes file.config in this configuration file
source /path/to/file.config