mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-30 18:22:25 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			595 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			595 lines
		
	
	
		
			32 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/env python
 | ||
| # vim:fileencoding=UTF-8:ts=4:sw=4:sta:et:sts=4:ai
 | ||
| # License: GPLv3 Copyright: 2010, Kovid Goyal <kovid at kovidgoyal.net>
 | ||
| 
 | ||
| 
 | ||
| # Contains various tweaks that affect calibre behavior. Only edit this file if
 | ||
| # you know what you are doing. If you delete this file, it will be recreated from
 | ||
| # defaults.
 | ||
| 
 | ||
| #: Auto increment series index
 | ||
| # The algorithm used to assign a book added to an existing series a series number.
 | ||
| # New series numbers assigned using this tweak are always integer values, except
 | ||
| # if a constant non-integer is specified.
 | ||
| # Possible values are:
 | ||
| #   next - First available integer larger than the largest existing number
 | ||
| #   first_free - First available integer larger than 0
 | ||
| #   next_free - First available integer larger than the smallest existing number
 | ||
| #   last_free - First available integer smaller than the largest existing number. Return largest existing + 1 if no free number is found
 | ||
| #   const - Assign the number 1 always
 | ||
| #   no_change - Do not change the series index
 | ||
| #   a number - Assign that number always. The number is not in quotes. Note that 0.0 can be used here.
 | ||
| # Examples:
 | ||
| #   series_index_auto_increment = 'next'
 | ||
| #   series_index_auto_increment = 'next_free'
 | ||
| #   series_index_auto_increment = 16.5
 | ||
| #
 | ||
| # Set the use_series_auto_increment_tweak_when_importing tweak to True to
 | ||
| # use the above values when importing/adding books. If this tweak is set to
 | ||
| # False (the default) then the series number will be set to 1 if it is not
 | ||
| # explicitly set during the import. If set to True, then the
 | ||
| # series index will be set according to the series_index_auto_increment setting.
 | ||
| # Note that the use_series_auto_increment_tweak_when_importing tweak is used
 | ||
| # only when a value is not provided during import. If the importing regular
 | ||
| # expression produces a value for series_index, or if you are reading metadata
 | ||
| # from books and the import plugin produces a value, than that value will
 | ||
| # be used irrespective of the setting of the tweak.
 | ||
| series_index_auto_increment = 'next'
 | ||
| use_series_auto_increment_tweak_when_importing = False
 | ||
| 
 | ||
| #: Add separator after completing an author name
 | ||
| # Set this if the completion separator should be appended to the end of the
 | ||
| # completed text to automatically begin a new completion operation for authors.
 | ||
| # It can be either True or False
 | ||
| authors_completer_append_separator = False
 | ||
| 
 | ||
| #: Author sort name algorithm
 | ||
| # The algorithm used to copy author to author_sort.
 | ||
| # Possible values are:
 | ||
| #  invert: use "fn ln" -> "ln, fn"
 | ||
| #  copy  : copy author to author_sort without modification
 | ||
| #  comma : use 'copy' if there is a ',' in the name, otherwise use 'invert'
 | ||
| #  nocomma : "fn ln" -> "ln fn" (without the comma)
 | ||
| # When this tweak is changed, the author_sort values stored with each author
 | ||
| # must be recomputed by right-clicking on an author in the left-hand tags
 | ||
| # panel, selecting 'manage authors', and pressing
 | ||
| # 'Recalculate all author sort values'.
 | ||
| #
 | ||
| # The author_name_suffixes are words that are ignored when they occur at the
 | ||
| # end of an author name. The case of the suffix is ignored and trailing
 | ||
| # periods are automatically handled.
 | ||
| #
 | ||
| # The same is true for author_name_prefixes.
 | ||
| #
 | ||
| # The author_name_copywords are a set of words which, if they occur in an
 | ||
| # author name, cause the automatically generated author sort string to be
 | ||
| # identical to the author name. This means that the sort for a string like
 | ||
| # "Acme Inc." will be "Acme Inc." instead of "Inc., Acme".
 | ||
| #
 | ||
| # If author_use_surname_prefixes is enabled, any of the words in
 | ||
| # author_surname_prefixes will be treated as a prefix to the surname, if they
 | ||
| # occur before the surname. So for example, "John von Neumann" would be sorted
 | ||
| # as "von Neumann, John" and not "Neumann, John von".
 | ||
| author_sort_copy_method = 'comma'
 | ||
| author_name_suffixes = ('Jr', 'Sr', 'Inc', 'Ph.D', 'Phd',
 | ||
|                         'MD', 'M.D', 'I', 'II', 'III', 'IV',
 | ||
|                         'Junior', 'Senior')
 | ||
| author_name_prefixes = ('Mr', 'Mrs', 'Ms', 'Dr', 'Prof')
 | ||
| author_name_copywords = ('Agency', 'Corporation', 'Company', 'Co.', 'Council',
 | ||
|                          'Committee', 'Inc.', 'Institute', 'National',
 | ||
|                          'Society', 'Club', 'Team')
 | ||
| author_use_surname_prefixes = False
 | ||
| author_surname_prefixes = ('da', 'de', 'di', 'la', 'le', 'van', 'von')
 | ||
| 
 | ||
| #: Splitting multiple author names
 | ||
| # By default, calibre splits a string containing multiple author names on
 | ||
| # ampersands and the words "and" and "with". You can customize the splitting
 | ||
| # by changing the regular expression below. Strings are split on whatever the
 | ||
| # specified regular expression matches, in addition to ampersands.
 | ||
| # Default: r'(?i),?\s+(and|with)\s+'
 | ||
| authors_split_regex = r'(?i),?\s+(and|with)\s+'
 | ||
| 
 | ||
| #: Use author sort in Tag browser
 | ||
| # Set which author field to display in the Tag browser (the list of authors,
 | ||
| # series, publishers etc on the left hand side). The choices are author and
 | ||
| # author_sort. This tweak affects only what is displayed under the authors
 | ||
| # category in the Tag browser and Content server. Please note that if you set this
 | ||
| # to author_sort, it is very possible to see duplicate names in the list because
 | ||
| # although it is guaranteed that author names are unique, there is no such
 | ||
| # guarantee for author_sort values. Showing duplicates won't break anything, but
 | ||
| # it could lead to some confusion. When using 'author_sort', the tooltip will
 | ||
| # show the author's name.
 | ||
| # Examples:
 | ||
| #   categories_use_field_for_author_name = 'author'
 | ||
| #   categories_use_field_for_author_name = 'author_sort'
 | ||
| categories_use_field_for_author_name = 'author'
 | ||
| 
 | ||
| #: Control partitioning of Tag browser
 | ||
| # When partitioning the Tag browser, the format of the subcategory label is
 | ||
| # controlled by a template: categories_collapsed_name_template if sorting by
 | ||
| # name, categories_collapsed_rating_template if sorting by average rating, and
 | ||
| # categories_collapsed_popularity_template if sorting by popularity. There are
 | ||
| # two variables available to the template: first and last. The variable 'first'
 | ||
| # is the initial item in the subcategory, and the variable 'last' is the final
 | ||
| # item in the subcategory. Both variables are 'objects'; they each have multiple
 | ||
| # values that are obtained by using a suffix. For example, first.name for an
 | ||
| # author category will be the name of the author. The sub-values available are:
 | ||
| #  name: the printable name of the item
 | ||
| #  count: the number of books that references this item
 | ||
| #  avg_rating: the average rating of all the books referencing this item
 | ||
| #  sort: the sort value. For authors, this is the author_sort for that author
 | ||
| #  category: the category (e.g., authors, series) that the item is in.
 | ||
| # Note that the "r'" in front of the { is necessary if there are backslashes
 | ||
| # (\ characters) in the template. It doesn't hurt anything to leave it there
 | ||
| # even if there aren't any backslashes.
 | ||
| categories_collapsed_name_template = r'{first.sort:shorten(4,,0)} - {last.sort:shorten(4,,0)}'
 | ||
| categories_collapsed_rating_template = r'{first.avg_rating:4.2f:ifempty(0)} - {last.avg_rating:4.2f:ifempty(0)}'
 | ||
| categories_collapsed_popularity_template = r'{first.count:d} - {last.count:d}'
 | ||
| 
 | ||
| #: Control order of categories in the Tag browser
 | ||
| # Change the following dict to change the order that categories are displayed in
 | ||
| # the Tag browser. Items are named using their lookup name, and will be sorted
 | ||
| # using the number supplied. The lookup name '*' stands for all names that
 | ||
| # otherwise do not appear. Two names with the same value will be sorted
 | ||
| # using the default order, the one specified by tag_browser_category_default_sort.
 | ||
| # Example:
 | ||
| #   tag_browser_category_order = {'series':1, 'tags':2, '*':3}
 | ||
| #
 | ||
| # results in the order series, tags, then everything else in default order.
 | ||
| # The tweak tag_browser_category_default_sort specifies the sort order before
 | ||
| # applying the category order from the dict. The allowed values are:
 | ||
| #   tag_browser_category_default_sort = 'default' # The calibre default order
 | ||
| #   tag_browser_category_default_sort = 'display_name' # Sort by the display name of the category
 | ||
| #   tag_browser_category_default_sort = 'lookup_name' # Sort by the lookup name of the category
 | ||
| #
 | ||
| # In addition and if the category default sort is not 'default' you can specify
 | ||
| # whether the sort is ascending or descending. This is ignored if the sort is 'default'.
 | ||
| #   tag_browser_category_default_sort_direction = 'ascending'
 | ||
| #   tag_browser_category_default_sort_direction = 'descending'
 | ||
| tag_browser_category_order = {'*':1}
 | ||
| tag_browser_category_default_sort = 'default'
 | ||
| tag_browser_category_default_sort_direction = 'ascending'
 | ||
| 
 | ||
| 
 | ||
| #: Specify columns to sort the booklist by on startup
 | ||
| # Provide a set of columns to be sorted on when calibre starts.
 | ||
| # The argument is None if saved sort history is to be used
 | ||
| # otherwise it is a list of column,order pairs. Column is the
 | ||
| # lookup/search name, found using the tooltip for the column
 | ||
| # Order is 0 for ascending, 1 for descending.
 | ||
| # For example, set it to [('authors',0),('title',0)] to sort by
 | ||
| # title within authors.
 | ||
| sort_columns_at_startup = None
 | ||
| 
 | ||
| #: Control how dates are displayed
 | ||
| # Format to be used for publication date and the timestamp (date).
 | ||
| #  A string controlling how the publication date is displayed in the GUI
 | ||
| #  d     the day as number without a leading zero (1 to 31)
 | ||
| #  dd    the day as number with a leading zero (01 to 31)
 | ||
| #  ddd   the abbreviated localized day name (e.g. 'Mon' to 'Sun').
 | ||
| #  dddd  the long localized day name (e.g. 'Monday' to 'Sunday').
 | ||
| #  M     the month as number without a leading zero (1-12)
 | ||
| #  MM    the month as number with a leading zero (01-12)
 | ||
| #  MMM   the abbreviated localized month name (e.g. 'Jan' to 'Dec').
 | ||
| #  MMMM  the long localized month name (e.g. 'January' to 'December').
 | ||
| #  yy    the year as two digit number (00-99)
 | ||
| #  yyyy  the year as four digit number
 | ||
| #  h     the hours without a leading 0 (0 to 11 or 0 to 23, depending on am/pm) '
 | ||
| #  hh    the hours with a leading 0 (00 to 11 or 00 to 23, depending on am/pm) '
 | ||
| #  m     the minutes without a leading 0 (0 to 59) '
 | ||
| #  mm    the minutes with a leading 0 (00 to 59) '
 | ||
| #  s     the seconds without a leading 0 (0 to 59) '
 | ||
| #  ss    the seconds with a leading 0 (00 to 59) '
 | ||
| #  ap    use a 12-hour clock instead of a 24-hour clock, with "ap" replaced by the localized string for am or pm
 | ||
| #  AP    use a 12-hour clock instead of a 24-hour clock, with "AP" replaced by the localized string for AM or PM
 | ||
| #  iso   the date with time and timezone. Must be the only format present
 | ||
| #  For example, given the date of 9 Jan 2010, the following formats show
 | ||
| #  MMM yyyy ==> Jan 2010    yyyy ==> 2010       dd MMM yyyy ==> 09 Jan 2010
 | ||
| #  MM/yyyy ==> 01/2010      d/M/yy ==> 9/1/10   yy ==> 10
 | ||
| #
 | ||
| # publication default if not set: MMM yyyy
 | ||
| # timestamp default if not set: dd MMM yyyy
 | ||
| # last_modified_display_format if not set: dd MMM yyyy
 | ||
| gui_pubdate_display_format = 'MMM yyyy'
 | ||
| gui_timestamp_display_format = 'dd MMM yyyy'
 | ||
| gui_last_modified_display_format = 'dd MMM yyyy'
 | ||
| 
 | ||
| #: Control sorting of titles and series in the library display
 | ||
| # Control title and series sorting in the library view. If set to
 | ||
| # 'library_order', the title sort field will be used instead of the title.
 | ||
| # Unless you have manually edited the title sort field, leading articles such as
 | ||
| # The and A will be ignored. If set to 'strictly_alphabetic', the titles will be
 | ||
| # sorted as-is (sort by title instead of title sort). For example, with
 | ||
| # library_order, The Client will sort under 'C'. With strictly_alphabetic, the
 | ||
| # book will sort under 'T'.
 | ||
| # This flag affects calibre's library display. It has no effect on devices. In
 | ||
| # addition, titles for books added before changing the flag will retain their
 | ||
| # order until the title is edited. Editing a title and hitting Enter
 | ||
| # without changing anything is sufficient to change the sort. Or you can use
 | ||
| # the 'Update title sort' action in the Bulk metadata edit dialog to update
 | ||
| # it for many books at once.
 | ||
| title_series_sorting = 'library_order'
 | ||
| 
 | ||
| #: Control formatting of title and series when used in templates
 | ||
| # Control how title and series names are formatted when saving to disk/sending
 | ||
| # to device. The behavior depends on the field being processed. If processing
 | ||
| # title, then if this tweak is set to 'library_order', the title will be
 | ||
