It's a simple, minimalist text editor made with Python's Tkinter GUI library and aims to create a calming and distraction free text environment for writing down todos.
This project is highly based on SethWalkeroo/Quiet-Text (MIT-License) from Seth Walker.
QuietToDo aims to give you a clean and simple text editor experience. Everything is right in front of you and all completely customizable to your preferences. We want to eliminate the annoyances of a noisy/busy text editing environment and bring you an environment that has the main goal of increasing focus and eliminating distractions.
- Autocompletion for parenthesis, brackets (square and curly), single quotes, and double quotes.
- Auto indentation for code blocks and brackets (when creating lists or creating functions).
- Customization options like font, text color, line height, and many more.
QuietToDo has shortcuts for most commonly performed actions. The list of all the shortcuts is presented bellow:
Command | KeyBinding | Description |
---|---|---|
Copy | ctrl+c | Copy selected text |
Cut | ctrl+x | Cut selected text |
Undo | ctrl+z | undo edits to the text area |
Redo | ctrl+y | redo edits to the text area on Windows |
Paste | ctrl+v | Paste text from the clipboard |
Hide Menu | alt | Hides menu bar from view in the text editor |
Hide Line Numbers | ctrl+shift+l | Hides line numbers from text area |
Open File | ctrl+o | Open an existing file |
Save | ctrl+s | Save the currently active file |
Change Font Size | ctrl+mousewheel | Increases or decrease font size |
Indent | tab | Indent one or multiple lines |
Unindent | shift+tab | Unindent one or multiple lines |
The fastest way to use the program is to just launch one of the release binaries on your system. If you are on Linux and the binary is not opening you may need to allow permission first. Type in the following command if you trust this program. On Windows you may run into a similar issue, but the Windows gui will let you "run anyway" if you allow it.
chmod u+x (name of .exe file)
The second fastest way would be to install the dependencies through requirements.txt and then launch the application through src/quiet_main.py. You can see instructions for this method below.
If the release binary is not up to date with the current development branch, then you can just create your own binary with pyinstaller. I'll walk you through the process real quick.
- Clone source files off github into your preferred directory
git clone https://github.com/marcoheinisch/ToDo-Editor.git
- Install pyinstaller
pip install pyinstaller
- Cd into the src directory and use pyinstaller on quiet_main.py
pyinstaller --onefile quiet_main.py
-
Edit the quiet_main.spec file
-
Use pyinstaller again on your new quiet_main.spec file
pyinstaller quiet_main.spec
- Check the dist directory for your binary file and you should be good to go!
After you install the dependencies, you can simply head into the src directory and launch the editor from src/quiet_main.py.
Mac and Linux installation:
python3 -m venv env
source env/bin/activate
pip3 install -r requirements.txt
cd src
python3 quiet_app_launch.py
Windows:
python -m venv env
env\Scripts\activate.bat
pip install -r requirements.txt
cd src
python3 quiet_main.py
This project also requires a Python3 interpreter with Tkinter support. You can test it using
python3 -m tkinter
In case your (GNU/Linux) machine does not support tkinter, there's a way to run it inside Docker (whereas you can also use another base image than ubuntu
):
FROM ubuntu
RUN apt update && apt install -y python3-tk x11-apps
RUN mkdir /code
WORKDIR /code
ADD . /code
CMD ["/usr/bin/python3", "-m", "quiet"]
Now, expose an environment variable to allow access to your host system XAUTH="$HOME/.Xauthority"
and build the image using docker build -t quiet .
.
You can start a container using
docker run --network=host --rm -e DISPLAY=$DISPLAY -v $XAUTH:/root/.Xauthority quiet
Be aware, that the Docker container has full access to your machine! So you better trust the executed code.
-
Issues are open to anyone and everyone, but you must comment on the issue first and communicate to me that you are working on it. If you are confident in your ability, I will assign you to the issue.
-
Don't work on an issue that isn't assigned to you unless you communicate with the assignee first.
-
If you make an improvement on an existing feature, make sure to create an issue first and list the fixes or features you have made to the code.
-
All PRs must be made from a Branch. Create a separate branch for every Issue you are working upon and once found fit, make a PR.
-
Please make sure your code works before you submit it :)