{"id":13554307,"url":"https://github.com/jayharris/dotfiles-windows","last_synced_at":"2025-04-04T12:09:16.532Z","repository":{"id":11701574,"uuid":"14216503","full_name":"jayharris/dotfiles-windows","owner":"jayharris","description":"dotfiles for Windows, including Developer-minded system defaults. Built in PowerShell","archived":false,"fork":false,"pushed_at":"2024-06-29T00:35:32.000Z","size":190,"stargazers_count":529,"open_issues_count":7,"forks_count":156,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-28T11:08:43.305Z","etag":null,"topics":["dotfiles","powershell","windows"],"latest_commit_sha":null,"homepage":"","language":"PowerShell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jayharris.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-11-07T21:33:08.000Z","updated_at":"2025-03-25T01:20:01.000Z","dependencies_parsed_at":"2023-01-11T18:10:06.245Z","dependency_job_id":"831111f6-ce8b-437f-9e16-fde1110b16d3","html_url":"https://github.com/jayharris/dotfiles-windows","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayharris%2Fdotfiles-windows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayharris%2Fdotfiles-windows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayharris%2Fdotfiles-windows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jayharris%2Fdotfiles-windows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jayharris","download_url":"https://codeload.github.com/jayharris/dotfiles-windows/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247174453,"owners_count":20896078,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dotfiles","powershell","windows"],"created_at":"2024-08-01T12:02:44.672Z","updated_at":"2025-04-04T12:09:16.514Z","avatar_url":"https://github.com/jayharris.png","language":"PowerShell","readme":"﻿# Jay Harris's dotfiles for Windows\n\nA collection of PowerShell files for Windows, including common application installation through `Win-Get` and `npm`, and developer-minded Windows configuration defaults.\n\nAre you a Mac user? Check out my [dotfiles](https://github.com/jayharris/dotfiles) repository.\n\n## Installation\n\n### Using Git and the bootstrap script\n\nYou can clone the repository wherever you want. (I like to keep it in `~\\Projects\\dotfiles-windows`.) The bootstrapper script will copy the files to your PowerShell Profile folder.\n\nFrom PowerShell:\n```posh\ngit clone https://github.com/jayharris/dotfiles-windows.git; cd dotfiles-windows; . .\\bootstrap.ps1\n```\n\nTo update your settings, `cd` into your local `dotfiles-windows` repository within PowerShell and then:\n\n```posh\n. .\\bootstrap.ps1\n```\n\nNote: You must have your execution policy set to unrestricted (or at least in bypass) for this to work: `Set-ExecutionPolicy Unrestricted`.\n\n### Git-free install\n\n\u003e **Note:** You must have your execution policy set to unrestricted (or at least in bypass) for this to work. To set this, run `Set-ExecutionPolicy Unrestricted` from a PowerShell running as Administrator.\n\nTo install these dotfiles from PowerShell without Git:\n\n```bash\niex ((new-object net.webclient).DownloadString('https://raw.github.com/jayharris/dotfiles-windows/master/setup/install.ps1'))\n```\n\nTo update later on, just run that command again.\n\n## Use \u0026 Configuration\n\n### PowerShell Profile\n\nThe following commands are executed every time you launch a new\nPowerShell window.\n\n - `.\\components.ps1` : Load various PowerShell components and modules.\n - `.\\functions.ps1` : Configure custom PowerShell functions.\n - `.\\aliases.ps1` : Configure alias-based commands.\n - `.\\exports.ps1` : Configure environment variables.\n - `.\\extra.ps1` : Secrets and secret commands that are not tracked by the Git repository.\n\nAlso included are default configurations for Git, Mercurial, Ruby, NPM, and vim.\n\n### Secrets\n\nYou may have scripts or commands that you want to execute when loading PowerShell that you do not want committed into your own `dotfiles` repository, such as a place to put tokens or credentials or even your Git commit email address. For such secret commands, use `.\\extra.ps1`.\n\nIf `.\\extra.ps1` exists, it will be sourced along with the other files.\n\nMy `.\\extra.ps1` looks something like this:\n\n```posh\n# Hg credentials\n# Not in the repository, to prevent people from accidentally committing under my name\nSet-Environment \"EMAIL\" \"Jay Harris \u003cjay@aranasoft.com\u003e\"\n\n# Git credentials\n# Not in the repository, to prevent people from accidentally committing under my name\nSet-Environment \"GIT_AUTHOR_NAME\" \"Jay Harris\",\"User\"\nSet-Environment \"GIT_COMMITTER_NAME\" $env:GIT_AUTHOR_NAME\ngit config --global user.name $env:GIT_AUTHOR_NAME\nSet-Environment \"GIT_AUTHOR_EMAIL\" \"jay@aranasoft.com\"\nSet-Environment \"GIT_COMMITTER_EMAIL\" $env:GIT_AUTHOR_EMAIL\ngit config --global user.email $env:GIT_AUTHOR_EMAIL\n```\n\nExtras is designed to augment the existing settings and configuration. You could also use `./extra.ps1` to override settings, functions and aliases from my dotfiles repository, but it is probably better to [fork this repository](#forking-your-own-version).\n\n### Sensible Windows defaults\n\nWhen setting up a new Windows PC, you may want to set some Windows defaults and features, such as showing hidden files in Windows Explorer, configuring privacy settings, installing IIS, and uninstalling Candy Crush. You are encouraged to browse through the file to understand all of the modifications and to modify these settings based on your own preferences.\n\n```posh\n.\\windows.ps1\n```\n\nThis script will also set your machine name, so you may want to modify this file before executing.\n```posh\n(Get-WmiObject Win32_ComputerSystem).Rename(\"MyMachineName\") | Out-Null\n```\n\n### Dependencies: Tools, Utilities, and Packages\n\nSetting up a new Windows machine often requires installation of common packages, utilities, and dependencies. These could include node.js packages via [NPM](https://www.npmjs.org), Win-Get packages, Windows Features and Tools, and Visual Studio Extensions.\n\n```posh\n.\\deps.ps1\n```\n\n## Customization\n\n## Forking your own version\n\nThese scripts are for my preferences; your preferences may be different.\n\nThis repository is built around how I use Windows, which is predominantly in a VM hosted on macOS. As such, things like VNC, FileZilla, or Skype are not installed, as they are available to me on the macOS side, installed by my [OS X dotfiles](https://github.com/jayharris/dotfiles). If you are using Windows as your primary OS, you may want a different configuration that reflects that, and I recommend you [fork this repository](https://github.com/jayharris/dotfiles-windows/fork).\n\nIf you do fork for your own custom configuration, you will need to touch a few files to reference your own repository, instead of mine.\n\nWithin `/setup/install.ps1`, modify the Repository variables.\n```posh\n$account = \"jayharris\"\n$repo    = \"dotfiles-windows\"\n$branch  = \"master\"\n```\n\nFinally, be sure to reference your own repository in the git-free installation command.\n```bash\niex ((new-object net.webclient).DownloadString('https://raw.github.com/$account/$repo/$branch/setup/install.ps1'))\n```\n\n## Feedback\n\nSuggestions/improvements are\n[welcome and encouraged](https://github.com/jayharris/dotfiles-windows/issues)!\n\n## Author\n\n| [![twitter/jayharris](http://gravatar.com/avatar/1318668b99b2d5a3900f3f7758763a69?s=70)](http://twitter.com/jayharris \"Follow @jayharris on Twitter\") |\n|---|\n| [Jay Harris](http://twitter.com/jayharris/) |\n\n## Thanks to…\n\n* @[Mathias Bynens](http://mathiasbynens.be/) for his [OS X dotfiles](http://mths.be/dotfiles), which this repository is modeled after.\n","funding_links":[],"categories":["PowerShell"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayharris%2Fdotfiles-windows","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjayharris%2Fdotfiles-windows","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjayharris%2Fdotfiles-windows/lists"}