MyIDE

March 29, 2026 Β· View on GitHub

MyIDE

✨ A guideline for configuring lots of tools to build your whole development environment on windows, such as desktop, terminal, shell and editor.

lisence stars open_issues tag last_commit

πŸ“„δΈ­ζ–‡ζ–‡ζ‘£


Desktop

desktop

Desktop Installation

  • TranslucentTB : A lightweight utility that makes the Windows taskbar translucent/transparent on Windows 10 and Windows 11.

  • PowerToys : A set of utilities for power users to tune and streamline their Windows experience for greater productivity. There's some Third-Party plugins for PowerToy Run.

  • PixPin : A series of functions related to screenshot textures, including screenshots, long screenshots, cropped images, textures, OCR, etc

  • Nerd Font : A series of fonts that been pathed with high number of icons. My choice is Source Code Pro.

  • Install a Cursor Theme you'd like.

  • Press Win+I and check if there are any settings that need to be changed.

Desktop Usage

ShortcutDescript
Win+EExplorer
Win+{num}Launch app on taskbar
Win+↑Maximize window
Win+↓Minimize window
Win+←Snap window left
Win+β†’Snap window right
Alt+TabSwitch window
Alt+F4Close window
Win+DShow/Hide desktop
Win+,Peek desktop
Win+LLock desktop
Win+Ctrl+DNew virtual desktop
Win+Ctrl+β†’Right virtual desktop
Win+Ctrl+←Left virtual desktop
Win+;Emoji
Win+VClipboard history
Win++Zoom in
Win+-Zoom out
Win+Shift+?Shortcut help

Terminal

desktop

Terminal Installation

Tips:

  • All colorschemes are adjusted to fit both light and dark theme of system.
  • The font family is set to SauceCodePro Nerd Font

Terminal Usage

