kieranpotts / devtools

Configs and binaries for my Windows devtools.
MIT License
0 stars 0 forks source link

= 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:

[source]

git clone git@github.com:/devtools.git

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.

[NOTE]

Hack is a programming font. It adds special ligatures that merge multiple consecutive characters into a single composite glyph, for example >= 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.

.Sublime Merge [source]

New-Item -ItemType SymbolicLink -Path "C:\Users\[User]\AppData\Roaming\Sublime Merge\Packages\User\Preferences.sublime-settings" -Target "C:\path\to\devtools\etc\sublime-merge\Preferences.sublime-settings" ` -Force

.VS Code / VS Codium [source]

New-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

New-Item -ItemType SymbolicLink -Path "C:\Users\[User]\AppData\Roaming\[Code|VSCodium]\User\snippets\global.code-snippets" -Target "C:\path\to\devtools\etc\vscode\global.code-snippets" ` -Force

.Windows Terminal [source]

New-Item -ItemType SymbolicLink -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.

[source]

New-Item -ItemType SymbolicLink -Path "C:\Users\[User]\.cspell\dictionary.txt" -Target "C:\path\to\devtools\var\dictionary.txt" ` -Force

[NOTE]

VS 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:

[source]

ln -s -f /path/to/devtools/var/dictionary.txt ~/.cspell/dictionary.txt

======

==== 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.

[NOTE]

The 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.

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.