Why Windows doesn't automatically add newly installed programs to PATH?
It's up to the application's installer to add the program to the path. That's really true under Linux as well, of course. As others have mentioned, many packages in Linux just install to /usr/bin
or similar.
However, there are applications in Linux, primarily those not installed through package-management, that install into a directory that isn't in the path. Often, the installers for these programs will modify your startup files (e.g. ~/.bashrc
) or at least offer to, in order to add themselves to your path.
But ultimately, whether it is Linux or Windows, it's up to the application's installer to determine how it is launched.
There's also a difference in the "organization strategy" for applications between Linux and Windows:
Linux places most applications, especially those installed through the distributions package-manager, in /usr/bin
or /bin
(which are typically the same through a symlink). Libraries are placed in /usr/lib
, etc.
Windows does not have a centralized package-manager, and each application installs its files (binaries, non-shared-libraries, and static data) into an application directory.
For someone coming from Windows, the "put everything in one location" concept is a bit strange as well. I've used both Windows and Linux extensively over the years, so I'm used to both, but either has its advantages and disadvantages.
Launching apps by name/keyboard
I am open to every possible way to end my annoyance.
For keyboard junkies like you and I, there are multiple alternatives in Windows:
Start Menu
Keep in mind that Windows has pretty much always had a standard graphical launch mechanism for applications, the Start menu (going back to Windows 95) and the Program Manager before that. Most users are launching GUI applications, not command-line ones. And even for keyboard-junkies like me, the Start menu provides an easy "Search" feature that allows me to simply hit the Windows key (🪟) and start typing the name of an application.
PowerToys Run
Taking it one step further (for graphical applications) is PowerToys Run (installable from the Microsoft Store by installing Microsoft PowerToys), which allows you to not only search/launch applications by name (after starting it with Alt+Space), but also Folders, Terminal profiles, and many others.
PowerShell or CMD aliases
Under PowerShell, you could simple create aliases (similar to Linux shell aliases) to launch your apps rather than adding each one to the Path. It's possible, I believe, with CMD, but the PowerShell mechanism is much more modern and user-friendly. See New-Alias (and other examples).
New-Alias nvim C:\Where\I\Installed\Neovim\nvim.exe
Windows Subsystem for Linux
As a Linux user, you may just want to consider the user of WSL under Windows and continue to use your Linux applications under Fedora when in Windows.
If you are on a recent Windows release (preferably 11, but Windows 10 also works), you can install it by starting an Admin PowerShell session and running:
wsl --install
Follow the instructions, rebooting when needed. Once you restart, run as a normal user, not Admin.
By default, this will install an Ubuntu distribution, but a version of Fedora is also available in the Microsoft Store.
Under Windows 11, you can even run graphical Linux apps out-of-the-box. It's possible on Windows 10, but requires some manual configuration.
Bonus Tip: Windows Terminal
If you prefer the commandline, you will want to install Windows Terminal. It may already be installed on Windows 11 systems, but it can be installed from the Microsoft Store if not (and for Windows 10). It's a huge upgrade from the 25-year old legacy terminal (Windows Console Host) that Windows used by default until recently.