Skip to content

Latest commit

History

63 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

freeplane_scripts

A collection of Groovy scripts for Freeplane, by euu2021.

For more collections of scripts and add-on, see this page: scripts collections.

How to use

See Start here page.

Each file's header links to the forum thread it came from, if any.

Versions and changelog

Scripts are versioned one by one, not as a collection: you install a single .groovy file, so everything you need to know about it lives in that file's header.

// Copyright (C) 2026 euu2021 (Github)// SPDX-License-Identifier: GPL-2.0-or-later// Discussion thread: https://github.com/freeplane/freeplane/discussions/1234// Version: 1.2

Is my copy outdated? Compare the Version: line of your file with the one here. If they differ, the script's CHANGELOG block (at the end of its documentation comment) lists what changed between the two, newest first:

 CHANGELOG
---------
1.1 (2026-07-26)
What changed, and what you have to do about it, if anything.
1.0 (2026-07-21)
First public version.

What the numbers mean:

ChangeMeaning
1.2 → 1.3Anything you do not have to act on: a new feature, an option, a fix. Replacing the file is enough.
1.3 → 2.0You have to do something: reassign a shortcut, redo a setting, delete a state file, or upgrade Freeplane. Such entries are also marked (!) in the changelog.

Versioning starts on 2026-07-26, with every script at 1.0; earlier history is in the repository log. A script only grows a CHANGELOG block once it changes after that date, so scripts that never needed a fix stay as short as they always were.

Tags

Scripts can belong to more than one category, so they are tagged. Ctrl-F a tag to find everything in that category.

  • navigation — move the selection / jump around the map
  • selection — select nodes
  • tags — work with node tags
  • styles — styles, colors, edges, themes
  • filter/search — filtering and live search
  • panel/GUI — floating panels, dialogs, sliders
  • maps — multiple maps, view-roots, links between maps
  • editing — create, duplicate or modify nodes
  • fold/minimize — folding and minimizing nodes
  • clipboard — clipboard operations
  • listener — runs continuously, reacting to events
  • init — runs once at startup
  • view — zoom, layout, viewport
  • connectors — works with connectors
  • sound — audio feedback
  • experimental — prototype / proof of concept

Scripts

⭐ marks the main ones: scripts that add substantial features Freeplane does not have out of the box.

Sibling scripts (directional variants, script pairs) share a single row.

