Skip to content

Settings

Igor Malyushkin edited this page Jun 4, 2024 · 11 revisions

Important notes

Starting from 0.1.8, Thymus employs the second version of its configuration file. Thus, there is a special setting called "config_version". Thymus checks its presence now and converts the config file to a new scheme if a version of the file is not "2".

All platform settings are stored in separate files now for convenience (in the same folder as the global configuration).

Logging settings moved from a dedicated file into the global config.

The global set command is obsolete and is not supported anymore.

General Info

Thymus supports several ways of configuring: configuration files, GUI, and the command line. We recommend using the GUI option for general settings and CLI for fine-tuning a working context.

thymus.json

Global and logging settings are stored inside the "thymus.json" file.

Most changes made in the file apply only to the next opened context! You can tune some platform settings via the CLI command set.

Global settings

  • system_encoding is a string-based value that sets an encoding of the system config and log files (it does not apply to network config files).
  • last_opened_platform is an unsigned integer value, an index of the last opened platform. This value is used by the Open Dialog, and we do not recommend altering it.
  • default_folder is a string-based value of a path to be opened by the Open Dialog each time after Thymus started.
  • saves_folder is a string-based value of a path to save files by the sub-command save. Do not get confused with the save command.
  • screens_folder is a string-based value of a path to save screenshots (the feature is not available in 0.1.8).
  • theme is a string-based value that sets a highlighting theme for the view mode.
  • night_mode is a bool value that sets the night mode on or off.
  • filename_max_length is not used anymore, it is being deleted in the next release.
  • sidebar_max_length is an unsigned integer value that sets the maximum length of the left sidebar of a working screen. Too many elements may impact your experience, slowing the application.
  • network_connection_timeout is an unsigned integer value of time in seconds the Netloader module awaits an answer from a remote machine.
  • editor_frequency_factor is an unsigned integer value that governs the time the editor sleeps between two consequent chunks of lines. The default is 4 which is 0.4 seconds. The fastest mode is 0.2 seconds now.
  • editor_scale_factor is an unsigned integer value multiplied by the current application height (a vertical window size) gives a count of lines per every displayed chunk. Combined with the frequency factor can improve the loading of the content after the edit command, but it can hang the application down.
  • save_on_commit is a bool value, if it is set, automatically runs the save command after every successful commit command. It does not apply to the rollback command

Logging settings

These are well-known settings. You can find the extensive description in the Python documentation. By default, the log system uses a file-rotating mechanism that creates no more than 5 log files each of which is not bigger than 5 megabytes. The logs can be found in the "log/thymus.log" file.

Platforms

All platforms share the same settings (keys, not values) from the Common and Aliases sections below.

Common

  • spaces is an unsigned integer value that sets the number of spaces for a text indentation.
  • up_limit is an unsigned integer value that sets the maximum depth for the up command (i.e., a value for x where x is up x).

Aliases

Every command and sub-command has its unique name specific to a platform. For instance, for JunOS there is the up command, while for IOS it is the exit command. They do the same things, but users from the JunOS world got used to using their keywords just as IOS users and anybody else. But if you want to overwrite any command to your favorite it is possible on per platform basis. You can also align all platforms to the same scheme.

All alias keys start with alias_.

JUNOS

JunOS supports only spaces and up_limit settings.

IOS

IOS supports spaces and up_limit too, besides it has several additional settings.

  • heuristics is a bool value. This option toggles the heuristics mechanism for a platform's parser (refer to the documentation of a selected platform). By default, it is false.
  • base_heuristics is a bool value. This option toggles the base heuristics mechanism for a platform's parser (refer to the documentation of a selected platform). By default, it is true.
  • crop is a bool value. This option allows a parser to crop lines from the beginning (refer to the documentation of a selected platform). It requires the heuristics mode to be enabled first! By default, it is false.
  • promisc is a bool value. This option checks the config to have the "end" keyword at the bottom. By default, it is false.
  • find_head is a bool value. Refer to the documentation of a selected platform.

EOS/NX-OS/XR-OS

The same as IOS except these platforms do not have the promisc setting (to be specific, this setting is always true).

Command Line

Every working context has an input field. This field is capable not only of working with a network configuration file. With the command set it is possible to change any settings of the current platform in the runtime.

Clone this wiki locally