aboutsummaryrefslogtreecommitdiffstats
path: root/src/epy_reader/settings.py
diff options
context:
space:
mode:
authorBenawi Adha <benawiadha@gmail.com>2022-10-02 21:22:38 +0700
committerBenawi Adha <benawiadha@gmail.com>2022-10-02 21:22:38 +0700
commit258c30d2e088cd4ab091a53794da3f93af79915d (patch)
treef49340bf565deb20c730358af74a01bcc231de53 /src/epy_reader/settings.py
parentd43533f01d9d5baf5f78b71f832641382bd5962a (diff)
downloadepy-258c30d2e088cd4ab091a53794da3f93af79915d.tar.gz
Major refactor: breakdown epy.py script
into package project structure for easier development Squashed commit of the following: commit 01309b961a4ab32394bff0d90949b57435dfda47 Author: Benawi Adha <benawiadha@gmail.com> Date: Sun Oct 2 21:15:04 2022 +0700 Fix missing objects commit aab2e773c30b255c81b1250b3b20967d5da40338 Author: Benawi Adha <benawiadha@gmail.com> Date: Sun Oct 2 21:09:31 2022 +0700 Update README.md commit d4e98926bcd9b00ce0410ad71249d24e6315abc5 Author: Benawi Adha <benawiadha@gmail.com> Date: Sun Oct 2 21:07:28 2022 +0700 Add keywords in pyproject.toml commit 432055af8245560a3ff2e046aef0b4e87da44930 Author: Benawi Adha <benawiadha@gmail.com> Date: Sun Oct 2 21:04:34 2022 +0700 Bump version and deprecete setup.py commit 51dd15aab8f8ff5996f822f8378e813f0b9fb80d Author: Benawi Adha <benawiadha@gmail.com> Date: Sun Oct 2 20:56:38 2022 +0700 Formatting commit 81fb35e3b6fa0e27d79ef1da77202ed81eb99500 Author: Benawi Adha <benawiadha@gmail.com> Date: Sun Oct 2 20:55:08 2022 +0700 Fix speakers module commit 3b852e7c59b38d5a28520038e35f50a95270d2f1 Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:52:46 2022 +0700 Fix circular import commit 061e8a2649dabacd28a9e2f972559475316c654c Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:39:27 2022 +0700 Run formatting commit abc2d0ab156992c63dc04745d14a69679a60accb Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:39:00 2022 +0700 Update isort and black config in pyproject commit 5dc2e41bab5b997bd719bdc1561eb51ba0c17a83 Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:31:00 2022 +0700 Add app Config commit ed485a2ea8281585bf86dc5772f0c6dd9c803cc4 Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:23:02 2022 +0700 Update debugpy script commit 68b0553dd4d63eb4b847132c68ea4018587fa8ec Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:14:11 2022 +0700 Connect reader to main script commit 63c3dd176f18a784a4ed2e88aa72b13d1c2b0990 Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 20:11:17 2022 +0700 Implement reader commit ce5eec8fb4e1db3870a16a07541365cd777d6c4c Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 19:29:49 2022 +0700 Fix script in pyproject.toml commit 941e8e49f1593731fb582d92084206772b3f0442 Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 19:28:39 2022 +0700 Rename modules commit 5a3e7f766aee774c09b3b5336f3a2968e9cb1d0c Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 19:28:20 2022 +0700 Rename tool method commit 3c0503ff475cb7eff8b12d3be0bda7a38efe1072 Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 19:27:03 2022 +0700 Add ebooks lib commit b5f71c3296a7d6f36454f6e1cbe84e15a45092ee Author: Benawi Adha <benawiadha@gmail.com> Date: Sat Oct 1 17:25:11 2022 +0700 Initial reorganization
Diffstat (limited to 'src/epy_reader/settings.py')
-rw-r--r--src/epy_reader/settings.py133
1 files changed, 133 insertions, 0 deletions
diff --git a/src/epy_reader/settings.py b/src/epy_reader/settings.py
new file mode 100644
index 0000000..f09bc98
--- /dev/null
+++ b/src/epy_reader/settings.py
@@ -0,0 +1,133 @@
+import curses
+from dataclasses import dataclass, field
+from enum import Enum
+from typing import List, Optional, Tuple
+
+from epy_reader.models import Key
+
+
+class DoubleSpreadPadding(Enum):
+ LEFT = 10
+ MIDDLE = 7
+ RIGHT = 10
+
+
+# add image viewers here
+# sorted by most widely used
+VIEWER_PRESET_LIST = (
+ "feh",
+ "imv",
+ "gio",
+ "gnome-open",
+ "gvfs-open",
+ "xdg-open",
+ "kde-open",
+ "firefox",
+)
+
+DICT_PRESET_LIST = (
+ "wkdict",
+ "sdcv",
+ "dict",
+)
+
+
+@dataclass(frozen=True)
+class Settings:
+ DefaultViewer: str = "auto"
+ DictionaryClient: str = "auto"
+ ShowProgressIndicator: bool = True
+ PageScrollAnimation: bool = True
+ MouseSupport: bool = False
+ StartWithDoubleSpread: bool = False
+ # -1 is default terminal fg/bg colors
+ DefaultColorFG: int = -1
+ DefaultColorBG: int = -1
+ DarkColorFG: int = 252
+ DarkColorBG: int = 235
+ LightColorFG: int = 238
+ LightColorBG: int = 253
+ SeamlessBetweenChapters: bool = False
+ PreferredTTSEngine: Optional[str] = None
+ TTSEngineArgs: List[str] = field(default_factory=list)
+
+
+@dataclass(frozen=True)
+class CfgDefaultKeymaps:
+ ScrollUp: str = "k"
+ ScrollDown: str = "j"
+ PageUp: str = "h"
+ PageDown: str = "l"
+ # HalfScreenUp: str = "h"
+ # HalfScreenDown: str
+ NextChapter: str = "L"
+ PrevChapter: str = "H"
+ BeginningOfCh: str = "g"
+ EndOfCh: str = "G"
+ Shrink: str = "-"
+ Enlarge: str = "+"
+ SetWidth: str = "="
+ Metadata: str = "M"
+ DefineWord: str = "d"
+ TableOfContents: str = "t"
+ Follow: str = "f"
+ OpenImage: str = "o"
+ RegexSearch: str = "/"
+ ShowHideProgress: str = "s"
+ MarkPosition: str = "m"
+ JumpToPosition: str = "`"
+ AddBookmark: str = "b"
+ ShowBookmarks: str = "B"
+ Quit: str = "q"
+ Help: str = "?"
+ SwitchColor: str = "c"
+ TTSToggle: str = "!"
+ DoubleSpreadToggle: str = "D"
+ Library: str = "R"
+
+
+@dataclass(frozen=True)
+class CfgBuiltinKeymaps:
+ ScrollUp: Tuple[int, ...] = (curses.KEY_UP,)
+ ScrollDown: Tuple[int, ...] = (curses.KEY_DOWN,)
+ PageUp: Tuple[int, ...] = (curses.KEY_PPAGE, curses.KEY_LEFT)
+ PageDown: Tuple[int, ...] = (curses.KEY_NPAGE, ord(" "), curses.KEY_RIGHT)
+ BeginningOfCh: Tuple[int, ...] = (curses.KEY_HOME,)
+ EndOfCh: Tuple[int, ...] = (curses.KEY_END,)
+ TableOfContents: Tuple[int, ...] = (9, ord("\t"))
+ Follow: Tuple[int, ...] = (10,)
+ Quit: Tuple[int, ...] = (3, 27, 304)
+
+
+@dataclass(frozen=True)
+class Keymap:
+ # HalfScreenDown: Tuple[Key, ...]
+ # HalfScreenUp: Tuple[Key, ...]
+ AddBookmark: Tuple[Key, ...]
+ BeginningOfCh: Tuple[Key, ...]
+ DefineWord: Tuple[Key, ...]
+ DoubleSpreadToggle: Tuple[Key, ...]
+ EndOfCh: Tuple[Key, ...]
+ Enlarge: Tuple[Key, ...]
+ Follow: Tuple[Key, ...]
+ Help: Tuple[Key, ...]
+ JumpToPosition: Tuple[Key, ...]
+ Library: Tuple[Key, ...]
+ MarkPosition: Tuple[Key, ...]
+ Metadata: Tuple[Key, ...]
+ NextChapter: Tuple[Key, ...]
+ OpenImage: Tuple[Key, ...]
+ PageDown: Tuple[Key, ...]
+ PageUp: Tuple[Key, ...]
+ PrevChapter: Tuple[Key, ...]
+ Quit: Tuple[Key, ...]
+ RegexSearch: Tuple[Key, ...]
+ ScrollDown: Tuple[Key, ...]
+ ScrollUp: Tuple[Key, ...]
+ SetWidth: Tuple[Key, ...]
+ ShowBookmarks: Tuple[Key, ...]
+ ShowHideProgress: Tuple[Key, ...]
+ Shrink: Tuple[Key, ...]
+ SwitchColor: Tuple[Key, ...]
+ TTSToggle: Tuple[Key, ...]
+ TableOfContents: Tuple[Key, ...]