ui and config properties updated
authorNiki Roo <niki@nikiroo.be>
Tue, 21 May 2019 16:01:22 +0000 (18:01 +0200)
committerNiki Roo <niki@nikiroo.be>
Tue, 21 May 2019 16:01:22 +0000 (18:01 +0200)
src/be/nikiroo/fanfix/Instance.java
src/be/nikiroo/fanfix/bundles/Config.java
src/be/nikiroo/fanfix/bundles/UiConfig.java
src/be/nikiroo/fanfix/bundles/config.properties
src/be/nikiroo/fanfix/bundles/ui.properties

index 2479c612dc45b97cf224158c36640c88721ecc42..b7a284ccbb82e11c760c6b5973faacbc3bc2b14f 100644 (file)
@@ -108,12 +108,12 @@ public class Instance {
                lib = createDefaultLibrary(remoteDir);
 
                // create cache and TMP
-               Image.setTemporaryFilesRoot(new File(configDir, "tmp.images"));
-               File tmp = getFile(Config.CACHE_DIR);
-               if (tmp == null) {
-                       // Could have used: System.getProperty("java.io.tmpdir")
-                       tmp = new File(configDir, "tmp");
+               File tmp = getFile(Config.CACHE_DIR, new File(configDir, "tmp"));
+               if (!tmp.isAbsolute()) {
+                       tmp = new File(configDir, tmp.getPath());
                }
+               Image.setTemporaryFilesRoot(new File(tmp.getParent(), "tmp.images"));
+
                String ua = config.getString(Config.USER_AGENT, "");
                try {
                        int hours = config.getInteger(Config.CACHE_MAX_TIME_CHANGING, 0);
@@ -128,18 +128,12 @@ public class Instance {
                cache.setTraceHandler(tracer);
 
                // readerTmp / coverDir
-               readerTmp = getFile(UiConfig.CACHE_DIR_LOCAL_READER);
-               if (readerTmp == null) {
-                       readerTmp = new File(configDir, "tmp-reader");
-               }
+               readerTmp = getFile(UiConfig.CACHE_DIR_LOCAL_READER, new File(
+                               configDir, "tmp-reader"));
 
-               coverDir = getFile(Config.DEFAULT_COVERS_DIR);
-               if (coverDir != null && !coverDir.exists()) {
-                       tracer.error(new IOException(
-                                       "The 'default covers' directory does not exists: "
-                                                       + coverDir));
-                       coverDir = null;
-               }
+               coverDir = getFile(Config.DEFAULT_COVERS_DIR, new File(configDir,
+                               "covers"));
+               coverDir.mkdirs();
 
                try {
                        tempFiles = new TempFiles("fanfix");
@@ -463,9 +457,9 @@ public class Instance {
 
                String remoteLib = config.getString(Config.DEFAULT_LIBRARY);
                if (remoteLib == null || remoteLib.trim().isEmpty()) {
-                       String libDir = System.getProperty("fanfix.libdir");
+                       String libDir = System.getenv("BOOKS_DIR");
                        if (libDir == null || libDir.isEmpty()) {
-                               libDir = config.getString(Config.LIBRARY_DIR);
+                               libDir = config.getString(Config.LIBRARY_DIR, "$HOME/Books");
                        }
                        try {
                                lib = new LocalLibrary(getFile(libDir));
@@ -513,8 +507,13 @@ public class Instance {
         * 
         * @return the path
         */
-       private static File getFile(Config id) {
-               return getFile(config.getString(id));
+       private static File getFile(Config id, File def) {
+               String path = config.getString(id);
+               if (path != null && path.isEmpty()) {
+                       path = def.getPath();
+               }
+
+               return getFile(path);
        }
 
        /**
@@ -522,8 +521,13 @@ public class Instance {
         * 
         * @return the path
         */
-       private static File getFile(UiConfig id) {
-               return getFile(uiconfig.getString(id));
+       private static File getFile(UiConfig id, File def) {
+               String path = uiconfig.getString(id);
+               if (path != null && path.isEmpty()) {
+                       path = def.getPath();
+               }
+
+               return getFile(path);
        }
 
        /**
@@ -546,16 +550,28 @@ public class Instance {
        }
 
        /**
-        * Return the home directory from the system properties.
+        * Return the home directory from the environment (FANFIX_DIR) or the system
+        * properties.
+        * <p>
+        * The environment variable is tested first. Then, the custom property
+        * "fanfix.home" is tried, followed by the usual "user.home" then
+        * "java.io.tmp" if nothing else is found.
         * 
         * @return the home
         */
        private static String getHome() {
-               String home = System.getProperty("fanfix.home");
+               String home = System.getenv("FANFIX_DIR");
                if (home != null && new File(home).isFile()) {
                        home = null;
                }
 
+               if (home == null || home.trim().isEmpty()) {
+                       home = System.getProperty("fanfix.home");
+                       if (home != null && new File(home).isFile()) {
+                               home = null;
+                       }
+               }
+
                if (home == null || home.trim().isEmpty()) {
                        home = System.getProperty("user.home");
                        if (!new File(home).isDirectory()) {
index 99655a83423531816f4bee899b82490048dea321..028f9650a23890bf1cde919b8f495239c7414cfa 100644 (file)
@@ -22,8 +22,8 @@ public enum Config {
        @Meta(description = "The type of output for the Local Reader for non-images documents",//
        format = Format.FIXED_LIST, list = { "CBZ", "HTML" }, def = "CBZ")
        IMAGES_DOCUMENT_TYPE, //
-       @Meta(description = "The directory where to store temporary files (defaults to directory 'tmp' in the conig directory, usually $HOME/.fanfix/tmp); it must be an absolute path, $HOME notation is supported, / is always accepted as directory separator",//
-       format = Format.DIRECTORY)
+       @Meta(description = "The directory where to store temporary files; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
+       format = Format.DIRECTORY, def = "tmp/")
        CACHE_DIR, //
        @Meta(description = "The delay in hours after which a cached resource that is thought to change ~often is considered too old and triggers a refresh delay (or 0 for no cache, or -1 for infinite time)", //
        format = Format.INT, def = "24")
@@ -34,8 +34,8 @@ public enum Config {
        @Meta(description = "The user-agent to use to download files",//
        def = "Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0 -- ELinks/0.9.3 (Linux 2.6.11 i686; 80x24) -- Fanfix (https://github.com/nikiroo/fanfix/)")
        USER_AGENT, //
-       @Meta(description = "The directory where to get the default story covers; it must be an absolute path, $HOME notation is supported, / is always accepted as directory separator",//
-       format = Format.DIRECTORY, def = "$HOME/.fanfix/covers/")
+       @Meta(description = "The directory where to get the default story covers; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
+       format = Format.DIRECTORY, def = "covers/")
        DEFAULT_COVERS_DIR, //
        @Meta(description = "The default library to use (KEY:SERVER:PORT), or empty for the local library",//
        format = Format.STRING, def = "")
@@ -55,8 +55,8 @@ public enum Config {
        @Meta(description = "The subkeys that the server will allow, including the modes", //
        array = true, format = Format.STRING, def = "")
        SERVER_ALLOWED_SUBKEYS, //
-       @Meta(description = "The directory where to store the library; it must be an absolute path, $HOME notation is supported, / is always accepted as directory separator",//
-       format = Format.DIRECTORY, def = "$HOME/Books")
+       @Meta(description = "The directory where to store the library (can be overriden by the envvironment variable \"BOOKS_DIR\"; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
+       format = Format.DIRECTORY, def = "$HOME/Books/")
        LIBRARY_DIR, //
        @Meta(description = "Show debug information on errors",//
        format = Format.BOOLEAN, def = "false")
index 0fac1168324caf7fc63a601b9f4ec77bed6b8cbd..0640db830bbbfb477c04843b01c3739c51b53d5d 100644 (file)
@@ -10,21 +10,28 @@ import be.nikiroo.utils.resources.Meta.Format;
  */
 @SuppressWarnings("javadoc")
 public enum UiConfig {
-       @Meta(format = Format.DIRECTORY, info = "absolute path, $HOME variable supported, / is always accepted as dir separator", description = "The directory where to store temporary files, defaults to directory 'tmp.reader' in the config directory (usually $HOME/.fanfix)")
+       @Meta(description = "The directory where to store temporary files for the GUI reader; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator",//
+       format = Format.DIRECTORY, def = "tmp-reader/")
        CACHE_DIR_LOCAL_READER, //
-       @Meta(format = Format.COMBO_LIST, list = { "INFO_TEXT", "EPUB", "HTML",
-                       "TEXT" }, info = "One of the known output type", description = "The type of output for the GUI Reader for non-images documents")
+       @Meta(description = "How to save the cached stories for the GUI Reader (non-images documents) -- those files will be sent to the reader",//
+       format = Format.COMBO_LIST, list = { "INFO_TEXT", "EPUB", "HTML", "TEXT" }, def = "EPUB")
        GUI_NON_IMAGES_DOCUMENT_TYPE, //
-       @Meta(format = Format.COMBO_LIST, list = { "CBZ", "HTML" }, description = "The type of output for the GUI Reader for images documents")
+       @Meta(description = "How to save the cached stories for the GUI Reader (images documents) -- those files will be sent to the reader",//
+       format = Format.COMBO_LIST, list = { "CBZ", "HTML" }, def = "CBZ")
        GUI_IMAGES_DOCUMENT_TYPE, //
-       @Meta(format = Format.BOOLEAN, description = "Use the internal reader for images documents -- this is TRUE by default")
+       @Meta(description = "Use the internal reader for images documents",//
+       format = Format.BOOLEAN, def = "true")
        IMAGES_DOCUMENT_USE_INTERNAL_READER, //
-       @Meta(info = "A command to start", description = "The command launched for images documents -- default to the system default for the current file type")
+       @Meta(description = "The external viewer for images documents (or empty to use the system default program for the given file type)",//
+       format = Format.STRING)
        IMAGES_DOCUMENT_READER, //
-       @Meta(format = Format.BOOLEAN, description = "Use the internal reader for non images documents -- this is TRUE by default")
+       @Meta(description = "Use the internal reader for non-images documents",//
+       format = Format.BOOLEAN, def = "true")
        NON_IMAGES_DOCUMENT_USE_INTERNAL_READER, //
-       @Meta(info = "A command to start", description = "The command launched for non images documents -- default to the system default for the current file type")
+       @Meta(description = "The external viewer for non-images documents (or empty to use the system default program for the given file type)",//
+       format = Format.STRING)
        NON_IMAGES_DOCUMENT_READER, //
-       @Meta(format = Format.COLOR, description = "The background colour if you don't want the default system one")
+       @Meta(description = "The background colour of the library if you don't like the default system one",//
+       format = Format.COLOR)
        BACKGROUND_COLOR, //
 }
index d03fc611714dda56d3e7daf8969c906eba83eaca..604483fb52be3d4d3d032e517c9d0c6fbf61d2aa 100644 (file)
 #
 
 
-# language (example: en-GB, fr-BE...) or nothing for default system language
-# (FORMAT: LOCALE) Force the language (can be overwritten again with the env variable $LANG)
-LANG = 
-# reader type (CLI = simple output to console, TUI = Text User Interface with menus and windows, GUI = a GUI with locally stored files)
-# (FORMAT: FIXED_LIST) Select the default reader to use to read stories
-# ALLOWED VALUES: "CLI" "GUI" "TUI"
-READER_TYPE = 
+# The language (example: en-GB, fr-BE...) or nothing for default system language (can be overwritten with the variable $LANG)
+# (FORMAT: LOCALE) 
+#LANG = 
+# The default reader type to use to read stories:
+# CLI = simple output to console
+# TUI = a Text User Interface with menus and windows, based upon Jexer
+# GUI = a GUI with locally stored files, based upon Swing
+# (FORMAT: FIXED_LIST) 
+# ALLOWED VALUES: "CLI", "GUI", "TUI"
+#READER_TYPE = GUI
 # The type of output for the Local Reader for non-images documents
-# (FORMAT: COMBO_LIST) One of the known output type
-# ALLOWED VALUES: "INFO_TEXT" "EPUB" "HTML" "TEXT"
-NON_IMAGES_DOCUMENT_TYPE = INFO_TEXT
-# The type of output for the Local Reader for images documents
-# (FORMAT: COMBO_LIST) 
-# ALLOWED VALUES: "CBZ" "HTML"
-IMAGES_DOCUMENT_TYPE = CBZ
-# absolute path, $HOME variable supported, / is always accepted as dir separator
-# (FORMAT: DIRECTORY) The directory where to store temporary files, defaults to directory 'tmp' in the conig directory (usually $HOME/.fanfix)
-CACHE_DIR = 
-# delay in hours, or 0 for no cache, or -1 for infinite time (default)
-# (FORMAT: INT) The delay after which a cached resource that is thought to change ~often is considered too old and triggers a refresh
-CACHE_MAX_TIME_CHANGING = 24
-# delay in hours, or 0 for no cache, or -1 for infinite time (default)
-# (FORMAT: INT) The delay after which a cached resource that is thought to change rarely is considered too old and triggers a refresh
-CACHE_MAX_TIME_STABLE = 720
-# string (FORMAT: STRING) The user-agent to use to download files
-USER_AGENT = Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0 -- ELinks/0.9.3 (Linux 2.6.11 i686; 80x24)
-# absolute path, $HOME variable supported, / is always accepted as dir separator
-# (FORMAT: DIRECTORY) The directory where to get the default story covers
-DEFAULT_COVERS_DIR = $HOME/.fanfix/covers/
-# string (FORMAT: STRING) The default library to use (KEY:SERVER:PORT), or empty for the local library
-DEFAULT_LIBRARY = 
-# The port on which we can start the server
-# (FORMAT: INT) A valid port
-SERVER_PORT = 58365
-# The encryption key for the server (NOT including a subkey)
-# (FORMAT: PASSWORD) cannot contain the pipe character (|)
-SERVER_KEY = 
-# Allow write access to the clients by default (download story, move story...)
+# (FORMAT: FIXED_LIST) 
+# ALLOWED VALUES: "INFO_TEXT", "EPUB", "HTML", "TEXT"
+#NON_IMAGES_DOCUMENT_TYPE = INFO_TEXT
+# The type of output for the Local Reader for non-images documents
+# (FORMAT: FIXED_LIST) 
+# ALLOWED VALUES: "CBZ", "HTML"
+#IMAGES_DOCUMENT_TYPE = CBZ
+# The directory where to store temporary files; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator
+# (FORMAT: DIRECTORY) 
+#CACHE_DIR = tmp/
+# The delay in hours after which a cached resource that is thought to change ~often is considered too old and triggers a refresh delay (or 0 for no cache, or -1 for infinite time)
+# (FORMAT: INT) 
+#CACHE_MAX_TIME_CHANGING = 24
+# The delay in hours after which a cached resource that is thought to change rarely is considered too old and triggers a refresh delay (or 0 for no cache, or -1 for infinite time)
+# (FORMAT: INT) 
+#CACHE_MAX_TIME_STABLE = 720
+# The user-agent to use to download files
+# (FORMAT: STRING) 
+#USER_AGENT = Mozilla/5.0 (X11; Linux x86_64; rv:44.0) Gecko/20100101 Firefox/44.0 -- ELinks/0.9.3 (Linux 2.6.11 i686; 80x24) -- Fanfix (https://github.com/nikiroo/fanfix/)
+# The directory where to get the default story covers; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator
+# (FORMAT: DIRECTORY) 
+#DEFAULT_COVERS_DIR = covers/
+# The default library to use (KEY:SERVER:PORT), or empty for the local library
+# (FORMAT: STRING) 
+#DEFAULT_LIBRARY = 
+# The port on which we can start the server (must be a valid port, from 1 to 65535)
+# (FORMAT: INT) 
+#SERVER_PORT = 58365
+# The encryption key for the server (NOT including a subkey), it cannot contain the pipe character "|" but can be empty (it is *still* encrypted, but with an empty, easy to guess key)
+# (FORMAT: PASSWORD) 
+#SERVER_KEY = 
+# Allow write access to the clients (download story, move story...) without RW subkeys
 # (FORMAT: BOOLEAN) 
-SERVER_RW = 
-# If not empty, only the EXACT listed sources will be available for clients
-# (FORMAT: STRING) list is comma-separated (,) and values are surrounded by double quotes ("); any double quote in the value must be backslash-escaped (with \")
-SERVER_WHITELIST = 
+#SERVER_RW = true
+# If not empty, only the EXACT listed sources will be available for clients without BL subkeys
+# (FORMAT: STRING) 
+# (This item accepts a list of escaped comma-separated values)
+#SERVER_WHITELIST = 
 # The subkeys that the server will allow, including the modes
-# (FORMAT: STRING) list is comma-separated (,) and values are surrounded by double quotes ("); any double quote in the value must be backslash-escaped (with \")
-SERVER_ALLOWED_SUBKEYS = 
-# absolute path, $HOME variable supported, / is always accepted as dir separator
-# (FORMAT: DIRECTORY) The directory where to store the library
-LIBRARY_DIR = $HOME/Books
-# boolean (FORMAT: BOOLEAN) Show debug information on errors
-DEBUG_ERR = false
-# boolean (FORMAT: BOOLEAN) Show debug trace information
-DEBUG_TRACE = false
-# image format (FORMAT: COMBO_LIST) Image format to use for cover images
-# ALLOWED VALUES: "PNG" "JPG" "BMP"
-IMAGE_FORMAT_COVER = PNG
-# image format (FORMAT: COMBO_LIST) Image format to use for content images
-# ALLOWED VALUES: "PNG" "JPG" "BMP"
-IMAGE_FORMAT_CONTENT = JPG
+# (FORMAT: STRING) 
+# (This item accepts a list of escaped comma-separated values)
+#SERVER_ALLOWED_SUBKEYS = 
+# The directory where to store the library (can be overriden by the envvironment variable "BOOKS_DIR"; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator
+# (FORMAT: DIRECTORY) 
+#LIBRARY_DIR = $HOME/Books/
+# Show debug information on errors
+# (FORMAT: BOOLEAN) 
+#DEBUG_ERR = false
+# Show debug trace information
+# (FORMAT: BOOLEAN) 
+#DEBUG_TRACE = false
+# Image format to use for cover images
+# (FORMAT: FIXED_LIST) 
+# ALLOWED VALUES: "PNG", "JPG", "BMP"
+#IMAGE_FORMAT_COVER = PNG
+# Image format to use for content images
+# (FORMAT: FIXED_LIST) 
+# ALLOWED VALUES: "PNG", "JPG", "BMP"
+#IMAGE_FORMAT_CONTENT = jpg
+# 
 # This item is used as a group, its content is not expected to be used.
-LATEX_LANG = 
-# LaTeX output language: English
-# (FORMAT: STRING) LaTeX full name
-LATEX_LANG_EN = english
-# LaTeX output language: French
-# (FORMAT: STRING) LaTeX full name
-LATEX_LANG_FR = french
+#LATEX_LANG = 
+# LaTeX output language (full name) for "English"
+# (FORMAT: STRING) 
+#LATEX_LANG_EN = english
+# LaTeX output language (full name) for "French"
+# (FORMAT: STRING) 
+#LATEX_LANG_FR = french
 # other 'by' prefixes before author name, used to identify the author
 # (FORMAT: STRING) 
-# (This item accept a list of comma-separated values)
-BYS = by,par,de,©,(c)
+# (This item accepts a list of escaped comma-separated values)
+#BYS = "by","par","de","©","(c)"
 # List of languages codes used for chapter identification (should not be changed)
-# (FORMAT: STRING) EN,FR
-# (This item accept a list of comma-separated values)
-CHAPTER = EN,FR
-# Chapter identification String: English
-# (FORMAT: STRING) used to identify a starting chapter in text mode
-CHAPTER_EN = Chapter
-# Chapter identification String: French
-# (FORMAT: STRING) used to identify a starting chapter in text mode
-CHAPTER_FR = Chapitre
-# Login information (username) for YiffStar to have access to all the stories (should not be necessary anymore)
 # (FORMAT: STRING) 
-LOGIN_YIFFSTAR_USER = 
-# Login information (password) for YiffStar to have access to all the stories (should not be necessary anymore)
+# (This item accepts a list of escaped comma-separated values)
+#CHAPTER = "EN","FR"
+# Chapter identification string in English, used to identify a starting chapter in text mode
+# (FORMAT: STRING) 
+#CHAPTER_EN = Chapter
+# Chapter identification string in French, used to identify a starting chapter in text mode
+# (FORMAT: STRING) 
+#CHAPTER_FR = Chapitre
+# Login for YiffStar to have access to all the stories (should not be necessary anymore, but can still be used)
+# (FORMAT: STRING) 
+#LOGIN_YIFFSTAR_USER = 
+# Password for YiffStar to have access to all the stories (should not be necessary anymore, but can still be used)
 # (FORMAT: PASSWORD) 
-LOGIN_YIFFSTAR_PASS = 
-# If the last update check was done at least that many days, check for updates at startup (-1 for 'no checks' -- default is 1 day)
+#LOGIN_YIFFSTAR_PASS = 
+# If the last update check was done at least that many days ago, check for updates at startup (-1 for 'no checks')
 # (FORMAT: INT) 
-UPDATE_INTERVAL = 
-#  (FORMAT: STRING) Format is ((user(:pass)@)proxy:port), with ':' being system proxy and an empty String being no proxy
-USE_PROXY = 
+#UPDATE_INTERVAL = 1
+# The proxy server to use under the format 'user:pass@proxy:port', 'user@proxy:port', 'proxy:port' or ':' alone (system proxy); an empty String means no proxy
+# (FORMAT: STRING) 
+#USE_PROXY = 
 # FimFiction APIKEY credentials
-#This item is used as a group, its content is not expected to be used.
-LOGIN_FIMFICTION_APIKEY = 
-# An API key required to create a token from FimFiction
+# FimFiction can be queried via an API, but requires an API key to do that. One has been created for this program, but if you have another API key you can set it here. You can also set a login and password instead, in that case, a new API key will be generated (and stored) if you still haven't set one.
+# This item is used as a group, its content is not expected to be used.
+#LOGIN_FIMFICTION_APIKEY = 
+# The login of the API key used to create a new token from FimFiction
 # (FORMAT: STRING) 
-LOGIN_FIMFICTION_APIKEY_CLIENT_ID = 
-# An API key required to create a token from FimFiction
+#LOGIN_FIMFICTION_APIKEY_CLIENT_ID = 
+# The password of the API key used to create a new token from FimFiction
 # (FORMAT: PASSWORD) 
-LOGIN_FIMFICTION_APIKEY_CLIENT_SECRET = 
-# Do not use the new API, even if we have a token, and force HTML scraping (default is false, use API if token or ID present)
+#LOGIN_FIMFICTION_APIKEY_CLIENT_SECRET = 
+# Do not use the new API, even if we have a token, and force HTML scraping
 # (FORMAT: BOOLEAN) 
-LOGIN_FIMFICTION_APIKEY_FORCE_HTML = 
-# A token is required to use the beta APIv2 from FimFiction (see APIKEY_CLIENT_*)
+#LOGIN_FIMFICTION_APIKEY_FORCE_HTML = false
+# The token required to use the beta APIv2 from FimFiction (see APIKEY_CLIENT_* if you want to generate a new one from your own API key)
 # (FORMAT: PASSWORD) 
-LOGIN_FIMFICTION_APIKEY_TOKEN = Bearer WnZ5oHlzQoDocv1GcgHfcoqctHkSwL-D
+#LOGIN_FIMFICTION_APIKEY_TOKEN = Bearer WnZ5oHlzQoDocv1GcgHfcoqctHkSwL-D
index 238e574ce070f18e896e22678b980b1e92fe7c72..dbb1bb8b8a3fcd243b23474c2a2683b47294ab74 100644 (file)
@@ -2,29 +2,29 @@
 #
 
 
-# The directory where to store temporary files, defaults to directory 'tmp.reader' in the config directory (usually $HOME/.fanfix)
-# (FORMAT: DIRECTORY) absolute path, $HOME variable supported, / is always accepted as dir separator
-CACHE_DIR_LOCAL_READER = 
-# The type of output for the GUI Reader for non-images documents
-# (FORMAT: COMBO_LIST) One of the known output type
-# ALLOWED VALUES: "INFO_TEXT" "EPUB" "HTML" "TEXT"
-GUI_NON_IMAGES_DOCUMENT_TYPE = HTML
-# The type of output for the GUI Reader for images documents
+# The directory where to store temporary files for the GUI reader; any relative path uses the applciation config directory as base, $HOME notation is supported, / is always accepted as directory separator
+# (FORMAT: DIRECTORY) 
+#CACHE_DIR_LOCAL_READER = tmp-reader/
+# How to save the cached stories for the GUI Reader (non-images documents) -- those files will be sent to the reader
 # (FORMAT: COMBO_LIST) 
-# ALLOWED VALUES: "CBZ" "HTML"
-GUI_IMAGES_DOCUMENT_TYPE = CBZ
-# Use the internal reader for images documents -- this is TRUE by default
+# ALLOWED VALUES: "INFO_TEXT", "EPUB", "HTML", "TEXT"
+#GUI_NON_IMAGES_DOCUMENT_TYPE = EPUB
+# How to save the cached stories for the GUI Reader (images documents) -- those files will be sent to the reader
+# (FORMAT: COMBO_LIST) 
+# ALLOWED VALUES: "CBZ", "HTML"
+#GUI_IMAGES_DOCUMENT_TYPE = CBZ
+# Use the internal reader for images documents
 # (FORMAT: BOOLEAN) 
-IMAGES_DOCUMENT_USE_INTERNAL_READER = 
-# The command launched for images documents -- default to the system default for the current file type
-# (FORMAT: STRING) A command to start
-IMAGES_DOCUMENT_READER = 
-# Use the internal reader for non images documents -- this is TRUE by default
+#IMAGES_DOCUMENT_USE_INTERNAL_READER = true
+# The external viewer for images documents (or empty to use the system default program for the given file type)
+# (FORMAT: STRING) 
+#IMAGES_DOCUMENT_READER = 
+# Use the internal reader for non-images documents
 # (FORMAT: BOOLEAN) 
-NON_IMAGES_DOCUMENT_USE_INTERNAL_READER = 
-# The command launched for non images documents -- default to the system default for the current file type
-# (FORMAT: STRING) A command to start
-NON_IMAGES_DOCUMENT_READER = 
-# The background colour if you don't want the default system one
+#NON_IMAGES_DOCUMENT_USE_INTERNAL_READER = true
+# The external viewer for non-images documents (or empty to use the system default program for the given file type)
+# (FORMAT: STRING) 
+#NON_IMAGES_DOCUMENT_READER = 
+# The background colour of the library if you don't like the default system one
 # (FORMAT: COLOR) 
-BACKGROUND_COLOR = #FFFFFF
+#BACKGROUND_COLOR =