Include after AFC, link scripts/ into the config folder
- bd_pa_spoolman.cfg renames AFC's SET_SPOOL_ID, so klipper-macros.cfg must be included after [include AFC/*.cfg]; the README said otherwise. - install.sh links scripts/ as ~/printer_data/config/klipper-macros-scripts so the scripts can be edited in Mainsail/Fluidd. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
9dc733b5bb
commit
179bd0991b
5 files changed
+40
-17
No files matched your search
@@ -30,8 +30,10 @@ check runs with `motion_check: False`), iHeater chamber heater.
|
|||||||
## Repo layout
|
## Repo layout
|
||||||
|
|
||||||
- `macros/klipper-macros.cfg` is the only file `printer.cfg` includes; it
|
- `macros/klipper-macros.cfg` is the only file `printer.cfg` includes; it
|
||||||
includes everything else. On the Pi, `macros/` is linked as
|
includes everything else. It must be included after `[include AFC/*.cfg]`
|
||||||
`~/printer_data/config/klipper-macros/`.
|
(a `rename_existing` of an AFC command only works if AFC loaded first).
|
||||||
|
On the Pi, `macros/` is linked as `~/printer_data/config/klipper-macros/`
|
||||||
|
and `scripts/` as `~/printer_data/config/klipper-macros-scripts/`.
|
||||||
- `extras/*.py` are linked into `~/klipper/klippy/extras/`.
|
- `extras/*.py` are linked into `~/klipper/klippy/extras/`.
|
||||||
- `scripts/` MCU firmware update scripts (printer-specific IDs).
|
- `scripts/` MCU firmware update scripts (printer-specific IDs).
|
||||||
- `tools/effective_config.py` expands the includes like Klipper and compares
|
- `tools/effective_config.py` expands the includes like Klipper and compares
|
||||||
|
|||||||
@@ -80,8 +80,9 @@ cd ~ && git clone https://mangavalk.com/mangavalk/klipper-macros.git
|
|||||||
|
|
||||||
- links `extras/*.py` into `~/klipper/klippy/extras/` (and hides them from
|
- links `extras/*.py` into `~/klipper/klippy/extras/` (and hides them from
|
||||||
Klipper's update manager),
|
Klipper's update manager),
|
||||||
- links `macros/` to `~/printer_data/config/klipper-macros`, so the files show
|
- links `macros/` to `~/printer_data/config/klipper-macros` and `scripts/` to
|
||||||
up in Mainsail/Fluidd under `klipper-macros/`,
|
`~/printer_data/config/klipper-macros-scripts`, so the files show up in
|
||||||
|
Mainsail/Fluidd and can be edited there,
|
||||||
- makes the shell scripts executable,
|
- makes the shell scripts executable,
|
||||||
- adds this section to `moonraker.conf` (once, with a backup):
|
- adds this section to `moonraker.conf` (once, with a backup):
|
||||||
|
|
||||||
@@ -97,10 +98,14 @@ install_script: install.sh
|
|||||||
|
|
||||||
Then:
|
Then:
|
||||||
|
|
||||||
1. In `printer.cfg`, after `[include mainsail.cfg]`:
|
1. In `printer.cfg`, after `[include mainsail.cfg]` **and after the AFC
|
||||||
|
includes** (`[include AFC/*.cfg]`):
|
||||||
```ini
|
```ini
|
||||||
[include klipper-macros/klipper-macros.cfg]
|
[include klipper-macros/klipper-macros.cfg]
|
||||||
```
|
```
|
||||||
|
`bd_pa_spoolman.cfg` wraps AFC's `SET_SPOOL_ID` with `rename_existing`,
|
||||||
|
which only works when AFC is loaded first; otherwise Klipper stops with
|
||||||
|
`Existing command 'SET_SPOOL_ID' not found in gcode_macro rename`.
|
||||||
2. Restart the **Klipper service** (`sudo systemctl restart klipper`, or
|
2. Restart the **Klipper service** (`sudo systemctl restart klipper`, or
|
||||||
Mainsail → services → klipper → restart). A `RESTART` or
|
Mainsail → services → klipper → restart). A `RESTART` or
|
||||||
`FIRMWARE_RESTART` does not load new or changed Python modules.
|
`FIRMWARE_RESTART` does not load new or changed Python modules.
|
||||||
@@ -118,8 +123,8 @@ twice and the old copy may win:
|
|||||||
|
|
||||||
- remove `[include bd_pa_afc_spoolman.cfg]` and
|
- remove `[include bd_pa_afc_spoolman.cfg]` and
|
||||||
`[include ./blobifier/blobifier.cfg]` from `printer.cfg`,
|
`[include ./blobifier/blobifier.cfg]` from `printer.cfg`,
|
||||||
- replace `[include ./Macros/macros.cfg]` with
|
- remove `[include ./Macros/macros.cfg]` and add
|
||||||
`[include klipper-macros/klipper-macros.cfg]`,
|
`[include klipper-macros/klipper-macros.cfg]` after `[include AFC/*.cfg]`,
|
||||||
- keep including what is not in this repo yourself, for example
|
- keep including what is not in this repo yourself, for example
|
||||||
`[include Macros/timelapse.cfg]` and `[include Macros/TEST_SPEED.cfg]`.
|
`[include Macros/timelapse.cfg]` and `[include Macros/TEST_SPEED.cfg]`.
|
||||||
|
|
||||||
|
|||||||
+17
-9
@@ -6,7 +6,8 @@
|
|||||||
#
|
#
|
||||||
# What it does (safe to run again, Moonraker runs it after every update):
|
# What it does (safe to run again, Moonraker runs it after every update):
|
||||||
# 1. links extras/*.py into ~/klipper/klippy/extras/
|
# 1. links extras/*.py into ~/klipper/klippy/extras/
|
||||||
# 2. links macros/ to ~/printer_data/config/klipper-macros
|
# 2. links macros/ to ~/printer_data/config/klipper-macros and scripts/
|
||||||
|
# to ~/printer_data/config/klipper-macros-scripts (editable in the web UI)
|
||||||
# 3. makes the shell scripts executable
|
# 3. makes the shell scripts executable
|
||||||
# 4. adds an [update_manager klipper-macros] section to moonraker.conf
|
# 4. adds an [update_manager klipper-macros] section to moonraker.conf
|
||||||
# (once, with a backup of moonraker.conf)
|
# (once, with a backup of moonraker.conf)
|
||||||
@@ -21,6 +22,7 @@ KLIPPER_DIR="${KLIPPER_DIR:-$HOME/klipper}"
|
|||||||
CONFIG_DIR="${CONFIG_DIR:-$HOME/printer_data/config}"
|
CONFIG_DIR="${CONFIG_DIR:-$HOME/printer_data/config}"
|
||||||
MOONRAKER_CONF="$CONFIG_DIR/moonraker.conf"
|
MOONRAKER_CONF="$CONFIG_DIR/moonraker.conf"
|
||||||
LINK_NAME="$CONFIG_DIR/klipper-macros"
|
LINK_NAME="$CONFIG_DIR/klipper-macros"
|
||||||
|
SCRIPTS_LINK="$CONFIG_DIR/klipper-macros-scripts"
|
||||||
EXTRAS_DIR="$KLIPPER_DIR/klippy/extras"
|
EXTRAS_DIR="$KLIPPER_DIR/klippy/extras"
|
||||||
ORIGIN="$(git -C "$REPO_DIR" remote get-url origin 2>/dev/null || echo "https://mangavalk.com/mangavalk/klipper-macros.git")"
|
ORIGIN="$(git -C "$REPO_DIR" remote get-url origin 2>/dev/null || echo "https://mangavalk.com/mangavalk/klipper-macros.git")"
|
||||||
|
|
||||||
@@ -36,7 +38,9 @@ if [[ ${1:-} == --uninstall ]]; then
|
|||||||
rm "$target" && echo "removed $target"
|
rm "$target" && echo "removed $target"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
[[ -L $LINK_NAME ]] && rm "$LINK_NAME" && echo "removed $LINK_NAME"
|
for link in "$LINK_NAME" "$SCRIPTS_LINK"; do
|
||||||
|
if [[ -L $link ]]; then rm "$link" && echo "removed $link"; fi
|
||||||
|
done
|
||||||
echo "Remove [include klipper-macros/...] from printer.cfg and the"
|
echo "Remove [include klipper-macros/...] from printer.cfg and the"
|
||||||
echo "[update_manager klipper-macros] section from moonraker.conf yourself,"
|
echo "[update_manager klipper-macros] section from moonraker.conf yourself,"
|
||||||
echo "then restart the Klipper service."
|
echo "then restart the Klipper service."
|
||||||
@@ -61,12 +65,15 @@ if [[ -f $exclude ]]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 2. Macros
|
# 2. Macros and scripts, visible and editable in Mainsail/Fluidd
|
||||||
if [[ -e $LINK_NAME && ! -L $LINK_NAME ]]; then
|
for pair in "macros:$LINK_NAME" "scripts:$SCRIPTS_LINK"; do
|
||||||
die "$LINK_NAME exists and is not a link; move it away first"
|
src="$REPO_DIR/${pair%%:*}" link="${pair#*:}"
|
||||||
fi
|
if [[ -e $link && ! -L $link ]]; then
|
||||||
ln -sfn "$REPO_DIR/macros" "$LINK_NAME"
|
die "$link exists and is not a link; move it away first"
|
||||||
echo "linked $LINK_NAME"
|
fi
|
||||||
|
ln -sfn "$src" "$link"
|
||||||
|
echo "linked $link"
|
||||||
|
done
|
||||||
|
|
||||||
# 3. Scripts
|
# 3. Scripts
|
||||||
find "$REPO_DIR/macros" "$REPO_DIR/scripts" -name "*.sh" -exec chmod +x {} +
|
find "$REPO_DIR/macros" "$REPO_DIR/scripts" -name "*.sh" -exec chmod +x {} +
|
||||||
@@ -92,7 +99,8 @@ fi
|
|||||||
cat <<EOF
|
cat <<EOF
|
||||||
|
|
||||||
Done. Next steps (see README.md):
|
Done. Next steps (see README.md):
|
||||||
1. add to printer.cfg: [include klipper-macros/klipper-macros.cfg]
|
1. add to printer.cfg, after [include AFC/*.cfg]:
|
||||||
|
[include klipper-macros/klipper-macros.cfg]
|
||||||
and remove the old includes of the same macro files
|
and remove the old includes of the same macro files
|
||||||
2. restart the Klipper SERVICE (not just RESTART), so the new Python
|
2. restart the Klipper SERVICE (not just RESTART), so the new Python
|
||||||
modules are loaded: sudo systemctl restart klipper
|
modules are loaded: sudo systemctl restart klipper
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
#####################################################################
|
#####################################################################
|
||||||
# klipper-macros: include this one file from printer.cfg, after
|
# klipper-macros: include this one file from printer.cfg, after
|
||||||
# [include mainsail.cfg] (it needs [pause_resume], [virtual_sdcard] and
|
# [include mainsail.cfg] (it needs [pause_resume], [virtual_sdcard] and
|
||||||
# [respond] from there, and replaces Mainsail's PAUSE/RESUME/CANCEL_PRINT):
|
# [respond] from there, and replaces Mainsail's PAUSE/RESUME/CANCEL_PRINT)
|
||||||
|
# and after [include AFC/*.cfg] (bd_pa_spoolman.cfg renames AFC's
|
||||||
|
# SET_SPOOL_ID, which only works when AFC is loaded first):
|
||||||
#
|
#
|
||||||
# [include klipper-macros/klipper-macros.cfg]
|
# [include klipper-macros/klipper-macros.cfg]
|
||||||
#
|
#
|
||||||
|
|||||||
@@ -35,6 +35,12 @@ wrong firmware to a board can leave it unusable until it is reflashed by hand.**
|
|||||||
|
|
||||||
## Adapting them to your printer
|
## Adapting them to your printer
|
||||||
|
|
||||||
|
`install.sh` links this folder into the config folder as
|
||||||
|
`klipper-macros-scripts/`, so you can edit the scripts in Mainsail/Fluidd.
|
||||||
|
Edits change files in the git repo: Moonraker then shows the repo as
|
||||||
|
modified ("dirty") and will not update it until you commit or discard them
|
||||||
|
(`git -C ~/klipper-macros stash` before updating, `stash pop` after).
|
||||||
|
|
||||||
1. **Make one build config per board.** In `~/klipper` (and in `~/katapult`
|
1. **Make one build config per board.** In `~/klipper` (and in `~/katapult`
|
||||||
for the Katapult script), run `make menuconfig KCONFIG_CONFIG=<name>` for
|
for the Katapult script), run `make menuconfig KCONFIG_CONFIG=<name>` for
|
||||||
each board, with the settings from your board's documentation. The file
|
each board, with the settings from your board's documentation. The file
|
||||||
|
|||||||
Reference in new issue
Block a user