Repository navigation
Releases: FreakySneaky787/Simple-Organizer
Release list
Simple Organizer v3.5.1
What's New in v3.5.1
Bug-fix Release
v3.5.1 fixes six bugs found after v3.5.0 (#81 – #86). Three of them could move, trash or damage files in rare cases, so updating is recommended for everyone.
Fixed: files and data
- "Don't move" was forgotten after a restart (#82) — the choice was only kept in memory, so after closing the app the next automatic run moved those files after all. It is now saved with the settings and kept until you pick another folder.
- Duplicate trash check only compared the size (#86) — a duplicate is now only moved to the Recycle Bin if the copy you keep still has the same content (SHA-256), not just the same size. If the kept copy was edited after the scan, the other copy stays. A hard link of the same file never counts as a second copy.
- History and settings could be empty after a power cut (#83) — files are now written to disk (
fsync) before they replace the old version, so a crash leaves either the old or the new file, never an empty one.
Fixed: sorting
- A file named like a category folder blocked the whole category (#81) — a file without extension called
OthersorDocumentsis now moved first, and the category folder can be created. Undo puts it back under its old name. A file that cannot move away (e.g. a download in progress) is still reported as blocking. - Images/Images (#84) — when the scanned folder itself is named like a category (
Downloads/Images), its images count as already in place instead of being moved toImages/Images. Sub-categories go directly below it (Images/Photos). - Recursive scans re-sorted rule folders (#85) — the target folders of your enabled rules are now skipped like the category folders, so e.g. a "newer than 7 days →
New" rule no longer has its folder emptied by the next scan.
Project
- New regression suites
test_v351.pyandtest_gui_v351.py; all 14 suites pass on Windows with Python 3.11 and the newest Python.
No new dependencies — still Python standard library only. Settings, rules and history of v3.5.0 are used as they are.
Download
simple_organizer_windows_v3.5.1.zip contains simple_organizer.exe and the README. Check the exe against simple_organizer_windows_v3.5.1.sha256:
Get-FileHash simple_organizer_windows_v3.5.1\simple_organizer.exe -Algorithm SHA256SHA-256: E383D9B084648BA2E0C6C3DAD074A4D77CE817F1DC422A7C2CD5A12799D0388C
Linux (Debian 12+, Ubuntu 22.04+, Simple OS): simple-organizer_3.5.1_all.deb installs Simple Organizer with a menu entry and pulls in python3-tk:
sudo apt install ./simple-organizer_3.5.1_all.debSHA-256 of the package: 75C5534B7CFFEC0F5C46EA2142B46689F791EE096D07F99C4892EF9AAC5DC175
Simple Organizer v3.5.0
What's New in v3.5.0
Feature Release
v3.5.0 brings the features that were on the roadmap and fixes every open issue (#65 – #80). Updating is recommended for everyone — especially if you use Auto-organize with a removable drive.
New
- Don't move (#77) — keep single files where they are. Select them in the Preview and press
SpaceorDelete, or right-click → Don't move. The rows turn grey; Organize moves only the other files, and the confirmation counts only those. The choice is kept for later scans of the folder — automatic runs leave those files alone too — until you pick another folder or close the app. - Search and sort the Preview (#78) — a search field above the list (
Ctrl+F,Escclears) filters by file name, category or destination. Click a column heading to sort, again to reverse. Filtering only changes what you see. - Rules with several conditions (#79) — Add condition in the rule dialog. A rule matches only if all its conditions match, e.g.
extension pdf+older_than_days 365→Archive. Existing rules keep working unchanged. - Export CSV (#80) — saves the scan result (status, file, category, source and destination folder, size) in a format Excel and LibreOffice open directly. File names such as
=1+1.txtare always shown as text, never run as a formula. - History shows the folder of every run and can open it; Undo last names the run and folder it will restore (#74).
Fixed
- Auto-organize switched to Downloads when a drive was unplugged (#65) — if the saved folder is not reachable at start, it stays selected, Auto-organize shows Paused: the folder was not found, Scan says the folder was not found, and the folder is no longer forgotten.
- Undo was redone by the next automatic run (#75) — after an undo in the folder Auto-organize watches, you are asked whether to pause it.
- Outdated preview (#73) — changing a scan option or a rule after a scan clears the preview, so Organize never uses an old plan. A rule changed during a scan discards that scan's result.
- Files removed after the scan (#66) — are skipped instead of reported as errors; folders created for moves (or commits) that failed are removed again; error messages show the reason without doubled paths.
- "Open destination folder" always failed before Organize (#67) — the item only appears once the folder exists.
- Slow start (#72) — the rounded controls are drawn once per shape instead of once per colour, and the window icon is much smaller: the app starts about twice as fast, the dark theme loads faster too.
- Tabs only worked with the mouse (#76) —
Ctrl+1…Ctrl+4switch tabs,F5scans. - Outdated texts in the History tooltip and the Commit confirmation (#68).
Documentation and project
- Regression tests of every release are now in
tests/and run on GitHub Actions on Windows with Python 3.11 and the newest Python (#71). - Wiki: Auto-Organize tip now works with a two-condition rule (#69); Data and Settings lists every file in the data folder (#70).
Good to know: a rule with several conditions is understood by v3.5.0 and newer. Versions 3.4.1 – 3.4.5 only see its first condition and would match more files, 3.4.0 and older cannot read the rules at all — don't go back to an older version with such rules. Rules with one condition are saved exactly as before.
No new dependencies — still Python standard library only.
Download
simple_organizer_windows_v3.5.0.zip contains simple_organizer.exe and the README. Check the exe against simple_organizer_windows_v3.5.0.sha256:
Get-FileHash simple_organizer_windows_v3.5.0\simple_organizer.exe -Algorithm SHA256SHA-256: EDD272EA061AC607C9F236ED518A5CF358786B744C6B33D99AC5227BD4D5DB0B
Linux (Debian 12+, Ubuntu 22.04+, Simple OS): simple-organizer_3.5.0_all.deb — new in this release. It installs Simple Organizer with a menu entry and pulls in python3-tk:
sudo apt install ./simple-organizer_3.5.0_all.debSHA-256 of the package: 25777EAAE50745907EE0BE26A841F8B6337D541178A760AB0E3E6F76A713BCDA
Simple Organizer v3.4.5
What's New in v3.4.5
Bug-Fix Release
v3.4.5 fixes all 13 issues from the fourth review (#52 – #64). The most important one could stop the app from starting at all; others could leave a second copy of a file behind or move files that a program still needs. Updating is recommended for everyone.
The app always starts
- A
rules.jsonthat is not UTF-8 stopped the app from starting (#52) — a file saved as ANSI (e.g. with umlauts) or UTF-16 (PowerShell>) crashed every start. It is now backed up torules_corrupt_<time>.json, and the app starts without those rules. - Files with a byte order mark were treated as damaged (#53) —
rules.jsonandsettings.jsonsaved by Notepad or PowerShell with a BOM are now read correctly instead of being moved aside or reset. - "Already running" on file systems without locking (#56) — e.g. a home folder on NFS. Only a lock that another instance really holds blocks the start.
Never lose track of a file
- Read-only files left a second copy when moved to another drive (#54) — the copy took over the read-only flag and could not be removed again. Read-only files are now moved normally, and a failed move never leaves a copy. Drives that cannot store timestamps (FAT, exFAT, network shares) no longer make moves fail.
- Trash could remove the last copy (#58) — before a duplicate goes to the Recycle Bin, Simple Organizer checks that the copy you keep still exists with the same size.
- LibreOffice lock files were moved (#61) —
.~lock.Report.odt#is left alone, like Office's~$Report.docx. - Firefox downloads left an empty stray file (#62) — Firefox creates an empty file with the final name while it downloads. That file is now left alone until the download has finished.
- Junctions were followed with Python 3.11 (#57) — junctions are now detected on every supported Python version.
Undo
- A damaged history file blocked "Undo last" (#55) — it is moved to
history/damaged/, and the newest readable run is undone, the same one History shows.
Smaller fixes
- No freeze after trashing many duplicates (#59) — the preview is updated without checking every file again on the window's thread.
- Extension rules with
*.pdfnever matched (#60) —.pdfand*.pdfnow meanpdf; a list likepdf, docxis refused with a hint. - A message on top of a dialog unlocked the main window (#63) — after closing the message, the dialog underneath is modal again.
- First start opened a missing
~/Downloads(#64) — the real Downloads folder is used, also when it was moved to another drive (Windows) or has a localised name (Linux, e.g.~/Téléchargements).
No new dependencies — still Python standard library only.
Download
simple_organizer_windows_v3.4.5.zip contains simple_organizer.exe and the README. Check the exe against simple_organizer_windows_v3.4.5.sha256:
Get-FileHash simple_organizer_windows_v3.4.5\simple_organizer.exe -Algorithm SHA256SHA-256: 71BCB8992CF3EE5CC18F5B57E052CBABA732C493599098CDB49C5E968ABF7048
Release of the v3.4.4
What's New in v3.4.4
Bug-Fix Release
v3.4.4 fixes all 23 issues from the third review (#29 – #51). The most important ones could leave stray copies of files behind, mix up the undo history, or move files that should stay where they are. Updating is recommended for everyone.
Never lose track of a file
- Moves across drives left orphaned copies (#29) — when a file was copied to another drive (e.g. into the staging area) but the original could not be deleted because it was open, the copy stayed behind, unknown to Commit, Revert and Undo. Now the copy is removed again and the error is reported; a copy also never overwrites an existing file.
- Two running instances overwrote each other's staging and history (#30) — Simple Organizer now runs only once. Starting it again brings the open window to the front.
- Commit / Revert recreated a renamed or deleted folder (#35) — if the scanned folder no longer exists, the files stay staged with a clear error instead of a resurrected folder tree.
- A category folder that is a link moved files out of the folder (#43) — if e.g.
Imagesis a junction or symlink to another place, those files are not planned and the scan says why. - Shortcuts were moved and disappeared from the Desktop (#41) —
.lnk,.url,.desktopand.weblocfiles are never moved.
Undo history
- Scheduled runs pushed manual runs out of the history (#31) — manual and automatic runs are now limited separately (20 each), and History marks automatic runs.
- "Undo last" depended on the system clock (#45) — runs are numbered, so a wrong or jumping clock (e.g. dual boot) can no longer reorder them.
- Undo could not follow a file after the newer run was trimmed (#38) — runs dropped from the undo list are kept for a while (
history/trimmed/), so undo still finds the file. - Undo from History started without asking (#32) — it now asks for confirmation, like Undo last.
OneDrive & cloud files
- Staging mode downloaded online-only files (#33) — moving them out of the OneDrive folder into the staging area would download them; they now stay where they are, with a note in the log.
Errors are visible
- Errors in the exe vanished silently (#42) — unexpected errors are now shown as a notification, written to the log and to
error.login the data folder. - The trash confirmation could hide behind the window (#46) — Windows' Recycle Bin dialogs now open above Simple Organizer.
- Dialogs could end up behind the main window (#34) — dialogs and notifications are now owned by the main window and always stay above it.
Sorting
- New categories and file types (#47) — iPhone photos (
.heic,.heif),.avif,.jxl; e-books and e-mails (.epub,.mobi,.eml,.msg); Office macro files (.docm,.xlsm,.pptm); a new Programs category (.exe,.msi,.dmg,.pkg,.apk,.appimage,.deb,.rpm,.flatpakref) and Disk Images (.iso,.img). .tsvideos were sorted as TypeScript (#44) — MPEG transport stream videos are detected by their content and go toVideos/TS(also.m2ts,.mts).- A file named like a category folder (#37) — e.g. a file called
Documentsno longer causes one error per PDF; the scan reports the conflict once. - Hard links were reported as duplicates (#40) — several links to the same file are counted once.
Smaller fixes
- Auto-organize ran silently into a missing folder (#48) — the card shows "Paused: the folder was not found" and a notification appears once.
- Ctrl+Z in a number field opened Undo (#36) — it no longer does.
- Settings write failures flooded the log (#49) — reported once.
- A damaged
rules.jsoncould be overwritten (#50) — if it cannot be backed up, the Rules tab refuses to save instead. - Window position on Linux/X11 (#39) — only Windows restores the window position; on Linux the window manager places the window, so it no longer creeps down on every start.
- Dead code removed (#51).
No new dependencies — still Python standard library only.
Release of the v3.4.3
What's New in v3.4.3
Bug-Fix Release
v3.4.3 fixes all 15 issues found in a review of v3.4.2 (#14 – #28), including one regression. Updating is recommended — especially if you keep simple_organizer.exe inside the folder you organise.
Safety & data
- The folder that contains the exe could not be organised (#14, regression in v3.4.2) — the whole folder was refused as "belongs to Simple Organizer itself". Now only the exe itself is left alone and the folder is organised normally. The settings, history and staging folders stay fully protected.
- The duplicate check downloaded OneDrive files (#15) — "online-only" cloud files (OneDrive, Dropbox, iCloud) were read for hashing, which downloads them. They are now skipped and counted in the log.
- Undoing runs out of order left files in the wrong place (#25) — when a newer run had moved a file again, undoing the older run skipped it. Undo now follows the file to where it is and restores it to its original location.
- Organize stayed enabled with an outdated plan after a crash (#21) — after a task that moves files fails unexpectedly, the preview is cleared so you scan again first.
- No warning for
C:\Usersor/home(#23) — the folder that holds all users' home folders now asks for confirmation like other unusual folders.
Scheduler
- Scheduled runs silently stopped after a restart (#24) — your "scan anyway" answer for an unusual folder is now remembered, also for automatic runs. If a run is paused because a folder still needs that confirmation, the Auto-organize card and a notification say so.
- The schedule timer restarted after an automatic correction (#26) — e.g. after an out-of-range interval was corrected.
Performance
- The window froze while showing very large scans (#16) — Preview and Duplicates are now filled in small slices, so the window stays responsive.
- The log grew without limit (#17) — it now keeps the newest 5 000 lines.
- The UI stuttered after every task (#18) — button states no longer read every history file.
Usability
- Shortcuts did not work with Caps Lock on (#22).
- Window size and position (#27) — a maximised window no longer overwrites the normal size with the screen size. Position and maximised state are remembered, and the window is moved and shrunk to fit if the monitor changed.
Linux
- Trash on USB sticks and other partitions (#28) — the built-in Trash fallback now uses the drive's own trash (
.Trash-<uid>) instead of copying the file into the home folder. XDG_CONFIG_HOMEandXDG_DATA_HOMEare honoured (#28) — an existing folder in the old location keeps being used, so nothing gets lost.
Project
- The README promised a Linux build that does not exist (#19) — Downloads and Installation now explain how to run Simple Organizer on Linux (from source or self-built).
- Building from source failed (#20) —
icon.pngandicon.icoare now in the repository.
No new dependencies — still Python standard library only.
Release of the v3.4.2
What's New in v3.4.2
Safety & Reliability Release
v3.4.2 is the result of a full code review of v3.4.1. The UI looks the same — this release closes every bug found in that review, several of which could move the wrong files or lose undo records. Updating is recommended for everyone.
Data safety
- Closing the app during a task lost the undo record — the worker thread was killed mid-run and the history was only written at the end. Closing now waits until the running task has finished.
- Crash or power cut left no undo record — the history (and the staging manifest) is now written every 2 seconds while files are moving, and every settings, rules, history and manifest file is written atomically (never half-written).
- Undo threw away files it could not restore — a run was marked "undone" even when some files failed (e.g. locked). Failed files now stay in the history entry, so you can fix the cause and undo the same run again.
- A briefly locked
rules.jsondeleted your rules — any read error (sync client, virus scanner) was treated like a corrupt file and the rules were moved away. Read errors now stop the scan with a message instead; only real JSON corruption is backed up, torules_corrupt_<time>.json, without overwriting older backups. - The app could organise its own data — the settings, history and staging folders are now protected like the program folder.
Never move what shouldn't be moved
- System files were moved on Windows —
desktop.ini,Thumbs.dband files with the Windows System attribute are never touched now. "Include hidden files" also respects the Windows Hidden attribute, not only dot-files. - Running downloads could be moved —
.crdownload,.part,.tmpand similar files, and Office lock files (~$…), are left alone. - Git repositories inside a recursive scan were taken apart — sub-folders that are Git repositories are now skipped as a whole.
- Warning for unusual folders — scanning a drive root, your home folder, a system/program folder or a Git repository asks for confirmation first. Scheduled runs skip such folders unless you confirmed them in the current session.
- Windows junctions were followed — they are now treated like symlinks and never followed, so files are not found twice.
Concurrency fixes
- Two tasks could run at once — keyboard shortcuts and several buttons (Undo, History, Commit, Revert, Organize, Trash) still worked while another task was moving files. Everything is now blocked while a task runs or a dialog is open.
- Scheduled run could overrun a confirmation dialog — a run that comes due while a dialog or another task is open now waits until it is finished. Organize also re-checks after confirming that the scan was not replaced in the meantime.
- Scheduler could end up with two timers — and after standby it fired once per missed slot. Now there is always exactly one timer, and missed slots are skipped.
Scanning fixes
- Folders named like categories were skipped everywhere — a folder such as
Projects/Images,Code/Pythonor one calledproc/syswas silently ignored in recursive scans. Category folders are now only skipped directly inside the scanned folder. - Organise after "Move to Trash" tried to move trashed files — trashed files are now removed from the preview and the plan; remaining duplicate groups stay visible.
- Empty files were reported as duplicates — they are ignored now (trashing empty
__init__.pyfiles would break projects). - Large scans froze the window — progress updates are throttled and event handling has a time budget.
- Duplicate check had no time limit — it now stops after a generous limit and says so in the log; files over 500 MB that were skipped are reported too.
Rules
- Multi-part extensions never matched — an extension rule like
tar.gznow works. - Invalid target folders failed file by file — names with
< > : " | ? *, reserved names likeCON/NULand trailing dots or spaces are rejected in the dialog and ignored with a warning during scans. inf/nanare no longer accepted as size or age values.
Usability
- Number fields are clamped to their allowed range; an empty field falls back to the last valid value; −/+ snap to sensible steps (1 → 15 → 30 …); the mouse wheel only changes a focused field; leaving the schedule field no longer restarts the timer.
- History shows local time instead of UTC.
- Undo removes empty category folders that the undone run had created.
- Drag-and-drop actually works when
tkinterdnd2is installed; without it, the tooltip no longer promises it. - Window icon is drawn automatically when
icon.pngis missing. - Damaged settings (
"max_depth": "x","dark_mode": "false") no longer crash the start — wrong values fall back to defaults. - Fewer log lines: depth limits and skipped repositories are summarised;
[SCHEDULE ERROR]lines are coloured.
Linux
- Dialogs no longer crash with "grab failed: window not viewable" on slow X11 setups.
- The built-in Trash fallback now follows the freedesktop.org spec (percent-encoded paths, info file created first), so file managers can restore files with spaces or umlauts.
No new dependencies — still Python standard library only.
Release of the v3.4.1
What's New in v3.4.1
Bug-Fix Release
v3.4.1 fixes every open bug report from v3.4.0. The UI and features are the same as v3.4.0 — this release is about safety and reliability. Updating is recommended for everyone.
Safety fixes
- Scheduled scan could skip confirmation (#8) — if a scheduled scan failed, the next manual scan organised files immediately without the "Confirm Organize" dialog. Auto-mode is now always reset, even when a scan fails.
- Rules could move files outside the scanned folder (#9) — a rule target like
C:\Backup,/tmp/xor..\Otherwas accepted. The rule dialog now only accepts sub-folder names, and the scanner double-checks every rule target and ignores unsafe ones with a warning in the log. - "Move to Trash" could permanently delete on Windows (#7) — on drives without a Recycle Bin, Windows deleted files for good. Network drives and UNC paths are now refused (the file is left in place and logged), other drives without a Recycle Bin show a Windows warning first, and a cancelled operation is reported as an error instead of a success.
Staging fixes
- Organising twice before Commit orphaned files (#5) — the second run overwrote the staging manifest. New staged files are now added to the existing manifest, so Commit and Revert always cover everything in staging. This also fixes staging mode combined with the scheduler.
- Commit/Revert lost track of failed files (#6) — the manifest was deleted even when some moves failed. Failed files now stay in the manifest so you can fix the problem and simply press Commit or Revert again.
- Empty nested staging folders were left behind (#12) — e.g.
staging/Images/Photos/with sub-categories on. They are now removed at every level.
Undo fixes
- "Undo Last Run" and History got out of sync (#11) — each run used to be recorded twice. The newest entry in History is now the one and only "last run", so both always agree. An existing
last_run.jsonfrom older versions is merged into History automatically on first start, and oldundone_*.jsonfiles are cleaned up.
Other fixes
- Empty number field blocked closing and scanning (#10) — clearing Max depth, Max folders, Timeout or the schedule interval made the ✕ button and Scan do nothing. Empty or invalid fields now fall back to the last saved value.
- One broken rule wiped all rules (#12) — invalid entries in
rules.jsonare now skipped one by one. An unreadablerules.jsonis backed up torules.json.bakinstead of being overwritten. - Rule save errors were silent (#12) — if rules cannot be written, the app now shows a warning.
- Trash count included skipped files (#12) — the "moved to Trash" message now only counts files that were actually trashed.
- Duplicates tab kept stale paths after organising (#12) — it is now cleared once files have moved. Re-scan to see updated results.
- Version label showed v3.3.1 (#13) — title bar and header now show the correct version.
No new dependencies — still Python standard library only.
Previously in v3.4.0 — UI Refresh
- Folder bar on top, options in a sidebar, tabbed workspace, status bar
- Dark and light themes with rounded controls, drawn at runtime — no image files shipped
- Native-looking title bar theming on Windows 10/11
- Phosphor icons throughout (MIT-licensed, bundled as path data)
- In-app dialogs and toast notifications
- −/+ number steppers, timestamped colour-coded log
- Click a rule's status dot to toggle it; click anywhere on a duplicate group row to expand/collapse it
Note: On Linux, dialog and toast corners render square instead of rounded — window transparency (used for rounded corners) is Windows-only.
Release of the v3.4.0
What's New in v3.4.0
UI Refresh
The interface has been rebuilt from the ground up. Organizing, rules,
undo, and scheduling logic are all unchanged from v3.3.1 — this release
only changes how the app looks and feels.
- Folder bar on top, options in a sidebar, tabbed workspace, status bar
- Dark and light themes with rounded controls, drawn at runtime
- Native dark title bar on Windows 10/11
- Phosphor icons throughout (MIT-licensed, bundled as path data)
- In-app dialogs replace native message boxes, plus toast notifications
- −/+ number steppers, timestamped/coloured log
- Click a rule's status dot to toggle it on/off
- Duplicate groups expand/collapse by clicking the row
No new dependencies. On Linux, dialog/toast corners render square
(rounded corners rely on Windows-only window transparency).
Thanks to @ruan-luidy for the contribution!
Downloads
| Platform | File |
|---|---|
| Windows 10/11 | simple_organizer_windows_v3.4.0.zip |
| Windows 10/11 | simple_organizer_windows_v3.4.0.sha256 |
Verify the exe:
Get-FileHash simple_organizer.exe -Algorithm SHA256Release of the v3.3.1
The biggest new feature since the rules engine. The Duplicates tab now lets you act on duplicates — not just view them.
After a scan, select any duplicate file rows using click, Ctrl+click, or Shift+click. Then click 🗑 Move Selected to Trash to send them to the system Trash or Recycle Bin.
How it works:
- Multi-select is fully supported — click, Ctrl+click, Shift+click
- A live label shows how many files are selected
- The Move to Trash button is disabled until you make a valid selection
- A confirmation dialog shows exactly which files will be moved before anything happens
- Every trashed file is logged in the Log tab
Safety rules — always enforced:
Simple-Organizer-Windows-v3.2.2
The v3.2.2 Windows Release of the Simple-Organizer.
Bug Fixes
Window icon disappearing during runtime
The icon was stored as a local variable and could be destroyed by Python's
garbage collector after startup. Fixed: stored as an instance attribute.
History write errors were invisible
Errors during undo history writes were silently swallowed. Fixed: errors
now appear in the Log tab.
Settings save failures were invisible
A failed settings write gave no feedback. Fixed: a warning now appears in
the Log tab if saving fails.
Rule numeric values not validated
Entering abc for a numeric condition like min_size_mb saved without error
and silently never matched. Fixed: invalid input now shows an error dialog.
Undo rename timestamp collision
Two undo operations within the same second could target the same filename.
Fixed: microseconds added to the timestamp.
import time inside function body
Minor code cleanup — time moved to top-level imports.
Dead entry_fg key in theme dicts
Unused key removed from both themes.
Dark Mode Overhaul
The dark theme is now based on the Tokyo Night colour palette:
| Element | Before | After |
|---|---|---|
| Background | #1e1e2e |
#1a1b26 deep navy |
| Text | #cdd6f4 |
#c0caf5 warm lavender |
| Accent | #89b4fa |
#7aa2f7 vivid blue |
| Input fields | #313244 |
#1f2335 clearly distinct |
| Log area | #11111b |
#0d0e17 near-black |
Additional improvements:
- Section headers and column headings use the accent colour
- Button hover uses a lighter computed shade
- Treeview row height increased from 22 to 24 px