Skip to content

Releases: blue-panels/mc6

v6.0.4

Choose a tag to compare

@github-actions github-actions released this 02 Sep 10:53

mc6 v6.0.4 (2026-09-01)

Major changes

Lua support is implemented as a plugin using the mc core ABI, without embedding Lua into the core. It allows scripts to extend the editor, panels, viewer and UI without adding each new feature directly to the core.

The old subshell has been replaced by mcterm. It uses the shell's real prompt and provides a single command line, scrollback, text selection and copying, line filtering, correct resize handling and sixel support. (#160 and related changes)

mcstruct is a file structure viewer with editing support. File formats are described using STL5 definitions, allowing binary data to be viewed and edited as structured fields instead of only as raw bytes. (#189)

The panel plugin API now supports seekable streams between plugins and routing through magic.ini. This allows remote archives and other supported formats to be opened directly from another plugin without downloading the whole file first. (#152)


Features

mcedit

  • Line filtering from Search and from text under the cursor. The F7 dialog gains a Filter action that hides non-matching lines using the selected search type, case, whole-word and charset options while retaining original line numbers. Alt-S removes or restores the last filter; Alt+Shift+S applies a filter using a one-line selection or the word under the cursor as the pattern. Filtering is cancellable, handles NUL bytes and integrates with folds, cursor movement and mouse hit testing. (#191, #192, #201)

  • Search starts with the selection. Opening F7 pre-fills the search string from the currently selected text while leaving it editable before the search starts. (#200)

mcview

  • Runtime file handlers and Chafa image viewing. A Lua handler can intercept opening a file in Viewer or Quick View and show a generated representation instead of the raw file contents. The Chafa handler uses this mechanism to display images; F8 switches between the image and raw file data. Animated images are limited to one frame, quoted or spaced file names are passed safely, and a short image description is shown before the picture; i opens full properties and F1 opens handler-specific help. (#168, #180, #186)

  • Sixel images in the viewer and mcterm. The terminal emulator retains sixel DCS data as pictures tied to screen rows, moves or erases it with those rows, and paints it after the screen backend refreshes. Terminal capability and cell-size probing, PTY replies and MC_SIXEL=0/1 control make the same path work for terminal-mode viewing and embedded programs. The lua-sixel handler uses Chafa to render into the available pixel viewport and falls back to image properties when Chafa or sixel is unavailable. (#181)

  • Generated ELF and Java class views. Lua handlers run readelf for ELF headers, sections, segments and dynamic data, and Procyon for Java classes, without shell interpolation. Both report progress and failure, work in Quick View where applicable, and use F8 to switch between generated and raw data. MIME probing now follows symbolic links for ELF files. (#170, #172)

  • DBF table viewer. Opens DBF files as pageable tables. Supports encoding selection, structure and record-card views, and F8 switches to raw data. Large files open immediately because records are decoded page by page. (#194)

mcterm

  • mcterm replaces the legacy subshell. Commands now go to the shell already running in the embedded terminal, and the command-line widget displays that shell's real prompt, colours and cursor instead of maintaining a parallel subshell. OSC 133 and OSC 7 marks with a session token track prompt, busy, exit and directory state. Running mc from its own terminal restores the parent panels through SIGUSR1 instead of starting another nested instance. (#160)

  • Shell-backed command-line editing and completion. At a prompt, the shell line editor owns input in both panel and full-terminal views, while mc keeps panel Enter, cd and exit behaviour where appropriate. Cursor and word motions follow the command-line keymap, pending input survives commands sent by mc, and completion is refilled and narrowed after each edit without overwriting text with a longer common prefix. (#173)

  • Bounded scrollback and navigation. Rows leaving the screen are retained under both row and cell limits. PgUp/PgDn, Shift-arrows, Home/End and the mouse wheel browse history without new output pulling the view back to the bottom; typing returns to live output, and alternate-screen programs keep their own keys. (#155)

  • Selection, copying and focus. Output can be selected with the mouse or Shift-navigation and copied with Ctrl-Insert to mc's clipfile and the system clipboard. Selections use stable terminal row IDs, so output and scrolling do not move them. A visible terminal cursor and a dedicated [mcterm] keymap and skin section support focus switching between the terminal and command line. Double click selects a word, triple click a row, and Enter copies an existing selection. (#159, #178)

  • Terminal line filter. Alt+Shift+S keeps only rows containing the selected text or word under the cursor. The snapshot remains stable while the shell prints, navigation and mouse coordinates follow the filtered rows, and Alt-S toggles it. Typing into the shell removes the filter before new output is shown. (#201)

  • Two clear operations. Ctrl-L scrolls the visible screen into history and leaves the active prompt at the bottom, so the old output remains available by scrolling back. Ctrl+Alt+L, or Ctrl+Shift+L in terminals that distinguish the combinations, clears both screen and scrollback without invalidating row IDs used by selections and filters. (#178, #202)

  • Autowrap and resize reflow. vterm implements xterm-style delayed wrap and DECAWM. Wrapped-row metadata follows rows into history, and resizing joins terminal-wrapped rows and splits them again for the new width while keeping the cursor on its character and sixel pictures with their rows. (#197)

  • Running command in the prompt. On Linux, the busy prompt shows the foreground command, with special handling for interpreters and scripts and a fallback for commands submitted by mc, instead of showing the generic background. (#167)

  • Terminal keybar and documentation. Full-screen mcterm has its own function-key bar, and the manual now documents scrollback and which keys are handled by mc or by the program running in the terminal. (#203)

Panel

  • Quick Filter. Alt+Shift+S hides non-matching panel entries as the pattern is typed. Quick Search and Quick Filter share their pattern and can switch without retyping it; filtering survives navigation, marking, mouse scrolling and view-mode changes, reports marks hidden by the filter and is removed immediately by Ctrl-G. (#169)

  • Inline Quick cd. Alt-C replaces the active panel's mini-status with a one-line input rather than opening a dialog. Tab and Shift-Tab offer only directories in a completion list above the input, Up and Down traverse history, bare names use CDPATH, and Esc restores the mini-status. (#175)

  • Per-bit permission colours. The new permission_colors option colours read, write, execute, special and absent bits independently, while the file type keeps the row colour. It works together with the existing applicable-triplet highlight and does not override cursor or marked-row colours. Five optional skin keys provide compatible defaults for existing skins. (#188)

  • Richer Find results. Found files show modification time, size and permissions using the panel formatters, dropping secondary columns on narrow terminals. Content matches are grouped by file; a [+] entry expands their line numbers and text, from where Enter, F3 and F4 act on the selected match. (#158)

  • Drive menu in the Panel menu. The existing left and right drive-menu commands are now available from the menu together with their configured shortcuts. (#146)

mcstruct

  • File structure viewer. mcstruct displays a binary file as a structure tree based on STL5 format definitions and allows individual fields to be edited. It supports Struct Look 4.00 definitions, arrays, expressions, different byte orders and structure search. A large library of format definitions is included. (#189)

Core

...

Read more

v6.0.3

Choose a tag to compare

@github-actions github-actions released this 02 Aug 22:49
e34d0c7

mc6 v6.0.3 (2026-08-02)

Changes to know about

  • The built-in tar and cpio filesystems are gone. Archives are opened by the arcmc panel plugin, which comes in the mc6-plugins package. (#118, #119)

Fixes

Packages

  • The Fedora package could not be installed: it asked for /usr/sbin/perl and /usr/sbin/python3, paths that no package owns. (#115)
  • The rpm and the deb are installed in a clean image before a release is published. (#116)
  • Spell checking finds aspell on a system that has only the library, without the development package. (#124)
  • The archive plugin is built where libarchive ships no pkg-config file. (#114)
  • Spell checking is built in unconditionally, and the --enable-aspell configure option is gone. (#115)

mcterm

  • The embedded terminal answers terminal queries, so a shell like fish no longer waits ten seconds and leaves the query on the screen. (#123)

Core

  • mc starts when the login shell is a plain sh: the subshell is turned off and the command line stays. (#117)
  • Non-ASCII characters appear in the editor at once, not after the next keypress. (#113)

Features

Plugins

  • The spell engine is a plugin setting now: aspell or hunspell, chosen at run time. (#112)
  • Panel plugins can show a Quick View preview in the neighbouring panel. (#108)

v6.0.2

Choose a tag to compare

@github-actions github-actions released this 31 Jul 09:09

mc6 v6.0.2 (2026-07-31)

Features

mcview

  • XML is now parsed by mc's own parser: libxml2 is no longer required, and the HTML provider is gone. (#88)

Plugins

shell-link

  • Copying, overwriting and resuming now work between plugin panels. (#90)

Fixes

mcedit

  • Large pastes no longer freeze the UI; screen repaints are limited while input is arriving. (#92)

mcterm

  • Commands run before the first Ctrl-O no longer lose their console output. (#93)

Core

  • Build warnings in the editor are fixed on platforms where off_t and long differ. (#97)

Plugins

arcmc

  • The arcmc 'Create archive' hotkey is now reassignable via arcmc.ini. (#87)

Every release: the wiki.
Full Changelog: v6.0.1...v6.0.2

v6.0.1

Choose a tag to compare

@github-actions github-actions released this 31 Jul 09:52

mc6 v6.0.1 (2026-07-20)

Based on GNU Midnight Commander 4.8.33.

The centre of this release is the panel plugin framework: panel contents can
come from a dynamically loaded plugin instead of the local filesystem or the
built-in VFS. Twelve plugins ship on top of it, among them arcmc, an archive
manager built on libarchive that browses, creates, packs and extracts. The old
ftpfs and sftpfs VFS modules are gone, replaced by their plugin equivalents.

The viewer gained a live filter, ANSI colour and terminal replay, and a
structured tree mode for JSON, YAML, XML and HTML. The editor gained code
folding, an undo history browser and a macro explorer. Panels gained
user-editable view modes, and the file manager can now host a real shell.

Features

mcedit

  • Code folding. (#3)
  • Undo history browser. (#63)
  • Macro explorer. (#65)
  • Save through sudo when permission is denied. (#10)
  • Highlighting and speed for plain text and very long lines. (#78)
  • Word and line selection by dragging. (#81)

mcview

  • Structured tree mode for JSON, YAML, XML and HTML. (#80)
  • Grep-style live filter. (#51)
  • Full search options for the filter. (#55)
  • Filter Check dialog. (#56)
  • ANSI terminal replay. (#53)
  • Wider terminal emulation. (#54)
  • ANSI colour rendering. (#47)
  • Viewing output of commands that never end. (#41)
  • Markdown rendering. (#23, #30)

mcterm

  • Embedded terminal. (#61)

Panel

  • Configurable panel view modes. (#75)
  • Internal diff viewer instead of external mcdiff. (#35, #34)

Core

  • Key Bindings, Learn keys and Key Sniffer dialogs. (#36)
  • Learn keys understands modifiers. (#8)
  • Incremental filter in history popups. (#27)
  • Copy and paste between input lines and the editor. (#83)
  • Procyon as the Java class decompiler. (#46)

Plugins

  • Panel plugin framework. (#4)
  • Editor plugin framework. (#6)
  • Transfers into plugin panels. (#17)
  • Shell connections and the panel menus. (#20)
  • Drive menu. (#33)
  • Plugins load from the user directory. (#31)
  • Per-plugin help and settings. (#32, #72)
  • Directory history across plugins. (#43)
  • Viewer source controller. (#73)
  • Archive browser and manager. (#21)
  • Settings, bulk extract and hardening. (#22)
  • Java archives. (#48)
  • Git panel with favorites. (#12, #44)
  • Docker panel. (#4)
  • Connection profiles and SSH. (#45)
  • Configurable container logs. (#74)
  • Kubernetes panel. (#73)
  • MongoDB browser. (#72)
  • S3 object storage. (#25)
  • Cloudflare R2 support and help. (#32)
  • FTP and FTPS plugin. (#18)
  • SFTP connection management. (#19)
  • SFTP transfers and streaming. (#29)
  • Samba network browser. (#4)
  • External Panelize became a plugin. (#70)
  • ctags navigator for mcedit. (#66)

Fixes

mcedit

  • Column blocks are real rectangles. (#79)
  • Paste output of external command works in the TUI. (#64)

mcview

  • Crash on files with archive magic bytes. (#26)
  • Filter no longer stalls on huge lines. (#52)
  • Alt-screen handling and ESC[J. (#57)
  • Blank output for logs with two alt-screen brackets. (#58)
  • Slow scrolling on huge lines. (#82)

Panel

  • Ctrl-F1 and Ctrl-F2 on a non-listing panel. (#77)
  • Column format restored after a plugin closes. (#40)

Plugins

  • File extensions preserved in temporary copies. (#49)
  • git: commits view showed the wrong range. (#50)
  • samba: could not return to the connection list. (#34)
  • Esc and F10 did not close the viewer and diff viewer. (#66)

Internal

Removed

  • Old ftpfs VFS module. (#38)
  • Old sftpfs VFS module. (#39)

Refactoring

  • WTable is model-backed. (#37)
  • One hotkey parser instead of five. (#28)
  • Docker plugin split into domain modules. (#42)
  • Spell plugin logging. (#11)

Build

  • libsmbclient detected with pkg-config. (#24)
  • Panel plugin build wiring. (#13)

The full story, with what each change does and how it is reached:
v6.0.1 in detail.
Every release: the wiki.