ControlFS 0.9.0-alpha.1
·
38 commits
to main
since this release
Improvements
- Two panes (#56): Menu → Dois painéis shows two folders side by side, each with its own location, history, marks and focus. The active pane has a cyan outline and the "ATIVO" (active) title; L3 (press the left stick; Tab on the keyboard) or a click switches panes without touching marks. In Actions, Copiar/Mover para o outro painel (copy/move to the other pane, quick tiles) and Extrair para o outro painel (extract to the other pane) show the source and destination before running, and the other pane refreshes when done. Handhelds and narrow windows keep a single pane.
- Edit text from the preview (#62): in the preview of a text file (up to 1 MB, fully shown), North starts editing. The focused line is highlighted; Up/Down pick the line, South opens it on the on-screen keyboard, North inserts a line above/below, deletes the line or undoes, Start saves. Saving asks first and swaps the file in one step (never half-written), keeping the encoding, BOM and line endings; the original stays next to it as
name.controlfs.bak. Back with changes asks before discarding, starting on "Continuar editando" (keep editing). If another program changed the file while you were editing, saving warns before replacing it. Binary, read-only, oversized files or encodings that wouldn't round-trip are refused with the reason. - Full-screen video player (#61, #170): South on an MP4, M4V, MOV, WMV, AVI, MKV, WebM or 3GP file (from the list or the grid; North → Assistir aqui too) plays it across the whole window. An overlay with the title, elapsed/remaining time, progress bar, volume, subtitles and audio track shows up on any button and fades after 3 s of playback. South pauses/resumes; Left/Right (±10 s), LB/RB (±1 min) and LT/RT (5% of the video) show the target in large type and on the bar before jumping (South jumps right away, Back cancels); Up/Down change the volume; North opens subtitles (embedded, or an
.srt/.vttwith the same name next to the video), audio track, mute, start over and "forget where I stopped" — whatever the video lacks is disabled with the reason. Back first hides the overlay, then returns to the list with the focus on the video. A partly watched video asks Continuar de 12:34 (resume) or Começar do início (start over) — only for the same file: another file with the same name, or the same one edited, doesn't inherit the position; Configurações → Apagar onde os vídeos pararam erases them all. Windows codecs only: a format without a codec shows a clear message and Back leaves. - Create 7z (#67): in Compactar… (Compress), Formato now cycles ZIP → TAR.GZ → 7z (solid LZMA, smaller than ZIP; opens in 7-Zip and in the current Windows 11 File Explorer). Same rules as before: links aren't followed, the archive only appears when finished and nothing is overwritten. No new dependency: it uses the LZMA encoder already shipped in SharpCompress.
- Network locations (#27): network drives mapped in Windows and the Network locations shortcuts (File Explorer → "Add a network location") show on Home and in Meu computador (This PC) with the network symbol and the share (e.g. "filmes (Z:)", "Rede · \nas\filmes"); South opens and browses them like any folder. A drive Windows remembers but isn't connected shows as "desconectada" (disconnected), never as an error. ControlFS doesn't contact servers to build Home (a NAS that is off no longer holds up startup or going back Home) and stores no credentials: it only uses what Windows already knows.
- Audio playback (#60): South on an MP3, WAV, WMA, M4A, AAC, FLAC, OGG or Opus file plays it inside ControlFS (North → Ouvir aqui too). South pauses/resumes (at the end, it starts over), Left/Right skip back/forward 10 s, LB/RB 1 minute, Up/Down change the volume and North mutes/unmutes; the panel shows the state, time, progress bar and volume. East/B closes and the sound stops right away. Only Windows codecs are used: a format without a codec shows a clear message.
- Light theme and accent color (#37): Menu → Configurações → Tema (automatic, which follows Windows' app mode and changes with it; dark; light) and Cor de destaque (cyan, blue, green, amber, magenta, orange). Changes apply at once to every screen, menu and the on-screen keyboard, and are saved. Every combination is contrast-checked by tests (text ≥ 4.5:1; focus ring ≥ 3:1). Change: if Windows is in light mode you now get the light theme; Configurações → Tema: escuro brings back the previous look.
- PDF preview (#59): South on a
.pdfshows its pages inside ControlFS, without Edge (North → Visualizar PDF too; Open with the default app is still there). Left/Right or LB/RB change pages, RT/LT zoom, while zoomed the D-pad moves around the page and South fits it back; East/B closes with the focus on the PDF. The header shows "página N de M" (page N of M). A password-protected PDF asks for the password on the on-screen keyboard (masked, never stored) and lets you try again. Pages are drawn by Windows in the background; links, attachments and forms never open. - Experimental: gyro aiming on the on-screen keyboard (#77): Menu → Configurações → Mira por giroscópio no teclado (off by default). With a controller that has a gyroscope (DualSense, DualShock 4, Switch Pro…), turning or tilting the controller points at keys; South types, the D-pad keeps working and R3 recenters. The sensor is only turned on while the setting is on. Not yet validated on hardware; findings in
docs/decisions/0007. - Split archives (#65):
.7z.001,.zip.001,.part1.rar,.rar+.r00and.z01+.zipopen and extract from any volume. If a volume is missing, nothing is extracted and the message names the missing volumes (including the last one, when the format tells). Marking several volumes of the same set for a batch extraction counts as one archive. Split TAR/TAR.GZ is refused instead of being half-extracted. - More visible image preview controls (#171): the panel only shows what works right now (no "Anterior" on the first image, no "Próxima" on the last; "Ajustar à tela" only while zoomed), with the buttons of the controller in use. After 4 s without input the prompts fade (Close stays highlighted) and the header says "qualquer botão mostra os comandos" (any button shows the controls); any button brings them back and still does its job. The footer keeps its size, so the image never jumps.
- Restored tabs (#51): with two or more tabs open, ControlFS reopens the same folders, in the same order and on the tab that was active. A folder that is gone (or a disconnected drive) becomes an "(indisponível)" (unavailable) tab that shows Home with a notice, without holding up startup. Menu → Configurações → Restaurar abas ao abrir (restore tabs on launch) turns it off.
- Reopen closed tab (#52): Menu → Reabrir aba fechada (also in Menu → Abas and North on the tab strip) brings back the last closed tab at the same position, with its folder and history (Back/Forward); marks don't come back. The last 10 tabs closed in this session are kept.
- Duplicate tab (#53): North on the tab strip (or Menu → Abas) → Duplicar aba opens, right next to it, a tab at the same folder (or archive), focused on the same item, with a copy of the history that then goes its own way; marks stay only in the original tab.
- Maximum smoothness (default): while the window is active, the controller is read ~125 times per second (every 8 ms, with the Windows clock at 1 ms), enough for 120 Hz screens — Windows used to round it to ~64. Drawing still follows the display's rate. Menu → Configurações → Fluidez switches to battery saver (handhelds).
- Smaller menus with a quick-action grid (#193): item actions (North) and the Menu (Start) open with the most used actions as tiles at the top — icon with a short label underneath, readable from a distance (e.g. Abrir, Recortar, Copiar, Colar, Renomear, Propriedades and, last and in red, Excluir). The rest follows in a compact list, with the explanation only on the focused option. In the grid, Left/Right move between tiles, Down goes into the list and Up returns to the tile you came from; the initial focus is never a destructive action, Narrator says "ação rápida N de M" (quick action N of M) and clicking a tile chooses it. Every menu is narrower and shorter.
- Configurações (settings) (#193): settings moved out of the Menu into Menu → Configurações, grouped (Exibição, Busca e privacidade, Controles, ControlFS). Changing a setting keeps the screen open with the new value; Back closes it. Nothing was removed: view, density, details panel, sort, hidden items, search in subfolders, recents, keyboard suggestions, confirm button, button labels, Fluidez, active controller, controller test, controllers without a profile and updates are all there.
- Right-stick scrolling (#175): tilting the right stick scrolls whatever is active — list and grid (one row per step; the focus follows and stays visible, never wrapping at the ends), menus, the text preview (lines and, sideways, columns), a zoomed image and the body of long dialogs and About — without moving anything behind it. A short flick scrolls one step; the further you tilt, the faster it goes, and holding it accelerates gradually; letting go stops at once. A deadzone with hysteresis prevents drift; pressing the stick (R3, list ↔ grid) doesn't scroll, and an idle controller never takes over from the active one. The D-pad and left stick behave as before.
- Batch rename (#71): with marked items, North → Renomear em lote… offers numbering (
Photo 001.jpg…), find and replace (with an optional match case), prefix and suffix, and upper/lower/title case, with a live preview of current name → new name. Extensions never change; invalid names, names repeated in the batch or already used in the folder block the batch with the reason before touching the disk. Start applies it through the Operations center with per-item results, and Menu → Undo puts every name back. - Disk usage analysis (#72): North on a folder or drive → Analisar uso do disco shows the folders and files that take the most space, biggest first, with each one's share. South drills into a folder (without reading the disk again), East goes back up, and a file opens its folder with it focused. The scan runs in the background, East cancels at once, junctions and links are never followed and the totals match Explorer's Size.
- Mount and unmount disk images (#73, #74): North on an
.iso,.img,.vhdor.vhdx→ Montar imagem uses Windows' native mounting (the same as Explorer, no drivers or command line) and opens the new drive; ISO/IMG are read-only. North on a drive that is a mounted image (by ControlFS or Windows), in This PC or on the home screen → Desmontar imagem…, with a confirmation that starts on Cancel. Errors are explained. - Git status (#75): optional (Configurações → Exibição → Status do Git, off by default). In repository folders, the top line shows the branch and how many items changed, and items show "Git: modificado" (modified), "novo (não rastreado)" (untracked), "adicionado" (added), "conflito" (conflict) or, for folders, "com mudanças" (has changes). Read-only, no Git installation needed and nothing from the repository is ever executed (libgit2); browsing never waits for the status.
- Open terminal here (#76): North → Abrir terminal aqui… opens Windows Terminal (or PowerShell) in the current folder after a notice that starts on Cancel (the terminal is outside ControlFS and doesn't work with the controller); an option also opens Windows' on-screen keyboard. Nothing is executed: the folder is only the working directory, never part of a command line.
Security
- Text editing: only files that round-trip byte for byte (same encoding, BOM and line endings); written to a registered temporary in the same folder, flushed to disk and swapped in one step (
File.Replace, which keeps attributes and permissions) with a copy of the original; never edits binaries, files over 1 MB or read-only files. - Video: handed to the Windows player as a local stream (never a URL) after refusing disguised executables; external subtitles only as ordinary local files up to 5 MB (no links); the saved position is only a SHA-256 digest and seconds.
- Audio: the file reaches the Windows player as a local stream (never as a URL, no network), after checking it isn't a disguised executable; closing releases the file.
- Update key rotation (#86): the app accepts manifests signed by any key in its trusted set, so the signing key can be rotated (or a backup key used if the current one is lost) without breaking automatic updates. A copy that doesn't know the new key yet first updates to the transition release that carries it; other keys are still refused and there is never a downgrade. Procedure in
docs/decisions/0006.
Fixes
- 7z archives with empty files no longer ask for a password for nothing: the engine flagged empty files as protected. (#67)
- 7z archives whose file list is password-protected: a wrong password now says "Senha incorreta" (wrong password) and asks again, instead of reporting a corrupt archive. RAR5 and 7z with encrypted headers are now validated with fixtures: without the password not even the names show; with the right one they list and extract. (#70)
- Menus no longer open focused on an unavailable option (e.g. Paste with nothing copied), and the quick-action tiles all have the same width.
- Menus, confirmations and the on-screen keyboard are now smooth: moving the focus only changes the options/keys that gain or lose it, instead of rebuilding the panel, shadow and scroll area on every move (which left a "ghost" and a scroll jump).
- The row that just lost focus no longer keeps a grey "ghost" highlight when the mouse pointer rests over the list or grid: only the focused item has the ring; marked and cut items keep their own marks. (#182)
- The ControlFS icon no longer sits on a black square: the executable, window, taskbar, Start menu, shortcuts and installer use the artwork with a transparent background and the neon glow, at every Windows size (16–256 px). If Windows still shows the old icon, that's its icon cache. (#187)
Security
- PDFs: the content must start as a PDF (a renamed executable never reaches the renderer), limited to 200 MB, 5,000 browsable pages, pages drawn at most 3072 px and 20 s to open or draw (a PDF built to hang becomes an error). Pixels only: nothing is executed or opened.
Known limitations
- Not yet validated with physical controllers (issue #78: Menu → Teste de controles…).
- Executables are not code-signed yet (#84, SignPath Foundation application under review): SmartScreen may warn on first run.
- Audio, video, PDF, ISO, network and terminal were verified only as far as Windows CI can; the rest is in
docs/TESTING.md.
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).
Code signing policy: README → Code signing policy · Privacy policy
🇧🇷 Notas em português: CHANGELOG.md