docs: add final README and CONTRIBUTING
This commit is contained in:
parent
1739c70f43
commit
788b5c1688
2 changed files with 157 additions and 3 deletions
82
CONTRIBUTING.md
Normal file
82
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,82 @@
|
||||||
|
# Contributing to Illuscape
|
||||||
|
|
||||||
|
Thank you for helping make Inkscape more accessible to Illustrator migrants.
|
||||||
|
|
||||||
|
## How to add a keyboard shortcut
|
||||||
|
|
||||||
|
1. Open `config/keys/illustrator-cc.xml` and/or `config/keys/illustrator-cs6.xml`
|
||||||
|
2. Add a `<bind>` element:
|
||||||
|
```xml
|
||||||
|
<bind key="KEY" action="INKSCAPE_ACTION" modifiers="Primary,Shift" />
|
||||||
|
```
|
||||||
|
Valid modifiers: `Primary` (Ctrl/Cmd), `Shift`, `Alt`. Omit `modifiers=""` for bare keys.
|
||||||
|
3. Find Inkscape action names via `inkscape --action-list` on your system
|
||||||
|
4. Update the shortcut table in `README.md`
|
||||||
|
5. Update the shortcut comparison table in the spec if the shortcut differs between CC and CS6
|
||||||
|
|
||||||
|
## How to add a color palette
|
||||||
|
|
||||||
|
1. Create `config/palettes/YourPalette.gpl` following GPL format:
|
||||||
|
```
|
||||||
|
GIMP Palette
|
||||||
|
Name: Your Palette Name
|
||||||
|
Columns: 8
|
||||||
|
#
|
||||||
|
255 0 0 Red
|
||||||
|
...
|
||||||
|
```
|
||||||
|
2. Add the filename to `uninstall.sh`'s `remove_files()` function so it gets cleaned up
|
||||||
|
3. The palette will be installed automatically by `install.sh` (it copies all `*.gpl` files)
|
||||||
|
|
||||||
|
## How to add a document template
|
||||||
|
|
||||||
|
1. Create an SVG at `config/templates/YourTemplate.svg`
|
||||||
|
2. Include a `sodipodi:namedview` element with appropriate canvas settings
|
||||||
|
3. Add the filename to `uninstall.sh`'s `remove_files()` function
|
||||||
|
4. The template will be installed automatically by `install.sh` (copies all `*.svg` files)
|
||||||
|
|
||||||
|
## How to add a preference
|
||||||
|
|
||||||
|
Preferences live in `config/preferences-patch.xml`. The XML merge algorithm (in
|
||||||
|
`scripts/merge_prefs.py`) does an upsert: it walks the patch tree, matches nodes
|
||||||
|
by their `id` attribute, and sets only the attributes present in the patch. It
|
||||||
|
never deletes nodes or attributes.
|
||||||
|
|
||||||
|
To add a new preference:
|
||||||
|
1. Find the relevant node in Inkscape's `preferences.xml` on a running install
|
||||||
|
2. Add the node/attribute to `config/preferences-patch.xml` with the correct `id` values
|
||||||
|
3. Write a test in `tests/test_merge_prefs.py` that verifies the attribute is set
|
||||||
|
4. Run `conda run -n cf python3 -m pytest tests/test_merge_prefs.py -v` to verify
|
||||||
|
|
||||||
|
## Running tests
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Python unit tests (merge algorithm)
|
||||||
|
conda run -n cf python3 -m pytest tests/test_merge_prefs.py -v
|
||||||
|
|
||||||
|
# Integration tests (requires bats-core)
|
||||||
|
bats tests/test_install.bats
|
||||||
|
|
||||||
|
# Validate all config files
|
||||||
|
conda run -n cf python3 -c "
|
||||||
|
from xml.etree import ElementTree as ET
|
||||||
|
from pathlib import Path
|
||||||
|
for f in [*Path('config/keys').glob('*.xml'), *Path('config/templates').glob('*.svg'),
|
||||||
|
*Path('config/symbols').glob('*.svg'), Path('config/preferences-patch.xml')]:
|
||||||
|
ET.parse(f)
|
||||||
|
print(f'OK {f}')
|
||||||
|
"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Commit format
|
||||||
|
|
||||||
|
```
|
||||||
|
feat: add <shortcut/palette/template>
|
||||||
|
fix: correct <behavior>
|
||||||
|
test: add test for <scenario>
|
||||||
|
docs: update <section>
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
By contributing, you agree that your contributions are released under the MIT license.
|
||||||
78
README.md
78
README.md
|
|
@ -6,6 +6,26 @@ Illuscape patches Inkscape's config to match Illustrator's keyboard shortcuts,
|
||||||
workspace layout, scroll/zoom behavior, color palettes, and document templates —
|
workspace layout, scroll/zoom behavior, color palettes, and document templates —
|
||||||
without modifying Inkscape itself.
|
without modifying Inkscape itself.
|
||||||
|
|
||||||
|
## What it does
|
||||||
|
|
||||||
|
| Feature | Detail |
|
||||||
|
|---------|--------|
|
||||||
|
| Keyboard shortcuts | Adobe Illustrator CC or CS6 presets — your choice at install |
|
||||||
|
| Scroll/zoom | Mouse wheel pans (not zooms); Ctrl+wheel zooms — matching Illustrator |
|
||||||
|
| Canvas | White background, cyan guides, rubber-band selection (touching, not enclosed) |
|
||||||
|
| Node handles | Square handles, rotation handles hidden until needed |
|
||||||
|
| Palettes | Illustrator Defaults, Grays, and Earth Tones swatches |
|
||||||
|
| Templates | Letter, A4, Web 1920x1080, Web 1280x720, Print CMYK Letter, Print CMYK A4 |
|
||||||
|
| Symbols | Common symbol library (arrows, checkmark, star, cross) |
|
||||||
|
| Recent files | 20 (matching Illustrator; Inkscape default is 4) |
|
||||||
|
| Single-window mode | On by default |
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
- Inkscape 1.2 or later
|
||||||
|
- Python 3.8+
|
||||||
|
- Bash 4+
|
||||||
|
|
||||||
## Install
|
## Install
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
|
|
@ -14,7 +34,21 @@ cd illuscape
|
||||||
./install.sh
|
./install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Follow the prompt to select your Illustrator era (CC or CS6), then open Inkscape.
|
Follow the prompt to choose your Illustrator era (CC or CS6), then open Inkscape.
|
||||||
|
|
||||||
|
### Non-interactive (for scripts / MenagerieOS)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./install.sh --preset=cc --yes
|
||||||
|
# or
|
||||||
|
./install.sh --preset=cs6 --yes
|
||||||
|
```
|
||||||
|
|
||||||
|
### Supported Inkscape installs
|
||||||
|
|
||||||
|
- Native (apt, pacman, etc.)
|
||||||
|
- Flatpak (`org.inkscape.Inkscape`)
|
||||||
|
- Snap
|
||||||
|
|
||||||
## Uninstall
|
## Uninstall
|
||||||
|
|
||||||
|
|
@ -22,8 +56,46 @@ Follow the prompt to select your Illustrator era (CC or CS6), then open Inkscape
|
||||||
./uninstall.sh
|
./uninstall.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Your original Inkscape config is restored from backup.
|
Your original Inkscape config is restored from the backup created at install time.
|
||||||
|
|
||||||
|
## Tool mapping from Illustrator to Inkscape
|
||||||
|
|
||||||
|
| Illustrator tool | Key | Inkscape equivalent |
|
||||||
|
|-----------------|-----|---------------------|
|
||||||
|
| Selection | V | Selection tool |
|
||||||
|
| Direct Selection | A | Node tool |
|
||||||
|
| Pen | P | Pen tool |
|
||||||
|
| Pencil | N | Pencil tool |
|
||||||
|
| Paintbrush | B | Calligraphy tool |
|
||||||
|
| Type | T | Text tool |
|
||||||
|
| Rectangle | M | Rectangle tool |
|
||||||
|
| Ellipse | L | Ellipse tool |
|
||||||
|
| Rotate | R | Transform > Rotate |
|
||||||
|
| Scale | S | Transform > Scale |
|
||||||
|
| Reflect | O | Transform > Flip |
|
||||||
|
| Gradient | G | Gradient tool |
|
||||||
|
| **Mesh** | **U** | **Mesh Gradient tool (direct equivalent)** |
|
||||||
|
| Eyedropper | I | Dropper tool |
|
||||||
|
| Zoom | Z | Zoom tool |
|
||||||
|
| Hand | H / Space | Pan (Space held) |
|
||||||
|
| Scissors | C | Scissors tool |
|
||||||
|
| Eraser | Shift+E | Eraser tool |
|
||||||
|
| Blob Brush | Shift+B | Spray tool (paint mode) |
|
||||||
|
| Symbol Sprayer | Shift+S | Spray tool (clone mode) |
|
||||||
|
| Live Paint | K | Paint Bucket tool |
|
||||||
|
|
||||||
|
## Planned extensions (post-v1)
|
||||||
|
|
||||||
|
- Artboards panel
|
||||||
|
- Character Styles
|
||||||
|
- Recolor Artwork
|
||||||
|
- Object Styles
|
||||||
|
- Export for Screens (1x/2x/3x batch)
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
See [CONTRIBUTING.md](CONTRIBUTING.md).
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT
|
MIT — see [LICENSE](LICENSE).
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue