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


## Prefrences in prefs.config file

### background_color

Specifies the background color of the app (this is different from the background color of PDF page, 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 bavkground 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.

### vertical_line_color

This is the color of the transparent visual mark explained in Underline (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:

vertical_line_color  1.0  0.0  0.0  0.1


### 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.

### vertical_move_amount and horizontal_move_amount

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

### move_screen_percentage

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.

### 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

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.

### 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.

### visual_mark_next_page_fraction

When moving to the next line using visual marker, this setting specifies the distance of the marker to the top of the screen in fractions of screen size when we decite to move the screen.

### visual_mark_next_page_threshold

When moving to the next line using visual marker, this setting determines at which point we decide to move the screen

### should_draw_unrendered_pages

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

### hover_overview

Displays an overview of destination when hovering over a link with mouse.

### 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.