This post is in Draft Mode - it will not appear on the site or in search results

My Computer Setup

-

Hardware #

Home #

Mac #

Work #

Programs #

Code #

DB #

Admin #

SDKs #

CLIs #

Image Editing #

Browsers #

Office Work #

Remote Work #

Shells #

Utilities #

Media #

Apps #

Samsung Dex
Slack

Video #

Pluralisght
Hulu
Netlfix
Pandora

Web Apps #

Windows #

Windows System Apps #

7 Taskbar Tweaker #

How to Customize Any Icon in Windows 10

Configuration #

Winget #

winget install --id=Atlassian.Sourcetree -e
winget install --id=Postman.Postman -e
winget install --id=Microsoft.VisualStudioCode -e
winget install --id=Microsoft.VisualStudio.Community -e
winget install --id=Notepad++.Notepad++ -e
winget install --id=WinMerge.WinMerge -e
winget install --id=Telerik.Fiddler -e
winget install --id=Microsoft.AzureStorageExplorer -e
winget install --id=Microsoft.AzureDataStudio -e
winget install --id=Microsoft.AzureCLI -e
winget install --id=WiresharkFoundation.Wireshark -e
winget install --id=OpenJS.Nodejs -e
winget install --id=Cockos.LICEcap -e
winget install --id=Microsoft.dotnet -e
winget install --id=Microsoft.dotNetFramework -e
winget install --id=GIMP.GIMP -e
winget install --id=Inkscape.Inkscape -e
winget install --id=Mozilla.Firefox -e
winget install --id=SlackTechnologies.Slack -e
winget install --id=Valve.Steam -e
winget install --id=Microsoft.Teams -e
winget install --id=Discord.Discord -e
winget install --id=OpenVPNTechnologies.OpenVPN -e
winget install --id=GitHub.cli -e
winget install --id=Microsoft.PowerBI -e
winget install --id=Microsoft.PowerShell -e
winget install --id=Microsoft.WindowsTerminal -e
winget install --id=MRidgers.Clink -e
winget install --id=Armin2208.WindowsAutoNightMode -e
winget install --id=7zip.7zip -e
winget install --id=VideoLAN.VLC -e
winget install --id=OBSProject.OBSStudio -e
winget install --id=CPUID.CPU-Z -e
winget install --id=Adobe.AdobeAcrobatReaderDC -v "2020.012.20041" -e
winget install --id=rammichael.7+TaskbarTweaker -e --force
winget install --id=PrivateInternetAccess.PrivateInternetAccess -e
winget install --id=Oracle.JavaRuntimeEnvironment -e
winget install --id=BellSoft.LibericaJDK8Full -e
winget install --id=RubyInstallerTeam.RubyWithDevKit -e
winget install --id=Corsair.iCUE -e
winget install --id=AltDrag.AltDrag -e

DotFiles #

Saving DotFiles to Github

Setup #

Storing dotfiles with a bare git repo

# create folder ~/.cfg as bare repo
git init --bare $HOME/.cfg
# create alias config to interact with git
alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'
# hide untracked files
config config --local status.showUntrackedFiles no
# add alias to bash profile
echo "alias config='/usr/bin/git --git-dir=$HOME/.cfg/ --work-tree=$HOME'" >> $HOME/.bashrc

VS Code Config #

VS Code Sync #

Settings can be synced with Settings Sync Extension

Which will persist custom settings in a gist

Local overrides are stored in %APPDATA%\Code\User\syncLocalSettings.json

"ignoreUploadFiles": [
    /* ... */
    "Microsoft.NETCore.App.deps.json"
],
"ignoreUploadFolders": [
    /* ... */
    "lukas-tr.materialdesignicons-intellisense",
    "mhutchie.git-graph",
    "ms-vsliveshare.vsliveshare"
],
"supportedFileExtensions": [
    /* ... */
    "txt"
]

VS Code Extensions #

List extensions

