This is not usual "setup" guide; this is more quick and efficient guide (and mostly reminder to myself 😀) how to setup blank machine with least amount of effort.
Also, this targets minimum applications (core) + specific ones for home usage/development (home). Given that this is higly dependent on what you actually use PC for, it is not universal list 😄
I believe that general principles (MS Store, WinGet + Cloud storage) can be applied to everyone:
- Any created artifact (= files) and configuration store on cloud storage/GitHub
- Make installation breeze, using automation (MS Store / WinGet) and minimalist approach what is actually needed
- Use existing mechanisms (VS Code Settings Sync, PyCharm Settings Sync, cloud for file based settings) to sync various details between workplaces
- Finally, I suggest that for testing and fine tuning you use Windows Sandbox, excellent low profile Win instance. You can install winget in Sandbox via Windows PowerShell, details here.
Do not forget to add
-Scope AllUsersgiven that bunch of applications are system ones. Here is that script, but "verbose" version:
Install-PackageProvider -Name NuGet -Force
Install-Module -Name Microsoft.WinGet.Client -Force -Repository PSGallery -Scope AllUsers
Repair-WinGetPackageManagerNotes about Microsoft.PowerShell.Management\Test-Connection : Access is denied.
In case above fails with Microsoft.PowerShell.Management\Test-Connection : Access is denied. try to repair with this:
winmgmt /resetrepository
Restart-Service Winmgmtand try again.
Notes about Sandbox
- Last command often fails for first time, so expect to repeat it.
- For some strange reason, if your Sandbox have "Region" (System / Time & language / Language & region ) set to World some installations (Windows Terminal, for example) will fail. Just set proper Region before running first WinGet installation.
Having that, I split installation into three phases:
- Essential - for OS and core (Cloud services)
- Core Applications - mandatory ones, no matter type of machine (Home/Work) is in question
- Rest - either for fun/hobbies or just addition to previous list
- Windows 11, fully patched (Windows 10 will do, but I do not see point of using EOL operating system)
- Cloud storage; any will do, but I prefer those which are mirrored on file system (Google Drive, OneDrive) - easier to work with
- App Installer (WinGet) - now, part of Windows 11 installation
- YU Keyboard from vesic.org
- This is "local" solution for typing accent characters (ćčšđžĆČŠĐŽ) for Balkan nations (Serbian, Bosnian, Croatian, Slovenian...) on non-YU keyboards.
- To be fair to others, won't put it in CORE / HOME packages, but leave in optional section :-)
Why MS Store? One time install, tied to MS Account, easy to install on other machine, auto-update...Also, some of applications simply can't be installed over winget, at least for now.
UPDATE: got couple of comments that this installation is "Store heavy", offering less flexibility than "pure" winget installation. Having that in mind, this version of installation is moved toward that goal - only actual winget and Windows Notepad should be installed over MS store - everything else can be done over winget itself:
Once WinGet is installed, you are ready to install Core applications:
winget import -i .\winget\winget-core.json --accept-package-agreementsReference: Bulk export/import with WinGet
- Application list export:
winget export -o .\winget-export.json - Bulk import:
winget import -i .\winget-export.json --accept-package-agreements
My work relies on CMD/Windows terminal prompt; one great resource for that is FiraCode font, monospaced font for development, or more recently Fira Code Nerd Mono (choose to your liking).
Install it last, after all other software and then enable ligatures for Windows Terminal, VS Code and PyCharm. If you use Oh My Posh, instructions for installation are below.
-
Microsoft Visual C++ Redistributable - sooner or later (usually sooner), one of applications will require this. Note - this takes quite time to get installed.
-
Microsoft.VisualStudioCode Visual Studio Code
-
Joplin.Joplin Open source, Markdown note taking application. Excellent sync options between multiple machines.
-
chmln.sd Efficient search & replace CLI tool.
-
7zip.7zip - Excellent archiver
-
Open source file manager: alexx2000.DoubleCommander (direct replacement for Total Commander)
doublecmd.exe --config-dir=%OneDriveConsumer%\Utils\DoubleCommander
-
Espanso.Espanso Open Source text expander
MKLINK /D C:\Users\dvesic\AppData\Roaming\espanso c:\Users\dvesic\OneDrive\Utils\espanso
-
BurntSushi.ripgrep.MSVC - rg - line-oriented search tool that recursively searches the current directory for a regex pattern.
-
gerardog.gsudo - sudo for Windows
-
ajeetdsouza.zoxide - zoxide is a smarter cd command, inspired by z and autojump. Installation details here; add this to your PowerShell profile:
Invoke-Expression (& { (zoxide init powershell | Out-String) })
-
JanDeDobbeleer.OhMyPosh - The most configurable prompt utility for any shell.
- Install fonts directly using Oh My Posh:
oh-my-posh font install meslo oh-my-posh font install FiraCode
For both tools, oh-my-posh and zoxide I recommend to keep PowerShell profile on cloud drive and use it to SymLink local profile to it. Script for that is PowerShellProfileSym.ps1 and minimal PowerShell profile is here: Microsoft.PowerShell_profile.ps1
- clsid2.mpc-hc - Excellent video player of all media.
- VideoLAN.VLC This is great alternative to MPC-HC (clsid2 fork)
- nomacs.nomacs - Open Source Image Viewer
- dotPDN.PaintDotNet - Great free image and photo editing software
- Opera.Opera
- Launching Opera w/o proxy:
C:\Users\dvesic\AppData\Local\Programs\Opera\launcher.exe --no-proxy-server="
- Launching Opera w/o proxy:
- Mozilla.Firefox.DeveloperEdition FireFox Developer Edition, as complement to Chromium based browsers.
- PDFsam.PDFsam - PDFsam Basic: split, merge, extract pages, rotate and mix PDF files
- WinsiderSS.SystemInformer - A free, powerful, multi-purpose tool that helps you monitor system resources, debug software and detect malware.
winget import -i .\winget\winget-home.json --accept-package-agreements- Git.Git
git config --global user.name "dvesic"git config --global user.email "Dejan@Vesic.Org"git config --global credential.helper store- (credentials are stored in the ~/.git-credentials file; you can edit this file to remove or update your stored credentials.)
- Check for update:
git update-git-for-windows - For WSL:
git config --global credential.helper "/mnt/c/Program\ Files/Git/mingw64/bin/git-credential-manager.exe"
- GitHub.cli
- dbeaver.dbeaver - Universal database tool
- WinMerge.WinMerge - Open Source differencing and merging tool for Windows
- JetBrains.PyCharm.Professional All purpose editor and IDE for Python. There is community (free) edition as well.
- WinSCP.WinSCP
- Use
/inito point out to cloud settings file:winscp.exe /ini="G:\My Drive\Utils\WinSCP\WinSCP.ini"
- Use
- Microsoft.WSL MS Windows Subsystem for Linux
- (OneDrive comes with Windows)
- Google.GoogleDrive
- SumatraPDF.SumatraPDF - brilliant application for PDF, eBook (epub, mobi), comic book (cbz/cbr), DjVu, XPS, CHM and image viewer for Windows.
# Initial setup: ESC for exit and do not remember open files between sessions
sd 'EscToExit = false' 'EscToExit = true' $Env:LOCALAPPDATA\SumatraPDF\SumatraPDF-settings.txt
sd 'RememberOpenedFiles = true' 'RememberOpenedFiles = false' $Env:LOCALAPPDATA\SumatraPDF\SumatraPDF-settings.txt- voidtools.Everything - Locate files and folders by name instantly
- Valve.Steam
- FlorianHeidenreich.Mp3tag - Easy-to-use tool to edit metadata of audio files.
- Deezer.Deezer
# YU-US keyboard by Vesic.Org
# More details here:
# https://www.vesic.org/blog/mikrosoft/windows/instalacija-us-yu-tastature-preko-winget/
winget install -e --id Vesic.Org.US-YU.keyboard --source winget
# Full 365 Office suite
winget install -e --id Microsoft.Office
winget install -e --id AnyDeskSoftwareGmbH.AnyDesk
winget install -e --id Microsoft.Sysinternals.RDCMan
winget install -e --id MKVToolNix.MKVToolNix
winget install -e --id GuinpinSoft.MakeMKV
winget install -e --id GlenSawyer.MP3Gain
winget install -e --id Garmin.GarminExpress
winget install -e --id LIGHTNINGUK.ImgBurn
winget install -e --id Dell.CommandUpdate.Universal
winget install -e --id Logitech.UnifyingSoftware
winget install -e --id Gyan.FFmpeg
winget install -e --id yt-dlp.yt-dlp
# Open source MarkDown editor
winget install -e --id MarkText.MarkTextGiven that WSL is native accompanuing environment for development, it deserves probably same set of instrutions / applications as for Windows above.
For start, I am just leaving script which installs zsh instead of default bash shell:
- Copy
setup_zsh.shto WSL environment - Make it executable:
chmod +x setup_zsh.sh - Run it:
./setup_zsh.sh
Finally, adjust/check if your Windows Terminal profile for Ubuntu:
- Uses
FiraCode Nerd Font Monoas font for profile - Make sure that
Additional setting / Apearance / Builtin Glyphsis turned on
Section for sofware which is either made obsolete (with native applications of Windows 11) or replaced with alternative. Also, any configuration details which are important post-installation.
- Microsoft.WindowsTerminal - Here are details how can you keep your configuration on cloud storage.
- Currently, there is no option to change Setting folder of Windows Terminal. In order to correct that (and store it on cloud storage), here is Powershell script: WinTermSetSym.ps1 for removing "original" and re-mapping to cloud folder with settings (run elevated):
Remove-Item -Force -Recurse -Path "$Env:LocalAppData\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState"
New-Item -ItemType SymbolicLink -Path "$Env:LocalAppData\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState" -Target "$env:OneDriveConsumer\Utils\WindowsTerminal\LocalState"-
Microsoft.OpenSSH.Beta Not needed anymore. Windows 11 has built in SSH. Here is PowerShell script to check / enable (elevation needed): SSHCheckAndInstall.ps1
- You can use OpenSSL for key generation:
ssh-keygen.exe -t ED25519 -f id_ed25519- Keys should be stored in
"%USERPROFILE%\.ssh" - In case of permission rights problems on Windows, do following:
icacls .\id_ed25519 /inheritance:r icacls .\id_ed25519 /grant:r "${env:USERNAME}:(F)"
- Keys should be stored in
- You can use OpenSSL for key generation:
-
Microsoft.Edit - Nostalgia :-) Very simple editor from MS-DOS times. Part of Windows 11 installation, no need for separate install
- in Ubuntu, you could install it with:
sudo snap install msedit
- in Ubuntu, you could install it with:
-
Ghisler.TotalCommander. Settings for shortcut, to use cloud based ini files:
TOTALCMD64.EXE /i="G:\My Drive\Utils\totalcmd\wincmd.ini" /F="G:\My Drive\Utils\totalcmd\wcx_ftp.ini"
-
ShareX.ShareX - ShareX - Excellent open source screenshot software. Integrated Windows 11 Snipping tools is suficient for basic needs.
-
JernejSimoncic.Wget - GNU Wget - removed in favor of native curl.exe
Last updated: 2026-09-15