| # replaced with title_sort. If it is set to 'strictly_alphabetic', then the
 | ||
| # title will not be changed. If processing series, then if set to
 | ||
| # 'library_order', articles such as 'The' and 'An' will be moved to the end. If
 | ||
| # set to 'strictly_alphabetic', the series will be sent without change.
 | ||
| # For example, if the tweak is set to library_order, "The Lord of the Rings"
 | ||
| # will become "Lord of the Rings, The". If the tweak is set to
 | ||
| # strictly_alphabetic, it would remain "The Lord of the Rings". Note that the
 | ||
| # formatter function raw_field will return the base value for title and
 | ||
| # series regardless of the setting of this tweak.
 | ||
| save_template_title_series_sorting = 'library_order'
 | ||
| 
 | ||
| #: Set the list of words considered to be "articles" for sort strings
 | ||
| # Set the list of words that are to be considered 'articles' when computing the
 | ||
| # title sort strings. The articles differ by language. By default, calibre uses
 | ||
| # a combination of articles from English and whatever language the calibre user
 | ||
| # interface is set to. In addition, in some contexts where the book language is
 | ||
| # available, the language of the book is used. You can change the list of
 | ||
| # articles for a given language or add a new language by editing
 | ||
| # per_language_title_sort_articles. To tell calibre to use a language other
 | ||
| # than the user interface language, set, default_language_for_title_sort. For
 | ||
| # example, to use German, set it to 'deu'. A value of None means the user
 | ||
| # interface language is used. The setting title_sort_articles is ignored
 | ||
| # (present only for legacy reasons).
 | ||
| per_language_title_sort_articles = {
 | ||
|         # English
 | ||
|         'eng'  : (r'A\s+', r'The\s+', r'An\s+'),
 | ||
|         # Esperanto
 | ||
|         'epo': (r'La\s+', r"L'", 'L´'),
 | ||
|         # Spanish
 | ||
|         'spa'  : (r'El\s+', r'La\s+', r'Lo\s+', r'Los\s+', r'Las\s+', r'Un\s+',
 | ||
|                   r'Una\s+', r'Unos\s+', r'Unas\s+'),
 | ||
|         # French
 | ||
|         'fra'  : (r'Le\s+', r'La\s+', r"L'", u'L´', u'L’', r'Les\s+', r'Un\s+', r'Une\s+',
 | ||
|                   r'Des\s+', r'De\s+La\s+', r'De\s+', r"D'", u'D´', u'L’'),
 | ||
|         # Polish
 | ||
|         'pol': (),
 | ||
|         # Italian
 | ||
|         'ita': ('Lo\\s+', 'Il\\s+', "L'", 'L´', 'La\\s+', 'Gli\\s+',
 | ||
|                 'I\\s+', 'Le\\s+', 'Uno\\s+', 'Un\\s+', 'Una\\s+', "Un'",
 | ||
|                 'Un´', 'Dei\\s+', 'Degli\\s+', 'Delle\\s+', 'Del\\s+',
 | ||
|                 'Della\\s+', 'Dello\\s+', "Dell'", 'Dell´'),
 | ||
|         # Portuguese
 | ||
|         'por'  : (r'A\s+', r'O\s+', r'Os\s+', r'As\s+', r'Um\s+', r'Uns\s+',
 | ||
|                   r'Uma\s+', r'Umas\s+', ),
 | ||
|         # Romanian
 | ||
|         'ron'  : (r'Un\s+', r'O\s+', r'Nişte\s+', ),
 | ||
|         # German
 | ||
|         'deu'  : (r'Der\s+', r'Die\s+', r'Das\s+', r'Den\s+', r'Ein\s+',
 | ||
|                   r'Eine\s+', r'Einen\s+', r'Dem\s+', r'Des\s+', r'Einem\s+',
 | ||
|                   r'Eines\s+'),
 | ||
|         # Dutch
 | ||
|         'nld'  : (r'De\s+', r'Het\s+', r'Een\s+', r"'n\s+", r"'s\s+", r'Ene\s+',
 | ||
|                   r'Ener\s+', r'Enes\s+', r'Den\s+', r'Der\s+', r'Des\s+',
 | ||
|                   r"'t\s+"),
 | ||
|         # Swedish
 | ||
|         'swe'  : (r'En\s+', r'Ett\s+', r'Det\s+', r'Den\s+', r'De\s+', ),
 | ||
|         # Turkish
 | ||
|         'tur'  : (r'Bir\s+', ),
 | ||
|         # Afrikaans
 | ||
|         'afr'  : (r"'n\s+", r'Die\s+', ),
 | ||
|         # Greek
 | ||
|         'ell'  : (r'O\s+', r'I\s+', r'To\s+', r'Ta\s+', r'Tus\s+', r'Tis\s+',
 | ||
|                   r"'Enas\s+", r"'Mia\s+", r"'Ena\s+", r"'Enan\s+", ),
 | ||
|         # Hungarian
 | ||
|         'hun'  : (r'A\s+', r'Az\s+', r'Egy\s+',),
 | ||
| }
 | ||
