diff --git a/tagstudio/src/core/constants.py b/src/tagstudio/core/constants.py similarity index 100% rename from tagstudio/src/core/constants.py rename to src/tagstudio/core/constants.py diff --git a/tagstudio/src/core/driver.py b/src/tagstudio/core/driver.py similarity index 100% rename from tagstudio/src/core/driver.py rename to src/tagstudio/core/driver.py diff --git a/tagstudio/src/core/enums.py b/src/tagstudio/core/enums.py similarity index 100% rename from tagstudio/src/core/enums.py rename to src/tagstudio/core/enums.py diff --git a/tagstudio/src/core/exceptions.py b/src/tagstudio/core/exceptions.py similarity index 100% rename from tagstudio/src/core/exceptions.py rename to src/tagstudio/core/exceptions.py diff --git a/tagstudio/src/core/field_template.py b/src/tagstudio/core/field_template.py similarity index 100% rename from tagstudio/src/core/field_template.py rename to src/tagstudio/core/field_template.py diff --git a/tagstudio/src/core/library/__init__.py b/src/tagstudio/core/library/__init__.py similarity index 100% rename from tagstudio/src/core/library/__init__.py rename to src/tagstudio/core/library/__init__.py diff --git a/tagstudio/src/core/library/alchemy/__init__.py b/src/tagstudio/core/library/alchemy/__init__.py similarity index 100% rename from tagstudio/src/core/library/alchemy/__init__.py rename to src/tagstudio/core/library/alchemy/__init__.py diff --git a/tagstudio/src/core/library/alchemy/db.py b/src/tagstudio/core/library/alchemy/db.py similarity index 100% rename from tagstudio/src/core/library/alchemy/db.py rename to src/tagstudio/core/library/alchemy/db.py diff --git a/tagstudio/src/core/library/alchemy/default_color_groups.py b/src/tagstudio/core/library/alchemy/default_color_groups.py similarity index 100% rename from tagstudio/src/core/library/alchemy/default_color_groups.py rename to src/tagstudio/core/library/alchemy/default_color_groups.py diff --git a/tagstudio/src/core/library/alchemy/enums.py b/src/tagstudio/core/library/alchemy/enums.py similarity index 100% rename from tagstudio/src/core/library/alchemy/enums.py rename to src/tagstudio/core/library/alchemy/enums.py diff --git a/tagstudio/src/core/library/alchemy/fields.py b/src/tagstudio/core/library/alchemy/fields.py similarity index 100% rename from tagstudio/src/core/library/alchemy/fields.py rename to src/tagstudio/core/library/alchemy/fields.py diff --git a/tagstudio/src/core/library/alchemy/joins.py b/src/tagstudio/core/library/alchemy/joins.py similarity index 100% rename from tagstudio/src/core/library/alchemy/joins.py rename to src/tagstudio/core/library/alchemy/joins.py diff --git a/tagstudio/src/core/library/alchemy/library.py b/src/tagstudio/core/library/alchemy/library.py similarity index 100% rename from tagstudio/src/core/library/alchemy/library.py rename to src/tagstudio/core/library/alchemy/library.py diff --git a/tagstudio/src/core/library/alchemy/models.py b/src/tagstudio/core/library/alchemy/models.py similarity index 100% rename from tagstudio/src/core/library/alchemy/models.py rename to src/tagstudio/core/library/alchemy/models.py diff --git a/tagstudio/src/core/library/alchemy/visitors.py b/src/tagstudio/core/library/alchemy/visitors.py similarity index 100% rename from tagstudio/src/core/library/alchemy/visitors.py rename to src/tagstudio/core/library/alchemy/visitors.py diff --git a/tagstudio/src/core/library/json/__init__.py b/src/tagstudio/core/library/json/__init__.py similarity index 100% rename from tagstudio/src/core/library/json/__init__.py rename to src/tagstudio/core/library/json/__init__.py diff --git a/tagstudio/src/core/library/json/fields.py b/src/tagstudio/core/library/json/fields.py similarity index 100% rename from tagstudio/src/core/library/json/fields.py rename to src/tagstudio/core/library/json/fields.py diff --git a/tagstudio/src/core/library/json/library.py b/src/tagstudio/core/library/json/library.py similarity index 100% rename from tagstudio/src/core/library/json/library.py rename to src/tagstudio/core/library/json/library.py diff --git a/tagstudio/src/core/media_types.py b/src/tagstudio/core/media_types.py similarity index 100% rename from tagstudio/src/core/media_types.py rename to src/tagstudio/core/media_types.py diff --git a/tagstudio/src/core/palette.py b/src/tagstudio/core/palette.py similarity index 100% rename from tagstudio/src/core/palette.py rename to src/tagstudio/core/palette.py diff --git a/tagstudio/src/core/query_lang/__init__.py b/src/tagstudio/core/query_lang/__init__.py similarity index 100% rename from tagstudio/src/core/query_lang/__init__.py rename to src/tagstudio/core/query_lang/__init__.py diff --git a/tagstudio/src/core/query_lang/ast.py b/src/tagstudio/core/query_lang/ast.py similarity index 100% rename from tagstudio/src/core/query_lang/ast.py rename to src/tagstudio/core/query_lang/ast.py diff --git a/tagstudio/src/core/query_lang/parser.py b/src/tagstudio/core/query_lang/parser.py similarity index 100% rename from tagstudio/src/core/query_lang/parser.py rename to src/tagstudio/core/query_lang/parser.py diff --git a/tagstudio/src/core/query_lang/tokenizer.py b/src/tagstudio/core/query_lang/tokenizer.py similarity index 100% rename from tagstudio/src/core/query_lang/tokenizer.py rename to src/tagstudio/core/query_lang/tokenizer.py diff --git a/tagstudio/src/core/query_lang/util.py b/src/tagstudio/core/query_lang/util.py similarity index 100% rename from tagstudio/src/core/query_lang/util.py rename to src/tagstudio/core/query_lang/util.py diff --git a/tagstudio/src/core/singleton.py b/src/tagstudio/core/singleton.py similarity index 100% rename from tagstudio/src/core/singleton.py rename to src/tagstudio/core/singleton.py diff --git a/tagstudio/src/core/ts_core.py b/src/tagstudio/core/ts_core.py similarity index 100% rename from tagstudio/src/core/ts_core.py rename to src/tagstudio/core/ts_core.py diff --git a/tagstudio/src/core/utils/dupe_files.py b/src/tagstudio/core/utils/dupe_files.py similarity index 100% rename from tagstudio/src/core/utils/dupe_files.py rename to src/tagstudio/core/utils/dupe_files.py diff --git a/tagstudio/src/core/utils/encoding.py b/src/tagstudio/core/utils/encoding.py similarity index 100% rename from tagstudio/src/core/utils/encoding.py rename to src/tagstudio/core/utils/encoding.py diff --git a/tagstudio/src/core/utils/missing_files.py b/src/tagstudio/core/utils/missing_files.py similarity index 100% rename from tagstudio/src/core/utils/missing_files.py rename to src/tagstudio/core/utils/missing_files.py diff --git a/tagstudio/src/core/utils/refresh_dir.py b/src/tagstudio/core/utils/refresh_dir.py similarity index 100% rename from tagstudio/src/core/utils/refresh_dir.py rename to src/tagstudio/core/utils/refresh_dir.py diff --git a/tagstudio/src/core/utils/str.py b/src/tagstudio/core/utils/str.py similarity index 100% rename from tagstudio/src/core/utils/str.py rename to src/tagstudio/core/utils/str.py diff --git a/tagstudio/src/core/utils/web.py b/src/tagstudio/core/utils/web.py similarity index 100% rename from tagstudio/src/core/utils/web.py rename to src/tagstudio/core/utils/web.py diff --git a/tagstudio/tag_studio.py b/src/tagstudio/main.py similarity index 100% rename from tagstudio/tag_studio.py rename to src/tagstudio/main.py diff --git a/tagstudio/src/qt/cache_manager.py b/src/tagstudio/qt/cache_manager.py similarity index 100% rename from tagstudio/src/qt/cache_manager.py rename to src/tagstudio/qt/cache_manager.py diff --git a/tagstudio/src/qt/flowlayout.py b/src/tagstudio/qt/flowlayout.py similarity index 100% rename from tagstudio/src/qt/flowlayout.py rename to src/tagstudio/qt/flowlayout.py diff --git a/tagstudio/src/qt/helpers/blender_thumbnailer.py b/src/tagstudio/qt/helpers/blender_thumbnailer.py similarity index 100% rename from tagstudio/src/qt/helpers/blender_thumbnailer.py rename to src/tagstudio/qt/helpers/blender_thumbnailer.py diff --git a/tagstudio/src/qt/helpers/color_overlay.py b/src/tagstudio/qt/helpers/color_overlay.py similarity index 100% rename from tagstudio/src/qt/helpers/color_overlay.py rename to src/tagstudio/qt/helpers/color_overlay.py diff --git a/tagstudio/src/qt/helpers/custom_runnable.py b/src/tagstudio/qt/helpers/custom_runnable.py similarity index 100% rename from tagstudio/src/qt/helpers/custom_runnable.py rename to src/tagstudio/qt/helpers/custom_runnable.py diff --git a/tagstudio/src/qt/helpers/escape_text.py b/src/tagstudio/qt/helpers/escape_text.py similarity index 100% rename from tagstudio/src/qt/helpers/escape_text.py rename to src/tagstudio/qt/helpers/escape_text.py diff --git a/tagstudio/src/qt/helpers/file_deleter.py b/src/tagstudio/qt/helpers/file_deleter.py similarity index 100% rename from tagstudio/src/qt/helpers/file_deleter.py rename to src/tagstudio/qt/helpers/file_deleter.py diff --git a/tagstudio/src/qt/helpers/file_opener.py b/src/tagstudio/qt/helpers/file_opener.py similarity index 100% rename from tagstudio/src/qt/helpers/file_opener.py rename to src/tagstudio/qt/helpers/file_opener.py diff --git a/tagstudio/src/qt/helpers/file_tester.py b/src/tagstudio/qt/helpers/file_tester.py similarity index 100% rename from tagstudio/src/qt/helpers/file_tester.py rename to src/tagstudio/qt/helpers/file_tester.py diff --git a/tagstudio/src/qt/helpers/function_iterator.py b/src/tagstudio/qt/helpers/function_iterator.py similarity index 100% rename from tagstudio/src/qt/helpers/function_iterator.py rename to src/tagstudio/qt/helpers/function_iterator.py diff --git a/tagstudio/src/qt/helpers/gradient.py b/src/tagstudio/qt/helpers/gradient.py similarity index 100% rename from tagstudio/src/qt/helpers/gradient.py rename to src/tagstudio/qt/helpers/gradient.py diff --git a/tagstudio/src/qt/helpers/image_effects.py b/src/tagstudio/qt/helpers/image_effects.py similarity index 100% rename from tagstudio/src/qt/helpers/image_effects.py rename to src/tagstudio/qt/helpers/image_effects.py diff --git a/tagstudio/src/qt/helpers/qbutton_wrapper.py b/src/tagstudio/qt/helpers/qbutton_wrapper.py similarity index 100% rename from tagstudio/src/qt/helpers/qbutton_wrapper.py rename to src/tagstudio/qt/helpers/qbutton_wrapper.py diff --git a/tagstudio/src/qt/helpers/rounded_pixmap_style.py b/src/tagstudio/qt/helpers/rounded_pixmap_style.py similarity index 100% rename from tagstudio/src/qt/helpers/rounded_pixmap_style.py rename to src/tagstudio/qt/helpers/rounded_pixmap_style.py diff --git a/tagstudio/src/qt/helpers/silent_popen.py b/src/tagstudio/qt/helpers/silent_popen.py similarity index 100% rename from tagstudio/src/qt/helpers/silent_popen.py rename to src/tagstudio/qt/helpers/silent_popen.py diff --git a/tagstudio/src/qt/helpers/text_wrapper.py b/src/tagstudio/qt/helpers/text_wrapper.py similarity index 100% rename from tagstudio/src/qt/helpers/text_wrapper.py rename to src/tagstudio/qt/helpers/text_wrapper.py diff --git a/tagstudio/src/qt/helpers/vendored/ffmpeg.py b/src/tagstudio/qt/helpers/vendored/ffmpeg.py similarity index 100% rename from tagstudio/src/qt/helpers/vendored/ffmpeg.py rename to src/tagstudio/qt/helpers/vendored/ffmpeg.py diff --git a/tagstudio/src/qt/helpers/vendored/pydub/audio_segment.py b/src/tagstudio/qt/helpers/vendored/pydub/audio_segment.py similarity index 100% rename from tagstudio/src/qt/helpers/vendored/pydub/audio_segment.py rename to src/tagstudio/qt/helpers/vendored/pydub/audio_segment.py diff --git a/tagstudio/src/qt/helpers/vendored/pydub/utils.py b/src/tagstudio/qt/helpers/vendored/pydub/utils.py similarity index 100% rename from tagstudio/src/qt/helpers/vendored/pydub/utils.py rename to src/tagstudio/qt/helpers/vendored/pydub/utils.py diff --git a/tagstudio/src/qt/main_window.py b/src/tagstudio/qt/main_window.py similarity index 100% rename from tagstudio/src/qt/main_window.py rename to src/tagstudio/qt/main_window.py diff --git a/tagstudio/src/qt/modals/about.py b/src/tagstudio/qt/modals/about.py similarity index 100% rename from tagstudio/src/qt/modals/about.py rename to src/tagstudio/qt/modals/about.py diff --git a/tagstudio/src/qt/modals/add_field.py b/src/tagstudio/qt/modals/add_field.py similarity index 100% rename from tagstudio/src/qt/modals/add_field.py rename to src/tagstudio/qt/modals/add_field.py diff --git a/tagstudio/src/qt/modals/build_color.py b/src/tagstudio/qt/modals/build_color.py similarity index 100% rename from tagstudio/src/qt/modals/build_color.py rename to src/tagstudio/qt/modals/build_color.py diff --git a/tagstudio/src/qt/modals/build_namespace.py b/src/tagstudio/qt/modals/build_namespace.py similarity index 100% rename from tagstudio/src/qt/modals/build_namespace.py rename to src/tagstudio/qt/modals/build_namespace.py diff --git a/tagstudio/src/qt/modals/build_tag.py b/src/tagstudio/qt/modals/build_tag.py similarity index 100% rename from tagstudio/src/qt/modals/build_tag.py rename to src/tagstudio/qt/modals/build_tag.py diff --git a/tagstudio/src/qt/modals/delete_unlinked.py b/src/tagstudio/qt/modals/delete_unlinked.py similarity index 100% rename from tagstudio/src/qt/modals/delete_unlinked.py rename to src/tagstudio/qt/modals/delete_unlinked.py diff --git a/tagstudio/src/qt/modals/drop_import.py b/src/tagstudio/qt/modals/drop_import.py similarity index 100% rename from tagstudio/src/qt/modals/drop_import.py rename to src/tagstudio/qt/modals/drop_import.py diff --git a/tagstudio/src/qt/modals/ffmpeg_checker.py b/src/tagstudio/qt/modals/ffmpeg_checker.py similarity index 100% rename from tagstudio/src/qt/modals/ffmpeg_checker.py rename to src/tagstudio/qt/modals/ffmpeg_checker.py diff --git a/tagstudio/src/qt/modals/file_extension.py b/src/tagstudio/qt/modals/file_extension.py similarity index 100% rename from tagstudio/src/qt/modals/file_extension.py rename to src/tagstudio/qt/modals/file_extension.py diff --git a/tagstudio/src/qt/modals/fix_dupes.py b/src/tagstudio/qt/modals/fix_dupes.py similarity index 100% rename from tagstudio/src/qt/modals/fix_dupes.py rename to src/tagstudio/qt/modals/fix_dupes.py diff --git a/tagstudio/src/qt/modals/fix_unlinked.py b/src/tagstudio/qt/modals/fix_unlinked.py similarity index 100% rename from tagstudio/src/qt/modals/fix_unlinked.py rename to src/tagstudio/qt/modals/fix_unlinked.py diff --git a/tagstudio/src/qt/modals/folders_to_tags.py b/src/tagstudio/qt/modals/folders_to_tags.py similarity index 100% rename from tagstudio/src/qt/modals/folders_to_tags.py rename to src/tagstudio/qt/modals/folders_to_tags.py diff --git a/tagstudio/src/qt/modals/merge_dupe_entries.py b/src/tagstudio/qt/modals/merge_dupe_entries.py similarity index 100% rename from tagstudio/src/qt/modals/merge_dupe_entries.py rename to src/tagstudio/qt/modals/merge_dupe_entries.py diff --git a/tagstudio/src/qt/modals/mirror_entities.py b/src/tagstudio/qt/modals/mirror_entities.py similarity index 100% rename from tagstudio/src/qt/modals/mirror_entities.py rename to src/tagstudio/qt/modals/mirror_entities.py diff --git a/tagstudio/src/qt/modals/relink_unlinked.py b/src/tagstudio/qt/modals/relink_unlinked.py similarity index 100% rename from tagstudio/src/qt/modals/relink_unlinked.py rename to src/tagstudio/qt/modals/relink_unlinked.py diff --git a/tagstudio/src/qt/modals/settings_panel.py b/src/tagstudio/qt/modals/settings_panel.py similarity index 100% rename from tagstudio/src/qt/modals/settings_panel.py rename to src/tagstudio/qt/modals/settings_panel.py diff --git a/tagstudio/src/qt/modals/tag_color_manager.py b/src/tagstudio/qt/modals/tag_color_manager.py similarity index 100% rename from tagstudio/src/qt/modals/tag_color_manager.py rename to src/tagstudio/qt/modals/tag_color_manager.py diff --git a/tagstudio/src/qt/modals/tag_color_selection.py b/src/tagstudio/qt/modals/tag_color_selection.py similarity index 100% rename from tagstudio/src/qt/modals/tag_color_selection.py rename to src/tagstudio/qt/modals/tag_color_selection.py diff --git a/tagstudio/src/qt/modals/tag_database.py b/src/tagstudio/qt/modals/tag_database.py similarity index 100% rename from tagstudio/src/qt/modals/tag_database.py rename to src/tagstudio/qt/modals/tag_database.py diff --git a/tagstudio/src/qt/modals/tag_search.py b/src/tagstudio/qt/modals/tag_search.py similarity index 100% rename from tagstudio/src/qt/modals/tag_search.py rename to src/tagstudio/qt/modals/tag_search.py diff --git a/tagstudio/src/qt/pagination.py b/src/tagstudio/qt/pagination.py similarity index 100% rename from tagstudio/src/qt/pagination.py rename to src/tagstudio/qt/pagination.py diff --git a/tagstudio/src/qt/platform_strings.py b/src/tagstudio/qt/platform_strings.py similarity index 100% rename from tagstudio/src/qt/platform_strings.py rename to src/tagstudio/qt/platform_strings.py diff --git a/tagstudio/src/qt/resource_manager.py b/src/tagstudio/qt/resource_manager.py similarity index 100% rename from tagstudio/src/qt/resource_manager.py rename to src/tagstudio/qt/resource_manager.py diff --git a/tagstudio/src/qt/resources.json b/src/tagstudio/qt/resources.json similarity index 100% rename from tagstudio/src/qt/resources.json rename to src/tagstudio/qt/resources.json diff --git a/tagstudio/src/qt/resources.qrc b/src/tagstudio/qt/resources.qrc similarity index 100% rename from tagstudio/src/qt/resources.qrc rename to src/tagstudio/qt/resources.qrc diff --git a/tagstudio/src/qt/resources_rc.py b/src/tagstudio/qt/resources_rc.py similarity index 100% rename from tagstudio/src/qt/resources_rc.py rename to src/tagstudio/qt/resources_rc.py diff --git a/tagstudio/src/qt/splash.py b/src/tagstudio/qt/splash.py similarity index 100% rename from tagstudio/src/qt/splash.py rename to src/tagstudio/qt/splash.py diff --git a/tagstudio/src/qt/translations.py b/src/tagstudio/qt/translations.py similarity index 100% rename from tagstudio/src/qt/translations.py rename to src/tagstudio/qt/translations.py diff --git a/tagstudio/src/qt/ts_qt.py b/src/tagstudio/qt/ts_qt.py similarity index 100% rename from tagstudio/src/qt/ts_qt.py rename to src/tagstudio/qt/ts_qt.py diff --git a/tagstudio/src/qt/ui/home.ui b/src/tagstudio/qt/ui/home.ui similarity index 100% rename from tagstudio/src/qt/ui/home.ui rename to src/tagstudio/qt/ui/home.ui diff --git a/tagstudio/src/qt/ui/home_ui.py b/src/tagstudio/qt/ui/home_ui.py similarity index 100% rename from tagstudio/src/qt/ui/home_ui.py rename to src/tagstudio/qt/ui/home_ui.py diff --git a/tagstudio/src/qt/widgets/clickable_label.py b/src/tagstudio/qt/widgets/clickable_label.py similarity index 100% rename from tagstudio/src/qt/widgets/clickable_label.py rename to src/tagstudio/qt/widgets/clickable_label.py diff --git a/tagstudio/src/qt/widgets/collage_icon.py b/src/tagstudio/qt/widgets/collage_icon.py similarity index 100% rename from tagstudio/src/qt/widgets/collage_icon.py rename to src/tagstudio/qt/widgets/collage_icon.py diff --git a/tagstudio/src/qt/widgets/color_box.py b/src/tagstudio/qt/widgets/color_box.py similarity index 100% rename from tagstudio/src/qt/widgets/color_box.py rename to src/tagstudio/qt/widgets/color_box.py diff --git a/tagstudio/src/qt/widgets/fields.py b/src/tagstudio/qt/widgets/fields.py similarity index 100% rename from tagstudio/src/qt/widgets/fields.py rename to src/tagstudio/qt/widgets/fields.py diff --git a/tagstudio/src/qt/widgets/item_thumb.py b/src/tagstudio/qt/widgets/item_thumb.py similarity index 100% rename from tagstudio/src/qt/widgets/item_thumb.py rename to src/tagstudio/qt/widgets/item_thumb.py diff --git a/tagstudio/src/qt/widgets/landing.py b/src/tagstudio/qt/widgets/landing.py similarity index 100% rename from tagstudio/src/qt/widgets/landing.py rename to src/tagstudio/qt/widgets/landing.py diff --git a/tagstudio/src/qt/widgets/media_player.py b/src/tagstudio/qt/widgets/media_player.py similarity index 100% rename from tagstudio/src/qt/widgets/media_player.py rename to src/tagstudio/qt/widgets/media_player.py diff --git a/tagstudio/src/qt/widgets/migration_modal.py b/src/tagstudio/qt/widgets/migration_modal.py similarity index 100% rename from tagstudio/src/qt/widgets/migration_modal.py rename to src/tagstudio/qt/widgets/migration_modal.py diff --git a/tagstudio/src/qt/widgets/paged_panel/paged_body_wrapper.py b/src/tagstudio/qt/widgets/paged_panel/paged_body_wrapper.py similarity index 100% rename from tagstudio/src/qt/widgets/paged_panel/paged_body_wrapper.py rename to src/tagstudio/qt/widgets/paged_panel/paged_body_wrapper.py diff --git a/tagstudio/src/qt/widgets/paged_panel/paged_panel.py b/src/tagstudio/qt/widgets/paged_panel/paged_panel.py similarity index 100% rename from tagstudio/src/qt/widgets/paged_panel/paged_panel.py rename to src/tagstudio/qt/widgets/paged_panel/paged_panel.py diff --git a/tagstudio/src/qt/widgets/paged_panel/paged_panel_state.py b/src/tagstudio/qt/widgets/paged_panel/paged_panel_state.py similarity index 100% rename from tagstudio/src/qt/widgets/paged_panel/paged_panel_state.py rename to src/tagstudio/qt/widgets/paged_panel/paged_panel_state.py diff --git a/tagstudio/src/qt/widgets/panel.py b/src/tagstudio/qt/widgets/panel.py similarity index 100% rename from tagstudio/src/qt/widgets/panel.py rename to src/tagstudio/qt/widgets/panel.py diff --git a/tagstudio/src/qt/widgets/preview/field_containers.py b/src/tagstudio/qt/widgets/preview/field_containers.py similarity index 100% rename from tagstudio/src/qt/widgets/preview/field_containers.py rename to src/tagstudio/qt/widgets/preview/field_containers.py diff --git a/tagstudio/src/qt/widgets/preview/file_attributes.py b/src/tagstudio/qt/widgets/preview/file_attributes.py similarity index 100% rename from tagstudio/src/qt/widgets/preview/file_attributes.py rename to src/tagstudio/qt/widgets/preview/file_attributes.py diff --git a/tagstudio/src/qt/widgets/preview/preview_thumb.py b/src/tagstudio/qt/widgets/preview/preview_thumb.py similarity index 100% rename from tagstudio/src/qt/widgets/preview/preview_thumb.py rename to src/tagstudio/qt/widgets/preview/preview_thumb.py diff --git a/tagstudio/src/qt/widgets/preview_panel.py b/src/tagstudio/qt/widgets/preview_panel.py similarity index 100% rename from tagstudio/src/qt/widgets/preview_panel.py rename to src/tagstudio/qt/widgets/preview_panel.py diff --git a/tagstudio/src/qt/widgets/progress.py b/src/tagstudio/qt/widgets/progress.py similarity index 100% rename from tagstudio/src/qt/widgets/progress.py rename to src/tagstudio/qt/widgets/progress.py diff --git a/tagstudio/src/qt/widgets/tag.py b/src/tagstudio/qt/widgets/tag.py similarity index 100% rename from tagstudio/src/qt/widgets/tag.py rename to src/tagstudio/qt/widgets/tag.py diff --git a/tagstudio/src/qt/widgets/tag_box.py b/src/tagstudio/qt/widgets/tag_box.py similarity index 100% rename from tagstudio/src/qt/widgets/tag_box.py rename to src/tagstudio/qt/widgets/tag_box.py diff --git a/tagstudio/src/qt/widgets/tag_color_label.py b/src/tagstudio/qt/widgets/tag_color_label.py similarity index 100% rename from tagstudio/src/qt/widgets/tag_color_label.py rename to src/tagstudio/qt/widgets/tag_color_label.py diff --git a/tagstudio/src/qt/widgets/tag_color_preview.py b/src/tagstudio/qt/widgets/tag_color_preview.py similarity index 100% rename from tagstudio/src/qt/widgets/tag_color_preview.py rename to src/tagstudio/qt/widgets/tag_color_preview.py diff --git a/tagstudio/src/qt/widgets/text.py b/src/tagstudio/qt/widgets/text.py similarity index 100% rename from tagstudio/src/qt/widgets/text.py rename to src/tagstudio/qt/widgets/text.py diff --git a/tagstudio/src/qt/widgets/text_box_edit.py b/src/tagstudio/qt/widgets/text_box_edit.py similarity index 100% rename from tagstudio/src/qt/widgets/text_box_edit.py rename to src/tagstudio/qt/widgets/text_box_edit.py diff --git a/tagstudio/src/qt/widgets/text_line_edit.py b/src/tagstudio/qt/widgets/text_line_edit.py similarity index 100% rename from tagstudio/src/qt/widgets/text_line_edit.py rename to src/tagstudio/qt/widgets/text_line_edit.py diff --git a/tagstudio/src/qt/widgets/thumb_button.py b/src/tagstudio/qt/widgets/thumb_button.py similarity index 100% rename from tagstudio/src/qt/widgets/thumb_button.py rename to src/tagstudio/qt/widgets/thumb_button.py diff --git a/tagstudio/src/qt/widgets/thumb_renderer.py b/src/tagstudio/qt/widgets/thumb_renderer.py similarity index 100% rename from tagstudio/src/qt/widgets/thumb_renderer.py rename to src/tagstudio/qt/widgets/thumb_renderer.py diff --git a/tagstudio/src/qt/widgets/video_player.py b/src/tagstudio/qt/widgets/video_player.py similarity index 100% rename from tagstudio/src/qt/widgets/video_player.py rename to src/tagstudio/qt/widgets/video_player.py diff --git a/tagstudio/resources/icon.icns b/src/tagstudio/resources/icon.icns similarity index 100% rename from tagstudio/resources/icon.icns rename to src/tagstudio/resources/icon.icns diff --git a/tagstudio/resources/icon.ico b/src/tagstudio/resources/icon.ico similarity index 100% rename from tagstudio/resources/icon.ico rename to src/tagstudio/resources/icon.ico diff --git a/tagstudio/resources/icon.png b/src/tagstudio/resources/icon.png similarity index 100% rename from tagstudio/resources/icon.png rename to src/tagstudio/resources/icon.png diff --git a/tagstudio/resources/qt/fonts/Oxanium-Bold.ttf b/src/tagstudio/resources/qt/fonts/Oxanium-Bold.ttf similarity index 100% rename from tagstudio/resources/qt/fonts/Oxanium-Bold.ttf rename to src/tagstudio/resources/qt/fonts/Oxanium-Bold.ttf diff --git a/tagstudio/resources/qt/images/box_icon_empty_128 - Copy.png b/src/tagstudio/resources/qt/images/box_icon_empty_128 - Copy.png similarity index 100% rename from tagstudio/resources/qt/images/box_icon_empty_128 - Copy.png rename to src/tagstudio/resources/qt/images/box_icon_empty_128 - Copy.png diff --git a/tagstudio/resources/qt/images/box_icon_empty_128.png b/src/tagstudio/resources/qt/images/box_icon_empty_128.png similarity index 100% rename from tagstudio/resources/qt/images/box_icon_empty_128.png rename to src/tagstudio/resources/qt/images/box_icon_empty_128.png diff --git a/tagstudio/resources/qt/images/box_icon_filled_128 - Copy.png b/src/tagstudio/resources/qt/images/box_icon_filled_128 - Copy.png similarity index 100% rename from tagstudio/resources/qt/images/box_icon_filled_128 - Copy.png rename to src/tagstudio/resources/qt/images/box_icon_filled_128 - Copy.png diff --git a/tagstudio/resources/qt/images/box_icon_filled_128.png b/src/tagstudio/resources/qt/images/box_icon_filled_128.png similarity index 100% rename from tagstudio/resources/qt/images/box_icon_filled_128.png rename to src/tagstudio/resources/qt/images/box_icon_filled_128.png diff --git a/tagstudio/resources/qt/images/broken_link_icon.png b/src/tagstudio/resources/qt/images/broken_link_icon.png similarity index 100% rename from tagstudio/resources/qt/images/broken_link_icon.png rename to src/tagstudio/resources/qt/images/broken_link_icon.png diff --git a/tagstudio/resources/qt/images/clipboard_icon_128.png b/src/tagstudio/resources/qt/images/clipboard_icon_128.png similarity index 100% rename from tagstudio/resources/qt/images/clipboard_icon_128.png rename to src/tagstudio/resources/qt/images/clipboard_icon_128.png diff --git a/tagstudio/resources/qt/images/collation_icon_128.png b/src/tagstudio/resources/qt/images/collation_icon_128.png similarity index 100% rename from tagstudio/resources/qt/images/collation_icon_128.png rename to src/tagstudio/resources/qt/images/collation_icon_128.png diff --git a/tagstudio/resources/qt/images/edit_icon_128.png b/src/tagstudio/resources/qt/images/edit_icon_128.png similarity index 100% rename from tagstudio/resources/qt/images/edit_icon_128.png rename to src/tagstudio/resources/qt/images/edit_icon_128.png diff --git a/tagstudio/resources/qt/images/edit_icon_dark_128.png b/src/tagstudio/resources/qt/images/edit_icon_dark_128.png similarity index 100% rename from tagstudio/resources/qt/images/edit_icon_dark_128.png rename to src/tagstudio/resources/qt/images/edit_icon_dark_128.png diff --git a/tagstudio/resources/qt/images/file_icons/adobe_illustrator.png b/src/tagstudio/resources/qt/images/file_icons/adobe_illustrator.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/adobe_illustrator.png rename to src/tagstudio/resources/qt/images/file_icons/adobe_illustrator.png diff --git a/tagstudio/resources/qt/images/file_icons/adobe_photoshop.png b/src/tagstudio/resources/qt/images/file_icons/adobe_photoshop.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/adobe_photoshop.png rename to src/tagstudio/resources/qt/images/file_icons/adobe_photoshop.png diff --git a/tagstudio/resources/qt/images/file_icons/affinity_photo.png b/src/tagstudio/resources/qt/images/file_icons/affinity_photo.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/affinity_photo.png rename to src/tagstudio/resources/qt/images/file_icons/affinity_photo.png diff --git a/tagstudio/resources/qt/images/file_icons/audio.png b/src/tagstudio/resources/qt/images/file_icons/audio.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/audio.png rename to src/tagstudio/resources/qt/images/file_icons/audio.png diff --git a/tagstudio/resources/qt/images/file_icons/document.png b/src/tagstudio/resources/qt/images/file_icons/document.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/document.png rename to src/tagstudio/resources/qt/images/file_icons/document.png diff --git a/tagstudio/resources/qt/images/file_icons/file_generic.png b/src/tagstudio/resources/qt/images/file_icons/file_generic.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/file_generic.png rename to src/tagstudio/resources/qt/images/file_icons/file_generic.png diff --git a/tagstudio/resources/qt/images/file_icons/font.png b/src/tagstudio/resources/qt/images/file_icons/font.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/font.png rename to src/tagstudio/resources/qt/images/file_icons/font.png diff --git a/tagstudio/resources/qt/images/file_icons/image.png b/src/tagstudio/resources/qt/images/file_icons/image.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/image.png rename to src/tagstudio/resources/qt/images/file_icons/image.png diff --git a/tagstudio/resources/qt/images/file_icons/image_vector.png b/src/tagstudio/resources/qt/images/file_icons/image_vector.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/image_vector.png rename to src/tagstudio/resources/qt/images/file_icons/image_vector.png diff --git a/tagstudio/resources/qt/images/file_icons/material.png b/src/tagstudio/resources/qt/images/file_icons/material.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/material.png rename to src/tagstudio/resources/qt/images/file_icons/material.png diff --git a/tagstudio/resources/qt/images/file_icons/model.png b/src/tagstudio/resources/qt/images/file_icons/model.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/model.png rename to src/tagstudio/resources/qt/images/file_icons/model.png diff --git a/tagstudio/resources/qt/images/file_icons/presentation.png b/src/tagstudio/resources/qt/images/file_icons/presentation.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/presentation.png rename to src/tagstudio/resources/qt/images/file_icons/presentation.png diff --git a/tagstudio/resources/qt/images/file_icons/program.png b/src/tagstudio/resources/qt/images/file_icons/program.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/program.png rename to src/tagstudio/resources/qt/images/file_icons/program.png diff --git a/tagstudio/resources/qt/images/file_icons/spreadsheet.png b/src/tagstudio/resources/qt/images/file_icons/spreadsheet.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/spreadsheet.png rename to src/tagstudio/resources/qt/images/file_icons/spreadsheet.png diff --git a/tagstudio/resources/qt/images/file_icons/text.png b/src/tagstudio/resources/qt/images/file_icons/text.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/text.png rename to src/tagstudio/resources/qt/images/file_icons/text.png diff --git a/tagstudio/resources/qt/images/file_icons/video.png b/src/tagstudio/resources/qt/images/file_icons/video.png similarity index 100% rename from tagstudio/resources/qt/images/file_icons/video.png rename to src/tagstudio/resources/qt/images/file_icons/video.png diff --git a/tagstudio/resources/qt/images/pause.svg b/src/tagstudio/resources/qt/images/pause.svg similarity index 100% rename from tagstudio/resources/qt/images/pause.svg rename to src/tagstudio/resources/qt/images/pause.svg diff --git a/tagstudio/resources/qt/images/play.svg b/src/tagstudio/resources/qt/images/play.svg similarity index 100% rename from tagstudio/resources/qt/images/play.svg rename to src/tagstudio/resources/qt/images/play.svg diff --git a/tagstudio/resources/qt/images/splash/classic.png b/src/tagstudio/resources/qt/images/splash/classic.png similarity index 100% rename from tagstudio/resources/qt/images/splash/classic.png rename to src/tagstudio/resources/qt/images/splash/classic.png diff --git a/tagstudio/resources/qt/images/splash/goo_gears.png b/src/tagstudio/resources/qt/images/splash/goo_gears.png similarity index 100% rename from tagstudio/resources/qt/images/splash/goo_gears.png rename to src/tagstudio/resources/qt/images/splash/goo_gears.png diff --git a/tagstudio/resources/qt/images/splitter_handle_128.png b/src/tagstudio/resources/qt/images/splitter_handle_128.png similarity index 100% rename from tagstudio/resources/qt/images/splitter_handle_128.png rename to src/tagstudio/resources/qt/images/splitter_handle_128.png diff --git a/tagstudio/resources/qt/images/star_icon_empty_128 - Copy.png b/src/tagstudio/resources/qt/images/star_icon_empty_128 - Copy.png similarity index 100% rename from tagstudio/resources/qt/images/star_icon_empty_128 - Copy.png rename to src/tagstudio/resources/qt/images/star_icon_empty_128 - Copy.png diff --git a/tagstudio/resources/qt/images/star_icon_empty_128.png b/src/tagstudio/resources/qt/images/star_icon_empty_128.png similarity index 100% rename from tagstudio/resources/qt/images/star_icon_empty_128.png rename to src/tagstudio/resources/qt/images/star_icon_empty_128.png diff --git a/tagstudio/resources/qt/images/star_icon_filled_128 - Copy.png b/src/tagstudio/resources/qt/images/star_icon_filled_128 - Copy.png similarity index 100% rename from tagstudio/resources/qt/images/star_icon_filled_128 - Copy.png rename to src/tagstudio/resources/qt/images/star_icon_filled_128 - Copy.png diff --git a/tagstudio/resources/qt/images/star_icon_filled_128.png b/src/tagstudio/resources/qt/images/star_icon_filled_128.png similarity index 100% rename from tagstudio/resources/qt/images/star_icon_filled_128.png rename to src/tagstudio/resources/qt/images/star_icon_filled_128.png diff --git a/tagstudio/resources/qt/images/tag_group_icon_128.png b/src/tagstudio/resources/qt/images/tag_group_icon_128.png similarity index 100% rename from tagstudio/resources/qt/images/tag_group_icon_128.png rename to src/tagstudio/resources/qt/images/tag_group_icon_128.png diff --git a/tagstudio/resources/qt/images/tag_group_icon_dark_128.png b/src/tagstudio/resources/qt/images/tag_group_icon_dark_128.png similarity index 100% rename from tagstudio/resources/qt/images/tag_group_icon_dark_128.png rename to src/tagstudio/resources/qt/images/tag_group_icon_dark_128.png diff --git a/tagstudio/resources/qt/images/tagstudio_logo_text_mono.png b/src/tagstudio/resources/qt/images/tagstudio_logo_text_mono.png similarity index 100% rename from tagstudio/resources/qt/images/tagstudio_logo_text_mono.png rename to src/tagstudio/resources/qt/images/tagstudio_logo_text_mono.png diff --git a/tagstudio/resources/qt/images/thumb_loading.png b/src/tagstudio/resources/qt/images/thumb_loading.png similarity index 100% rename from tagstudio/resources/qt/images/thumb_loading.png rename to src/tagstudio/resources/qt/images/thumb_loading.png diff --git a/tagstudio/resources/qt/images/trash_icon_128.png b/src/tagstudio/resources/qt/images/trash_icon_128.png similarity index 100% rename from tagstudio/resources/qt/images/trash_icon_128.png rename to src/tagstudio/resources/qt/images/trash_icon_128.png diff --git a/tagstudio/resources/qt/images/trash_icon_dark_128.png b/src/tagstudio/resources/qt/images/trash_icon_dark_128.png similarity index 100% rename from tagstudio/resources/qt/images/trash_icon_dark_128.png rename to src/tagstudio/resources/qt/images/trash_icon_dark_128.png diff --git a/tagstudio/resources/qt/images/volume.svg b/src/tagstudio/resources/qt/images/volume.svg similarity index 100% rename from tagstudio/resources/qt/images/volume.svg rename to src/tagstudio/resources/qt/images/volume.svg diff --git a/tagstudio/resources/qt/images/volume_mute.svg b/src/tagstudio/resources/qt/images/volume_mute.svg similarity index 100% rename from tagstudio/resources/qt/images/volume_mute.svg rename to src/tagstudio/resources/qt/images/volume_mute.svg diff --git a/tagstudio/resources/qt/videos/placeholder.mp4 b/src/tagstudio/resources/qt/videos/placeholder.mp4 similarity index 100% rename from tagstudio/resources/qt/videos/placeholder.mp4 rename to src/tagstudio/resources/qt/videos/placeholder.mp4 diff --git a/tagstudio/resources/translations/cs.json b/src/tagstudio/resources/translations/cs.json similarity index 100% rename from tagstudio/resources/translations/cs.json rename to src/tagstudio/resources/translations/cs.json diff --git a/tagstudio/resources/translations/da.json b/src/tagstudio/resources/translations/da.json similarity index 100% rename from tagstudio/resources/translations/da.json rename to src/tagstudio/resources/translations/da.json diff --git a/tagstudio/resources/translations/de.json b/src/tagstudio/resources/translations/de.json similarity index 100% rename from tagstudio/resources/translations/de.json rename to src/tagstudio/resources/translations/de.json diff --git a/tagstudio/resources/translations/en.json b/src/tagstudio/resources/translations/en.json similarity index 100% rename from tagstudio/resources/translations/en.json rename to src/tagstudio/resources/translations/en.json diff --git a/tagstudio/resources/translations/es.json b/src/tagstudio/resources/translations/es.json similarity index 100% rename from tagstudio/resources/translations/es.json rename to src/tagstudio/resources/translations/es.json diff --git a/tagstudio/resources/translations/fil.json b/src/tagstudio/resources/translations/fil.json similarity index 100% rename from tagstudio/resources/translations/fil.json rename to src/tagstudio/resources/translations/fil.json diff --git a/tagstudio/resources/translations/fr.json b/src/tagstudio/resources/translations/fr.json similarity index 100% rename from tagstudio/resources/translations/fr.json rename to src/tagstudio/resources/translations/fr.json diff --git a/tagstudio/resources/translations/hu.json b/src/tagstudio/resources/translations/hu.json similarity index 100% rename from tagstudio/resources/translations/hu.json rename to src/tagstudio/resources/translations/hu.json diff --git a/tagstudio/resources/translations/it.json b/src/tagstudio/resources/translations/it.json similarity index 100% rename from tagstudio/resources/translations/it.json rename to src/tagstudio/resources/translations/it.json diff --git a/tagstudio/resources/translations/nb_NO.json b/src/tagstudio/resources/translations/nb_NO.json similarity index 100% rename from tagstudio/resources/translations/nb_NO.json rename to src/tagstudio/resources/translations/nb_NO.json diff --git a/tagstudio/resources/translations/nl.json b/src/tagstudio/resources/translations/nl.json similarity index 100% rename from tagstudio/resources/translations/nl.json rename to src/tagstudio/resources/translations/nl.json diff --git a/tagstudio/resources/translations/pl.json b/src/tagstudio/resources/translations/pl.json similarity index 100% rename from tagstudio/resources/translations/pl.json rename to src/tagstudio/resources/translations/pl.json diff --git a/tagstudio/resources/translations/pt.json b/src/tagstudio/resources/translations/pt.json similarity index 100% rename from tagstudio/resources/translations/pt.json rename to src/tagstudio/resources/translations/pt.json diff --git a/tagstudio/resources/translations/pt_BR.json b/src/tagstudio/resources/translations/pt_BR.json similarity index 100% rename from tagstudio/resources/translations/pt_BR.json rename to src/tagstudio/resources/translations/pt_BR.json diff --git a/tagstudio/resources/translations/ru.json b/src/tagstudio/resources/translations/ru.json similarity index 100% rename from tagstudio/resources/translations/ru.json rename to src/tagstudio/resources/translations/ru.json diff --git a/tagstudio/resources/translations/sv.json b/src/tagstudio/resources/translations/sv.json similarity index 100% rename from tagstudio/resources/translations/sv.json rename to src/tagstudio/resources/translations/sv.json diff --git a/tagstudio/resources/translations/ta.json b/src/tagstudio/resources/translations/ta.json similarity index 100% rename from tagstudio/resources/translations/ta.json rename to src/tagstudio/resources/translations/ta.json diff --git a/tagstudio/resources/translations/tok.json b/src/tagstudio/resources/translations/tok.json similarity index 100% rename from tagstudio/resources/translations/tok.json rename to src/tagstudio/resources/translations/tok.json diff --git a/tagstudio/resources/translations/tr.json b/src/tagstudio/resources/translations/tr.json similarity index 100% rename from tagstudio/resources/translations/tr.json rename to src/tagstudio/resources/translations/tr.json diff --git a/tagstudio/resources/translations/yue_Hant.json b/src/tagstudio/resources/translations/yue_Hant.json similarity index 100% rename from tagstudio/resources/translations/yue_Hant.json rename to src/tagstudio/resources/translations/yue_Hant.json diff --git a/tagstudio/resources/translations/zh_Hant.json b/src/tagstudio/resources/translations/zh_Hant.json similarity index 100% rename from tagstudio/resources/translations/zh_Hant.json rename to src/tagstudio/resources/translations/zh_Hant.json diff --git a/tagstudio/tests/conftest.py b/tests/conftest.py similarity index 100% rename from tagstudio/tests/conftest.py rename to tests/conftest.py diff --git a/tagstudio/tests/fixtures/empty_libraries/DB_VERSION_6/.TagStudio/ts_library.sqlite b/tests/fixtures/empty_libraries/DB_VERSION_6/.TagStudio/ts_library.sqlite similarity index 100% rename from tagstudio/tests/fixtures/empty_libraries/DB_VERSION_6/.TagStudio/ts_library.sqlite rename to tests/fixtures/empty_libraries/DB_VERSION_6/.TagStudio/ts_library.sqlite diff --git a/tagstudio/tests/fixtures/empty_libraries/DB_VERSION_7/.TagStudio/ts_library.sqlite b/tests/fixtures/empty_libraries/DB_VERSION_7/.TagStudio/ts_library.sqlite similarity index 100% rename from tagstudio/tests/fixtures/empty_libraries/DB_VERSION_7/.TagStudio/ts_library.sqlite rename to tests/fixtures/empty_libraries/DB_VERSION_7/.TagStudio/ts_library.sqlite diff --git a/tagstudio/tests/fixtures/empty_libraries/DB_VERSION_8/.TagStudio/ts_library.sqlite b/tests/fixtures/empty_libraries/DB_VERSION_8/.TagStudio/ts_library.sqlite similarity index 100% rename from tagstudio/tests/fixtures/empty_libraries/DB_VERSION_8/.TagStudio/ts_library.sqlite rename to tests/fixtures/empty_libraries/DB_VERSION_8/.TagStudio/ts_library.sqlite diff --git a/tagstudio/tests/fixtures/json_library/.TagStudio/ts_library.json b/tests/fixtures/json_library/.TagStudio/ts_library.json similarity index 100% rename from tagstudio/tests/fixtures/json_library/.TagStudio/ts_library.json rename to tests/fixtures/json_library/.TagStudio/ts_library.json diff --git a/tagstudio/tests/fixtures/result.dupeguru b/tests/fixtures/result.dupeguru similarity index 100% rename from tagstudio/tests/fixtures/result.dupeguru rename to tests/fixtures/result.dupeguru diff --git a/tagstudio/tests/fixtures/sample.epub b/tests/fixtures/sample.epub similarity index 100% rename from tagstudio/tests/fixtures/sample.epub rename to tests/fixtures/sample.epub diff --git a/tagstudio/tests/fixtures/sample.ods b/tests/fixtures/sample.ods similarity index 100% rename from tagstudio/tests/fixtures/sample.ods rename to tests/fixtures/sample.ods diff --git a/tagstudio/tests/fixtures/sample.odt b/tests/fixtures/sample.odt similarity index 100% rename from tagstudio/tests/fixtures/sample.odt rename to tests/fixtures/sample.odt diff --git a/tagstudio/tests/fixtures/sample.pdf b/tests/fixtures/sample.pdf similarity index 100% rename from tagstudio/tests/fixtures/sample.pdf rename to tests/fixtures/sample.pdf diff --git a/tagstudio/tests/fixtures/sample.svg b/tests/fixtures/sample.svg similarity index 100% rename from tagstudio/tests/fixtures/sample.svg rename to tests/fixtures/sample.svg diff --git a/tagstudio/tests/fixtures/search_library/.TagStudio/ts_library.json b/tests/fixtures/search_library/.TagStudio/ts_library.json similarity index 100% rename from tagstudio/tests/fixtures/search_library/.TagStudio/ts_library.json rename to tests/fixtures/search_library/.TagStudio/ts_library.json diff --git a/tagstudio/tests/fixtures/search_library/.TagStudio/ts_library.sqlite b/tests/fixtures/search_library/.TagStudio/ts_library.sqlite similarity index 100% rename from tagstudio/tests/fixtures/search_library/.TagStudio/ts_library.sqlite rename to tests/fixtures/search_library/.TagStudio/ts_library.sqlite diff --git a/tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_b_square.png b/tests/fixtures/search_library/comp colors shapes/r_circle_b_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_b_square.png rename to tests/fixtures/search_library/comp colors shapes/r_circle_b_square.png diff --git a/tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_g_square.png b/tests/fixtures/search_library/comp colors shapes/r_circle_g_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_g_square.png rename to tests/fixtures/search_library/comp colors shapes/r_circle_g_square.png diff --git a/tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_o_square.png b/tests/fixtures/search_library/comp colors shapes/r_circle_o_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_o_square.png rename to tests/fixtures/search_library/comp colors shapes/r_circle_o_square.png diff --git a/tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_r_square.png b/tests/fixtures/search_library/comp colors shapes/r_circle_r_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_r_square.png rename to tests/fixtures/search_library/comp colors shapes/r_circle_r_square.png diff --git a/tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_y_square.png b/tests/fixtures/search_library/comp colors shapes/r_circle_y_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/comp colors shapes/r_circle_y_square.png rename to tests/fixtures/search_library/comp colors shapes/r_circle_y_square.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/blue.jpg b/tests/fixtures/search_library/inherit colors shapes/blue.jpg similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/blue.jpg rename to tests/fixtures/search_library/inherit colors shapes/blue.jpg diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/blue_circle.jpg b/tests/fixtures/search_library/inherit colors shapes/blue_circle.jpg similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/blue_circle.jpg rename to tests/fixtures/search_library/inherit colors shapes/blue_circle.jpg diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/blue_ellipse.png b/tests/fixtures/search_library/inherit colors shapes/blue_ellipse.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/blue_ellipse.png rename to tests/fixtures/search_library/inherit colors shapes/blue_ellipse.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/blue_square.jpg b/tests/fixtures/search_library/inherit colors shapes/blue_square.jpg similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/blue_square.jpg rename to tests/fixtures/search_library/inherit colors shapes/blue_square.jpg diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/circle.png b/tests/fixtures/search_library/inherit colors shapes/circle.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/circle.png rename to tests/fixtures/search_library/inherit colors shapes/circle.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/ellipse.png b/tests/fixtures/search_library/inherit colors shapes/ellipse.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/ellipse.png rename to tests/fixtures/search_library/inherit colors shapes/ellipse.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/green.png b/tests/fixtures/search_library/inherit colors shapes/green.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/green.png rename to tests/fixtures/search_library/inherit colors shapes/green.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/green_circle.png b/tests/fixtures/search_library/inherit colors shapes/green_circle.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/green_circle.png rename to tests/fixtures/search_library/inherit colors shapes/green_circle.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/green_ellipse.png b/tests/fixtures/search_library/inherit colors shapes/green_ellipse.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/green_ellipse.png rename to tests/fixtures/search_library/inherit colors shapes/green_ellipse.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/green_square.png b/tests/fixtures/search_library/inherit colors shapes/green_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/green_square.png rename to tests/fixtures/search_library/inherit colors shapes/green_square.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/orange.png b/tests/fixtures/search_library/inherit colors shapes/orange.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/orange.png rename to tests/fixtures/search_library/inherit colors shapes/orange.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/orange_circle.png b/tests/fixtures/search_library/inherit colors shapes/orange_circle.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/orange_circle.png rename to tests/fixtures/search_library/inherit colors shapes/orange_circle.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/orange_ellipse.png b/tests/fixtures/search_library/inherit colors shapes/orange_ellipse.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/orange_ellipse.png rename to tests/fixtures/search_library/inherit colors shapes/orange_ellipse.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/orange_square.png b/tests/fixtures/search_library/inherit colors shapes/orange_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/orange_square.png rename to tests/fixtures/search_library/inherit colors shapes/orange_square.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/red.jpg b/tests/fixtures/search_library/inherit colors shapes/red.jpg similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/red.jpg rename to tests/fixtures/search_library/inherit colors shapes/red.jpg diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/red_circle.jpg b/tests/fixtures/search_library/inherit colors shapes/red_circle.jpg similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/red_circle.jpg rename to tests/fixtures/search_library/inherit colors shapes/red_circle.jpg diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/red_ellipse.png b/tests/fixtures/search_library/inherit colors shapes/red_ellipse.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/red_ellipse.png rename to tests/fixtures/search_library/inherit colors shapes/red_ellipse.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/red_square.jpg b/tests/fixtures/search_library/inherit colors shapes/red_square.jpg similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/red_square.jpg rename to tests/fixtures/search_library/inherit colors shapes/red_square.jpg diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/shape.png b/tests/fixtures/search_library/inherit colors shapes/shape.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/shape.png rename to tests/fixtures/search_library/inherit colors shapes/shape.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/square.png b/tests/fixtures/search_library/inherit colors shapes/square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/square.png rename to tests/fixtures/search_library/inherit colors shapes/square.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow.png b/tests/fixtures/search_library/inherit colors shapes/yellow.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow.png rename to tests/fixtures/search_library/inherit colors shapes/yellow.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow_circle.png b/tests/fixtures/search_library/inherit colors shapes/yellow_circle.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow_circle.png rename to tests/fixtures/search_library/inherit colors shapes/yellow_circle.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow_ellipse.png b/tests/fixtures/search_library/inherit colors shapes/yellow_ellipse.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow_ellipse.png rename to tests/fixtures/search_library/inherit colors shapes/yellow_ellipse.png diff --git a/tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow_square.png b/tests/fixtures/search_library/inherit colors shapes/yellow_square.png similarity index 100% rename from tagstudio/tests/fixtures/search_library/inherit colors shapes/yellow_square.png rename to tests/fixtures/search_library/inherit colors shapes/yellow_square.png diff --git a/tagstudio/tests/fixtures/sidecar_newgrounds.json b/tests/fixtures/sidecar_newgrounds.json similarity index 100% rename from tagstudio/tests/fixtures/sidecar_newgrounds.json rename to tests/fixtures/sidecar_newgrounds.json diff --git a/tagstudio/tests/macros/test_dupe_entries.py b/tests/macros/test_dupe_entries.py similarity index 100% rename from tagstudio/tests/macros/test_dupe_entries.py rename to tests/macros/test_dupe_entries.py diff --git a/tagstudio/tests/macros/test_folders_tags.py b/tests/macros/test_folders_tags.py similarity index 100% rename from tagstudio/tests/macros/test_folders_tags.py rename to tests/macros/test_folders_tags.py diff --git a/tagstudio/tests/macros/test_missing_files.py b/tests/macros/test_missing_files.py similarity index 100% rename from tagstudio/tests/macros/test_missing_files.py rename to tests/macros/test_missing_files.py diff --git a/tagstudio/tests/macros/test_refresh_dir.py b/tests/macros/test_refresh_dir.py similarity index 100% rename from tagstudio/tests/macros/test_refresh_dir.py rename to tests/macros/test_refresh_dir.py diff --git a/tagstudio/tests/macros/test_sidecar.py b/tests/macros/test_sidecar.py similarity index 100% rename from tagstudio/tests/macros/test_sidecar.py rename to tests/macros/test_sidecar.py diff --git a/tagstudio/tests/qt/__snapshots__/test_folders_to_tags.ambr b/tests/qt/__snapshots__/test_folders_to_tags.ambr similarity index 100% rename from tagstudio/tests/qt/__snapshots__/test_folders_to_tags.ambr rename to tests/qt/__snapshots__/test_folders_to_tags.ambr diff --git a/tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.epub-_epub_cover].png b/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.epub-_epub_cover].png similarity index 100% rename from tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.epub-_epub_cover].png rename to tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.epub-_epub_cover].png diff --git a/tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.ods-_open_doc_thumb].png b/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.ods-_open_doc_thumb].png similarity index 100% rename from tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.ods-_open_doc_thumb].png rename to tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.ods-_open_doc_thumb].png diff --git a/tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.odt-_open_doc_thumb].png b/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.odt-_open_doc_thumb].png similarity index 100% rename from tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.odt-_open_doc_thumb].png rename to tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.odt-_open_doc_thumb].png diff --git a/tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.pdf-thumbnailer3].png b/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.pdf-thumbnailer3].png similarity index 100% rename from tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.pdf-thumbnailer3].png rename to tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.pdf-thumbnailer3].png diff --git a/tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.svg-thumbnailer4].png b/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.svg-thumbnailer4].png similarity index 100% rename from tagstudio/tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.svg-thumbnailer4].png rename to tests/qt/__snapshots__/test_thumb_renderer/test_preview_render[sample.svg-thumbnailer4].png diff --git a/tagstudio/tests/qt/test_build_tag_panel.py b/tests/qt/test_build_tag_panel.py similarity index 100% rename from tagstudio/tests/qt/test_build_tag_panel.py rename to tests/qt/test_build_tag_panel.py diff --git a/tagstudio/tests/qt/test_field_containers.py b/tests/qt/test_field_containers.py similarity index 100% rename from tagstudio/tests/qt/test_field_containers.py rename to tests/qt/test_field_containers.py diff --git a/tagstudio/tests/qt/test_flow_widget.py b/tests/qt/test_flow_widget.py similarity index 100% rename from tagstudio/tests/qt/test_flow_widget.py rename to tests/qt/test_flow_widget.py diff --git a/tagstudio/tests/qt/test_folders_to_tags.py b/tests/qt/test_folders_to_tags.py similarity index 100% rename from tagstudio/tests/qt/test_folders_to_tags.py rename to tests/qt/test_folders_to_tags.py diff --git a/tagstudio/tests/qt/test_item_thumb.py b/tests/qt/test_item_thumb.py similarity index 100% rename from tagstudio/tests/qt/test_item_thumb.py rename to tests/qt/test_item_thumb.py diff --git a/tagstudio/tests/qt/test_preview_panel.py b/tests/qt/test_preview_panel.py similarity index 100% rename from tagstudio/tests/qt/test_preview_panel.py rename to tests/qt/test_preview_panel.py diff --git a/tagstudio/tests/qt/test_qt_driver.py b/tests/qt/test_qt_driver.py similarity index 100% rename from tagstudio/tests/qt/test_qt_driver.py rename to tests/qt/test_qt_driver.py diff --git a/tagstudio/tests/qt/test_tag_panel.py b/tests/qt/test_tag_panel.py similarity index 100% rename from tagstudio/tests/qt/test_tag_panel.py rename to tests/qt/test_tag_panel.py diff --git a/tagstudio/tests/qt/test_tag_search_panel.py b/tests/qt/test_tag_search_panel.py similarity index 100% rename from tagstudio/tests/qt/test_tag_search_panel.py rename to tests/qt/test_tag_search_panel.py diff --git a/tagstudio/tests/qt/test_thumb_renderer.py b/tests/qt/test_thumb_renderer.py similarity index 100% rename from tagstudio/tests/qt/test_thumb_renderer.py rename to tests/qt/test_thumb_renderer.py diff --git a/tagstudio/tests/test_db_migrations.py b/tests/test_db_migrations.py similarity index 100% rename from tagstudio/tests/test_db_migrations.py rename to tests/test_db_migrations.py diff --git a/tagstudio/tests/test_driver.py b/tests/test_driver.py similarity index 100% rename from tagstudio/tests/test_driver.py rename to tests/test_driver.py diff --git a/tagstudio/tests/test_json_migration.py b/tests/test_json_migration.py similarity index 100% rename from tagstudio/tests/test_json_migration.py rename to tests/test_json_migration.py diff --git a/tagstudio/tests/test_library.py b/tests/test_library.py similarity index 100% rename from tagstudio/tests/test_library.py rename to tests/test_library.py diff --git a/tagstudio/tests/test_search.py b/tests/test_search.py similarity index 100% rename from tagstudio/tests/test_search.py rename to tests/test_search.py diff --git a/tagstudio/tests/test_translations.py b/tests/test_translations.py similarity index 100% rename from tagstudio/tests/test_translations.py rename to tests/test_translations.py