vcswatch reports that
this package seems to have a new changelog entry (version
1:2.10.0~pre1, distribution
UNRELEASED) and new commits
in its VCS. You should consider whether it's time to make
an upload.
Here are the relevant commit messages:
commit 9af46f663ece039994f4ec42182b45dd780334c6
Merge: 2220e2b6 3d4ef59c
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 22 18:34:10 2026 -0400
Merge pull request #4178 from hdiethelm/ci_htmltest
CI: Check html links for doc
commit 3d4ef59cca8d73d8e1b37d2208298fceb4cfa5f1
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Sun Jun 21 21:19:19 2026 +0200
CI/Docs: Move link check to separate target / script
scripts/htmlcheck.sh does the link checking.
In CI, this is now a separate step.
Remove link check from makefile and all delete now unused scripts.
docs/src/checklinks.py was not used since some time, removed.
commit 2220e2b6e2bac5f10f54329c546af16eda85b140
Merge: eb64e4e0 9a3bb923
Author: andypugh <andy@bodgesoc.org>
Date: Mon Jun 22 11:10:51 2026 +0100
Merge pull request #4177 from grandixximo/fix/docs-toc-margin
docs: fix sidebar scaffold on section-less pages
commit eb64e4e07f9b3d2775ab22d715e80a49f468a6d8
Merge: f744d101 25a4102d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 22 04:48:12 2026 -0400
Merge pull request #4179 from BsAtHome/fix_null-0-confusion
build: Don't use 0 as NULL/nullptr in pointer compare and assignment
commit f744d1013426cf8cdffd6c12c6a393f337f7d343
Merge: 3917a726 73e6b793
Author: c-morley <c-morley@users.noreply.github.com>
Date: Sun Jun 21 09:14:13 2026 -0700
Merge pull request #4189 from grandixximo/fix/qtvcp-early-signal-handlers
qtvcp: arm terminate/interrupt handlers before screen construction
commit 3917a7266ef51e295ede95331d7035e2355bb09d
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date: Sat Jun 20 11:18:24 2026 -0700
qtvcp -mdi_line/history: make the history file if not found
If the INI defined file is not found, make the file.
Also add some debug info
commit 73e6b793136cb51f198e391118cf8fa743cdf62e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Jun 20 21:32:55 2026 +0800
qtvcp: arm terminate/interrupt handlers before screen construction
The handlers were installed only just before the event loop, after
construction. SIGINT's default handler raises KeyboardInterrupt, so an
interrupt during construction became an unhandled exception (headless, it
hung on the error dialog). Install them right after QApplication is created;
before the loop runs a signal does a clean shutdown and exit, once running
it quits the loop as before.
commit 25a4102d257d42edee122d44cd7f459870beaa82
Author: Bertho Stultiens <bertho@vagrearg.org>
Date: Sat Jun 20 00:09:25 2026 +0200
build: Don't use 0 as NULL/nullptr in pointer compare and assignment.
commit 9a3bb92374986f7512d1b837124d6a70bab7eeee
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 19 09:06:52 2026 +0800
docs: fix sidebar scaffold on section-less pages
Body-class regex required class right after <body>, but pages with a
title anchor emit <body id=... class=...>, so toc2 toc-left was never
added. Section-less pages (pci-parallel-port, mpg) lost the left margin
and TOC arrows. Match attrs before class.
commit 853878be8a5e8b5290b8397850eb2a040b31edfa
Merge: ac00efde e49c4214
Author: andypugh <andy@bodgesoc.org>
Date: Thu Jun 18 14:28:09 2026 +0100
Merge pull request #4150 from hdiethelm/ci_doc_build
CI: htmldoc artifacts and package
commit ac00efdebcfc4d35ab5cfd8839e901263bbd76dd
Merge: 77e9f58b 4eff8114
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 17 23:25:34 2026 -0400
Merge pull request #4174 from grandixximo/fix/en-cssrel
docs(build): fix English HTML stylesheet path one level too shallow
commit 4eff811485a620f035601633d2c0db37d05f4989
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 18 10:11:42 2026 +0800
docs(build): fix English HTML stylesheet path one level too shallow
English renders from build/adoc/en with a stem that omits the en/ prefix,
so the cssrel rule emits ../ instead of ../../ and the pages load a
nonexistent en/asciidoctor.css and render unstyled. Add an en-specific
rule with the +1. Translated languages and man pages were already correct.
commit e49c42143c57b8906ae81e36966cb508f1cfe00f
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 17 21:46:21 2026 +0200
CI: Upload doc as tar
commit 77e9f58b38fde529971cd52b292d0b67e75234af
Merge: 2be516b1 717a7d43
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 17 01:24:01 2026 -0400
Merge pull request #4173 from grandixximo/cherry-4166-emccalib-master
emccalib: ignore ini refs embedded in pin names (cherry-pick of #4166)
commit 717a7d435477e57403a16a15c68ddf7892993b1a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 15 09:36:09 2026 +0800
emccalib: ignore ini refs embedded in pin names
Only treat a setp line as tunable when the ini reference is the value
being set, not when it appears inside the pin name. Fixes the invalid
widget name crash in the calibration tool (issue #4165).
commit 2be516b13ba9e5d5ed5e10f1afce3b94ed50428a
Merge: 59c5a73e 5277e322
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Jun 16 06:40:34 2026 -0400
Merge pull request #4140 from NTULINUX/system-tclpath
Drop the need for exporting TCLLIBPATH, use system path [v2]
commit 59c5a73e64363bdad13460b34a8b1354f3674090
Merge: 175bf47a 5508fa6e
Author: BsAtHome <bertho@vagrearg.org>
Date: Tue Jun 16 09:34:58 2026 +0200
Merge pull request #4171 from grandixximo/fix/4169-finally-return
qtvcp: move return out of finally in SAVE_PROGRAM
commit 5508fa6e246b9802b7470c07f880ca4894ead9a2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Jun 16 10:58:50 2026 +0800
qtvcp: move return out of finally in SAVE_PROGRAM
return npath sat inside the finally block, which silently overrode the
except branch's return None. SAVE_PROGRAM therefore returned a valid
looking path even when the write failed, swallowing the exception.
Dedenting it to the method body restores the intended error semantics
and clears the SyntaxWarning Python 3.14 emits for return in finally.
Fixes #4169.
commit 175bf47aed99658566008c6d0e1378e23c9c1019
Merge: c1f4b6cd 23f7546e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 15 22:08:15 2026 -0400
Merge pull request #4170 from grandixximo/touchy-min-height
touchy: open at a sensible minimum window height
commit 23f7546e1f3e98fc863a7382463feb550d52c838
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Tue Jun 16 10:01:00 2026 +0800
touchy: open at a sensible minimum window height
Touchy sizes its window to the active notebook tab's preferred size
on first map. The Startup tab is the smallest of the six (just the
MPG wheel and Cycle Start), so the window opens around 984 by 274
pixels and the other tabs (Status, Auto, Preferences) are clipped
until the user resizes manually.
Floor the initial height at 500 pixels in _fit_to_monitor's default
branch so all tabs are usable out of the box, capped at the work
area so we never open off-screen. A 600 pixel touchscreen panel
with a top and bottom bar still has the room; on a smaller display
the existing monitor cap keeps the window on-screen. The minimum
size request is untouched, so the user can still resize smaller.
commit 5277e322a23752e5e3f0d220470307964e171e44
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 15 08:24:27 2026 +0800
system-tclpath: fix package build and nf.EMC2_TCL_DIR
- nf.py.in: expose EMC2_TCL_DIR so rs274/options.py can read it
(fixes 'module nf has no attribute EMC2_TCL_DIR' at runtime)
- control.top.in: build-depend on tcl for /usr/bin/tclsh; src/configure
queries tcl_pkgPath in override_dh_auto_configure, which runs after
build-deps, so no bootstrap issue
- configure.ac: stop the install branch from clobbering EMC2_TCL_DIR set
by --with-tcl-dir
commit 78da77a9daab18b382fd3a36d7d029758f9ca715
Author: Alec Ari <neotheuser@ymail.com>
Date: Mon Jun 8 09:24:23 2026 -0500
Drop the need for exporting TCLLIBPATH, use system path
Signed-off-by: Alec Ari <neotheuser@ymail.com>
commit c1f4b6cd7d6b373176a6a1d7e5253048b481a531
Merge: 75c139ed f57448c1
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 14 16:08:11 2026 +0100
Merge pull request #4160 from grandixximo/spindle-atspeed-m5
motion: wait for spindle at-speed after M5 spindle stop
commit 75c139ed435d7c70f39c8b6d43cb24740dfdfbb4
Merge: 1ed052dc e8880684
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 14 15:37:40 2026 +0100
Merge branch '2.9'
using -s ours, should a no-op
commit e8880684076c8f8275b9e92dfda81c0bc37dcdac
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 14 14:56:01 2026 +0100
Touchy: Backport updates from master
commit 030a8498acb0982365fb370572925a9d558ded11
Merge: c7b37d0f c52992c9
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 14 14:38:28 2026 +0100
Merge pull request #4164 from grandixximo/backport/3996-tool-offset-params-2.9
Backport #3996: make #5401-#5409 the applied tool length offset (2.9)
commit 1ed052dc993d750b1073deb1560e3b529eee8dbd
Merge: 51c6c859 c4feaae7
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 14 14:38:09 2026 +0100
Merge pull request #4163 from grandixximo/docs/g38-machine-coords
docs: G38 probe to machine-coordinate conversion via #5401-#5409
commit 51c6c8597e9617e3430b025e91c42286b75fd070
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 14 09:48:05 2026 +0200
docs: halshow - add some explanations to settings
commit c2df0ecf9cee03ce5be8bebc74731610dc39ea67
Merge: 4ad4ab41 2e8186c1
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 14 09:34:01 2026 +0200
Merge pull request #4162 from grandixximo/halshow-docs-no-new29
docs: drop 'New in 2.9' framing from halshow page
commit 4ad4ab4116e08b3476fb51c806e608dcf679eac3
Merge: 48094453 f9b04696
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 14 09:33:50 2026 +0200
Merge pull request #4147 from grandixximo/halshow-merged-tree
halshow: show pins and parameters in one tree
commit 48094453d311e24b9ec6c4aa9597ebf554421ee2
Merge: 935bc405 aada1178
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 14 09:21:32 2026 +0200
Merge pull request #4133 from grandixximo/touchy-override-font
touchy: replace deprecated font and colour overrides with CSS
commit c52992c9439ec3e00a4819c80f7fda64a890bfaa
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 09:29:38 2026 +0800
tests: update tool offset assertions for #5401-#5409 applied semantics
Eight tests in tests/interp/g10/, tests/t0/ and tests/toolchanger/
asserted the old behavior of #5401-#5409 (rewritten by M6 / G10 /
init from the loaded tool's stored offsets). Under the new applied
semantics they need to check the offset only after G43 (or check
that #5401-#5409 are unchanged when only M6 / G10 has run).
Expected outputs regenerated on the 2.9 tree.
(cherry picked from commit 49ddfe633b)
commit 518869861bb4dffeb7943e0eebfc3b3158ac52a6
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 09:15:35 2026 +0800
docs: G38 probe to machine-coordinate conversion via #5401-#5409
Document the official way to recover the absolute machine coordinate of
a probe from #5061-#5069. Since #3996, #5401-#5409 report the applied
tool length offset, so the conversion works with or without an active
tool offset and does not require cancelling it with G49 first.
Refs #4159
commit f57448c1c9d9456ff1cc1d53736e33c3a029f40d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 09:55:10 2026 +0800
tests: match STOP_SPINDLE_TURNING stub to 2-arg signature
commit aada1178e8aec915c4364e89cec5088e59f12b31
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 09:08:42 2026 +0800
touchy: rename _tag to _add_style_class
Per review on #4133: a more descriptive name for the helper that
adds a style class once. No behavior change.
commit 901c82167a3d8ea956eef671a2f98cbf8f2a0a55
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 8 13:13:09 2026 +0800
touchy: fix invalid default DRO font that triggers a CSS warning
The default dro_font "FreeMono 10 Pitch Bold 16" parses to the Pango
family "FreeMono 10 Pitch". The preference font buttons use
use-font=True, so GtkFontButton renders its label in that font and
emits the family as unquoted CSS, which GTK rejects with
"Junk at end of value for font-family" (the parse warning in #4068).
"FreeMono 10 Pitch" is not a real family (Pango already fell back to
monospace), so drop the legacy "10 Pitch" token and default to
"FreeMono Bold 16". On a fresh profile this clears the warning.
commit 034f0b1af1b7954de425581f07a99d1b2d3a77b3
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 16:35:45 2026 +0800
touchy: replace deprecated font and colour overrides with CSS
GTK deprecated Gtk.Widget.override_font() and modify_fg() in 3.16. Touchy
used them throughout setfont() to set every display font and the
per-coordinate DRO text colours, logging deprecation warnings.
Tag the widgets with style classes once and drive the fonts and colours
from a single GtkCssProvider on the screen, rebuilt whenever a font or
colour preference changes. A Pango font description is translated to CSS
font properties and stored colours are normalised through Gdk.RGBA. The
rendered result is unchanged.
The modify_bg() calls in filechooser, listing and mdi are a separate
selection-highlight pattern and are left for a follow-up.
commit 725231f348c374816074be25cde3fd8e55ef030d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon May 4 09:50:32 2026 +0800
interp: make #5401-#5409 the applied tool length offset
Parameters #5401-#5409 now reflect the tool length offset actually
applied to motion, matching the long-standing documentation ("Set by
G43") and the equivalent Fanuc #5081-#5088 / Haas #5081-#5086
semantics.
Previously they were rewritten on M6, G10 L1/L10/L11, and startup
from the loaded tool's stored offsets, while G43Hn (n != loaded tool),
G43.1, and G43.2 never updated them. Reading #5401-#5409 therefore
did not tell the program what offset was in effect.
Now:
- convert_tool_length_offset writes the applied tool_offset for
G43, G43Hn (any n), G43.1, G43.2, and G49 (zeroed).
- set_tool_parameters / default_tool_parameters / init_tool_parameters
no longer touch #5401-#5409. M6 changes the loaded tool but
does not by itself apply its offset.
- convert_setup_tool (G10 L1/L10/L11) no longer touches them either.
- #5400 (toolno) and #5410-#5413 (diameter, angles, orientation)
still update on M6 / G10 / startup as before.
Doc note in overview.adoc updated to match.
Fixes #2994
commit c4feaae79bc0b323c862766257cb1ff393112187
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 09:15:35 2026 +0800
docs: G38 probe to machine-coordinate conversion via #5401-#5409
Document the official way to recover the absolute machine coordinate of
a probe from #5061-#5069. Since #3996, #5401-#5409 report the applied
tool length offset, so the conversion works with or without an active
tool offset and does not require cancelling it with G49 first.
Refs #4159
commit 344395efd9ea70de91be8435d2d35bf775a4c8d0
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 08:34:49 2026 +0800
motion: make G38.n probe wait for spindle at-speed
The probe command path (EMCMOT_PROBE) passed atspeed=0 to tpAddLine, so a
probe never waited for spindle.N.at-speed even when a preceding M3/M4/M5
armed the barrier. A probe directly after M5 (or M3) started immediately.
Honor atspeed_next_feed in EMCMOT_PROBE the same way EMCMOT_SET_LINE does,
so G38.n behaves like G1: it waits for spin-up after M3 and for stop after
M5, and does not wait when no spindle change is pending.
commit 2e8186c1069217954e07036eb0afd2ef6212ccff
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun Jun 14 08:34:18 2026 +0800
docs: drop 'New in 2.9' framing from halshow page
commit f9b046961d2dcaace9039ce7f3b12e6b91051509
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Jun 13 21:28:18 2026 +0800
halshow: move separate-parameters toggle to settings tab, document
Move the 'Separate parameters' option out of the Tree View menu, where
it was hard to find, into the Settings tab as a persistent checkbox
alongside the other settings. It applies on Apply and is saved between
sessions like the rest. Document the merged tree and the setting, and
refresh the halshow screenshots to show the combined Pins & Parameters
branch.
commit 935bc4050e80a2bf1dce32693e5dd2e0d1e7f18b
Merge: 9a49a766 d788af28
Author: BsAtHome <bertho@vagrearg.org>
Date: Sat Jun 13 15:10:41 2026 +0200
Merge pull request #4148 from grandixximo/fix-ini-missing-file-message
scripts: report missing INI file before parse check
commit 203abbf46f9c7d12b737d2523ec1432f1b721561
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Jun 13 20:18:02 2026 +0800
motion: wait for spindle at-speed after M5 spindle stop
M5 now arms the at-speed barrier like M3/M4, so the next feed/probe
move waits until spindle.N.at-speed reflects the stopped state. The
at-speed pin defaults to 1, so unwired configs are unaffected.
On abort, if motion was held waiting for at-speed after a stop, emit a
loud UI message hinting that spindle.N.at-speed is not wired or does not
go true when stopped, and clear the pending barrier so it can't strand a
later move.
commit cd413645c1c98cebce857c86896b0b9601941879
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Sat Jun 13 10:25:11 2026 +0200
Remove executable flag from images
There is no reason to have images executable
commit 4943713a922713dcd8ba0beccbdb44f03ac29ffe
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 10 17:26:10 2026 +0200
CI: Allow fail on sid
The sid build shows still failed but other packages are built.
commit 366e4de4b45556cd24fe803d2b23caa2a9cc6874
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 10 13:30:12 2026 +0200
CI: Add artefacts to doc
commit 9a49a76624ae32c891f32889789beae3686a40fa
Merge: 5daf12cf 0a6c9141
Author: andypugh <andy@bodgesoc.org>
Date: Fri Jun 12 18:31:03 2026 +0100
Merge pull request #4151 from grandixximo/touchy-no-pane-resize
touchy: stop MDI, listing and file panes resizing with content
commit 5daf12cf987a35fbd0a1e0043f1204e649541509
Merge: 963f2f87 d631e8b1
Author: BsAtHome <bertho@vagrearg.org>
Date: Fri Jun 12 10:59:56 2026 +0200
Merge pull request #4146 from grandixximo/fix-ui-smoke-sudo
ui-smoke: never sudo in crash capture
commit 963f2f873433c37c637390e75059d35685c5726b
Merge: 7565f7ad 313ad99e
Author: Hans Unzner <hansunzner@gmail.com>
Date: Fri Jun 12 09:14:55 2026 +0200
Merge pull request #4153 from grandixximo/remove-docs-comp
Remove .comp files from docs/src
commit 313ad99ec45c808fd2033d0d432e29d914a89769
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 11 11:09:27 2026 +0800
tests: move rand.comp out of docs/src, drop unused out8.comp
Both files duplicate examples already inlined in docs/src/hal/comp.adoc
and are not part of the docs build. rand.comp is only used to generate
the halcompile/userspace test input, so move it next to that test.
out8.comp is referenced nowhere; delete it.
Fixes #4145
commit 0a6c914136d9fdf45a7d2c641ba1a7ec2af64971
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 10 18:45:19 2026 +0800
touchy: stop MDI, listing and file panes resizing with content
The MDI word labels, the G-code listing and the file chooser names
grow with their text, so typing a long number resized the number pad
pane and a long G-code line pushed the page/start-point controls out
of view. Wrap each of those label columns in a horizontal scroller
(with the existing drag-to-pan) so long content scrolls in place and
the layout never moves.
commit 5226f3ddfe776dc47db52c28bb2b88ec8388e92b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 10 18:45:19 2026 +0800
touchy: let a saved window geometry win over fit-to-monitor
The map-time resize to the content's natural size overrode a
user-saved window_geometry preference, so the saved size was never
honored. Skip the natural-size resize when an explicit geometry is
set; the scroller still bounds the window to the work area.
commit e2fc45e03b69cd516cfc9c41f8775bdb0948b56d
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 10 18:45:19 2026 +0800
touchy: fix maximize with a saved window geometry
window.maximize() is a GTK2 leftover; a GTK3 GtkWindow has no .window
attribute, so starting with window_geometry and window_force_max set in
~/.touchy_preferences crashed at startup. Call maximize() on the window
itself, as the default-geometry path already does.
commit d788af28b7c07bc8357a8d15d1d011540382d828
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 10 16:22:40 2026 +0800
fix(scripts): report missing INI file before parse check
inivalue parse check ran before the file-existence check, so a
nonexistent INI file was reported as "The INI-file contains errors
that need to be fixed". Move the existence check ahead of the parse
check and drop the now-redundant later copy.
commit c8586c9ed3e4ac0c89889c89b57ccb4c5c22b787
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 10 14:16:45 2026 +0800
halshow: show pins and parameters in one tree
Pin and parameter names share one namespace, so present them in a
single 'Pins & Parameters' tree. Leaf node ids keep the real type
(pin+/param+) so show, watch and popup handlers work unchanged;
param leaves use the watch-tab param color. A 'Separate parameters'
checkbox in the Tree View menu (saved in preferences) restores the
old layout.
commit 7565f7adccb5ed4f26bd518b21d87c708e0a9276
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date: Tue Jun 9 19:07:08 2026 -0700
qtvcp -screen_options: default to a 10 second screen close delay
Can be reset from the preference file
commit a12f75f0c38c9b535d573d00d35f184a111b65ed
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date: Tue Jun 9 18:59:18 2026 -0700
qtdragon -update QSS for spindle/max velocity override slider warnings
commit 1f192d5ae5a3c3a22b4a6e5253b270a94aefe9c8
Author: Cmorley <chrisinnanaimo@hotmail.com>
Date: Tue Jun 9 18:55:17 2026 -0700
qtdragon -fix regressions 50/100 override buttons
50/100 "max velocity override" buttons and the slider haven't been working.
It turned out the connections (signals/slots) had disappeared.
Fixed the problem and also tweaked some minor things.
The red LEDs in the two axis buttons were red instead of pink,
like the other buttons.
I removed the blank pages on the 4th and 5th axis buttons.
Thanks MarkoPolo!
commit d631e8b1c696fdf7eefe91aa21bb4d554ef4dd17
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Wed Jun 10 09:39:50 2026 +0800
ui-smoke: never sudo in crash capture
crashdump_arm ran `sudo sysctl` to set kernel.core_pattern, assuming
passwordless sudo on CI. On a local run without it, sudo prompts for a
password and stalls the whole suite until interrupted. Only adjust
core_pattern (and apt-get gdb) when already root; non-root falls back
to a cwd core. The tests now run unattended everywhere.
Fixes #4143
commit e90c66dac743dc0bf9f827f70fab5cdd8898c662
Merge: 6589510e e73ba3dc
Author: c-morley <c-morley@users.noreply.github.com>
Date: Mon Jun 8 20:07:58 2026 -0700
Merge pull request #4141 from Sigma1912/qt_preview_use_new_initcode_creator
qt_preview: Use new function to create initcodes
commit 6589510e2264bb42cc38d09368c275c03659a1b6
Author: Greg Carl <26096779+snowgoer540@users.noreply.github.com>
Date: Mon Jun 8 20:43:38 2026 -0400
qtplasmac: fix double "qtvcp" ghost windows on repeated switches to the conversational tab
conv_clear_widgets() calls setParent(None) on all widgets when leaving the conversational tab. On the next entry, conv_setup() calls conv_new_pressed(None) which calls the set_line_...() functions that call .show() on now un-parented widgets. This results in two brief top level windows titled "qtvcp" flashing on screen.
This was only triggered on subsequent conversational tab visits, not the first, since the widgets are only unparented after first the conv_clear_widgets() call. It also did't affect the NEW button since the widgets are still parented.
It's unclear why this behavior was not noticed earlier. Probably a change in Qt or window manager behavior made the unparented widget .show() calls visible. I figured this level of digging was deep enough.
Fixed by adding the "and button" guard to skip the set_line_...() calls in conv_new_pressed() when called with button=None from conv_setup(), as conv_shape_request() immediately rebuilds the layout correctly anyways.
commit ef9e17e608f6d4b846b4db18771224245bbeadfd
Merge: 0b2133a7 a6df7b3a
Author: Hans Unzner <hansunzner@gmail.com>
Date: Tue Jun 9 00:40:46 2026 +0200
Merge pull request #4137 from weblate/weblate-linuxcnc-linuxcnc-docs
Translations update from Hosted Weblate
commit a6df7b3a60f0eb5cc63e202faa3780a5737600b4
Author: Salvador Peña <salvadorp74@hotmail.com>
Date: Mon Jun 8 22:49:24 2026 +0200
Translated using Weblate (Spanish)
Currently translated at 28.1% (9573 of 33994 strings)
Author: Salvador Peña <salvadorp74@hotmail.com>
Translated using Weblate (Spanish)
Currently translated at 28.1% (9553 of 33994 strings)
Author: Salvador Peña <salvadorp74@hotmail.com>
Translated using Weblate (Spanish)
Currently translated at 28.0% (9551 of 33994 strings)
Author: Salvador Peña <salvadorp74@hotmail.com>
Translated using Weblate (Spanish)
Currently translated at 28.0% (9550 of 33994 strings)
Author: Salvador Peña <salvadorp74@hotmail.com>
Co-authored-by: Salvador Peña <salvadorp74@hotmail.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/es/
Translation: LinuxCNC/LinuxCNC Documentation
commit 877eca4033070c6a3a23d5ecb35f15ebc8f2c2da
Author: Américo Monteiro <a_monteiro@gmx.com>
Date: Mon Jun 8 22:49:23 2026 +0200
Translated using Weblate (Portuguese)
Currently translated at 20.3% (6917 of 33994 strings)
Author: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)
Currently translated at 20.3% (6915 of 33994 strings)
Author: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)
Currently translated at 20.3% (6914 of 33994 strings)
Author: Américo Monteiro <a_monteiro@gmx.com>
Translated using Weblate (Portuguese)
Currently translated at 20.3% (6912 of 33994 strings)
Author: Américo Monteiro <a_monteiro@gmx.com>
Co-authored-by: Américo Monteiro <a_monteiro@gmx.com>
Translate-URL: https://hosted.weblate.org/projects/linuxcnc/linuxcnc-docs/pt/
Translation: LinuxCNC/LinuxCNC Documentation
commit e73ba3dc4b0a9a4fab9422f45b085773e3c2ae8d
Author: david mueller <mueller_david@hotmail.com>
Date: Mon Jun 8 15:06:29 2026 +0200
qt_preview: Use new function to create initcodes
Mirrors recent change to gremlin.py using external helper function to initialize preview interpreter.
commit 0b2133a716287f95bed1ddbd4fb0982c99958b55
Merge: c7c0d4f5 1fabe947
Author: andypugh <andy@bodgesoc.org>
Date: Mon Jun 8 13:28:15 2026 +0100
Merge pull request #4123 from Sigma1912/gremlin_fix_initializing_preview_interp
master gremlin: Initialize preview interpreter with active modal gcodes
commit c7c0d4f5f3cb0047fc27e18d6fe729b318fc5245
Merge: f108dbd3 a849e4b8
Author: BsAtHome <bertho@vagrearg.org>
Date: Mon Jun 8 09:53:52 2026 +0200
Merge pull request #4139 from grandixximo/fix/radiobutton-period
radiobutton: fix unused-parameter build error
commit a849e4b84421577afd4d9e751388758e73c11fb2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 8 10:33:25 2026 +0800
radiobutton: fix unused-parameter build error
Component ignores period, so generated FUNCTION kept an unused long
period and tripped -Werror=unused-parameter. Add 'option period no'.
commit f108dbd3c96e6a7cede75e04c6ae0843eef9eb8b
Author: Hans Unzner <hansunzner@gmail.com>
Date: Mon Jun 8 00:00:03 2026 +0200
halscope: init "saved_vert_offset"
Addition to #4128 because of #3722
commit 5235a84f0042a45876d663cdf06b1ae0c36205dc
Merge: 59697b01 c7b37d0f
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 7 23:24:19 2026 +0200
Merge branch '2.9'
commit 59697b019a5cc12009987a510c7826f6b9d543b3
Merge: 4d0eeed8 2c61f67a
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 7 23:00:50 2026 +0200
Merge pull request #4131 from grandixximo/touchy-fit-monitor
touchy: fit the window to the monitor
commit 4d0eeed810e99071631d1c13e24c55998efbaa77
Merge: 58c57257 550d7e7b
Author: Hans Unzner <hansunzner@gmail.com>
Date: Sun Jun 7 18:46:29 2026 +0200
Merge remote-tracking branch 'weblate/weblate-linuxcnc-linuxcnc-docs'
commit 58c57257300b22f7657a4ee796c7c4b4562f3706
Merge: ae8b38d7 fc2ab34e
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Jun 7 17:01:19 2026 +0200
Merge pull request #4110 from grandixximo/docs/render-en-from-build
docs(build): render English and .dot SVGs into build/, keep docs/src clean
commit ae8b38d75be5a4de9f290f58d16389c1d3682041
Merge: cfa3a17b 04ef38c4
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Jun 7 15:39:42 2026 +0200
Merge pull request #4119 from hdiethelm/cppcheck_fail
CI: Fail on cppcheck.sh error
commit fc2ab34ec04f3a1995bd9be9528d983898967926
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 1 11:12:14 2026 +0800
docs(build): render .dot SVGs into build/, drop them from src
The .dot diagrams under docs/src/code/ rendered their SVGs beside the
sources; route them into build/adoc/en/<topic> instead, so docs/src holds
no generated artifacts. The translated image-copy steps source images from
src, so fall back to the English build tree for the generated SVGs. Drops
the six src/code/*.svg entries from docs/.gitignore.
commit c774b793f96eeed9353e5a5c2de8624acc0869b7
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Mon Jun 1 10:17:31 2026 +0800
docs(build): render English from build/adoc/en, keep docs/src clean
Per review (BsAtHome): generated files should not live in the source tree.
The English docs now render from build/adoc/en, the same model the
translations already use, instead of from docs/src.
- Stage the English .adoc + images + code fixtures (e.g. panelui_handler.py)
into build/adoc/en via a find|tar copy (no rsync dependency).
- Generate components_gen.adoc straight into build/adoc/en/hal and point its
po4a master there (po4a.cfg only; msgids unchanged, so no pot/po churn).
- Repoint the English HTML and PDF rules, the html-copy step, and the
dependency extractor at build/adoc/en.
docs/src no longer accumulates components_gen.adoc or per-topic .html;
docs/.gitignore drops those entries. The .dot-rendered SVGs are still
generated in src/code and staged across (a follow-on moves their generation
into build too).
Validated with a full English htmldocs build (585 pages, no include errors).
PDF and translated builds still to be verified.
commit cfa3a17b4185f784718aee1fa8ba8bf23f8f11a9
Merge: 5f10ab74 0b937cb5
Author: BsAtHome <bertho@vagrearg.org>
Date: Sun Jun 7 15:05:03 2026 +0200
Merge pull request #4113 from grandixximo/docs/topbar-greyout-on-build
docs(html): KiCAD-inspired topbar, side TOC, language switcher, admonition tints
commit 1fabe947e6e84b279d6d0b4a98adc09cbb8029bb
Author: david mueller <mueller_david@hotmail.com>
Date: Wed Jun 3 21:29:05 2026 +0200
gremlin: Initialize preview interpreter with active modal gcodes
- Introduces a helper function to create the initcodes required to
initialize the preview interpreter with the currently active modal
gcodes.
- Improves preview when loading gcode files with incomplete preambles
- Adds a test that uses the helper function and checks the interpreter
output after loading a test program with no preamble
commit 2c61f67aafb67529c46b01f5e396fbcd34e1d8f4
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sat Jun 6 17:41:41 2026 +0800
touchy: fix resize, startup tab, drag-to-scroll, listing click error
- Window is now resizable smaller than screen (scroller max-content
bounds the top end; min stays 0).
- Startup tab restored correctly after page-wrapping loop shifted it.
- Each page scroller accepts drag-to-pan (finger or mouse, 8px
threshold so button taps are unaffected).
- Fix pre-existing TypeError in listing.on_select: button_release_event
passes (widget, event) but signature accepted only one argument.
commit 58331c79ca1b284e752f0ffe2c196b8d4ab29888
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 13:35:42 2026 +0800
touchy: fit the window to the monitor
Touchy has no scrolling, so when content is larger than the display the
window grows past the screen edge and controls become unreachable. The
worst offender is structural: a GtkNotebook sizes to its largest page,
so the small visible page (the buttons) was forced as wide as the hidden
Preferences page, and the tall tool-table listing grew the window on
reload.
- Wrap each notebook page in a scroller, so the notebook sizes to the
current page and oversized pages (Preferences, a long tool table)
scroll instead of growing the window. This alone keeps the height in
check and cuts the width from 1346 to 1094 px.
- Wrap the whole window in a scroller and bound it to the monitor work
area, so it can never exceed the screen.
- Hide the handwheel column on the Preferences tab (you are not jogging
there) so the wide settings page gets the full width.
- When the content still does not fit a narrow screen, float a
non-modal info bar over the content offering to shrink the fonts:
Shrink to fit and save / Not now / Never ask again. Accepting scales
to the largest fitting size, rounds to whole points, saves them, and
updates the pickers to match. It is only shown when it does not fit
and never repeated once it fits; Not now is remembered per screen
size (fit_skip_size) so it is not offered again until the screen
changes, and Never ask again (fit_fonts) disables it entirely.
- Add an 'Offer to shrink fonts to fit the screen' checkbox to
Preferences / Display Options to re-enable the offer after Never ask
again, and document the behaviour.
commit 04ef38c40959ceaa10fe9a738b521978adca5f37
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 20:54:02 2026 +0200
CI: Split into shell- and cppcheck job / fail on cppcheck
Now if one fails, you have still the result from the other.
commit 60b0e7bc84b7e1435cb2ad79cbf09e7bbefac4c1
Author: Hannes Diethelm <hannes.diethelm@gmail.com>
Date: Wed Jun 3 19:00:28 2026 +0200
cppcheck.sh: Return 1 on error, so CI fails
Also add a message at the end, so it is clearly visible if it is good or
not.
commit 5f10ab741d1330f67055c6bdb8ecbf0fa37257b2
Merge: ca660748 566e655f
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:36:09 2026 +0100
Merge pull request #4098 from Sigma1912/fix_g52_g92_reset_on_m2
fix(interp): reset G52/G92 offsets on prog_stop when DISABLE_G92_PERSISTENCE=1
commit 0b937cb5f72c4cac5a4f4b703a2096f7dc8c7fa5
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 19:57:51 2026 +0800
docs: inset admonition icon mask so its top is not clipped
commit cf8ec666c22aaed8ab621c2652225069e74c5320
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 18:47:26 2026 +0800
docs: strip asciidoctor index terms from sidebar titles
commit 5924d63c2ac3d65b19a0f4a009c27fb4832d8ad0
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 16:25:25 2026 +0800
docs: restore page and sidebar scrollbars via scrollbar-color
commit db32422e122d4bc383f695876f0e11525095738a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 08:51:19 2026 +0800
docs: white-back PNG figures in dark mode too
Transparent black-line PNG diagrams vanished on the dark page; only SVGs
got a white backing. Back every figure with white (opaque screenshots
cover it, so no frame); keep the padded white card for SVGs.
commit f4889b592afbb042f2e375d82ae63d25f360d828
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 08:47:50 2026 +0800
docs: inject sidebar on English-only builds too
The whole-document sidebar and topbar were only injected when
BUILD_DOCS_TRANSLATED=yes, so an English-only build produced pages with
no navigation at all. The sidebar is derived from the Master_*.adoc
structure and is language-independent, so gate the post-processor on
BUILD_DOCS_HTML instead; with no languages the switcher and banner just
go idle. The post-processor now also accepts an empty language list.
commit 16b7dfa3d74e928c519cf07a4b24624262eca99e
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Fri Jun 5 08:47:36 2026 +0800
docs: SVG admonition icons tinted per type
Replace the unicode-glyph admonition icons (font-dependent, often not
rendered) with Bootstrap Icons drawn as a CSS mask, painted with each
block's own colour so they tint per type in both themes. The word label
is kept off-screen as the accessible text. Adds the five SVGs to the
shared HTML assets and an Expat copyright stanza.
commit 6f2dafb021bc28d675ed3b2eee9592e49e98fded
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 20:30:00 2026 +0800
docs: active TOC page toggles its own sections inline
The active page is now the disclosure itself: its name is the summary
that folds its section list, instead of a separate "On this page"
block. Match summary size to the sibling links.
commit 00ad58c370f394694f22a3f046744df363b1af07
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 19:52:32 2026 +0800
docs: fold the nav tree down to the active page
Expand only the branch leading to the current page instead of the whole
book, and put the page's own section list in a collapsed "On this page"
details, so sibling pages in the section stay visible.
commit 602dc0a2cb52e25203ae0798111e80ee8df6fae1
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 19:50:37 2026 +0800
docs: point the topbar logo at the current language's home
The logo linked to the generic index.html, which always redirects to
English; on a translated page that silently dropped the language. The
post-processor now retargets it to <lang>/index.html.
commit b2db6c4c1fa4d681e742eb1bc3ac55271e5b9263
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 19:28:40 2026 +0800
docs: keep the HTML doc build idempotent
The lang-switcher post-processor rewrites every generated HTML page in
place as the final step, which bumped their mtimes past three stamps that
had consumed the same files earlier in the build. A second make then
re-fired the image copy, the shared-asset copy and the complist stamp (and
the .htmldoc-stamp / checkref that depend on it), so the build never
settled.
- .html-images-stamp now depends on .lang-switcher-stamp, so it reads the
final post-processed HTML and stays newer than it.
- .copy-asciidoc-stamp's gcode.html dependency and .gen_complist-stamp's
MAN_HTML_TARGETS dependency become order-only: both only need the files
built, not their (later-rewritten) content.
A second and third make are now true no-ops.
commit 6809642a1813c04433e0b50c02d8eec7b142a32a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 15:18:29 2026 +0800
docs: move site links into the topbar
Add the LinuxCNC site links (Home, Wiki, Forum, Source, G-Code reference)
centred in the topbar so they are reachable from every page, and drop the
duplicate block from the landing page.
commit 43bc9aa4448443ea2a149393a3807be328db1bb2
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 14:38:35 2026 +0800
docs: whole-document TOC tree in left sidebar
Build a nested nav tree from the Master_*.adoc structure and inject it at
the top of asciidoctor's left TOC (no JS, native <details>). Each page gets
the tree with its branch expanded, its entry active, and its own section
list nested under it. Section-less pages get a scaffolded sidebar. CSS-drawn
markers override asciidoctor's absolute summary marker so they stay in flow.
commit 0c5ad89d29c8f5a1ebb57278e3c39ca6849be88a
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 09:57:00 2026 +0800
docs: per-page translation banner instead of greying switcher
Drop the POKEEP percent-threshold hiding: every present translation
stays clickable; the switcher only greys a target that does not exist.
A page below 100% now carries a no-JS banner below the topbar stating
its completeness, tinted red(0%) to green(100%).
commit 844514f632af11822f984cb02ace791509cd1bce
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Thu Jun 4 08:43:08 2026 +0800
docs: read switcher labels from lang-labels file, not Submakefile
Move the native language display names out of the makefile into
docs/src/lang-labels (tag<ws>name). A language in po4a.cfg without an
entry falls back to its tag with a make warning.
commit 7a8371e80733805dfc0c3d2637579eb1e568207b
Author: Luca Toniolo <10792599+grandixximo@users.noreply.github.com>
Date: Sun May 31 10:18:37 2026 +0800
docs(html): KiCAD-inspired topbar, side TOC, language switcher, admonition tints
Re-implemented on top of PR #4081's docs/build/ layout. Replaces the
previous prototype branch (commit 766f2d9103) which targeted the
pre-#4081 docs/html/ paths.
- Sticky topbar with LinuxCNC logo on every page; matches asciidoctor's
footer colour scheme. Logo SVG lives at docs/src/lcnc-docs.svg and is
copied into docs/build/html/ by the shared-asset rule.
- Side TOC via asciidoctor :toc=left; auto-hides below 800px (CSS).
- Language switcher in the topbar (top-right) built from po4a.cfg + a
LANG_LABEL_<lang> map in Submakefile, so po4a.cfg stays the single
source of truth.
- Admonition blocks (note/tip/warning/caution/important) tinted by
type with Unicode icons mapped onto asciidoctor's icons=font output
(no FontAwesome dep).
Build-time injection:
- docs/src/docinfo-header.html generated from .html.in template;
asciidoctor pages pick it up via docinfo=shared.
- docs/src/gcode.html renamed to gcode.html.in (po4a master); per-lang
docs/build/html/<lang>/gcode.html generated from po4a's gcode-raw.html
+ per-lang topbar fragment.
- Per-lang docs/build/html/<lang>/index.html similarly gets topbar
injection + CSS path rewrite + objects/index.incl appended so the
manpage list is present on translated indexes too.
- docs/src/index.tmpl's hardcoded Translations: list dropped; topbar
switcher replaces it.
- English + translated manpage HTML rules pass lcnc-lang-label and
lcnc-subpath so the switcher works on manpages.
Per-page language indication via lang_switcher_postprocess.py: walks
docs/build/html at end of build, looks up each page's master in each
lang's .po, counts msgid-with-master-loc vs translated, toggles
class=lcnc-lang-unavail on the <li> when coverage falls below POKEEP
(default 80). Same pass marks details-list entries (manpage index
lists) whose target file does not exist for the current language.
Idempotent: same toggle pattern across re-runs.
POKEEP is overridable on the make command line (POKEEP=30 surfaces
in-progress translations); contributing-to-linuxcnc.adoc,
building-linuxcnc.adoc, and docs/README.adoc document the knob.
CSS adds .lcnc-lang-unavail and .lcnc-link-unavail rules: dim text,
pointer-events: none, cursor not-allowed; .lcnc-link-unavail also adds
strikethrough for the index list context.
commit ca6607489152e7ed0fc10bfd7e97c7642ab284a1
Merge: d9d6c52c 48bbfa03
Author: andypugh <andy@bodgesoc.org>
Date: Sun Jun 7 10:05:31 2026 +0100
Merge pull request #4106 from grandixximo/docs/copy-linked-images
docs: copy click-to-enlarge images, not just displayed ones