dotfiles/windows/readme.md

8.1 KiB

Windows Setup

  • Turn off hibernation

    • Open admin cmd prompt: powercfg.exe /hibernate off
  • Install Windows Defender

  • Disable the WinSAT task which is used to figure out your Windows performance score. It eats up processor time and is generally useless.

  • Setup a symbol server:

    • Right-click My Computer -> Properties -> Advanced Tab -> Environment Variables
    • Add a new System Variable called _NT_SYMBOL_PATH
    • Set the value to SRV*c:\symbols*http://msdl.microsoft.com/download/symbols, replacing the first path to where you want the symbols to live.
  • Configure crash dump storage location for projects via the registry.

  • Enable security updates this may no longer be an issue

    • If you don't have an antivirus program, or you do but it's not verified by Microsoft, then you will not receive security updates unless you set a key in the registry. Note that Windows Defender counts as a valid antivirus program.

    • Add the following registry key:

      Key="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD” Data="0x00000000”

Windows 7 Stuff

Setup up Unix-like Shell

  • Install MSYS2 w/ MinGW-w64 to C:\msys64

    • Open C:\msys64\mingw64.exe
    • Run pacman -Syu, then restart the terminal and run pacman -Su.
    • Run pacman -S base-devel mingw-w64-x86_64-toolchain git bc
    • Use C:\Users\<user> as the terminal $HOME by editting C:\msys64\etc\nsswitch.conf and changing the db_home value to windows.
  • You may need to work around an issue with envsubst.exe - you'll know there's a bug if git displays not a valid identifier line 89: export: dashless or rebase complains about new_count.

  • Map caps to left-ctrl using https://sharpkeys.codeplex.com/

  • Setup git completions for bash:

    • curl https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash -o ~/.git-completion.bash
  • Use symlink command cmd //c 'mklink .name-of-dotfile drive:\path\to\file'.

  • Symlink ~/.private-files to the root directory containing dev/.

  • Symlink ~/.dev to ~/.private-files/path/to/dev.

  • Symlink ~/.dotfiles to ~/.dev/path/to/dotfiles.

  • Create ~/bin.

  • Symlink $HOME/bin/sym to $HOME/.dotfiles/bin/symbolic-link. You can now use this to do symlinks.

  • Symlink files in the dotfiles windows folder.

  • Symlink appropriate files in the root dotfiles directory.

    • Ignore all zsh files.
    • Don't symlink .vim folder because Plugged will fail to install the plugins. Just make a copy.
  • Setup private dotfiles. Once done, you should now have ~/bin and ~/.dotfiles/bin in your path.

Configure Private dotfiles

  • The most important task is to setup the c-dev-x64 shortcut for launching a msys shell with appropriate dev environment.
    • Add this to your taskbar and use this for launching a shell.

Setting up dev tools

Setting up Visual Studio

  • Use the backed up VS2015 ISO or download it from https://go.microsoft.com/fwlink/?LinkId=615448&clcid=0x409
  • Pick a custom install directory, e.g. /x/programs/Visual Studio 15
  • Select a custom install and check off the C++ language support.
  • Once installed, open Visual Studio and go to Tools -> Options. Open Debugging -> Symbols and add the path to the cached symbols directory that you set up above under Setup a symbol server.

Setting up Vim

Compiling on Windows (optional)

  • Open the shell with C:\msys64\msys2_shell.cmd -- If you don't do this then vim will not compile.
  • Run pacman -S --needed base-devel msys2-devel gawk perl python2 python3 ruby libiconv ncurses-devel libcrypt-devel
  • Clone MSYS2 packages: https://github.com/msys2/MSYS2-packages
  • cd into the vim package
  • Edit PKGBUILD and change the version number to the one you want to build. You can see the available versions at https://github.com/vim/vim
  • Run makepkg
  • If checksums fail then generate new ones: makepkg -g -f -p PKGBUILD, copy the output, edit PKGBUILD and replace the checksums array with the new values.
    • Run makepkg again
    • If it fails to apply a patch then you'll need to make the fixes yourself:
      • Clone vim (https://github.com/vim/vim), cd into vim/src.
      • Modify the file(s) that they failed patch was changing and make the correct fixes.
      • Commit the change.
      • Generate a patch file with git diff commitid1 commitid2 > newpatch.patch
      • Copy the patch to MSYS2-packages/vim and use the same name as the original patch that failed.
      • Regen the pkg checksums and add them to PKGBUILD.
      • Run makepkg again.
  • Once built, install it with pacman -U ${package-name}*.pkg.tar.xz

Configuring

  1. Open Vim and run :PlugInstall to fetch all plugins.
  2. Create tmp folder for swap files. See set directory and set backupdir paths in vimrc.
  • First install Rusto. See Setting up Rust below.
  • Setup ripgrep:
    • Open an msvc x64 shell and run cargo install ripgrep.
    • Verify it works by running rg in a shell.

Setting up ctags

Setting up Cygwin

  • Can create symlinks to dotfiles using the git bash shell. The cygwin home directory is likely going to be C:\cygwin\home\<username>.
  • Build rlwrap

Setting up Rust

Setting up Go

Setting up Clojure

Setting up Xbox stuff

  • Install the xbox controller drivers
  • Turn off stats collection
    • cmd-r, msconfig.exe, startup tab, uncheck Microsoft Xbox 360 Accessories.

Turn off various startup processes

  • cmd-r -> msconfig.exe -> startup tab

Software

Youtube-DL

Firefox

  • If you see jaggy fonts then about about:config and check the value of gfx.font_rendering.cleartype_params.rendering_mode. Mine was -1 by default. Setting it to 5 removed the bad font rendering.