= Devtools
:link-dotfiles: https://github.com/kieranpotts/dotfiles :link-bootstrap: https://github.com/kieranpotts/bootstrap :link-codespace-settings: https://github.com/settings/codespaces :link-delta: https://github.com/dandavison/delta/releases :link-htmlq: https://github.com/mgdm/htmlq/releases :link-jq: https://github.com/jqlang/jq/releases :link-lazygit: https://github.com/jesseduffield/lazygit/releases :link-make: https://sourceforge.net/projects/ezwinports/files/ :link-nvm-windows: https://github.com/coreybutler/nvm-windows/releases/ :link-ohmyposh: https://github.com/JanDeDobbeleer/oh-my-posh/releases :link-wget: https://eternallybored.org/misc/wget/ :link-xpdf: https://www.xpdfreader.com/download.html :link-neovim: link:https://github.com/neovim/neovim/releases :link-neovim-install: https://github.com/neovim/neovim/blob/master/INSTALL.md
This repository contains configurations for some of my development tools
including Visual Studio Code and Windows Terminal. It also contains Windows
ports of various Unix looks like make
and wget
, which I use often.
My devtools are for installation directly on Windows. I also maintain {link-dotfiles}[dotfiles] that capture further devtools configurations for Unix-like environments. I install my dotfiles in guest VMs like WSL, emulators like Git Bash, and remote dev VMs.
== Documentation
=== Requirements
Configurations are included for the following programs, all of which are OPTIONAL:
=== Installation
To install these devtools on your own Windows machine, first fork this repository to your own GitHub account, then clone the upstream repository to any location on your local filesystem:
Then follow the steps below to set up everything.
==== 1. Install the fonts
The configurations for VS Code and Windows Terminal depend on the following fonts being installed locally:
TrueType formats of both fonts are included in the ./vendor/fonts
directory
and need to be installed manually.
>=
is
presented as ≥
and !=
as ≠
, improving readability without changing the
code. Hack NF (Nerd Font) is a version of the same font extended with
additional glyphs that are used to create visual effects like icons and
rounded corners in a shell's prompt line.==== 2. Create symlinks to the configuration files
Configuration files are included for various development tools, including VS Code and Windows Terminal, for easy portability between machines. To use these configurations, you will need to create symlinks to them from the filesystem locations the target programs expect them to be. To do that, run Windows Powershell in administrator mode and execute the following commands, changing the filesystem paths as required.
-Path "C:\Users\[User]\AppData\Roaming\Sublime Merge\Packages\User\Preferences.sublime-settings"
-Target "C:\path\to\devtools\etc\sublime-merge\Preferences.sublime-settings" `
-ForceNew-Item -ItemType SymbolicLink -Path "C:\Users\[User]\AppData\Roaming\[Code|VSCodium]\User\settings.json"
-Target "C:\path\to\devtools\etc\vscode\settings.json" `
-Force
New-Item -ItemType SymbolicLink -Path "C:\Users\[User]\AppData\Roaming\[Code|VSCodium]\User\keybindings.json"
-Target "C:\path\to\devtools\etc\vscode\keybindings.json" `
-Force
-Path "C:\Users\[User]\AppData\Roaming\[Code|VSCodium]\User\snippets\global.code-snippets"
-Target "C:\path\to\devtools\etc\vscode\global.code-snippets" `
-Force -Path "C:\Users\[User]\AppData\Local\Packages\Microsoft.WindowsTerminal_[hash]\LocalState\settings.json"
-Target "C:\path\to\devtools\etc\wt\settings.json" `
-Force==== 3. Create symlinks to the dictionary file
Again running Windows Powershell in administrator mode, execute the following
command, changing the filesystem paths as required. This creates a symlink to
./var/dictionary.txt
in this repository from your home directory,
~/.cspell/dictionary.txt
. This path is referenced from
./etc/vscode/settings.json
and is used by the Code Spell Checker extension as
a custom dictionary.
-Path "C:\Users\[User]\.cspell\dictionary.txt"
-Target "C:\path\to\devtools\var\dictionary.txt" `
-ForceVS Code looks for the dictionary file on the filesystem of the open workspace.
Thus, if remote virtual machines or WSL are used for development,
~/.cspell/dictionary.txt
will be automatically created from scratch on each
machine. To synchronize the dictionary between multiple machines, this
repository will need to be cloned on each machine and the location
~/.cspell/dictionary.txt
symlinked back to the ./var/dictionary.txt
file
in the local instance of this repository. On Linux:
======
==== 4. Add the bin
directory to your PATH environment variable
Windows binaries for various programs are bundled in the bin
directory of
this repository. These programs can be installed on your Windows machine simply
by adding this repository's bin
directory to your system's PATH
environment
variable.
delta
, lazygit
, oh-my-posh
binaries are required for my
{link-dotfiles}[dotfiles] configuration to work in Git Bash for Windows. For
WSL2 and other Unix environments, the equivalent packages can be installed
using my {link-bootstrap}[bootstrap] scripts.==== 4. Sync VS Code settings with GitHub Codespaces
Optionally, you can use GitHub Settings Sync to have a consistent user experience between cloud and local instances of VS Code. You will need to login to VS Code using your GitHub account, and enable Settings Sync in your VS Code user settings. Then go to your {link-codespace-settings}[GitHub Codespaces options] and enable the following option:
image::./_/github-enable-settings-sync.png[]
=== Maintenance
The following documentation is for the project maintainers.
Fresh Windows binaries can be downloaded from the following links. The binaries bundled in this repository are for the x86-64 architecture, also known as x86_64, x64, or amd64, and compatible with the 64-bit CPU architecture used in Intel and AMD processors.
{link-delta}[delta]: Look for delta-<version>-x86_64-pc-windows-msvc.zip
{link-htmlq}[htmlq]: Look for the latest htmlq-x86_64-windows.zip
release.
{link-jq}[jq]: Look for the latest jq-win64.exe
release.
{link-lazygit}[lazygit]: Extract from lazygit_<version>_Windows_x86_64.zip
.
{link-make}[make]: Search for the latest without-guile-w32-bin
and extract
the make.exe
file from the archive.
{link-nvm-windows}[nvm (Node Version Manager) for Windows]: Download the
latest nvm-noinstall.zip
archive and extract the nvm.exe
file.
{link-ohmyposh}[oh-my-posh]: Download the posh-windows-arm64.exe
file and
rename it to oh-my-posh.exe
.
{link-wget}[wget]: Download the latest x64 .exe
file.
{link-xpdf}[Xpdf]: Download the Windows Xpdf command line tool, extract,
and copy the contents of the bin64
directory.
Neovim is not available as a standalone binary. It MUST be {link-neovim-install}[installed using a package manager] like Winget or Chocolatey, or the Windows installer package available from the project's {link-neovim}[releases page].
''''
Copyright © 2020-present Kieran Potts, link:./LICENSE.txt[MIT License]
The font files and executable binaries redistributed via this repository are copyright their respective authors and may be subject to alternative free and open source software licenses.