ShortcutDescription
Win+`Toggle quake (dropdown) window
Ctrl+Shift+{num}New tab with profile {num}
Ctrl+Shift+DDuplication current tab
Ctrl+Shift+WClose tab
Alt+Shift+SHorizontally split the pane
Alt+Shift+VVertically split the pane
Alt+Shift+ZToggle the pane zoom
Alt+LeftMove focus left
Alt+RightMove focus right
Alt+UpMove focus up
Alt+DownMove focus down
MouseSelectCopy
Shift+MouseSelectIncremental Copy
Alt+MouseSelectCopy block area
Ctrl+Shift+VPaste
Ctrl+Shift+FSearch

PowerShell

desktop

PowerShell Installation

Tips: Do not install PowerShell from MS Store since the packaged Powershell app will case some issues because of app permission

  • Install Scoop: A package manager to install apps in command line.

  • Install the required tools and PowerShell modules

    # Required
    scoop install 7zip git # aria2
    scoop install oh-my-posh zoxide lsd bat ripgrep fd fzf
    Install-Module posh-git
    Install-Module PSFzf
    
    # Optional but recommended
    ~\scoop\apps\7zip\current\install-context.reg
    [System.Environment]::SetEnvironmentVariable('Path',"${env:GIT_INSTALL_ROOT}\user\bin;$([System.Environment]::GetEnvironmentVariable('Path', 'User'))", 'User')
    
  • Configure PowerShell by executing notepad $PROFILE in PowerShell command line, you could refer to my profile.ps1

Tips: I've patched PSFzf thus it could work together with my profile, you can view the patch here

  • Copy the theme file base16_bear.omp.json into %USERPROFILE%\Documents\PowerShell

  • Configure %USERPROFILE%\.gitconfig

    [user]
      name = Your Name
      email = username@email.com
    [core]
      editor = nvim
    [diff]
      tool = nvimdiff
    [pull]
      rebase = true
      autoStash = true
    [merge]
      ff = false
    
  • Configure %USERPROFILE%\.ssh\config, thus you can push and pull from github via ssh with url git@github.com:user/repo. Of course, you need to add your own ssh public key to github first

    Host github.com
       Hostname ssh.github.com
       Port 443
       User git
       IdentitiesOnly yes
       IdentityFile ~/.ssh/key.pem
    

You could find the document for WSL configuration section here, the dotfiles for WSL/Linux is still in the repository.

PowerShell Usage

ShortcutDescription
EscVi mode, v in vi mode means open $EDITOR to edit command
Ctrl+AMove to the start of the line
Ctrl+EMove to the end of the line
Ctrl+HDelete character left
Ctrl+WDelete word left
Ctrl+UDelete all left
Ctrl+KDelete all right
Ctrl+ZUndo
Ctrl+YRedo
TabComplete command or arguments
Ctrl+PPrevious command history with current prefix
Ctrl+NNext command history with current prefix
Ctrl+RFuzzy search command history
Alt+AFuzzy search command argument history
Ctrl+TFuzzy search files in current directory
Alt+CFuzzy search directories in current directory
UtilsDescription
lList files (requrie lsd)
treeList files as tree (require lsd)
zChange to directory by fuzzy name (require zoxide)
ziChange to directory by fuzzy name interactively (require zoxide)
zoxide editAdjust priority of directories
tokeiCount code
chtSearch for a cheat sheet on cheat.sh
pxShow/Set/Enable/Disable proxy address
notifyShow Windows notification popup, e.g. notify "Title" "Body"
Git AliasesGit subcommandDescription
gststatusShow all changes in workspace and index
gaaddUpdate changes from workspace to index
gaaaddUpdate all changes from workspace to index
gauaddUpdate all changes from workspace to index exclude untracked files
gclncleanClean all untracked files
grsrestoreRestore workspace from index (default) or a commit
gstlstashShow stashes
gstastashStash all changes in workspace and index
gstpstashRestore the changes from stash and delete it (default last)
gstaastashRestore the changes from stash (default last)
gstdstashDelete stash (default last)
gccommitAdd a new commit from index
gc!commitAdd a new commit base on grandparent commit and move HEAD to it (like overwrite but keep history commit)
glglogShow commit and its ancestry, revision form like HEAD^
grlgreflogShow commits of HEAD history, revision form like @{1}
gddiffShow changes (default between workspace and index)
gdtdifftoolShow changes (default between workspace and index) by nvim
gmtmergetoolResolve conflicts by nvim, or you can use gco --ours . or gco --theirs .
gmmergeMerge a commit to HEAD, and do not allow fast forward
gmcmergeContinue merge
gmsmergeSkip current patch and continue merge
gmamergeAbort merge
grbrebaseRebase HEAD (default) or commit onto a commit
grbcrebaseContinue rebase
grbsrebaseSkip current patch and continue rebase
grbarebaseAbort rebase
gcpcherry-pickApply change in a commit to HEAD
gcpccherry-pickContinue cherry pick
gcpscherry-pickSkip current patch and continue cherry pick
gcpacherry-pickAbort cherry pick
grvrevertRevert a commit to HEAD
grvcrevertContinue revert
grvsrevertSkip current patch and continue revert
grvarevertAbort revert
grhresetReset HEAD to a commit and keep all the changes in workspace and index
grhhresetReset HEAD to a commit and do not keep the changes
gblbranchShow branches
gbbranchAdd new branch at HEAD (default) or commit
gcbcheckoutAdd new branch at HEAD (default) or commit and checkout it
gcb!checkoutAdd new branch at HEAD (default) or commit (overwrite exist) and checkout it
gbubranchSet upstream of HEAD
gbrnbranchRename branch at HEAD (default) or commit
gbrn!branchRename branch at HEAD (default) or commit (overwrite exist)
gbdbranchDelete merged branch
gbd!branchDelete branch even if not merged
gcocheckoutCheckout target commit
gcorcheckoutCheckout target commit recursively
grremoteRemote
grlremoteList remotes
graremoteAdd remote
grrnremoteRename remote
gruremoteSet thr url of remote
grdremoteDelete remote
gffetchFetch remotes
glpullPull remotes and rebase, and automatically stash push and pop before and after
gppushPush a ref to remote
gp!pushPush a ref to remote (--force-with-lease)
gp!!pushPush a ref to remote (--force)
gclcloneClone remote
gclrcloneClone remote recursively
gsasubmoduleAdd a submodule
gsusubmoduleInit and update submodules to expected version. To modify submodule,
gsdsubmoduleDelete a submodule
lgOpen Lazygit
gigCreate a .gitignore template for you, .e.g gig c++ windows

Tips:

  • You don't need to remenber all the git aliases, use your favorite git UI tool instead, such as lazygit, fork or gitkraken. The git aliases list above is just to tell you the basic git operations you should know.
  • Highly recommended for this blog post about git flow.

VSCode-Neovim

neovim

  1. Install Neovim and C/C++ toolchains

    scoop install neovim mingw
    
  2. Configure Neovim

    # required
    Move-Item $env:LOCALAPPDATA\nvim $env:LOCALAPPDATA\nvim.bak
    # optional but recommended
    Move-Item $env:LOCALAPPDATA\nvim-data $env:LOCALAPPDATA\nvim-data.bak
    # clone
    git clone https://github.com/mrbeardad/nvim $env:LOCALAPPDATA\nvim
    # start and install plugins
    nvim
    
  3. Install VSCode

  4. Configure VSCode

    1. This is my settings.json and keybindings.json, you could copy them to %APPDATA%\Code\User optionally
    2. This is my lastSyncextensions.json, you could copy it to %APPDATA%\Code\User\sync\extensions\
  5. For more detail about configuration and usage of vscode and neovim, refer to mrbeardad/nvim

Miscellaneous

Most of the tools below could be installed by scoop

scoop install fastfetch cht tokei lazygit everything-alpha
cp .\lazygit\config.yml ~\AppData\Local\lazygit\config.yml
~\scoop\apps\everything-alpha\current\install-context.reg
  • fastfetch: A maintained, feature-rich and performance oriented, neofetch like system information tool.

  • cht: The only cheat sheet you need

  • tokei: Count your code, quickly.

  • lazygit: Simple terminal UI for git commands

  • Everything: Locate files and folders by name instantly.

  • dual-key-remap: Remap any key to any other two keys on Windows πŸ”₯. Remap CapsLock to both Ctrl and Escape! (It's like xcape for windows!)

  • huorong: The easiest way to shutdown Windows Defender

  • Clash Verge Rev: A Clash (proxy client) GUI based on Tauri.

    Tips: You may also need geoip and clash-rules.

  • Sysinternals : Sysinternals Suite is a bundle of the Sysinternals utilities including Process Explorer, Process Monitor, Sysmon, Autoruns, ProcDump, all of the PsTools, and many more.

    Tips: My Process Explorer Column Set。

  • ImHex: A Hex Editor for Reverse Engineers, Programmers and people who value their retinas when working at 3 AM.

  • petools: Portable executable (PE) manipulation toolkit.

    Tips: Launch petools and check on the option PE Editor > Register Shell Extension, then you can right click exe/dll file and load into PE Editor without launch whole PE Tools.

  • RisohEditor: Another free Win32 resource editor

  • Dependencies: A rewrite of the old legacy software "depends.exe" in C# for Windows devs to troubleshoot dll load dependencies issues.

  • ILSpy: .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform!

  • IDA: IDA is the leading tool for binary analysis, trusted by top cybersecurity teams for reverse engineering and malware defense. Simplify complex binaries and boost your security processes with its advanced analysis features.

  • Cheat Engine: A development environment focused on modding

  • WireShark: The world's leading network protocol analyzer. Wireshark lets you dive deep into your network traffic - free and open source.

  • reqable: Advanced API Debugging Proxy and REST Client. Reqable = Fiddler + Charles + Postman, make your debugging faster and easier.

    Tips:

    • You need a tool, such as EnableLoopback.exe, to enable capturing the uwp app network. Clash Verge Rev aslo conatins it.