for ext in bierner.github-markdown-preview bierner.markdown-checkbox bierner.markdown-emoji bierner.markdown-preview-github-styles bierner.markdown-yaml-preamble bungcip.better-toml cbrevik.toggle-format-on-save christian-kohler.npm-intellisense christian-kohler.path-intellisense cssho.vscode-svgviewer DavidAnson.vscode-markdownlint DotJoshJohnson.xml eamodio.gitlens EditorConfig.EditorConfig eg2.tslint esbenp.prettier-vscode eseom.nunjucks-template evilz.vscode-reveal fabianlauer.vs-code-xml-format fabiospampinato.vscode-open-in-github HookyQR.beautify ionutvmi.path-autocomplete ionutvmi.reg joaompinto.asciidoctor-vscode johnpapa.vscode-peacock KnisterPeter.vscode-github lextudio.restructuredtext lonefy.vscode-JS-CSS-HTML-formatter lukas-tr.materialdesignicons-intellisense mdickin.markdown-shortcuts mgmcdermott.vscode-language-babel mhutchie.git-graph mikeburgh.xml-format mikestead.dotenv ms-azuretools.vscode-azurefunctions ms-azuretools.vscode-azurestorage ms-azuretools.vscode-docker ms-dotnettools.csharp ms-mssql.mssql ms-python.python ms-vscode-remote.remote-wsl ms-vscode.azure-account ms-vscode.Go ms-vscode.powershell ms-vscode.vscode-typescript-tslint-plugin msjsdiag.debugger-for-chrome naumovs.theme-oceanicnext neilding.language-liquid octref.vetur pflannery.vscode-versionlens rebornix.ruby redhat.vscode-xml redhat.vscode-yaml richie5um2.vscode-sort-json shakram02.bash-beautify Shan.code-settings-sync shd101wyy.markdown-preview-enhanced slevesque.vscode-autohotkey streetsidesoftware.code-spell-checker tomoki1207.pdf vscode-icons-team.vscode-icons wingrunr21.vscode-ruby wix.glean yzhang.markdown-all-in-one
do
  code --install-extension $ext
done
IDE Enhancements
Language Support
App Tool chain

VS Code Settings #

Show project folder in title bar for Visual Studio Code
Configure Window Title

{
    "window.title": "${rootName}${separator}${activeEditorShort}${dirty}"
}

Remove trailing spaces automatically or with a shortcut

{
    "files.trimTrailingWhitespace": true
}

// TODO embed gist using SSG
https://gist.github.com/KyleMit/9e22c8ecf6d7f5504edbfffe6dce6dcf#file-settings-json

Use the command palette and go to Preferences: Open Settings (JSON) which should update the following user settings file: %AppData%\Code\User\settings.json

