Skip to content

Revamped user interface for Windows #13036

Open
@AliveDevil

Description

@AliveDevil

Please take part in our interface redesign polls

Cyberduck interface is currently implemented with Windows Forms UI stack on .NET Framework 4.x. This imposes limitations regarding past and future improvements in Windows operating systems since 8.0.

Features not available, due to external or internal influence:

  • High DPI scaling
    • ObjectListView, which hasn't been updated in ages for recent high dpi scenarios (missing development resources to improve the situation here)
    • Custom Control-Renderers, menus, labels, etc. - mixed signals from Microsoft how to really provide High DPI support for Windows Forms.
      There is a plethora of combinations of High DPI scenarios which need to be tested.
    • What High DPI Scenarios should be supported? 100%, 125%, 150%, 200%, 250%, 500%. Custom 359%?
  • Dark Mode
    • Limitation of Windows Forms. There is no way of supporting this easily or reasonable1
    • Classic Win32 desktop apps don't support this either (which WinForms is based on)

These features should be supported with a user interface rewrite on Windows, based on feedback, feature alignment with macOS and Windows Explorer experience:

  • High DPI scaling, (native)
  • Dark Mode, (native)
  • Quick Look-feature
  • Tabbed-interface
    • Discuss: Dragging between windows/out of tab-groups supported?
  • Quick-navigation left sidebar, detail (list) view in content
  • Multiple windows support
  • Replace Sparkle Updater with MSIX Auto Update feature

Possible candidates: WPF, UWP, WinUI/Windows App SDK

WPF
Native High DPI, implementation of quick look, tabs, etc. easily accomplished. Dark Mode is out of reach entirely, as there is no reason to rewrite all control styles just to get a dark mode, which has to support accent colors as well.2

UWP: Deprecated.

WinUI
Specifically WinUI3 with Windows App SDK: High DPI Scaling, Dark Mode, (possibly) Quick Look, tabs, quick navigation
Not supported until Windows App SDK 1.1: Local toast notifications, multiple Windows

WPF XAML Islands with UWP/WinUI sounds just as bad as it is.

In order to implement these features, following things need to be completed before this can be implemented:

  • Upgrade to .NET 6 (LTS)
    • Base Dependency Requirement: IKVM runs on .NET Framework 4.x only. Requires patching for .NET 6 support
  • For our current supported platforms XCopy-deployment would be appreciated3
    • still provide EXE/MSI installers? Migrate to MSIX entirely resolves the issue here

Issues, with workarounds:

  • IKVM is not working on .NET 6: Revamped user interface for Windows #13036 (comment)
    This would allow us to buy more time, and make the backend/glue more resilient
    As this is Windows-specific, I don't see an issue with mixing Framework and Core here.
    • log4j: With the glue code and interop-layer between frontend/backend, we can eliminate this issue

Blocking issues:

  • MSIX Auto Update is currently out of service // Internal prototypes support auto-update (through various means)

The ms-appinstaller scheme(protocol) has been disabled. This means App Installer will not be able to install an app directly from a web server and it will need to be downloaded first.

  • IKVM is not working on .NET 6
  • There are issues with IKVMc on .NET 6 with log4j4, rendering it unusable
  • Windows App SDK 1.1 isn't released yet Released.

With a new user interface following will apply:

  • No support for any Windows Client operating system older than build 17763 (version 1809/October 2018 Update)
    • Dropping Windows 7 (EOL 2020), 8 (EOL 2016), 8.1 (mainstream EOL 2018) entirely
  • No support for any Windows Server operating system older than Windows Server 2019
    • Dropping support for Windows Server 2008R2 (EOL 2020), 2012 (mainstream EOL 2018), 2012R2 (mainstream EOL 2018), 2016 (mainstream EOL 2022)
  • No bundled support for Bonjour (install separately?)

Footnotes

  1. https://github.com/dotnet/winforms/discussions/4668

  2. https://github.com/dotnet/wpf/issues?q=is%3Aissue+Dark+Mode

  3. https://portal.productboard.com/winappsdk/1-windows-app-sdk/c/42-self-contained-xcopy-deployment-support

  4. https://github.com/ikvm-revived/ikvm/issues/45

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions