-
Notifications
You must be signed in to change notification settings - Fork 9
Improve NPBackup GUI for small screens and fixes Windows 7 compatibility #177
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
- GitHub Actions workflow for Win7 x64/x86 builds (standalone, like upstream) - PowerShell and Batch build scripts for local builds - Uses Python 3.8 (last version with Win7 support) - Builds triggered on push to win7 branch, x64 by default Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add window_utils.py with functions to fit windows to screen size - Use Windows API (SPI_GETWORKAREA) to get work area without taskbar - Make main windows resizable: main, config, operations, content, restoration - Automatically resize windows that exceed available screen space Fixes issue where windows were too large for 1080p and smaller screens. Related to upstream issue netinvent#175. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Make all main windows resizable (config, main, operations, restore, ls) - Wrap TabGroup in scrollable Column to keep buttons fixed at bottom - Add expand_x/expand_y to inner containers for proper resizing - Call .expand() after window finalization for correct layout - Set num_rows=2 for paths Tree to ensure minimum height - Add horizontal scrolling support - Buttons stay visible and fixed at window bottom This allows windows to work on screens as small as 750x500 pixels.
|
A PR should be one feature at a time. At a first glance:
For the windows 7 patch:
Please just don't use AI to recode anything without checking. Btw, a UI refresh is currently being written, which will improve overall aesthetics. Again, I'm really not against any improvements, but there's definitly a minimum code standard which plain AI without human comprehension cannot be achieved here. Thank you for the time you put into this. Happy to help you improve said PRs. |
- Add set_minimum_window_size() function using tkinter minsize() - Set minimum sizes for all windows (prevents buttons from hiding): * Main window: 500x300 * Config window: 600x400 * Operations window: 550x400 * Restore window: 400x150 * LS window: 600x400 - Improve button layout with sg.Push() for proper centering - Add DPI awareness for Windows 7 (SetProcessDPIAware) - Fix horizontal expansion: add size=(None,None) for scrollable Column - Fix tab character in examples/npbackup.linux.conf.dist - Add test script (test_window_fitting_win7.py) - Add Windows 7 documentation (WINDOWS7_WINDOW_SIZING.md)
- Operations window: compact header with smaller logo, Pane between table and buttons for resizable split, uniform button widths - About window: add resizable and minimum size - Statistics window: add resizable and minimum size Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Reduce Tree num_rows from 40 to 10 for better fit on small screens - Add expand_x/y to Column for proper resizing Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Version string can now be selected with mouse for copying, and clicking on it copies the entire string to clipboard with visual confirmation. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove stray "8" character introduced by linter in baba83f - Add comments explaining Windows 7 support and win7sup Go patch - Update RESTIC_VERSION from 0.18.0 to 0.18.1 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This workflow builds restic with a patched Go compiler (win7sup) that restores Windows 7/Server 2008 R2 support. Official Go dropped Win7 support in Go 1.21. Features: - Manual trigger with configurable restic and Go versions - Builds both x86 and x64 architectures - Creates artifacts with version info in name - Uses DRON-666's win7sup patch for Go Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace restic 0.18.1 legacy binaries built with standard go1.23.0 with new binaries built using go1.24.2-win7sup patched compiler. This fixes restic crashes on Windows 7/Server 2008 R2 when using VSS snapshots. Built automatically via build-legacy-restic.yml workflow. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
After the proposed changes, on screens that are large enough, all windows should be shown size as you made them. However, I can't check it, since I don't have such screens. But if you know what is wrong and with which of the windows, AI and I will try to fix it. I checked all the windows and manually created the configuration, did a backup, restore, looked at the statistics, ran a purge... so I'm asking for more details about the "UI unusable even on my test systems." I know it sounds trivial, but "everything works for me, I ran it."
To allow somebody not only to see version string, but provide this information to somebody via electronic communications. If you made this information available, you most likely assumed someone might need it. For example, to post a message on a forum.
I didn't pay enough attention to the AI's performance. This change is a mistake and has already been reverted. So have other changes related to removing extra spaces at the ends of lines. Win7
Guthub Runner was the easiest and fastest way for me to get a working binary for Windows 7. If everything else sometime can be accepted, I'll remove it from the set if it's redundant. But I need it for test builds. So for now, while I'm still hoping you'll accept the changes to window sizes and related adaptations—it will remain in this set. Simply as a testing tool.
There was shown kind of error, I don't remember what. Not just "AI" — AI reacts to error. Kind of lint, maybe? Sorry, don't remember. I saw this change (it was the first change in the code), and I also thought that it was some accidentally pressed button in the text editor, a trivial error.
This is gratifying, but the desire to work with small screens was already there, but definitely did not meet with enthusiasm. Well, everyone has different priorities, that's normal. |
I am sorry, but providing PRs without being able to test them creates much more work for me Once my new GUI stuff is merged (excpect it quite soon), feel free to test/comment in order for things to get smooth. |
|
Thank you! |
This branch improves NPBackup GUI for small screens and fixes Windows 7 compatibility.
PART 1: Small Screen Support (useful for all platforms)
All GUI improvements work on any platform and screen size.
Resizable Windows
Resizable Panes
Compact Layouts
About Dialog Enhancements
These changes improve usability on netbooks, tablets, VMs, and remote desktop sessions where screen space is limited.
PART 2: Windows 7 Compatibility Fix
Fixed restic crash on Windows 7 when using VSS snapshots.
Problem:
Solution:
Technical requirements for Windows 7:
Bug fixes:
Tested successfully on Windows 7 SP1 x64: