🚀 Cmder's next major release backlog
- Dominant language
- PowerShell
- Stars
- 27k
- Forks
- 2.1k
- PR merge metrics
- No merged PRs in 30d
Description
Upcoming plans for the next major release of Cmder
Currently, there are some areas of Cmder that could benefit from a smoother experience for the first-time user.
Highlights: Remove old 32-bit support. Installing to Program Files or any other path with spaces and/or lack of permissions will be correctly handled. Improvements to the speed, look and feel of the project.
📌 Please vote for your preferred Terminal to be used with Cmder in #2864
New! Cmder now comes in two flavors, Cmder + ConEmu (the classic terminal) and Cmder + Windows Terminal. More discussion at #2878
You can also choose to download Cmder Launcher, a build of Cmder without a bundled terminal emulator. It is a great choice for using Cmder as a shell profile in any terminal you like (formerly discussed as "Cmder for Windows" or "cmder4win").
The v1.2.x releases are the last one to support Windows 7 as it has been EOL'd for quite a while now by Microsoft; and the biggest burden to continue supporting it is the dependencies we use themselves. With Git-for-windows project dropping support for it, I see no reason to continue Windows 7 support unless a user specifically request it.
We will be either completely dropping x86 (32-bit) binaries that are included in the package (e.g. both ConEmu and Clink has those), or alternatively consider providing an optional launcher file that is capable of running under 32-bit.
- #2878 Cmder development
mergewithmaster- #2825 Great optimizations for speed!
- #2877 Support Windows-Terminal
- Implemented in #2898
- Support Windows 11 New Shell Context Menu
- Include fzf and clink-fzf (#2927) as well as clink-gizmos
- Include "rsync" from pacman package in the Cmder Full edition
- Properly handle spaces in
CMDER_ROOTpath in all areas (shells, launcher, etc) - Use absolute path to
findstranddoskeyto avoid #795 and similar - Minimize and reduce the need for creating any temporary files (ref. https://github.com/cmderdev/cmder/issues/2990#issuecomment-3497360329)
- Detect and deal with lack of permissions (e.g. handle Access Denied) (e.g. #2092)
- Only the
configdirectory should be writable by the user (Everyone:Write), all other directories must only work with Everyone:Read - Handle cases where Cmder is unable to create user config from default templates
- Only the
- Better UI for the first time start
- Use terminal colors to decorate the initial setup and indicate the result (success, failure)
- Ability to run the git post-install in the background or new tab
- Fix issue where user might be mislead by git post-install output (#2980)
- Disable some of the initial setup checks and post installs when the
/fparameter is used - Fix issue when the
PATHmight contains illegal (") character #2999 - Additionally, implement changes from https://github.com/git-for-windows/build-extra/pull/472 and https://github.com/git-for-windows/build-extra/pull/625 by modifying/patching our https://github.com/cmderdev/cmder/blob/master/vendor/git-prompt.sh file due to uncooperativeness (The double space issue is already solved in Cmder, but as a side effect the MSYSTEM won't be shown, even if set)
- Provide installer (i.e. #2729) and config tweak utility to the user
- Installer must have options: system, user, portable
- Allow selection of either shared or per-profile config storage
- Ability to apply common tweaks through the CLI or first install
- e.g. set the
CMDER_ROOTenv var when the project is installed - e.g. ability to add Cmder profile to VS Code and/or Windows Terminal
- e.g. set the
- Provide an update mechanism to auto update Cmder core itself along the dependencies
(#2875, discussions in #3066) + Automatically apply vendor updates without breaking vendored dependencies (using a script to either fetch the latest Cmder zip package and extract each vendored directory and replace it in Cmder; and/or a script to fetch each vendored from their releases and replace them in Cmder. Using git commands like how scoop does them would also be nice) - Add support for automatic git update notifications, see https://gitforwindows.org/faq.html#how-do-i-update-git-for-windows-upon-new-releases for
git update-git-for-windowsand implement in our Pacman scripts - Unified config store (e.g. for prompt) (#2716, #1695)
- Support core features for ARM64 (cmd.exe without Clink, PowerShell, bash), (probably in Windows Terminal instead of ConEmu) (#2633)
- Consider adding WinGet support for easier installation (#2552)
- Update/improve documentation
- Split and move README.md entries to either separate files, or Wiki when suitable
- Refresh screenshots used in README.md and the Website
- Refresh documentation regarding features, and remove outdated info;
Check if any part of the README.md is stale now, it needs to be modified/removed to match the current state
I propose organizing cluttered information from the README.md into groups. I'd like to move details from README.md into the Wiki and keep README.md simple and clean, and provide links to the Wiki in the README.md. Besides being more organized, this also allows us to update the documentation more frequently and also make use of community edits. I will monitor changes for possible vandalism.
We are in favor of completely removing 32-bit support from Cmder to reduce the size and improve simplicity. This also involves updating the init.bat to de-reference x86 32-bit in it. In my opinion, the only supported arches in init.bat should be x86_64, ARM and ARM64. (Hopefully ARM32 will also be deprecated soon). Preferably this should be done now since git-for-windows has already dropped 32-bit support. If the core team accepts, I'll modify the vendor scripts to strip any x84 32-bit editions of the vendored dependencies.
I can only recall one individual that was still using a 32-bit machine and was asking for this.
Additional Notes
Note 1: We're in the process of improving Cmder's initialization speed. In the next major release, the loading time is expected to be optimized significantly.
Note 2: Cmder is in the process of dropping 32-bit support of x86 edition when the upstream projects (such as Git-for-Windows) do so. In the next major releases of Cmder, the minimum Windows requirement will be bumped from Windows 7 SP1 to Windows 10, as well.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.