| default_language_for_title_sort = None
 | ||
| title_sort_articles=r'^(A|The|An)\s+'
 | ||
| 
 | ||
| #: Specify a folder calibre should connect to at startup
 | ||
| # Specify a folder that calibre should connect to at startup using
 | ||
| # connect_to_folder. This must be a full path to the folder. If the folder does
 | ||
| # not exist when calibre starts, it is ignored.
 | ||
| # Example for Windows:
 | ||
| #     auto_connect_to_folder = 'C:/Users/someone/Desktop/testlib'
 | ||
| # Example for other operating systems:
 | ||
| #     auto_connect_to_folder = '/home/dropbox/My Dropbox/someone/library'
 | ||
| auto_connect_to_folder = ''
 | ||
| 
 | ||
| #: Specify renaming rules for SONY collections
 | ||
| # Specify renaming rules for SONY collections. This tweak is only applicable if
 | ||
| # metadata management is set to automatic. Collections on SONYs are named
 | ||
| # depending upon whether the field is standard or custom. A collection derived
 | ||
| # from a standard field is named for the value in that field.
 | ||
| #
 | ||
| # For example, if the standard 'series' column contains the value 'Darkover', then the
 | ||
| # collection name is 'Darkover'. A collection derived from a custom field will
 | ||
| # have the name of the field added to the value. For example, if a custom series
 | ||
| # column named 'My Series' contains the name 'Darkover', then the collection
 | ||
| # will by default be named 'Darkover (My Series)'. For purposes of this
 | ||
| # documentation, 'Darkover' is called the value and 'My Series' is called the
 | ||
| # category. If two books have fields that generate the same collection name,
 | ||
| # then both books will be in that collection.
 | ||
| #
 | ||
| # This set of tweaks lets you specify for a standard or custom field how
 | ||
| # the collections are to be named. You can use it to add a description to a
 | ||
| # standard field, for example 'Foo (Tag)' instead of the 'Foo'. You can also use
 | ||
| # it to force multiple fields to end up in the same collection.
 | ||
| #
 | ||
| # For example, you could force the values in 'series', '#my_series_1', and
 | ||
| # '#my_series_2' to appear in collections named 'some_value (Series)', thereby
 | ||
| # merging all of the fields into one set of collections.
 | ||
| #
 | ||
| # There are two related tweaks. The first determines the category name to use
 | ||
| # for a metadata field.  The second is a template, used to determines how the
 | ||
| # value and category are combined to create the collection name.
 | ||
| # The syntax of the first tweak, sony_collection_renaming_rules, is:
 | ||
| # {'field_lookup_name':'category_name_to_use', 'lookup_name':'name', ...}
 | ||
| #
 | ||
| # The second tweak, sony_collection_name_template, is a template. It uses the
 | ||
| # same template language as plugboards and save templates. This tweak controls
 | ||
| # how the value and category are combined together to make the collection name.
 | ||
| # The only two fields available are {category} and {value}. The {value} field is
 | ||
| # never empty. The {category} field can be empty. The default is to put the
 | ||
| # value first, then the category enclosed in parentheses, it isn't empty:
 | ||
| # '{value} {category:|(|)}'
 | ||
| #
 | ||
| # Examples: The first three examples assume that the second tweak
 | ||
| # has not been changed.
 | ||
| #
 | ||
| # 1) I want three series columns to be merged into one set of collections. The
 | ||
| # column lookup names are 'series', '#series_1' and '#series_2'. I want nothing
 | ||
| # in the parenthesis. The value to use in the tweak value would be:
 | ||
| #    sony_collection_renaming_rules={'series':'', '#series_1':'', '#series_2':''}
 | ||
| #
 | ||
| # 2) I want the word '(Series)' to appear on collections made from series, and
 | ||
| # the word '(Tag)' to appear on collections made from tags. Use:
 | ||
| #   sony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}
 | ||
| #
 | ||
| # 3) I want 'series' and '#myseries' to be merged, and for the collection name
 | ||
| # to have '(Series)' appended. The renaming rule is:
 | ||
| #   sony_collection_renaming_rules={'series':'Series', '#myseries':'Series'}
 | ||
| #
 | ||
| # 4) Same as example 2, but instead of having the category name in parentheses
 | ||
| # and appended to the value, I want it prepended and separated by a colon, such
 | ||
| # as in Series: Darkover. I must change the template used to format the category name
 | ||
| #
 | ||
| # The resulting two tweaks are:
 | ||
| #    sony_collection_renaming_rules={'series':'Series', 'tags':'Tag'}
 | ||
| #    sony_collection_name_template='{category:||: }{value}'
 | ||
| sony_collection_renaming_rules={}
 | ||
| sony_collection_name_template='{value}{category:| (|)}'
 | ||
| 
 | ||
| #: Specify how SONY collections are sorted
 | ||
| # Specify how SONY collections are sorted. This tweak is only applicable if
 | ||
| # metadata management is set to automatic. You can indicate which metadata is to
 | ||
| # be used to sort on a collection-by-collection basis. The format of the tweak
 | ||
| # is a list of metadata fields from which collections are made, followed by the
 | ||
| # name of the metadata field containing the sort value.
 | ||
| # Example: The following indicates that collections built from pubdate and tags
 | ||
| # are to be sorted by the value in the custom column '#mydate', that collections
 | ||
| # built from 'series' are to be sorted by 'series_index', and that all other
 | ||
| # collections are to be sorted by title. If a collection metadata field is not
 | ||
| # named, then if it is a series- based collection it is sorted by series order,
 | ||
| # otherwise it is sorted by title order.
 | ||
| # [(['pubdate', 'tags'],'#mydate'), (['series'],'series_index'), (['*'], 'title')]
 | ||
| # Note that the bracketing and parentheses are required. The syntax is
 | ||
| # [ ( [list of fields], sort field ) , ( [ list of fields ] , sort field ) ]
 | ||
| # Default: empty (no rules), so no collection attributes are named.
 | ||
| sony_collection_sorting_rules = []
 | ||
| 
 | ||
| #: Control how tags are applied when copying books to another library
 | ||
| # Set this to True to ensure that tags in 'Tags to add when adding
 | ||
| # a book' are added when copying books to another library
 | ||
| add_new_book_tags_when_importing_books = False
 | ||
| 
 | ||
| #: Set the maximum number of sort 'levels'
 | ||
| # Set the maximum number of sort 'levels' that calibre will use to resort the
 | ||
| # library after certain operations such as searches or device insertion. Each
 | ||
| # sort level adds a performance penalty. If the database is large (thousands of
 | ||
| # books) the penalty might be noticeable. If you are not concerned about multi-
 | ||
| # level sorts, and if you are seeing a slowdown, reduce the value of this tweak.
 | ||
| maximum_resort_levels = 5
 | ||
| 
 | ||
| #: Choose whether dates are sorted using visible fields
 | ||
| # Date values contain both a date and a time. When sorted, all the fields are
 | ||
| # used, regardless of what is displayed. Set this tweak to True to use only
 | ||
| # the fields that are being displayed.
 | ||
| sort_dates_using_visible_fields = False
 | ||
| 
 | ||
| #: Fuzz value for trimming covers
 | ||
| # The value used for the fuzz distance when trimming a cover.
 | ||
| # Colors within this distance are considered equal.
 | ||
| # The distance is in absolute intensity units.
 | ||
| cover_trim_fuzz_value = 10
 | ||
| 
 | ||
| #: Control behavior of the book list
 | ||
| # You can control the behavior of double clicks and pressing Enter on the books
 | ||
| # list. Choices: open_viewer, do_nothing, show_book_details, edit_cell,
 | ||
| # edit_metadata. Selecting anything other than open_viewer or show_book_details
 | ||
| # has the side effect of disabling editing a field using a single click.
 | ||
| # Default: open_viewer.
 | ||
| # Example: doubleclick_on_library_view = 'do_nothing'
 | ||
| # You can also control whether the book list scrolls per item or
 | ||
| # per pixel. Default is per item.
 | ||
| doubleclick_on_library_view = 'open_viewer'
 | ||
| enter_key_behavior = 'do_nothing'
 | ||
| horizontal_scrolling_per_column = False
 | ||
| vertical_scrolling_per_row = False
 | ||
| 
 | ||
| #: Language to use when sorting
 | ||
| # Setting this tweak will force sorting to use the
 | ||
| # collating order for the specified language. This might be useful if you run
 | ||
| # calibre in English but want sorting to work in the language where you live.
 | ||
| # Set the tweak to the desired ISO 639-1 language code, in lower case.
 | ||
| # You can find the list of supported locales at
 | ||
| # https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes
 | ||
| # Default: locale_for_sorting = '' -- use the language calibre displays in
 | ||
| # Example: locale_for_sorting = 'fr' -- sort using French rules.
 | ||
| # Example: locale_for_sorting = 'nb' -- sort using Norwegian rules.
 | ||
| locale_for_sorting =  ''
 | ||
| 
 | ||
| #: The number of seconds to wait before sending emails
 | ||
| # The number of seconds to wait before sending emails when using a
 | ||
| # public email server like GMX/Hotmail/Gmail. Default is: 5 minutes
 | ||
| # Setting it to lower may cause the server's SPAM controls to kick in,
 | ||