ScriptWhat it doesTags
applyCustomEdgeColorsApplies the user-defined edge colors to the selected nodes and their whole branch, cycling through colors.styles
autoMinimizerListenerListener that keeps the map compact: any node longer than the shortened-text length is shown minimized, no matter how it appeared — typed, pasted, imported, created by a script or by the AI, or already in a map you open.listenerfold/minimizeediting
autoRunScriptsWindow to pick which scripts Freeplane runs by itself and when: at startup, when a map opens or closes, when a tab is created or selected, every N minutes, or on the way out. Keeps a history of what ran, with durations.initlistenerpanel/GUI
autoScrollModesSelection listeners that keep the current node positioned as you navigate (auto-scroll modes).navigationviewlistener
conditionalStyleByFilterAdds a conditional style to the nodes matched by a script filter.stylesfilter/search
connectedNodesNavigatorPopup listing every node connected to the selected one (with direction), for quick jumping.navigationconnectorspanel/GUI
ConnectedClusterSelects the node plus every node linked to it by connectors.selectionconnectors
copyNodeIdWithHashCopies the selected node's ID to the clipboard with # prepended, ready to paste as an internal hyperlink.clipboardmaps
CrossMapLinksPanel showing the current map's cross-map links: OUT (this map links to), IN (backlinks / what links here), and Friends (connected maps you can browse in place, without opening them). Scans the active map's folder.mapsnavigationpanel/GUI
duplicateNodeDuplicates the selected node(s), placing each copy right below its original.editing
FoldedNodeCountDraws, in the folding mark of a folded node, how many nodes are hidden inside that branch, coloured by order of magnitude (white / yellow / orange / red). Lets the size of a folded branch be read without unfolding it. Run again to switch off.fold/minimizeview
foldSiblingsOfSelectedNavigation mode that folds the siblings of the selected node to keep focus on the current branch.fold/minimizenavigationlistener
initScriptsTool · BridgeRuns every //init script found across your script folders and reports which ran; the Bridge is a small file you drop in your profile's scripts/init/ folder so the tool runs at startup.init
invertMapColorsToggles the whole map between light and dark themes (styles + background).styles
jfaceTreeViewerPrototype: shows the map as a tree with attribute columns (JXTreeTable) over the map.panel/GUIexperimental
justifyTopicAlignmentAligns each level automatically, XMind-style.viewlistener
leftRightTraversalTweaks Left/Right arrow-key behavior when traversing nodes.navigationselection
LiveFilterPanelSearch panel that, on every keystroke, hides everything except the matches and their ancestor path (live filter over the whole map).filter/searchpanel/GUI
LoremIpsumGeneratorFills the selected node with a random lorem ipsum subtree of a given size (1000 nodes by default): 1..10 children per node, mostly short texts with a thin long tail. For building large maps to test with.editing
MinimizedNodeTooltipOnSelectionShows a minimized (shortened) node's full content as a tooltip when the selection reaches it — the same tooltip the mouse gets on hover, without the mouse. It follows the selection whoever moves it: arrow keys, a bookmark, a panel, another script. Selecting by clicking is left alone, since hovering already shows it there. It goes away on the next selection, on a click, on wheel scrolling or when the window loses focus. Running the script again switches it off.fold/minimizenavigationlistener
navigationLimitedToSiblings Down · UPMoves the selection up/down, but only among siblings (won't leave the level).navigationselection
noteFontSizeSliderSlider dialog to quickly adjust the Note style's font size.stylespanel/GUI
openLinkedMapAndCloseOpens the map linked from the selected node and closes the current one (backlink navigation without piling up open maps).mapsnavigation
OutlineLiveFilterType-to-filter field docked in the Outline panel; filters the outline only, leaving the map untouched.filter/searchpanel/GUI
paste_and_minimizePastes, then auto-minimizes the just-pasted nodes that exceed the shortened-text length. Superseded by autoMinimizerListener, which covers every way a node can appear.clipboardfold/minimizeediting
PasteSpecial · PasteWithDefaultsOne dialog that combines the clipboard formats of Edit → Paste as with control over where the pasted nodes land: first or last child, a numbered position, before or after the selected node, or as its parent — plus link and connector, which use the clipboard without pasting. Every option runs from a single keystroke, and any of them can become what a plain paste does, which is what PasteWithDefaults applies.clipboardeditingpanel/GUIconnectors
recentRootsNavigator script1 · script2The Recent Roots Navigator — a tabless jump-in workflow to move between recently used view-roots (main panel + its launcher shortcut).navigationmapspanel/GUI
removeLastTagRemoves the last tag from the selected nodes.tagsediting
resizeMapOverviewResizes the Map Overview panel (the bird's-eye overview box) to any width/height you set.viewpanel/GUI
safeDeleteListenerListener that guards against accidental deletion: warns before a large branch goes, or before any node carrying a protected tag. Start it automatically.listenerinitediting
saveEventAutosaveEnables autosave and sets up a timer around the save event.listener
select DOWN · UP · LEFT · RIGHTFree-selects the node in the given direction and re-centers the view.navigationselection
selectLevel1ChildrenSelects the visible first-level children of the selected nodes.selection
selectNodesByCloudSelects nodes by clicking on the clouds drawn around them.selection
selectionLimitedToSiblings Down · UpExtends the selection up/down, but only among siblings.selectionnavigation
setCreationDateToChildrenSets a creation date on the selected nodes' children via a dialog.editing
simpleTagCreatorCreates a new tag and adds it to the selected node.tagsediting
SoundEffectsPlays a short sound when a node is selected, created, moved or deleted, and when a branch is folded or unfolded. Each action has its own switch, and an action switched off is never installed. The sounds are synthesized in memory, so no audio file is needed — three themes are available (wooden chess pieces, dungeon, plain bleeps), and your own .wav files replace them if you prefer. Running the script again switches the sounds off.soundlistener
TagCategoryDialogFilterDocks a live filter field in the "Manage tag categories" dialog; each keystroke filters the tag tree and auto-expands it, so matches inside collapsed branches show up.tagsfilter/searchpanel/GUI
TagClickLocatorClick a tag on a node in the map and it is located in the Tag Tree: the branches on its path expand and it is selected and scrolled into view (clears an active tag filter first).tagsnavigationpanel/GUI
TagFilterAutoExpandMakes the Tag panel's native filter auto-expand, so matching tags inside collapsed branches become visible (they stay hidden otherwise). Works as a menu or startup (init) script.tagsfilter/searchinit
tagsImportFormatImports / normalizes a tag format into the node.tags
tagsWithFormulaListenerListener that generates a set of tags from a formula.tagslistener
TagTreeSingleClickAssignAssign a tag to the selected node with a single left-click in the Tag Tree, instead of the default double-click.tagsediting
UndoStackViewerWindow listing what the last actions on the map actually did — which node was deleted and from where, what text changed (showing the part that changed, not two truncated strings), what moved, plus icons, tags, links, attributes and style. Deletions in red, additions in green, and the clock time where Freeplane records one. Walking the rows selects the node involved, so an accidental change can be found without pressing Ctrl+Z to see what it undoes. It follows the map, refreshing on every action, undo and redo. Undo N actions rewinds to the selected row in one step, Ctrl+Z and Ctrl+Y work in the window, and folding/view noise is hidden by default without renumbering the steps.panel/GUIeditingview
UnifiedTagPanelOne overlay panel that merges Freeplane's three tag interfaces: the Tags side panel, the "Edit node tags" dialog and the "Manage tag categories" dialog. Search in two modes — hide what does not match, or keep the whole tree in place and highlight the typed text where it occurs (accent-insensitive either way). Assign with a click or with Enter, which creates the tag, and its whole a::b category path, when nothing matches. A usage count on every tag with the unused ones faded, plus hide unused, sort by usage and delete all unused. Rename, nest, reorder, colour and delete the hierarchy — each one undo step, with the tags on the nodes rewritten along. Favourites pinned per map, stored inside the .mm. And filter map by this tag, which puts the folding back when cleared.tagspanel/GUIfilter/searchediting
UtilityPanelsCollection of utility panels built into Freeplane's UI: quick search (with lines to results), recent nodes, breadcrumbs, in-place siblings preview, inspector tooltips, and more. Hosted in its own repository.panel/GUIfilter/searchnavigation
VisualEffectsDraws a short animation where a map action happened — select, create, move, delete, fold and unfold — each with several styles chosen in the config block. The visual companion to SoundEffects: painted on a transparent panel over the map view that reserves no space and does not intercept clicks, so nothing about the map behaviour changes. Running the script again switches it off.viewlistenerpanel/GUI
zoomTo100Sets the map zoom to 100%.view

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages