{"id":15155456,"url":"https://github.com/matalus/dotfiles","last_synced_at":"2025-08-17T16:36:40.464Z","repository":{"id":256745962,"uuid":"849616370","full_name":"Matalus/dotfiles","owner":"Matalus","description":"a collection of windows configuration files (powershell profile customization, nvim, nano, scoop, tools)","archived":false,"fork":false,"pushed_at":"2024-10-05T04:19:17.000Z","size":1956,"stargazers_count":60,"open_issues_count":0,"forks_count":2,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-31T14:21:23.517Z","etag":null,"topics":["dotfiles","dotfiles-windows","neovim","powershell","pwsh","windowsterminal"],"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/Matalus.png","metadata":{"files":{"readme":"readme.md","changelog":null,"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":"2024-08-29T23:26:39.000Z","updated_at":"2025-01-07T19:11:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"57afaf7a-5fcf-4e30-be98-9cac7b5bbcad","html_url":"https://github.com/Matalus/dotfiles","commit_stats":{"total_commits":68,"total_committers":2,"mean_commits":34.0,"dds":0.02941176470588236,"last_synced_commit":"4f52f6e0ffe7e2d02bfed631b403d2a828e797d5"},"previous_names":["matalus/windots","matalus/dotfiles"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matalus%2Fdotfiles","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matalus%2Fdotfiles/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matalus%2Fdotfiles/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Matalus%2Fdotfiles/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Matalus","download_url":"https://codeload.github.com/Matalus/dotfiles/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252961492,"owners_count":21832185,"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","dotfiles-windows","neovim","powershell","pwsh","windowsterminal"],"created_at":"2024-09-26T18:21:52.932Z","updated_at":"2025-05-07T21:41:25.065Z","avatar_url":"https://github.com/Matalus.png","language":"PowerShell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Windots\n\n## One-Line Installation\n\n\u003e Clean installation on VirtualBox Windows 11 Dev OVA\n\n  \u003ca href=\"https://youtube.com/watch?v=DykhkRQmmyw\"\u003e\n\n  \u003cimg src=\"https://img.youtube.com/vi/DykhkRQmmyw/maxresdefault.jpg\" alt=\"One-Line Install\" width=\"800\"/\u003e\n\u003c/a\u003e\n\n\u003e [!TIP]\n\u003e Ok.. technically a 3-liner if you don't have `git` and `pwsh` installed\n\u003e \n\u003e If you encounter errors during installation, try running the script again in a new terminal instance\n\u003e\n\u003e Some errors related to module and assembly version conflicts are often resolved by restarting the terminal\n\n1. Ensure that `pwsh` and `git` are installed\n\n```PowerShell\nwinget install --id Microsoft.PowerShell --exact;\nwinget install --ig Git.Git --exact;\n\n```\n\n2. Go the the parent directory where you want the repo to exist (ex. `c:\\src`)\n3. Run the following command as **Administrator** in PowerShell\n\n```PowerShell\n# Clones Repo to directory and runs installer script\ngit clone https://github.com/Matalus/dotfiles.git terminal-profile; cd terminal-profile; .\\install.ps1\n```\n \n## Install Script\n\u003e [!IMPORTANT]\n\u003e Script is idempotent, just run again to check for scoop updates etc (future update maybe incorporated into profile)\n\n### Features\n\n- config defaults `defaults.yaml`\n\n```yaml\nnerd_font: FiraCode Nerd Font Mono # This will be the primary Nerd Font used\nfallback_font: CaskaydiaCove NF # This will be used as a fallback where applicable\nposh_prompt: half-life # Run Get-PoshThemes to see all possible themes\ndefault_terminal: pwsh # Name of default Windows Terminal Profile\nhome_dir: c:\\src\n```\n- **Local Defaults**\n\n\u003e [!TIP]\n\u003e You can override the global defaults by altering the settings in `local.defaults.yaml` this allows you to receive update from upstream but still customize your profile to your liking.\n\u003e - This file will be automatically created the 1st time the profile runs\n\u003e - Run `Install.ps1` again after customizing your settings to update environment variables\n\n- Symbolic links to keep all config in repo root (created by `install.ps1`)\n\n```yaml\nsymlinks:\n# Neovim\n- name: neovim config\n  source: .nvim\n  target: $env:LOCALAPPDATA\\nvim\n  # PowerShell profiles\n- name: Windows Powershell Shim Profile\n  source: .ps5shim\n  target: $PS5TempProfile\n- name: PowerShell 7 Profile\n  source: .psprofile\n  target: $PS7TempProfile\n  ```\n\n- Shim Profile for Windows Powershell (5.1)\nrather than maintaining 2 separate profiles, a shim profile will run when you launch **Windows Powershell** that will automatically run your **pwsh** (7.x) profile `.ps5shim/profile.ps1`.  Some features won't run for 5.1 based on the variable `$PSCore` that checks the version\n\n```PowerShell\n# Shim profile, points to Unified PSCore Profile\n$DirContext = $pwd # Get Current Directory to revert to when complete\n\n# Get PS7 Profile Path\n$PSCoreProfile = \u0026 \"pwsh.exe\" -NoProfile -Command '$PROFILE.CurrentUserAllHosts'\n\nSet-Location $(split-path -parent $PSCoreProfile)\n\u0026 $PSCoreProfile # Run PSCore Profile\n\n# Revert to former working directory after unified profile script runs\nSet-Location $DirContext\n```\n\n- Windows Terminal Profile Patching\nWill attempt to locate and patch the Windows Terminal `settings.json` to include preferred default terminal profiles as well as making sure they all have the same **Nerd Font** configured.\n\n- Oh-My-Posh (default **half-life** theme) change in `defaults.yaml`\n- PSReadline Customization (based on [SamplePSReadLineProfile.ps1](https://github.com/PowerShell/PSReadLine/blob/master/PSReadLine/SamplePSReadLineProfile.ps1))\n- [Terminal-Icons](https://github.com/devblackops/Terminal-Icons)\n- Automatic Update Checks\n\n  \u003e [!WARNING]\n  \u003e *updates available*\n\n  \u003cimg src=\"img/profile_needs_update.jpg\" height=\"200\"\u003e\n\n  \u003e [!NOTE]\n  \u003e *up to date*\n\n  \u003cimg src=\"img/profile_up_to_date.jpg\" height=\"60\"\u003e\n\n- `bat` (visual version of `cat` with syntax highlighting)\n\n  \u003cimg src=\"img/bat.jpg\" height=\"300\"\u003e\n\n- `delta` (enhanced diff viewer, inline highlights)\n\n  \u003cimg src=\"img/delta.jpg\" height=\"250\"\u003e\n\n\n\n## Neovim Setup (LazyVim)\n\nneovim configuration will be stored in `.\\.nvim` at the root of this repo.\nA Symbolic Link is created with a target of `$env:LOCALAPPDATA\\nvim` (`c:\\users\\\u003cprofile\u003e\\appdata\\local\\nvim`)\nNeovim looks for it's configuration by default on windows in this directory.\n\n![neovim](img/nvim.jpg)\n\n### **Notable customizations**\n\n\u003c!-- - **COC.nvim (Conqueror of Completion)** configured to support `PowerShell` autocompletion --\u003e\n- powershell_es configured using nvim-lspconfig and conform.nvim\n- **MarkdownLint** and **Markdown_Inline** configured in Mason to support live rendering in editor run `:RenderMarkdown`\n- **colorschemes.lua** additional colorschemes\n- **conform.nvim** setup for LSP and autoformatting `\u003cleader\u003ecf`\n- **gitsigns.nvim** show inline diff `\u003cleader\u003egp`\n- **vim-fugitive**\n- **undotree**\n\n![neovim](https://www.vectorlogo.zone/logos/neovimio/neovimio-ar21.svg)\n\n💤 LazyVim\n\n\u003ca href=\"https://youtube.com/watch?v=TC8Mc6Y5LTo\"\u003e\n  \u003cimg src=\"https://img.youtube.com/vi/TC8Mc6Y5LTo/maxresdefault.jpg\" alt=\"Neovim Setup\" width=\"800\"/\u003e\n\u003c/a\u003e\n\n## prerequisites\n\n### Windows Terminal\n\n![Windows Terminal](https://learn.microsoft.com/windows/terminal/images/terminal.svg)\n\n\u003e Installed via Scoop\n\n### Install PowerShell 7\n\n![powershell](https://raw.githubusercontent.com/PowerShell/PowerShell/master/assets/ps_black_128.svg?sanitize=true)\n\n\u003e[!IMPORTANT]\n\u003e Check winget for latest version of PowerShell (WIP)\n\u003e \n\u003e `install.ps1` will also attempt to automate this, might replace the default builtin function\n\nMethod for getting latest version of powershell from winget\n\n*manually*\n\n```powershell\nwinget install --id Microsoft.PowerShell --exact;\nwinget install --ig Git.Git --exact;\n\n```\n\n*programmatically*\n\n```powershell\n# Profile Module Function\\\n# Invoked when running .\\Install.ps1\nUpdate-PowerShellCore\n```\n\n## Git Config\n\nrecommended git global configuration\n\n```powershell\n# edit git profile\ngit config --global -e\n```\n\n```git\n[user]\n  email = \u003cemail@domain.com\u003e\n  name = \u003cName\u003e\n  username = \u003cUserName\u003e\n[credential]\n  helper = C:/Users/\u003cUser\u003e/AppData/Local/Programs/Git\\\\ Credential\\\\ Manager/git-credential-manager-core.exe\n[init]\n  defaultBranch = main\n[mergetool \"nvim\"]\n  cmd = nvim -f -c \\\"Gdiffsplit!\\\" \\\"$MERGED\\\"\n[merge]\n  tool = \"nvimdiff -f\"\n[mergetool]\n  prompt = false\n[core]\n  editor = \"nvim -f\"\n  pager = \"delta\"\n[safe]\n  directory = *\n[delta \"interactive\"]\n  keep-plus-minus-markers = true\n```\n\n## Scoop package manager\n\n ![scoop.sh](https://avatars.githubusercontent.com/u/16618068?s=30)\n\n\u003e [!NOTE]\n\u003e This Project relies on **Scoop** to manage and streamline software and package dependencies\n\nThe 1st time you run `.\\install.ps1` the script will check if scoop is installed, and attempt to install if not present.\n\nif you'd like to install manually or browse for additional apps / packages visit [https://scoop.sh](https://scoop.sh/)\n\n### scoop buckets \n\n\u003e required for some 3rd party packages\n\n- extras\n- nerd-fonts\n- main\n\n### scoop packages\n\u003e [!IMPORTANT]\n\u003e Add additional packages to `scoop.yaml` to make them required\n\n- neovim\n- extras/windows-terminal\n\n- extras/terminal-icons\n- extras/posh-git\n- extras/psreadline\n- extras/azuredatastudio\n- extras/lazygit\n- nerd-fonts/FiraCode-NF\n- nerd-fonts/FiraCode-NF-Mono\n- nerd-fonts/Cascadia-NF\n- nerd-fonts/JetBrainsMono-NF\n- main/oh-my-posh\n- main/diffutils\n- main/7zip\n- main/lua\n- main/curl\n- main/nmap\n- main/luarocks\n- main/vim\n- main/nano\n- main/ast-grep\n- main/cacert\n- main/fd\n- main/fzf\n- main/grep\n- main/gzip\n- main/micro\n- main/mingw\n- main/ripgrep\n- main/tree-sitter\n- main/wget\n- main/delta\n- main/bat\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatalus%2Fdotfiles","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatalus%2Fdotfiles","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatalus%2Fdotfiles/lists"}