From ec988c2b4cce9de192918159d50262ae42eccad6 Mon Sep 17 00:00:00 2001 From: Isaiah Odhner Date: Tue, 5 Sep 2023 20:11:32 -0400 Subject: [PATCH] Prepare v0.2.0 --- CHANGELOG.md | 8 ++++++-- README.md | 18 ++++++++++++++---- cspell.json | 1 + setup.cfg | 5 ++++- src/textual_paint/__init__.py | 2 +- 5 files changed, 26 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f19c33e..73ecc5f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [0.2.0] - 2023-09-05 + I am now recommending to install using `pipx` instead of `pip`. To switch to `pipx`, run `pip uninstall textual-paint && pipx install textual-paint`. @@ -18,6 +20,7 @@ To switch to `pipx`, run `pip uninstall textual-paint && pipx install textual-pa ### Added - Added `--ascii-only` option which affects the whole UI, not just tool icons as with `--ascii-only-icons`. This makes Textual Paint more usable in older terminals like Windows Console Host (`conhost.exe`), or XTerm. + - I created ASCII art versions of all the dialog icons, and tweaked everything that normally uses Unicode characters, including built-in Textual widgets, like the radio buttons and scrollbars. - Right click can now be used as an alternative to Ctrl+click to pick a foreground color from the palette. In XTerm, Ctrl opens a context menu, so this is the only way in XTerm. It's also more convenient. - Note: Left click in MS Paint selects the foreground (primary) color, whereas in Textual Paint it selects the background color, which is, strangely, essentially the primary color, since you draw with a space character by default. It may be worth changing the default character to a full block character (█), and swapping these mouse button mappings, to bring it in line with MS Paint. This would also allow drawing "pixels" and saving as a plain text file without it all becoming blank when color information is discarded. - Side note: I was previously saving right click for a possible future UI where the foreground and background selections both have a foreground, background, and glyph, with the three components being analogous to a single color in MS Paint. I haven't explored that idea yet. It's likely too complicated conceptually, but it would allow more granular color replacement with the Color Eraser tool (if that's even desirable), and quicker access to two different glyphs. @@ -26,8 +29,8 @@ To switch to `pipx`, run `pip uninstall textual-paint && pipx install textual-pa ### Fixed -- Stretch/Skew dialog's icons were missing from the package, and didn't show up in the dialog, in the release build. -- Fixed misaligned rows of text in Kitty terminal due to Pencil and Brush tool emojis (now swapped with alternatives, as with several other terminals). The Text and Curve tool icons are also swapped out for options that look better in Kitty (on my computer, at least). +- The Stretch/Skew dialog's icons were missing from the package, and didn't show up in the dialog in the release build. +- Fixed misaligned rows of text in Kitty terminal due to Pencil and Brush tool emojis by swapping them out with alternatives, as with several other terminals. I also swapped out the Text and Curve tool icons for ones that look better in Kitty — on my computer, at least. ## [0.1.0] - 2023-07-24 @@ -57,4 +60,5 @@ First release! - Magnification using FIGlet font files as well as procedural meta-glyphs, with an optional grid [unreleased]: https://github.com/1j01/textual-paint/compare/v0.1.0...HEAD +[0.2.0]: https://github.com/1j01/textual-paint/compare/v0.1.0...v0.2.0 [0.1.0]: https://github.com/1j01/textual-paint/releases/tag/v0.1.0 diff --git a/README.md b/README.md index 3891cdd..67bfeaa 100644 --- a/README.md +++ b/README.md @@ -118,6 +118,9 @@ The rest match MS Paint's keyboard shortcuts: ### File Formats + + + Many file formats are supported, including ANSI art, raster images, SVG and HTML. To choose a file format when saving, type its file extension. For example, to save a PNG, add `.png` to the end of the filename. The default is `.ans`. @@ -153,7 +156,7 @@ Also, if you double right click or hold Ctrl while double clicking on if will edit the text color when you click OK. You can swap the foreground and background colors by right clicking or holding Ctrl while clicking the current colors area. -This is a great convenience, especially when using the Color Eraser tool, or when using custom colors that may be similar to each other. +This is a great convenience, especially when using the Color Eraser tool, or when using custom colors that may be hard to distinguish. You can display a saved ANSI file in the terminal with `cat`: @@ -184,6 +187,7 @@ Let's break down the command: This command will sort and display the content of all non-PNG/SVG files within the "samples" folder and its subdirectories. It must be run from the repository root folder. +
To preview ANSI art files in file managers like Nautilus, Thunar, Nemo, or Caja, you can install the [ansi-art-thumbnailer](https://github.com/1j01/ansi-art-thumbnailer) program I made to go along with this project. @@ -195,7 +199,7 @@ To preview ANSI art files in file managers like Nautilus, Thunar, Nemo, or Caja, - The selection box border appears inside instead of outside (and lacks dashes). For the text box, I hid the border because it was too visually confusing, but it should also have an outer border. - Pressing both mouse buttons stops the current tool, but doesn't undo the current action. Also Pick Color can't be cancelled (with Esc or by pressing both mouse buttons), since it samples the color continuously. - Due to limitations of the terminal, shortcuts using Shift or Alt might not work. Menus are not keyboard navigable, because I can't detect Alt+F, etc. -- The Zoom submenu flickers as it opens, and may not always open in the right place. +- The Zoom submenu flickers as it opens, and may not always open in the right place. (Fixed?) - The canvas flickers when zooming in with the Magnifier tool. - Some languages don't display correctly. - Large files can make the program very slow, as can magnifying the canvas. There is a 500 KB limit when opening files to prevent it from freezing. @@ -219,6 +223,9 @@ To preview ANSI art files in file managers like Nautilus, Thunar, Nemo, or Caja, ## Compatibility + + + Python 3.10 or later is required. ### Linux @@ -291,7 +298,7 @@ If this doesn't work, try increasing it to 1.1. ## Development -Recommended: first, create a virtual environment: +First, create a virtual environment, and activate it: ```bash python -m venv .venv # The activate script is in different places on different systems: @@ -393,8 +400,11 @@ mypy src --no-namespace-packages --check-untyped-defs ## License -[MIT](LICENSE.txt) +[MIT](https://github.com/1j01/textual-paint/blob/main/LICENSE.txt) +## News + +For a history of changes to the project, see the [changelog](https://github.com/1j01/textual-paint/blob/main/CHANGELOG.md). ## Unicode Symbols and Emojis for Paint Tools diff --git a/cspell.json b/cspell.json index 57a181c..0e07875 100644 --- a/cspell.json +++ b/cspell.json @@ -133,6 +133,7 @@ "rmate", "rubymine", "screeninfo", + "scrollbars", "SETDESKWALLPAPER", "setterm", "setuptools", diff --git a/setup.cfg b/setup.cfg index a84b87d..687ab87 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,6 +1,6 @@ [metadata] name = textual_paint -version = 0.1.0 +version = 0.2.0 description = MS Paint in the terminal, built with Textual long_description = file: README.md long_description_content_type = text/markdown @@ -10,6 +10,9 @@ license = MIT license_file = LICENSE.txt license_files = LICENSE.txt url = https://github.com/1j01/textual-paint +project_urls = + Source = https://github.com/1j01/textual-paint + Changelog = https://github.com/1j01/textual-paint/blob/main/CHANGELOG.md keywords = tui, terminal, paint, drawing, art, graphics, text, textual, rich, ansi, ansi-art, mspaint classifiers = Environment :: Console diff --git a/src/textual_paint/__init__.py b/src/textual_paint/__init__.py index 5f57242..ff98548 100644 --- a/src/textual_paint/__init__.py +++ b/src/textual_paint/__init__.py @@ -5,7 +5,7 @@ __copyright__ = "Copyright Isaiah Odhner" __credits__ = ["Isaiah Odhner"] __maintainer__ = "Isaiah Odhner" __email__ = "isaiahodhner@gmail.com" -__version__ = "0.1.0" +__version__ = "0.2.0" __license__ = "MIT" # Set version string when in a git repository