From a49b954ce1998288abeaa26d9da40cd5ab1ebdda Mon Sep 17 00:00:00 2001 From: thetalkingdrum <254868117+thetalkingdrum@users.noreply.github.com> Date: Fri, 7 Aug 2026 23:10:43 +0200 Subject: [PATCH 1/4] Create bug_report.yml --- .github/ISSUE_TEMPLATE/bug_report.yml | 113 ++++++++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 00000000..4f7d56a6 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,113 @@ +name: Bug Report +description: Report unexpected color, artifact, or crash behavior in NegPy +title: "[Bug]: " +labels: ["bug", "needs-triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to report a bug. Color and artifact issues in particular are + near-impossible to diagnose from a rendered screenshot alone — please fill in as much of + this as you can, and attach a source file if possible. + + - type: input + id: negpy-version + attributes: + label: NegPy version / build + description: Version number, or commit hash / branch if built from source + placeholder: "e.g. 0.48, or main @ a1b2c3d" + validations: + required: true + + - type: input + id: os + attributes: + label: OS + placeholder: "e.g. macOS 14 Sonoma, Windows 11, Ubuntu 24.04" + validations: + required: true + + - type: dropdown + id: scanner + attributes: + label: Scanner + description: Select your scanner, or choose "Other" and specify below + options: + - Pakon (F135/F235) + - Nikon Coolscan (specify model below) + - Noritsu + - Minolta Dimage Scan Elite + - Digital camera (macro/copy setup) + - Other / not sure + - N/A (not a scan-related issue) + validations: + required: true + + - type: input + id: scanner-detail + attributes: + label: Scanner model / details + description: If you picked Coolscan or "Other" above, specify exact model here. If a digital camera setup, list camera + lens. + placeholder: "e.g. Coolscan LS-9000, or Sony A7RIV + 90mm macro" + + - type: input + id: light-source + attributes: + label: Light source + description: What's illuminating the film — scanner's built-in lamp/LED, or an external light source for camera-scanning setups + placeholder: "e.g. stock Pakon halogen, Kaiser slimlite plano, narrowband LED (specify wavelengths if known)" + validations: + required: true + + - type: dropdown + id: correction-mode + attributes: + label: Correction mode + description: What was the Narrowband Trichrome Correction toggle set to when the issue occurred? + options: + - "On (narrowband trichrome correction enabled)" + - "Off" + - Not sure / didn't touch this setting + - N/A + validations: + required: true + + - type: input + id: input-profile + attributes: + label: Input ICC profile (if any) + description: Which profile was selected under Input ICC, if you set one explicitly + placeholder: "e.g. RGBScan.icc, none/default" + + - type: textarea + id: settings + attributes: + label: Relevant process-tab settings + description: Any non-default values for Dye Separation, Separation Damping, Dye Mute, ICE, or other sliders you changed + placeholder: "e.g. Dye Separation 1.50, Separation Damping 1.00" + + - type: textarea + id: description + attributes: + label: What happened + description: What did you expect, and what did you get instead? + validations: + required: true + + - type: textarea + id: source-file + attributes: + label: Source file + description: | + Please attach (or link to) the original scan file, not just the rendered/exported image — + the raw file is usually required to actually reproduce and diagnose color/artifact bugs. + If you can't share the full file, a small cropped region of the raw scan still helps enormously. + placeholder: "Link to file, or drag-and-drop attachment here" + validations: + required: true + + - type: textarea + id: screenshots + attributes: + label: Screenshots + description: Before/after, or comparison images, are still useful alongside the source file From f4962928c410ea6ed882f6acbee64c51b2dd6cf6 Mon Sep 17 00:00:00 2001 From: thetalkingdrum <254868117+thetalkingdrum@users.noreply.github.com> Date: Fri, 7 Aug 2026 23:14:18 +0200 Subject: [PATCH 2/4] Create config.yml --- .github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 00000000..e41f303b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: Questions / general discussion + url: https://github.com/marcinz606/NegPy/discussions + about: For questions, setup help, or general discussion, please use Discussions instead of an issue. From 38b3f00a7318e62babe25a6edf262e1d97b645b1 Mon Sep 17 00:00:00 2001 From: thetalkingdrum <254868117+thetalkingdrum@users.noreply.github.com> Date: Mon, 10 Aug 2026 15:06:06 +0200 Subject: [PATCH 3/4] fix: move issue-template config.yml out of nested .github path --- .github/ISSUE_TEMPLATE/{.github/ISSUE_TEMPLATE => }/config.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/ISSUE_TEMPLATE/{.github/ISSUE_TEMPLATE => }/config.yml (100%) diff --git a/.github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/.github/ISSUE_TEMPLATE/config.yml rename to .github/ISSUE_TEMPLATE/config.yml From da42de12be19422ec552f4cc3448c3cd11511bfb Mon Sep 17 00:00:00 2001 From: thetalkingdrum <254868117+thetalkingdrum@users.noreply.github.com> Date: Wed, 19 Aug 2026 21:19:57 +0200 Subject: [PATCH 4/4] fix(shortcuts): give Peek Flat Scan its own key, M, instead of | toggle_flat_peek's default was "|", not a letter like its Peek Negative sibling's mnemonic (N), and "|" needs Shift+\ on most layouts. M fits the app's own "flat master" terminology and no default binding already claims it. Co-Authored-By: Claude Sonnet 5 --- negpy/desktop/view/shortcut_registry.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/negpy/desktop/view/shortcut_registry.py b/negpy/desktop/view/shortcut_registry.py index e14ef949..8d0582cc 100644 --- a/negpy/desktop/view/shortcut_registry.py +++ b/negpy/desktop/view/shortcut_registry.py @@ -52,7 +52,7 @@ class ShortcutEntry: "local_oval": ShortcutEntry("", "Toggle dodge & burn oval mask draw", "Tools"), "local_gradient": ShortcutEntry("", "Toggle dodge & burn card-edge mask draw", "Tools"), "analysis_draw": ShortcutEntry("Shift+R", "Toggle analysis region draw", "Tools"), - "toggle_flat_peek": ShortcutEntry("|", "Peek flat scan (digital intermediate)", "Tools"), + "toggle_flat_peek": ShortcutEntry("M", "Peek flat scan (digital intermediate)", "Tools"), "toggle_negative_peek": ShortcutEntry("N", "Peek negative (source as loaded)", "Tools"), "toggle_zones": ShortcutEntry("Shift+Z", "Adams zone overlay", "Tools"), "toggle_test_strip": ShortcutEntry("Shift+T", "Density × grade test strip", "Tools"),