file: settings.json
{
    "editor.accessibilitySupport": "off",
    "editor.cursorBlinking": "smooth",
    "editor.fontFamily": "Fira Code",
    "editor.fontLigatures": true,
    "editor.minimap.enabled": false,
    "editor.mouseWheelZoom": true,
    "editor.renderWhitespace": "selection",
    "editor.suggestSelection": "first",
    "explorer.confirmDelete": false,
    "emmet.includeLanguages": {
        "njk": "html",
        "nunjucks": "html"
    },
    "files.associations": {
        "*.htm": "html",
        "*.njk": "njk",
        "*.npmrc": "ini"
    },
    "files.exclude": {
        "**/.classpath": true,
        "**/.factorypath": true,
        "**/.project": true,
        "**/.settings": true
    },
    "files.insertFinalNewline": true,
    "git.autofetch": true,
    "git.enableSmartCommit": true,
    "window.restoreWindows": "none",
    "window.zoomLevel": 1,
    "terminal.integrated.shell.windows": "C:\\Program Files\\Git\\bin\\bash.exe",
    "workbench.editor.enablePreview": false,
    "workbench.iconTheme": "vscode-icons",
    "zenMode.centerLayout": false,
    "html.suggest.html5": true,
    "javascript.updateImportsOnFileMove.enabled": "always",
    "python.jediEnabled": false,
    "[html]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[javascript]": {
        "editor.defaultFormatter": "HookyQR.beautify"
    },
    "[json]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[jsonc]": {
        "editor.defaultFormatter": "esbenp.prettier-vscode"
    },
    "[njk]": {
        "editor.defaultFormatter": "eseom.nunjucks-template"
    },
    "[xml]": {
        "editor.defaultFormatter": "redhat.vscode-xml"
    },
    "peacock.affectActivityBar": false,
    "sync.gist": "9e22c8ecf6d7f5504edbfffe6dce6dcf",
    "vsintellicode.modify.editor.suggestSelection": "automaticallyOverrodeDefaultValue",
    "vsicons.associations.files": [
        {
            "extensions": [
                "njk"
            ],
            "format": "svg",
            "icon": "nunjucks"
        },
        {
            "extensions": [
                "kql"
            ],
            "format": "svg",
            "icon": "sql"
        }
    ],
    "vsicons.dontShowNewVersionMessage": true,
    "markdownlint.config": {
        "MD012": false,
    },
    "markdown-preview-enhanced.frontMatterRenderingOption": "table",
    "markdownShortcuts.icons.bold": false,
    "markdownShortcuts.icons.bullets": false,
    "markdownShortcuts.icons.italic": false,
    "markdownShortcuts.icons.strikethrough": false,
    "gitlens.menus": {
        "editor": {
            "blame": false,
            "clipboard": true,
            "compare": true,
            "details": false,
            "history": false,
            "remote": false
        },
        "editorGroup": false,
        "editorTab": {
            "clipboard": true,
            "compare": true,
            "history": true,
            "remote": true
        },
        "explorer": {
            "clipboard": true,
            "compare": true,
            "history": true,
            "remote": true
        },
        "scmGroup": {
            "compare": true,
            "openClose": true,
            "stash": true,
            "stashInline": true
        },
        "scmItem": {
            "clipboard": true,
            "compare": true,
            "history": true,
            "remote": true,
            "stash": true
        }
    },
    "git-graph.showStatusBarItem": false,
    "python.languageServer": "Microsoft"
}

VS Code Keybindings #

file: keybindings.json
// Place your key bindings in this file to override the defaults
[
    {
        "key": "ctrl+shift+s",
        "command": "-workbench.action.files.saveAs"
    },
    {
        "key": "ctrl+shift+s",
        "command": "workbench.action.files.saveAll"
    },
    {
        "key": "ctrl+k s",
        "command": "-workbench.action.files.saveAll"
    },
    {
        "key": "ctrl+shift+n",
        "command": "workbench.action.duplicateWorkspaceInNewWindow"
    },
    {
        "key": "ctrl+k d",
        "command": "-workbench.files.action.compareWithSaved"
    },
    {
        "key": "ctrl+k d",
        "command": "editor.action.formatDocument",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "shift+alt+f",
        "command": "-editor.action.formatDocument",
        "when": "editorTextFocus && !editorReadonly"
    },
    {
        "key": "alt+leftMouseButton",
        "command": "columnSelect"
    },
    {
        "key": "shift+alt+down",
        "command": "cursorColumnSelectDown",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+alt+down",
        "command": "-cursorColumnSelectDown",
        "when": "textInputFocus"
    },
    {
        "key": "shift+alt+left",
        "command": "cursorColumnSelectLeft",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+alt+left",
        "command": "-cursorColumnSelectLeft",
        "when": "textInputFocus"
    },
    {
        "key": "shift+alt+right",
        "command": "cursorColumnSelectRight",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+alt+right",
        "command": "-cursorColumnSelectRight",
        "when": "textInputFocus"
    },
    {
        "key": "shift+alt+up",
        "command": "cursorColumnSelectUp",
        "when": "textInputFocus"
    },
    {
        "key": "ctrl+shift+alt+up",
        "command": "-cursorColumnSelectUp",
        "when": "textInputFocus"
    },
    {
        "key": ".",
        "command": ""
    }
]

VS Code Snippets #

User Snippets are stored in %AppData%\Code\User\snippets\ with the .code-snippets extension or can be added to individual projects using .\.vscode\*.code-snippets

file: utilities.code-snippets
{
    "Wrap KBD Text" : {
        "prefix": "surround-kbd",
        "description": "Wraps current text in kbd tag",
        "body": [
            "<kbd>$TM_SELECTED_TEXT</kbd>$0"
        ],
        "scope": "markdown",
    }
}

Invoke via Ctrl + K, Ctrl + B with

file: keybindings.json
{
    "key": "ctrl+k ctrl+b",
    "command": "editor.action.insertSnippet",
    "when": "editorTextFocus",
    "args": {
        "langId": "markdown",
        "name": "Wrap KBD Text"
    }
}

VS Code - Spell Checker #

Make it possible to store User Words into a dictionary file instead of settings.json

Regex Ignore

VS Code - GitLens #

Gitlens - hide editor actions

VS Code - Markdownlint #

Markdown lint - Configure

Visual Studio Config #

Keybindings #

Ctrl + P - Edit.GoToAll (normally Ctrl + ,)
Ctrl + Shift + P - Window.QuickLaunch (normally Ctrl + Q)

Extensions #

SSMS Settings #

Tab Name

Notepad++ Settings #

Git Config #

You can locate/update your git config by running with should be at the path ~/.gitconfig:

git config --global --edit

I like setting an external editor because I'm scared of VIM. You can confirm the installation path of VS Code by running which code

file: .gitconfig
[core]
    editor = 'C:\\Users\\kyle.mitofsky\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe' -n -w

Speed up start times

git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256

Also, I have a custom alias for pair to make setting the user info for pair sessions easier

file: .gitconfig
# https://gist.github.com/KyleMit/69ec21465cfd14d93e6558b90ede223b
[alias]
    pair = "!f() {                                                           \
                local name=$1;                                               \
                shopt -s nocasematch;                                        \
                case $name in                                                \
                    'John')                                                  \
                        git config user.name 'John and Kyle';                \
                        git config user.email John.Doe;           \
                        ;;                                                   \
                    'James')                                                 \
                        git config user.name 'James and Kyle';               \
                        git config user.email James.Bond;         \
                        ;;                                                   \
                    'Home')                                                  \
                        git config user.name 'KyleMit';                      \
                        git config user.email KyleMit;             \
                        ;;                                                   \
                    'Reset')                                                 \
                        git config user.name 'Kyle Mitofsky';                \
                        git config user.email Kyle.Mitofsky;     \
                        ;;                                                   \
                    *)                                                       \
                    ;;                                                       \
                    esac;                                                    \
                    echo 'Co-authored-by: Kyle Mitofsky <Kyle.Mitofsky>' | clip.exe; \
            }; f"

Github Setup #

Setup SSH #

ls -al ~/.ssh
ssh-keygen -t rsa -b 4096 -C "your_email"
eval $(ssh-agent -s)
ssh-add ~/.ssh/id_rsa
clip < ~/.ssh/id_rsa.pub

Clone All Github Repos #

Clone all repos from GitHub

curl -s https://api.github.com/users/kylemit/repos?per_page=1000 |jq -r '.[]|.ssh_url' |xargs -L1 git clone
curl -s https://api.github.com/orgs/vtcodecamp/repos?per_page=1000 |jq -r '.[]|.ssh_url' |xargs -L1 git clone
curl -s https://api.github.com/orgs/vermontdepartmentofhealth/repos?per_page=1000 |jq -r '.[]|.ssh_url' |xargs -L1 git clone

Get Status of All Git Repos #

Find all uncommitted locals repos in a directory tree
Is it possible to do Git status for all repos in subfolders?

find . -type d -name '.git' | while read dir ; do sh -c "cd $dir/../ && echo -e \"\nGIT STATUS IN ${dir//\.git/}\" && git status -s" ; done

SourceTree #

Set KDiff as source diffing tool

Source Tree Diff Tool

SSH #

Setup SSH with Sourcetree on Windows

  1. In Source Tree, go to Tools > Create or Import SSH Keys

    Create SSH Keys

  2. Generate a Key, save the private .ppk file (probably in ~/.ssh/), and copy the public key into github ssh settings

    Generate SSH Key

  3. In Source Tree, go to Tools > Launch SSH Agent

    Launch SSH Agent

  4. In the system tray, open Pageant (Putty Authentication Agent) and view or add the private key you created

    Pageant

Add SSH Key to Source Tree