| # making email sending fail. Changes will take effect only after a restart of
 | ||
| # calibre. You can also change the list of hosts that calibre considers
 | ||
| # to be public relays here. Any relay host ending with one of the suffixes
 | ||
| # in the list below will be considered a public email server.
 | ||
| public_smtp_relay_delay = 301
 | ||
| public_smtp_relay_host_suffixes = ['gmail.com', 'live.com', 'gmx.com', 'outlook.com']
 | ||
| 
 | ||
| #: The maximum width and height for covers saved in the calibre library
 | ||
| # All covers in the calibre library will be resized, preserving aspect ratio,
 | ||
| # to fit within this size. This is to prevent slowdowns caused by extremely
 | ||
| # large covers
 | ||
| maximum_cover_size = (1650, 2200)
 | ||
| 
 | ||
| #: Where to send downloaded news
 | ||
| # When automatically sending downloaded news to a connected device, calibre
 | ||
| # will by default send it to the main memory. By changing this tweak, you can
 | ||
| # control where it is sent. Valid values are "main", "carda", "cardb". Note
 | ||
| # that if there isn't enough free space available on the location you choose,
 | ||
| # the files will be sent to the location with the most free space.
 | ||
| send_news_to_device_location = "main"
 | ||
| 
 | ||
| #: Unified toolbar on macOS
 | ||
| # If you enable this option and restart calibre, the toolbar will be 'unified'
 | ||
| # with the titlebar as is normal for macOS applications. However, doing this has
 | ||
| # various bugs, for instance the minimum width of the toolbar becomes twice
 | ||
| # what it should be and it causes other random bugs on some systems, so turn it
 | ||
| # on at your own risk!
 | ||
| unified_title_toolbar_on_osx = False
 | ||
| 
 | ||
| #: Save original file when converting/polishing from same format to same format
 | ||
| # When calibre does a conversion from the same format to the same format, for
 | ||
| # example, from EPUB to EPUB, the original file is saved, so that in case the
 | ||
| # conversion is poor, you can tweak the settings and run it again. By setting
 | ||
| # this to False you can prevent calibre from saving the original file.
 | ||
| # Similarly, by setting save_original_format_when_polishing to False you can
 | ||
| # prevent calibre from saving the original file when polishing.
 | ||
| save_original_format = True
 | ||
| save_original_format_when_polishing = True
 | ||
| 
 | ||
| #: Number of recently viewed books to show
 | ||
| # Right-clicking the "View" button shows a list of recently viewed books. Control
 | ||
| # how many should be shown, here.
 | ||
| gui_view_history_size = 15
 | ||
| 
 | ||
| #: Change the font size of the Book details panel in the interface
 | ||
| # Change the font size at which book details are rendered in the side panel and
 | ||
| # comments are rendered in the metadata edit dialog. Set it to a positive or
 | ||
| # negative number to increase or decrease the font size.
 | ||
| change_book_details_font_size_by = 0
 | ||
| 
 | ||
| #: What format to default to when using the "Unpack book" feature
 | ||
| # The "Unpack book" feature of calibre allows direct editing of a book format.
 | ||
| # If multiple formats are available, calibre will offer you a choice
 | ||
| # of formats, defaulting to your preferred output format if it is available.
 | ||
| # Set this tweak to a specific value of 'EPUB' or 'AZW3' to always default
 | ||
| # to that format rather than your output format preference.
 | ||
| # Set to a value of 'remember' to use whichever format you chose last time you
 | ||
| # used the "Unpack book" feature.
 | ||
| # Examples:
 | ||
| #   default_tweak_format = None       (Use output format)
 | ||
| #   default_tweak_format = 'EPUB'
 | ||
| #   default_tweak_format = 'remember'
 | ||
| default_tweak_format = None
 | ||
| 
 | ||
| #: Do not preselect a completion when editing authors/tags/series/etc.
 | ||
| # This means that you can make changes and press Enter and your changes will
 | ||
| # not be overwritten by a matching completion. However, if you wish to use the
 | ||
| # completions you will now have to press Tab to select one before pressing
 | ||
| # Enter. Which technique you prefer will depend on the state of metadata in
 | ||
| # your library and your personal editing style.
 | ||
| #
 | ||
| # If preselect_first_completion is False and you want Tab to accept what you
 | ||
| # typed instead of the first completion then set tab_accepts_uncompleted_text
 | ||
| # to True. If you do this then to select from the completions you must press
 | ||
| # the Down or Up arrow keys. The tweak tab_accepts_uncompleted_text is ignored
 | ||
| # if preselect_first_completion is True
 | ||
| preselect_first_completion = False
 | ||
| tab_accepts_uncompleted_text = False
 | ||
| 
 | ||
| #: Completion mode when editing authors/tags/series/etc.
 | ||
| # By default, when completing items, calibre will show you all the candidates
 | ||
| # that start with the text you have already typed. You can instead have it show
 | ||
| # all candidates that contain the text you have already typed. To do this, set
 | ||
| # completion_mode to 'contains'. For example, if you type asi it will match both
 | ||
| # Asimov and Quasimodo, whereas the default behavior would match only Asimov.
 | ||
| completion_mode = 'prefix'
 | ||
| 
 | ||
| #: Sort the list of libraries alphabetically
 | ||
| # The list of libraries in the Copy to library and Quick switch menus are
 | ||
| # normally sorted by most used. However, if there are more than a certain
 | ||
| # number of such libraries, the sorting becomes alphabetic. You can set that
 | ||
| # number here. The default is ten libraries.
 | ||
| many_libraries = 10
 | ||
| 
 | ||
| #: Choose available output formats for conversion
 | ||
| # Restrict the list of available output formats in the conversion dialogs.
 | ||
| # For example, if you only want to convert to EPUB and AZW3, change this to
 | ||
| # restrict_output_formats = ['EPUB', 'AZW3']. The default value of None causes
 | ||
| # all available output formats to be present.
 | ||
| restrict_output_formats = None
 | ||
| 
 | ||
| #: Set the thumbnail image quality used by the Content server
 | ||
| # The quality of a thumbnail is largely controlled by the compression quality
 | ||
| # used when creating it. Set this to a larger number to improve the quality.
 | ||
| # Note that the thumbnails get much larger with larger compression quality
 | ||
| # numbers.
 | ||
| # The value can be between 50 and 99
 | ||
| content_server_thumbnail_compression_quality = 75
 | ||
| 
 | ||
| #: Image file types to treat as e-books when dropping onto the "Book details" panel
 | ||
| # Normally, if you drop any image file in a format known to calibre onto the
 | ||
| # "Book details" panel, it will be used to set the cover. If you want to store
 | ||
| # some image types as e-books instead, you can set this tweak.
 | ||
| # Examples:
 | ||
| #    cover_drop_exclude = {'tiff', 'webp'}
 | ||
| cover_drop_exclude = ()
 | ||
| 
 | ||
| #: Show the Saved searches box in the Search bar
 | ||
| # In newer versions of calibre, only a single button that allows you to add a
 | ||
| # new Saved search is shown in the Search bar. If you would like to have the
 | ||
| # old Saved searches box with its two buttons back, set this tweak to True.
 | ||
| show_saved_search_box = False
 | ||
| 
 | ||
| #: Exclude fields when copy/pasting metadata
 | ||
| # You can ask calibre to not paste some metadata fields when using the
 | ||
| # Edit metadata->Copy metadata/Paste metadata actions. For example,
 | ||
| # exclude_fields_on_paste = ['cover', 'timestamp', '#mycolumn']
 | ||
| # to prevent pasting of the cover, Date and custom column, mycolumn.
 | ||
| # You can also add a shortcut in Preferences->Shortcuts->Edit metadata
 | ||
| # to paste metadata ignoring this tweak.
 | ||
| exclude_fields_on_paste = []
 | ||
| 
 | ||
| #: Skip internet connected check
 | ||
| # Skip checking whether the internet is available before downloading news.
 | ||
| # Useful if for some reason your operating systems network checking
 | ||
| # facilities are not reliable (for example NetworkManager on Linux).
 | ||
| skip_network_check = False
 | ||
| 
 | ||
| #: Tab stop width in the template editor
 | ||
| # Sets the width of the tab stop in the template editor in "average characters".
 | ||
| # For example, a value of 1 results in a space with the width of one average character.
 | ||
| template_editor_tab_stop_width = 4
 | ||
| 
 | ||
| #: Value for undefined numbers when sorting
 | ||
| # Sets the value to use for undefined numbers when sorting.
 | ||
| # For example, the value -10 sorts undefined numbers as if they were set to -10.
 | ||
| # Use 'maximum' for the largest possible number. Use 'minimum' for the smallest
 | ||
| # possible number. Quotes are optional if entering a number.
 | ||
| # Examples:
 | ||
| #   value_for_undefined_numbers_when_sorting = -100
 | ||
| #   value_for_undefined_numbers_when_sorting = '2'
 | ||
| #   value_for_undefined_numbers_when_sorting = -0.01
 | ||
| #   value_for_undefined_numbers_when_sorting = 'minimum'
 | ||
| #   value_for_undefined_numbers_when_sorting = 'maximum'
 | ||
| value_for_undefined_numbers_when_sorting = 0
 | ||
| 
 | ||
| #: Allow template database functions in composite columns
 | ||
| # If True then the template database functions book_values() and book_count()
 | ||
| # can be used in composite custom columns. Note: setting this tweak to True and
 | ||
| # using these functions in composites can be very slow.
 | ||
| # Default: False
 | ||
| allow_template_database_functions_in_composites = False
 |