ControlFS 0.5.0-alpha.1
·
92 commits
to main
since this release
What's new
- Narrator: the logical focus is now announced as you move with the controller or keyboard: the context when you enter it (home, folder, menu, dialog, on-screen keyboard, path bar, tabs), then just the item, with type, size, position and states in words (marked, cut, blocked, password-protected, unavailable with the reason). Bottom-bar messages are a live region read without moving the focus. (#40)
- Recycle Bin on the home screen: lists deleted items with their original folder and deletion date; South/A on an item offers Restore (back to the original folder, never overwriting) and Delete permanently, which always asks first with the focus on Cancel. Marking several works. An invalid original location recorded in the bin is refused. (#26)
- Text preview: South on .txt, .md, .log, .json, .xml, .csv, .ini, code etc. (or North → Visualizar como texto (view as text) on any file, scripts included, without running them) opens it read-only. Up/Down scroll, LT/RT page, LB/RB jump to the start/end, Left/Right shift long lines and South toggles a fixed-width/proportional font. Encoding detected (UTF-8, UTF-16, ANSI); only the first 2 MB and 10,000 lines, with a partial-preview notice; binary files are refused. (#58)
- Smaller downloads: the portable exe went from 97 MB to 72 MB and the installer from 65 MB to 48 MB by dropping the Windows App SDK AI/ML components the app doesn't use. (#85)
- Grid view: Menu → View (or Ctrl+G) switches between the list and a grid of large icons in folders and on the home screen. In the grid the D-pad moves in 2D, never skipping items and wrapping to the next row at the ends; the triggers page. Density applies to the grid (smaller tiles when compact), the choice is saved and switching views keeps the focused item. (#29)
- Image preview (JPG, PNG, GIF, BMP, WebP): South opens the image inside the app; Left/Right or LB/RB step through the folder's images, RT/LT zoom, the D-pad pans while zoomed and East/B closes. Decoding runs in the background and is reduced to 4096 px; the format is checked from the content and 100 MB / 80 megapixel limits apply before decoding. Nothing is executed; images inside archives aren't previewed. (#57)
- Narrator reads the on-screen keyboard field as "Texto: …" with the caret position, and the Smoke workflow now checks through UI Automation the menu focus, the safe option of confirmations, modal scope and the on-screen keyboard in the real app. (#83)
- Text selection on the on-screen keyboard: Select all on the
…page (or Ctrl+A), the selection is highlighted and underlined, typing replaces it,⌫deletes it and◀ ▶drop it. Rename opens with the name before the extension selected (example-file.zip→ typenovo→novo.zip). (#44) - Drive types: local disk, USB stick, optical drive and network drive each get their own symbol and text on the home screen and in the folder picker (with label, letter and free/total space), and Narrator reads the type. Plugging in or removing a USB stick while the app is open updates the list without restarting and keeps the focus on the same place. (#25)
- Active controller: Menu → Controle ativo (active controller) lists the connected controllers (name, family, type, VID:PID, physical or virtual) and South/A on one makes it the only controller driving ControlFS until you switch back to automatic. When Steam Input or DS4Windows expose the physical controller and a virtual copy at the same time, the bottom bar warns about the duplicate (each button could act twice) and the menu shows which one looks like the copy. The controller test also flags virtual devices. (#80)
- Recent on the home screen: the last folders you visited and files/archives you opened (up to 10 of each), one press away with Home → Recent → South/A. They stay on this computer only, in your settings; North on "Recent" clears the lists, and Menu → "Recent" turns the feature off (which also erases what was stored). (#49)
- Operation history: Menu → Operations also lists what was done in earlier launches (copies, moves, deletes, extractions, compressions and renames), with date, source, destination and per-item outcomes. Stored as versioned JSON in the data folder with atomic writes, capped at the 200 most recent operations, never with passwords or file contents; Clear history… erases the record. (#20)
- Test integrity of an archive without extracting (North on an archive or inside it): reads every entry and checks its CRC without writing anything, with progress and cancel. The result names the failing entries and counts those without a checksum (TAR, GZ, ZIP AES AE-2). It is not a virus scan. (#66)
- Extract several archives at once: mark the archives and choose North → "Extract each to its own folder". Each goes into a new folder (contents never mix), runs as its own queued operation and a final summary shows each result. (#69)
- Folder size on demand: Properties → "Calculate size" adds up everything inside a folder or drive off the UI thread, showing the running total; East/B cancels at once and keeps the partial value. Junctions and links are never followed (they are counted separately) and folders that could not be read are reported. Search and size share the same safe walker. (#55)
- Search filters: North on the results opens type filters (folders, images, videos, audio, documents, archives, executables — combinable), size and modified date; South toggles without closing the menu. The list is filtered at once without searching again, and filters stay on for later searches in the session. The other search actions moved to "Other search actions…". (#47)
- Pause and resume copies, moves and deletes: Menu → Operations → the operation → Pause/Resume. It stops at the next safe point (between items and between blocks of a file), never leaving anything half-written in the destination; Cancel also works while paused. Extraction and compression don't offer pause. (#21)
- Search (and folder size) now go into OneDrive folders with files on demand, treated as normal folders: only names are read and nothing is downloaded. Junctions, symbolic links and mount points are still refused. (#126)
- Undo and redo: Menu → Undo/Redo (and "Undo" in the result of copies and moves) for rename, move, copy and Recycle Bin deletes. Everything is checked first: if the disk changed since the operation (name taken, copy edited, item gone from the Recycle Bin), nothing is done and the reason is shown. A copy is only removed while it is unchanged and the original still exists. Permanent deletes and replacements are never undone. (#22)
Improvements
- ZIP64 validated: ZIP archives with entries over 4 GB or more than 65,535 entries extract with sizes and CRCs checked; the safety limits still apply. (#63)
- AES-encrypted ZIP (WinZip AE-1/AE-2, 128/192/256-bit) validated: without a password the app asks for one, the right password extracts identical content and a wrong one is now reported as "wrong password" (asks again) instead of "wrong password or corrupt data". (#64)
- Tabs in the browser: each tab keeps its own folder, history, marked items and focus. RB moves to the tab strip, LB/RB switch tabs and North creates or closes one; North on a folder has "Open in new tab". A copy or move refreshes every tab showing its source or destination. (#50)
- Go to path… (Menu, and in the folder picker): the on-screen keyboard opens with the current folder selected; type or paste (Ctrl+V) a path, with or without quotes and with variables such as
%USERPROFILE%, and Done goes there. A missing or invalid path shows the error without closing the keyboard; a file's path opens its folder with the file focused. (#54) - More informative archive browser: the header shows the format, files, uncompressed size and how many entries are password-protected or blocked; each file shows how much it takes compressed (%); folders show Explore and, with entries marked, North becomes Extract selection (N) and the menu opens on that option. (#68)
Known limitations
- Not yet validated with physical controllers (issue #78: Menu → Teste de controles…).
- Executables are not code-signed yet (#84): Windows SmartScreen may warn on first run.
Downloads
- Installer:
ControlFS-Setup-x64.exe— installs the app per user (no admin) and updates itself. - Portable:
ControlFS-Portable-x64.exe— a single executable; keeps its data in theControlFS_Datafolder next to the file.
release-manifest.json and release-manifest.json.sig are the signed update manifest the installed app verifies (SHA-256 of both downloads).
🇧🇷 Notas em português: CHANGELOG.md