Right-click on Pageant icon (in the system tray) > Add Key and select the private key file (.ppk)

Clone All Stash Repos #

Stash Rest API
Generate Personal Access Token
demo in jq play

curl -H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
     -s https://server-name/stash/rest/api/1.0/projects/VDH/repos?limit=99 | \
jq -r '.values[].links.clone[] | select(.name=="ssh").href' | \
xargs -L1 git clone

Windows Terminal Config #

Notes.md
Profile.json
git.ico
desktop.png

Bash Config #

Bash rc file should be located at ~/.bashrc

You can customize the prompt

Retain History in VS Code

PROMPT_COMMAND='history -a'

Bash Profile #

The bash profile is launched when run as a standalone shell and located at ~/.bash_profile

# add bash rc if it exists
test -f ~/.bashrc && . ~/.bashrc
# change directory
cd c:

Powershell Profile #

NPM #

During Demos, use Prefer Offline

file: .npmrc
prefer-offline=true

Installs #

List all globally installed modules

npm ls -g --depth 0

Install them all with:

npm i -g @11ty/eleventy @vue/cli azure-functions-core-tools cli-real-favicon cli-slides create-react-app cross-env eleventy generator-botkit gh gitignore http-proxy-cli live-server netlify-cli npm reveal-md rimraf serve yo
npm login
netlify login

eleventy-plugin-embed-tweet
imgur-downloader

Chocolatey Installs #

Get installed chocolatey packages

choco list --local-only

Using chocolatey to install multiple apps at once

choco install jq firacode-ttf cascadiacode hub

Which installs CLI tools to here:

C:\ProgramData\chocolatey\lib\

Dotnet CLI #

List Tool versions:

dotnet tool list -g
dotnet tool install --global dotnet-script

dotnet SDKs

Auto Hot Key Scripts #

WinMerge Settings #

Chrome Extensions #

Chrome Apps #

Is it possible to have Google Chrome always open shortcuts in a separate window?

chrome create shortcut

chrome add shortcut as window

chrome://apps

<%AppData%\Microsoft\Windows\Start Menu\Programs\Chrome Apps>

Shortcut Example #

Stylus Settings #

Tamper Monkey Settings #

Windows Settings #

How to rename the User folder in Windows 10?

Why Local Users and Groups is missing in Computer Management on Windows 10 Home?

Hide Search

Show location of pointer when pressing Ctrl key

mouse properties

Windows Explorer Settings

Windows Explorer

Remove Start Menu Suggestions

Windows Explorer

Windows 10 select default login option

Disable Aero Shake #

How to Stop Aero Shake from Minimizing Your Windows

Windows Registry Editor Version 5.00

; Created by: Walter Glenn
; Tutorial: http://www.howtogeek.com/278996/how-to-disable-aero-shake-in-windows/

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"DisallowShaking"=dword:00000001

How to Enable or Disable Floating Immersive Search Bar in Windows 10

Windows Registry Editor Version 5.00

; Created by: Shawn Brink
; Tutorial: https://www.tenforums.com/tutorials/98610-enable-disable-floating-immersive-search-bar-windows-10-a.html


[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search]
"ImmersiveSearch"=dword:00000001

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Search\Flighting\Override]
"CenterScreenRoundedCornerRadius"=dword:00000009
"ImmersiveSearchFull"=dword:00000001

How To Disable Monitor Speakers Windows 10 #

  1. Right-click on the volume icon on the taskbar and then click Sounds to open the Sound dialog.
  2. Under the Playback tab, right-click on the speaker and then click Properties.
  3. Under the General tab, there is a section called Device usage. Select Don’t use this device (disable) option from the drop-down box to disable the speaker.

Rename your Windows 10 PC #

  1. Select Start > Settings > System > About.
  2. Select Rename this PC.
  3. Enter a new name and select Next. You may be asked to sign in.
  4. Select Restart now or Restart later.

How to Add or Remove Start Menu Items in Windows 10 #

  1. Right-click the item you want to appear on the Start menu; then choose Pin to Start.

Alt Drag #

Alt Drag - High DPI

Scripts #

archive.ps1