From caec383da16f9d7632978ef30182ce4fedd40648 Mon Sep 17 00:00:00 2001 From: itdominator <1itdominator@gmail.com> Date: Fri, 3 Sep 2021 22:57:00 -0500 Subject: [PATCH] changed setting loading --- src/shellfm/windows/Window.py | 1 + src/shellfm/windows/WindowController.py | 12 ++-- src/shellfm/windows/view/utils/Settings.py | 61 ++++++++++++------ .../{pyfm => shellfm}/ffmpegthumbnailer | Bin .../{pyfm => shellfm}/icons/archive.png | Bin .../{pyfm => shellfm}/icons/audio.png | Bin .../{pyfm => shellfm}/icons/bin.png | Bin .../{pyfm => shellfm}/icons/dir.png | Bin .../{pyfm => shellfm}/icons/doc.png | Bin .../{pyfm => shellfm}/icons/pdf.png | Bin .../{pyfm => shellfm}/icons/presentation.png | Bin .../{pyfm => shellfm}/icons/spreadsheet.png | Bin .../{pyfm => shellfm}/icons/text.png | Bin .../{pyfm => shellfm}/icons/trash.png | Bin .../{pyfm => shellfm}/icons/video.png | Bin .../{pyfm => shellfm}/icons/web.png | Bin src/user_config/shellfm/settings.json | 18 ++++++ 17 files changed, 66 insertions(+), 26 deletions(-) rename src/user_config/{pyfm => shellfm}/ffmpegthumbnailer (100%) rename src/user_config/{pyfm => shellfm}/icons/archive.png (100%) rename src/user_config/{pyfm => shellfm}/icons/audio.png (100%) rename src/user_config/{pyfm => shellfm}/icons/bin.png (100%) rename src/user_config/{pyfm => shellfm}/icons/dir.png (100%) rename src/user_config/{pyfm => shellfm}/icons/doc.png (100%) rename src/user_config/{pyfm => shellfm}/icons/pdf.png (100%) rename src/user_config/{pyfm => shellfm}/icons/presentation.png (100%) rename src/user_config/{pyfm => shellfm}/icons/spreadsheet.png (100%) rename src/user_config/{pyfm => shellfm}/icons/text.png (100%) rename src/user_config/{pyfm => shellfm}/icons/trash.png (100%) rename src/user_config/{pyfm => shellfm}/icons/video.png (100%) rename src/user_config/{pyfm => shellfm}/icons/web.png (100%) create mode 100644 src/user_config/shellfm/settings.json diff --git a/src/shellfm/windows/Window.py b/src/shellfm/windows/Window.py index ac96c8d..78c5241 100644 --- a/src/shellfm/windows/Window.py +++ b/src/shellfm/windows/Window.py @@ -15,6 +15,7 @@ class Window: self.id = "" self.name = "" self.nickname = "" + self.isHidden = False self.views = [] self.generate_id() diff --git a/src/shellfm/windows/WindowController.py b/src/shellfm/windows/WindowController.py index 60f35d7..470d725 100644 --- a/src/shellfm/windows/WindowController.py +++ b/src/shellfm/windows/WindowController.py @@ -13,14 +13,13 @@ class WindowController: def __init__(self): USER_HOME = path.expanduser('~') CONFIG_PATH = USER_HOME + "/.config/pyfm" - self.config_file = CONFIG_PATH + "/session.json" + self.session_file = CONFIG_PATH + "/session.json" self.active_window_id = "" self.active_tab_id = "" self.windows = [] - def set_active_data(self, wid, tid): self.active_window_id = str(wid) self.active_tab_id = str(tid) @@ -111,8 +110,8 @@ class WindowController: print(f"\nID: {window.id}") print(f"Name: {window.name}") print(f"Nickname: {window.nickname}") + print(f"Is Hidden: {window.isHidden}") print(f"View Count: {window.get_views_count()}") - print("\n-------------------------\n") @@ -150,16 +149,17 @@ class WindowController: "ID": window.id, "Name": window.name, "Nickname": window.nickname, + "isHidden": window.isHidden, 'views': views } } ] ) - with open(self.config_file, 'w') as outfile: + with open(self.session_file, 'w') as outfile: json.dump(windows, outfile, separators=(',', ':'), indent=4) def load_state(self): - if path.isfile(self.config_file): - with open(self.config_file) as infile: + if path.isfile(self.session_file): + with open(self.session_file) as infile: return json.load(infile) diff --git a/src/shellfm/windows/view/utils/Settings.py b/src/shellfm/windows/view/utils/Settings.py index 7f78934..2f9c8c8 100644 --- a/src/shellfm/windows/view/utils/Settings.py +++ b/src/shellfm/windows/view/utils/Settings.py @@ -1,4 +1,5 @@ # System import +import json import os from os import path @@ -11,17 +12,12 @@ from os import path class Settings: logger = None - lock_folder = False - go_past_home = True - - GTK_ORIENTATION = 1 # HORIZONTAL (0) VERTICAL (1) - ABS_THUMBS_PTH = None # Used for thumbnail generation and is set by passing in - REMUX_FOLDER = None # Used for Remuxed files and is set by passing in - FFMPG_THUMBNLR = None # Used for thumbnail generator binary and is set by passing in - HIDE_HIDDEN_FILES = True USER_HOME = path.expanduser('~') - CONFIG_PATH = USER_HOME + "/.config/pyfm" + CONFIG_PATH = USER_HOME + "/.config/shellfm" + CONFIG_FILE = CONFIG_PATH + "/settings.json" + + GTK_ORIENTATION = 1 # HORIZONTAL (0) VERTICAL (1) DEFAULT_ICONS = CONFIG_PATH + "/icons" DEFAULT_ICON = DEFAULT_ICONS + "/text.png" FFMPG_THUMBNLR = CONFIG_PATH + "/ffmpegthumbnailer" # Thumbnail generator binary @@ -36,17 +32,42 @@ class Settings: VIDEO_ICON_WH = [128, 64] SYS_ICON_WH = [56, 56] - subpath = "" # modify 'home' folder path - locked_folders = "venv::::flasks".split("::::") - mplayer_options = "-quiet -really-quiet -xy 1600 -geometry 50%:50%".split() - music_app = "/opt/deadbeef/bin/deadbeef" - media_app = "mpv" - image_app = "mirage" - office_app = "libreoffice" - pdf_app = "evince" - text_app = "leafpad" - file_manager_app = "spacefm" - remux_folder_max_disk_usage = "8589934592" + # CONTAINER_ICON_WH = [128, 128] + # VIDEO_ICON_WH = [96, 48] + # SYS_ICON_WH = [96, 96] + + subpath = "" + go_past_home = None + lock_folder = None + locked_folders = None + mplayer_options = None + music_app = None + media_app = None + image_app = None + office_app = None + pdf_app = None + text_app = None + file_manager_app = None + remux_folder_max_disk_usage = None + + if path.isfile(CONFIG_FILE): + with open(CONFIG_FILE) as infile: + settings = json.load(infile)["settings"] + + subpath = settings["base_of_home"] + HIDE_HIDDEN_FILES = True if settings["hide_hidden_files"] == "true" else False + go_past_home = True if settings["go_past_home"] == "true" else False + lock_folder = True if settings["lock_folder"] == "true" else False + locked_folders = settings["locked_folders"].split("::::") + mplayer_options = settings["mplayer_options"].split() + music_app = settings["music_app"] + media_app = settings["media_app"] + image_app = settings["image_app"] + office_app = settings["office_app"] + pdf_app = settings["pdf_app"] + text_app = settings["text_app"] + file_manager_app = settings["file_manager_app"] + remux_folder_max_disk_usage = settings["remux_folder_max_disk_usage"] # Filters fvideos = ('.mkv', '.avi', '.flv', '.mov', '.m4v', '.mpg', '.wmv', '.mpeg', '.mp4', '.webm') diff --git a/src/user_config/pyfm/ffmpegthumbnailer b/src/user_config/shellfm/ffmpegthumbnailer similarity index 100% rename from src/user_config/pyfm/ffmpegthumbnailer rename to src/user_config/shellfm/ffmpegthumbnailer diff --git a/src/user_config/pyfm/icons/archive.png b/src/user_config/shellfm/icons/archive.png similarity index 100% rename from src/user_config/pyfm/icons/archive.png rename to src/user_config/shellfm/icons/archive.png diff --git a/src/user_config/pyfm/icons/audio.png b/src/user_config/shellfm/icons/audio.png similarity index 100% rename from src/user_config/pyfm/icons/audio.png rename to src/user_config/shellfm/icons/audio.png diff --git a/src/user_config/pyfm/icons/bin.png b/src/user_config/shellfm/icons/bin.png similarity index 100% rename from src/user_config/pyfm/icons/bin.png rename to src/user_config/shellfm/icons/bin.png diff --git a/src/user_config/pyfm/icons/dir.png b/src/user_config/shellfm/icons/dir.png similarity index 100% rename from src/user_config/pyfm/icons/dir.png rename to src/user_config/shellfm/icons/dir.png diff --git a/src/user_config/pyfm/icons/doc.png b/src/user_config/shellfm/icons/doc.png similarity index 100% rename from src/user_config/pyfm/icons/doc.png rename to src/user_config/shellfm/icons/doc.png diff --git a/src/user_config/pyfm/icons/pdf.png b/src/user_config/shellfm/icons/pdf.png similarity index 100% rename from src/user_config/pyfm/icons/pdf.png rename to src/user_config/shellfm/icons/pdf.png diff --git a/src/user_config/pyfm/icons/presentation.png b/src/user_config/shellfm/icons/presentation.png similarity index 100% rename from src/user_config/pyfm/icons/presentation.png rename to src/user_config/shellfm/icons/presentation.png diff --git a/src/user_config/pyfm/icons/spreadsheet.png b/src/user_config/shellfm/icons/spreadsheet.png similarity index 100% rename from src/user_config/pyfm/icons/spreadsheet.png rename to src/user_config/shellfm/icons/spreadsheet.png diff --git a/src/user_config/pyfm/icons/text.png b/src/user_config/shellfm/icons/text.png similarity index 100% rename from src/user_config/pyfm/icons/text.png rename to src/user_config/shellfm/icons/text.png diff --git a/src/user_config/pyfm/icons/trash.png b/src/user_config/shellfm/icons/trash.png similarity index 100% rename from src/user_config/pyfm/icons/trash.png rename to src/user_config/shellfm/icons/trash.png diff --git a/src/user_config/pyfm/icons/video.png b/src/user_config/shellfm/icons/video.png similarity index 100% rename from src/user_config/pyfm/icons/video.png rename to src/user_config/shellfm/icons/video.png diff --git a/src/user_config/pyfm/icons/web.png b/src/user_config/shellfm/icons/web.png similarity index 100% rename from src/user_config/pyfm/icons/web.png rename to src/user_config/shellfm/icons/web.png diff --git a/src/user_config/shellfm/settings.json b/src/user_config/shellfm/settings.json new file mode 100644 index 0000000..b59d65e --- /dev/null +++ b/src/user_config/shellfm/settings.json @@ -0,0 +1,18 @@ +{ + "settings": { + "base_of_home": "", + "hide_hidden_files": "true", + "go_past_home": "true", + "lock_folder": "false", + "locked_folders": "venv::::flasks", + "mplayer_options": "-quiet -really-quiet -xy 1600 -geometry 50%:50%", + "music_app": "/opt/deadbeef/bin/deadbeef", + "media_app": "mpv", + "image_app": "mirage", + "office_app": "libreoffice", + "pdf_app": "evince", + "text_app": "leafpad", + "file_manager_app": "spacefm", + "remux_folder_max_disk_usage": "8589934592" + } +}