{"id":24838288,"url":"https://github.com/duckymomo20012/file-crypto","last_synced_at":"2026-04-25T16:33:58.606Z","repository":{"id":38258291,"uuid":"500463991","full_name":"DuckyMomo20012/file-crypto","owner":"DuckyMomo20012","description":"Encrypted file storing","archived":false,"fork":false,"pushed_at":"2023-01-13T05:37:09.000Z","size":363,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T04:15:01.759Z","etag":null,"topics":["climage","mongodb","pygments","pytermgui","python3"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/DuckyMomo20012.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-06-06T14:21:42.000Z","updated_at":"2022-08-01T06:56:56.000Z","dependencies_parsed_at":"2023-02-09T14:32:48.654Z","dependency_job_id":null,"html_url":"https://github.com/DuckyMomo20012/file-crypto","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":"DuckyMomo20012/python-template","purl":"pkg:github/DuckyMomo20012/file-crypto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DuckyMomo20012%2Ffile-crypto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DuckyMomo20012%2Ffile-crypto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DuckyMomo20012%2Ffile-crypto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DuckyMomo20012%2Ffile-crypto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DuckyMomo20012","download_url":"https://codeload.github.com/DuckyMomo20012/file-crypto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DuckyMomo20012%2Ffile-crypto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32269462,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T09:15:33.318Z","status":"ssl_error","status_checked_at":"2026-04-25T09:15:31.997Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["climage","mongodb","pygments","pytermgui","python3"],"created_at":"2025-01-31T06:10:17.246Z","updated_at":"2026-04-25T16:33:58.577Z","avatar_url":"https://github.com/DuckyMomo20012.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n  \u003ch1\u003eFile Crypto\u003c/h1\u003e\n\n  \u003cp\u003e\n    A simple file storage console\n  \u003c/p\u003e\n\n\u003c!-- Badges --\u003e\n\u003cp\u003e\n  \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/graphs/contributors\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/contributors/DuckyMomo20012/file-crypto\" alt=\"contributors\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/last-commit/DuckyMomo20012/file-crypto\" alt=\"last update\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/network/members\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/forks/DuckyMomo20012/file-crypto\" alt=\"forks\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/stargazers\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/stars/DuckyMomo20012/file-crypto\" alt=\"stars\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/issues/\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/issues/DuckyMomo20012/file-crypto\" alt=\"open issues\" /\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/blob/main/LICENSE\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/license/DuckyMomo20012/file-crypto.svg\" alt=\"license\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch4\u003e\n    \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/\"\u003eView Demo\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto\"\u003eDocumentation\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/issues/\"\u003eReport Bug\u003c/a\u003e\n  \u003cspan\u003e · \u003c/span\u003e\n    \u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/issues/\"\u003eRequest Feature\u003c/a\u003e\n  \u003c/h4\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003c!-- Table of Contents --\u003e\n\n# :notebook_with_decorative_cover: Table of Contents\n\n- [About the Project](#star2-about-the-project)\n  - [Screenshots](#camera-screenshots)\n  - [Tech Stack](#space_invader-tech-stack)\n  - [Features](#dart-features)\n  - [Color Reference](#art-color-reference)\n  - [Environment Variables](#key-environment-variables)\n- [Getting Started](#toolbox-getting-started)\n  - [Prerequisites](#bangbang-prerequisites)\n  - [Run Locally](#running-run-locally)\n- [Usage](#eyes-usage)\n- [Settings](#wrench-settings)\n- [Application Styles](#peach-application-styles)\n- [Roadmap](#compass-roadmap)\n- [Contributing](#wave-contributing)\n  - [Code of Conduct](#scroll-code-of-conduct)\n- [FAQ](#grey_question-faq)\n- [License](#warning-license)\n- [Contact](#handshake-contact)\n- [Acknowledgements](#gem-acknowledgements)\n\n\u003c!-- About the Project --\u003e\n\n## :star2: About the Project\n\n\u003c!-- Screenshots --\u003e\n\n### :camera: Screenshots\n\n\u003c!-- How to record: asciinema rec demo.cast -c \"poe dev\" -i 0.1 --\u003e\n\n\u003c!-- Then compress the gif using this site: https://ezgif.com/optimize --\u003e\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/64480713/175859655-3aac9d18-fe16-431c-9b65-5e8988c9cd0f.png\" alt=\"screenshot\" width=\"1024\"/\u003e\n\u003c/div\u003e\n\n_Last updated: Jun 27, 2022_\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/64480713/175549661-d0c4f7f7-c82b-4dfa-9fbf-69ef072218eb.gif\" alt=\"screenshot\" width=\"1024\"/\u003e\n\u003c/div\u003e\n\n_Last updated: Jun 24, 2022_\n\n\u003c!-- TechStack --\u003e\n\n### :space_invader: Tech Stack\n\n\u003cdetails\u003e\n  \u003csummary\u003eClient\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://www.python.org/\"\u003ePython\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"https://ptg.bczsalba.com/pytermgui.html\"\u003ePyTermGUI\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eDatabase\u003c/summary\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"https://www.mongodb.com/\"\u003eMongoDB\u003c/a\u003e\u003c/li\u003e\n  \u003c/ul\u003e\n\u003c/details\u003e\n\n\u003c!-- Features --\u003e\n\n### :dart: Features\n\n- 🔒️ Uploaded files are encrypted.\n- 🔑 Password protection for files.\n- 🔍️ Preview text file in terminal.\n- ✏️ File editor in the terminal.\n- 🎨 Syntax highlight for supporting formats.\n- 🧰 Toolbox:\n  - 📝 Sign file.\n  - ✅ Verify file signature.\n  - 🔒 Encrypt the file.\n  - 🔓 Decrypt the file.\n- 👀 (Preview feature) Preview image in terminal using ANSI codes.\n\n\u003c!-- Color Reference --\u003e\n\n### :art: Color Reference\n\nThis color palette is based on [Nord](https://www.nordtheme.com/) theme.\n\n| Color  | Hex                                                              |\n| ------ | ---------------------------------------------------------------- |\n| nord0  | ![#2E3440](https://placehold.jp/2E3440/2E3440/10x10.png) #2E3440 |\n| nord1  | ![#3B4252](https://placehold.jp/3B4252/3B4252/10x10.png) #3B4252 |\n| nord2  | ![#434C5E](https://placehold.jp/434C5E/434C5E/10x10.png) #434C5E |\n| nord3  | ![#4C566A](https://placehold.jp/4C566A/4C566A/10x10.png) #4C566A |\n| nord4  | ![#D8DEE9](https://placehold.jp/D8DEE9/D8DEE9/10x10.png) #D8DEE9 |\n| nord5  | ![#E5E9F0](https://placehold.jp/E5E9F0/E5E9F0/10x10.png) #E5E9F0 |\n| nord6  | ![#ECEFF4](https://placehold.jp/ECEFF4/ECEFF4/10x10.png) #ECEFF4 |\n| nord7  | ![#8FBCBB](https://placehold.jp/8FBCBB/8FBCBB/10x10.png) #8FBCBB |\n| nord8  | ![#88C0D0](https://placehold.jp/88C0D0/88C0D0/10x10.png) #88C0D0 |\n| nord9  | ![#81A1C1](https://placehold.jp/81A1C1/81A1C1/10x10.png) #81A1C1 |\n| nord10 | ![#5E81AC](https://placehold.jp/5E81AC/5E81AC/10x10.png) #5E81AC |\n| nord11 | ![#BF616A](https://placehold.jp/BF616A/BF616A/10x10.png) #BF616A |\n| nord12 | ![#D08770](https://placehold.jp/D08770/D08770/10x10.png) #D08770 |\n| nord13 | ![#EBCB8B](https://placehold.jp/EBCB8B/EBCB8B/10x10.png) #EBCB8B |\n| nord14 | ![#A3BE8C](https://placehold.jp/A3BE8C/A3BE8C/10x10.png) #A3BE8C |\n| nord15 | ![#B48EAD](https://placehold.jp/B48EAD/B48EAD/10x10.png) #B48EAD |\n\n\u003c!-- Env Variables --\u003e\n\n### :key: Environment Variables\n\nTo run this project, you will need to add the following environment variables to\nyour `.env` file:\n\n- **MongoDB configs:**\n\n  `MONGODB_HOST`: An URI to connect to your database.\n\nE.g:\n\n```\n# .env\nMONGODB_HOST=\"mongodb+srv://{username}:{password}@crypto-file.9mziwnd.mongodb.net/test\"\n```\n\nYou can also check out the file `.env.example` to see all required environment\nvariables.\n\n\u003c!-- Getting Started --\u003e\n\n## :toolbox: Getting Started\n\n\u003c!-- Prerequisites --\u003e\n\n### :bangbang: Prerequisites\n\n- Python: `\u003e= 3.9`.\n\n- Operating system: `Linux` and `macOS`.\n\n  \u003e **Note**: This app only supports `Linux` and `macOS`. Currently not\n  \u003e supporting `Windows`.\n\n- This project uses [Poetry](https://python-poetry.org/) as package manager:\n\n  Linux, macOS, Windows (WSL)\n\n  ```bash\n  curl -sSL https://install.python-poetry.org | python3 -\n  ```\n\n  Read more about installation on\n  [Poetry documentation](https://python-poetry.org/docs/master/#installation).\n\n\u003c!-- Run Locally --\u003e\n\n### :running: Run Locally\n\nClone the project:\n\n```bash\ngit clone https://github.com/DuckyMomo20012/file-crypto.git\n```\n\nGo to the project directory:\n\n```bash\ncd file-crypto\n```\n\nInstall dependencies:\n\n```bash\npoetry install\n```\n\nOR:\n\nExport Poetry dependencies to file `requirements.txt`:\n\n```bash\npoetry export -f requirements.txt --output requirements.txt\n```\n\n\u003e **Note**: You can add the option: `--dev` to include development dependencies.\n\nThen install dependencies with `pip`:\n\n```bash\npip install -r requirements.txt\n```\n\n---\n\nActivate the virtual environment:\n\n```bash\npoetry shell\n```\n\nStart the program:\n\n```bash\npoe dev\n```\n\nOR:\n\n```bash\npython3 app.py\n```\n\n\u003c!-- Usage --\u003e\n\n## :eyes: Usage\n\nFirst, you have to log in to your account on the **Login** page:\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![login page](https://user-images.githubusercontent.com/64480713/175862816-cf2deeab-6c8b-4147-9da1-1992c9652334.png)\n\n\u003c/details\u003e\n\nOR:\n\nCreate your new account on the **Register** page:\n\n\u003cdetails\u003e\n\u003csummary\u003eScreenshot\u003c/summary\u003e\n\n![register page](https://user-images.githubusercontent.com/64480713/175869157-6b3d5a96-21c8-4641-a7fc-69f3a5ab3c1f.png)\n\n\u003c/details\u003e\n\n\u003e **Note**: The email field must have a valid email format.\n\nAfter login, you will see the **Dashboard** page:\n\n![dashboard page](https://user-images.githubusercontent.com/64480713/175863076-068a2be8-d892-423f-9a19-736c6fc712ae.png)\n\n- Your files will be grouped into dates and sorted by date from newest to\n  oldest.\n\n- **Settings**: You can see and edit your account information or change your\n  password here.\n\n  \u003cdetails\u003e\n  \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n  ![settings page](https://user-images.githubusercontent.com/64480713/175869328-43ed970e-0f93-4c39-92c7-c32d55e396f9.png)\n\n  \u003c/details\u003e\n\n  - **Your information**: This page will show you brief information about your\n    account.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![your information page](https://user-images.githubusercontent.com/64480713/175869525-52fbfdc6-5cd4-4adc-a6d3-f1dfd8d7fe46.png)\n\n    \u003c/details\u003e\n\n  - **Edit your information** page: You can edit your information here.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![edit your information page](https://user-images.githubusercontent.com/64480713/175869992-bac292ae-209c-467a-b6be-ad420cb7ebdc.png)\n\n    \u003c/details\u003e\n\n    \u003e **Note**: To edit your date of birth, your new value has to follow this\n    \u003e format: `YYYY-MM-DD`. E.g: `2022-01-01`.\n\n  - **Change password** page:\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![change password page](https://user-images.githubusercontent.com/64480713/175870196-2a19e74e-075a-4713-9dc4-f1e1e6e371d7.png)\n\n    \u003c/details\u003e\n\n  - **Logout**: This will log you out and redirect you to the **Login** page.\n\n- **Tools**: This consists of multiple helpful tools:\n\n  \u003cdetails\u003e\n  \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n  ![tools](https://user-images.githubusercontent.com/64480713/175871157-c16080ec-05cc-4d22-a3fb-ad21dcf25213.png)\n\n  \u003c/details\u003e\n\n  - **Sign file**: This tool will create a file with the `.sig` extension in\n    your save folder path, which is your file's signature. Later, another user\n    can use the `Verify signed file` tool to check who has signed that file.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![sign file page](https://user-images.githubusercontent.com/64480713/175870557-db8c9a59-8042-4b83-99ed-4f985c4f3f60.png)\n\n    \u003c/details\u003e\n\n  - **Verify signed file**: This tool will check all available users to verify\n    that file was signed by a valid user.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![verify signed file page](https://user-images.githubusercontent.com/64480713/175870750-2128f1a2-3f3e-4491-be6e-74dc5143e03e.png)\n\n    \u003c/details\u003e\n\n  - **Encrypt file**: This tool will create a file with `.bin` extension in your\n    save folder path. The only targeted receiver can decrypt that file using the\n    `Decrypt file` tool.\n\n    \u003e **Note**: You can target yourself as the receiver.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![encrypt file page](https://user-images.githubusercontent.com/64480713/175870830-ef7b1171-7a56-48a4-8848-7f710d63e266.png)\n\n    \u003c/details\u003e\n\n  - **Decrypt file**: This tool will try to decrypt your encrypted and encode it\n    if possible and save it to your save folder path.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![decrypt file page](https://user-images.githubusercontent.com/64480713/175870887-a2d6ff23-73c6-4e3e-bf5b-fc2a955cd7d5.png)\n\n    \u003c/details\u003e\n\n    \u003e **Note**: Encrypted file name **MUST** have `.bin` extension.\n\n\u003e **Note**: The file path and folder path can be an **absolute path** or\n\u003e **relative path**.\n\u003e E.g:\n\u003e\n\u003e ```\n\u003e ./src/pages/\n\u003e ./\n\u003e ../\n\u003e ./../\n\u003e /home/alice/Desktop/file-crypto\n\u003e /home/alice/Desktop/file-crypto/\n\u003e ```\n\n\u003e **Note**: Other fields without `(optional)` is required.\n\n- **Upload**: You can upload your file here. After uploading, your file will be\n  encrypted.\n\n  \u003cdetails\u003e\n  \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n  ![upload file page](https://user-images.githubusercontent.com/64480713/175871068-3a874b63-070b-43a4-98b9-61dcb36566dc.png)\n\n  \u003c/details\u003e\n\n  \u003e **Note**: If you upload a file with the same name, the new file name will be\n  \u003e appended with a timestamp. E.g: `app_20220626221134.py`.\n\n- **File preview**: After you type your password to unlock the file, the file\n  will be opened in a window, **in preview mode**, and **using the `dracula`\n  theme by default** (only available for text files).\n\n  ![file preview page](https://user-images.githubusercontent.com/64480713/175871319-e8cd5fca-bc42-4c33-831f-73630bdcbede.png)\n\n  \u003e **Note**: **Preview mode** supports **text files** and **images files**.\n  \u003e **Edit mode** only supports **text files**.\n\n  - In **Preview mode**, you can change many themes if the file extension is\n    supported since we use [Pygments](https://pygments.org/) to enable syntax\n    highlighting.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![theme picker page](https://user-images.githubusercontent.com/64480713/175872466-ac7558e1-82e9-48f4-aeac-df3472e68b04.png)\n\n    \u003c/details\u003e\n\n    - You can turn off syntax highlighting by choosing `no theme` in the theme\n      picker.\n\n    - All supported file types: https://pygments.org/docs/lexers/\n\n    \u003e **Note**: If your file type is not supported, you should change to the `no theme` theme.\n\n    - All available themes: https://pygments.org/styles/\n\n    \u003e **Note**: Some themes will be removed due to incompatible: `borland`,\n    \u003e `lilypond`, `trac`, `bw`, `algol`, `algol_nu`.\n\n  - You can optionally switch to **Edit mode** with the `Edit mode` button:\n\n    ![edit mode page](https://user-images.githubusercontent.com/64480713/175871596-612e8420-de73-4226-914e-3e0d3ec23917.png)\n\n    \u003e **Note**: Any changes with \"newlines\" `(\"\\n\")`, \"tabs\" `(\"\\t\")` or\n    \u003e \"whitespace\" `(\" \")` will be consider as **\"no changes\"**, and won't be\n    \u003e saved.\n\n  - You can also can **Download** this file to your computer or **Delete** this\n    file.\n\n    \u003e **Note**: Delete will **completely delete** the file from the server.\n\n  - **File information**: You can see brief information about your file.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![file information page](https://user-images.githubusercontent.com/64480713/175871882-0524d9b3-b803-4228-a1d8-d888b1fd71ff.png)\n\n    \u003c/details\u003e\n\n  - **Edit file information**: You can edit your file name here.\n\n    \u003cdetails\u003e\n    \u003csummary\u003eScreenshot\u003c/summary\u003e\n\n    ![edit file information page](https://user-images.githubusercontent.com/64480713/175872134-241423fc-ca75-4428-951f-69f166ce07f6.png)\n\n    \u003c/details\u003e\n\n  - **(Preview feature) Preview image file**: Using\n    [CLImage](https://github.com/pnappa/CLImage) to display beautiful pictures\n    using ANSI codes.\n\n    ![image preview page](https://user-images.githubusercontent.com/64480713/175874258-5b9f63cd-5bfc-4d1a-8182-f85c07956337.png)\n\n    \u003e **Note**: This is a preview feature. This feature may reduce your computer\n    \u003e performance.\n\n\u003c!-- Settings --\u003e\n\n## :wrench: Settings\n\nYou can override default behaviors by configuring the `settings.json` file.\n\n\u003ctable\u003e\n    \u003cthead\u003e\n        \u003ctr\u003e\n            \u003cth\u003eName\u003c/th\u003e\n            \u003cth\u003eDescription\u003c/th\u003e\n            \u003cth\u003eDefault\u003c/th\u003e\n        \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eworkbench.preview.defaultColorTheme\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\n                The default theme for file preview mode\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ccode\u003e'dracula'\u003c/code\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eworkbench.preview.imageWidth\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\n                Default image width for image preview mode\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ccode\u003e60\u003c/code\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eworkbench.preview.defaultMode\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\n                Default mode for preview page. Options: \u003ccode\u003epreview\u003c/code\u003e, \u003ccode\u003eedit\u003c/code\u003e\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ccode\u003epreview\u003c/code\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eworkbench.animation\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\n                Controls if animation is played when adding or removing windows\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ccode\u003etrue\u003c/code\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n        \u003ctr\u003e\n            \u003ctd\u003e\u003ccode\u003eworkbench.styles\u003c/code\u003e\u003c/td\u003e\n            \u003ctd\u003e\n                Load default styles to the application\n            \u003c/td\u003e\n            \u003ctd\u003e\n                \u003ccode\u003e[object Object]\u003c/code\u003e\n            \u003c/td\u003e\n        \u003c/tr\u003e\n    \u003c/tbody\u003e\n\u003c/table\u003e\n\n\u003e **Note**: `workbench.animation` setting not apply to **modals** (error,\n\u003e success, warning) or **toast** messages.\n\n\u003e **Note**: `workbench.styles` will simply dump JSON to YAML and load them to\n\u003e the application. The default value for this setting is loaded from the file\n\u003e `styles.yaml`.\n\n\u003c!-- Application Styles --\u003e\n\n## :peach: Application Styles\n\nYou can customize your application looks (text colors, border chars,...) by\nchanging default styles in file `styles.yaml`.\n\nRead more about customizing on\n[PyTermGUI documentation](https://ptg.bczsalba.com/pytermgui.html#how-to-configure-your-application-using-yaml).\n\n\u003c!-- Roadmap --\u003e\n\n## :compass: Roadmap\n\n- [ ] Share files with other users.\n  - [ ] Download shared files.\n  - [ ] \"Shared with me\" tab to view shared files.\n  - [ ] File permission level. E.g: read-only, write,...\n  - [ ] Edit shared files.\n- [ ] Apply themes for editing mode.\n- [ ] Trash can store temporarily deleted files.\n- [x] Preview mode for images.\n- [ ] Image size automatically resizes on window resize in preview mode.\n- [x] Config default theme in user settings.\n- [ ] Config testing.\n\n\u003c!-- Contributing --\u003e\n\n## :wave: Contributing\n\n\u003ca href=\"https://github.com/DuckyMomo20012/file-crypto/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contrib.rocks/image?repo=DuckyMomo20012/file-crypto\" /\u003e\n\u003c/a\u003e\n\nContributions are always welcome!\n\n\u003c!-- Code of Conduct --\u003e\n\n### :scroll: Code of Conduct\n\nPlease read the [Code of Conduct](https://github.com/DuckyMomo20012/file-crypto/blob/main/CODE_OF_CONDUCT.md).\n\n\u003c!-- FAQ --\u003e\n\n## :grey_question: FAQ\n\n- Is this project still maintained?\n\n  - Yes, but we will only update UI, docs, or dependencies. New features won't\n    be added frequently.\n\n- Is this project ready for production?\n\n  - No, this is a small project for practicing cryptographic systems or schemes.\n    This wasn't meant for production.\n\n- Are you planning to support Windows OS in the future?\n\n  - No, we are not adding support for Windows any time soon (and most likely\n    never).\n\n- Error: `IndexError: list index out of range`:\n\n  - Please update PyTermGUI to version 7.0.0 or higher to resolve this issue.\n\n- Error: `assert self._drag_start is not None`:\n\n  - Please update PyTermGUI to version 7.0.0 or higher to resolve this issue.\n\n- Error: `ValueError: list.remove(x): x not in list`:\n\n  - You are **clicking the button too fast** before the modal or window is fully\n    closed. You should click the button **once** and wait for the modal or\n    window is fully closed.\n\n- In image preview mode, my image is broken:\n\n  - That is because your **terminal width size is too small**. Image has a\n    default width size is `60` block. The terminal should be larger than that\n    size (the nav bar wasn't counted).\n\n- I can't decrypt my file using the `Decrypt file` tool:\n\n  - Maybe the encrypted file is broken. You should ask the owner to resend\n    the file.\n\n- In preview mode for large text files, the app becomes very laggy:\n\n  - Then you should change to the `no theme` theme.\n\n- I have accidentally deleted the file, how can I restore it?\n\n  - No, you can't. If the file is deleted, it will be **completely deleted**\n    from our database and **can't be restored**.\n\n- I can't load settings using the `settings.json` file:\n\n  - Ensure your JSON format is correct. Notice that comment is not allowed in\n    JSON files.\n\n  - For application styles, make sure those styles are supported.\n\n\u003c!-- License --\u003e\n\n## :warning: License\n\nDistributed under MIT license. See\n[LICENSE](https://github.com/DuckyMomo20012/file-crypto/blob/main/LICENSE) for\nmore information.\n\n\u003c!-- Contact --\u003e\n\n## :handshake: Contact\n\nDuong Vinh - [@duckymomo20012](https://twitter.com/duckymomo20012) -\ntienvinh.duong4@gmail.com\n\nProject Link: [https://github.com/DuckyMomo20012/file-crypto](https://github.com/DuckyMomo20012/file-crypto).\n\n\u003c!-- Acknowledgments --\u003e\n\n## :gem: Acknowledgements\n\nHere are useful resources and libraries that we have used in our projects:\n\n- [PyTermGUI](https://ptg.bczsalba.com/pytermgui.html): A wonderful and fully\n  documented TUI framework to make your terminal rocks.\n- [Pygments](https://pygments.org/): A useful utility to add your favorite theme\n  to your code.\n- [CLImage](https://github.com/pnappa/CLImage): Print out magnificent pictures\n  in your terminal using ANSI codes.\n- [Awesome Readme Template](https://github.com/Louis3797/awesome-readme-template):\n  A detailed template to bootstrap your README file quickly.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduckymomo20012%2Ffile-crypto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fduckymomo20012%2Ffile-crypto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fduckymomo20012%2Ffile-crypto/lists"}