.config
All my Windows dotfiles and how to set them up.
Install / Use
/learn @ConnorSweeneyDev/.configREADME
Windows Dotfiles
System | Komorebi | Terminal | Neovim | Opencode | Firefox | Extras
https://github.com/user-attachments/assets/9cc1e7b9-8ae9-40cd-bf11-87ae4bc6b123
</div>System
[!NOTE] Every folder in this repository is located locally at
$Env:USERPROFILE\.config.
Dependencies
- 7Zip → Run
winget install --id 7zip.7zip. - PowerToys → Run
winget install Microsoft.PowerToys --source winget.
Setup
- Ensure you are able to access and use the Windows Store, winget relies on this for certain things. If you can't access the store (it's known to be glitchy for some accounts) then you can find alternative installs for all dependencies on either Chocolatey or the dependency's official website.
- Go to the "System" and then "Advanced" section of the Windows settings and do the following:
- Ensure "Developer Mode" is turned on.
- Ensure "Enable long paths" is turned on.
- Enable "Show hidden and system files" and "Show file extensions" under "File Explorer".
- Enable local powershell scripts to run without signing under "PowerShell".
- Enable Sudo.
- Add the following environment variables:
XDG_CONFIG_HOME->$Env:USERPROFILE\.configXDG_DATA_HOME->$Env:USERPROFILE\.configXDG_STATE_HOME->$Env:USERPROFILE\.configXDG_CACHE_HOME->$Env:USERPROFILE\.config\temp
- My PowerToys setup is as follows:
- Run with an activation shortcut of
win+shift+backspace, input smoothing disabled, clear previous query on launch enabled, preferred monitor primary, all plugins off except "Program" and "Windows System Commands" - this behaves just like the windows run dialog but without cortana, searching the internet or any other annoyances and the ability to type shutdown, restart, etc. - Color Picker with an activation shortcut of
win+shift+cand HEX, RGB and VEC4 enabled. - Mouse Jump with an activation shortcut of
win+shift+dand a max size of1600x1200. - Screen Ruler with an activation shortcut of
win+shift+pand default measure style ofSpacing. - Text Extractor with an activation shortcut of
win+shift+t. - File Locksmith enabled.
- Run with an activation shortcut of
- You can right click your desktop and go to "View" and then "Hide desktop icons" to have a clean desktop.
Komorebi
Dependencies
- Komorebi → Run
winget install LGUG2Z.komorebiand add the environment variableKOMOREBI_CONFIG_HOME->$Env:USERPROFILE\.config\komorebi. - Yasb → Run
winget install --id AmN.yasb. - AutoHotkey → Run
winget install AutoHotkey.AutoHotkey. - ToggleRoundedCorners → Download the portable executable from
here and rename it to
trc.exe. Place it inC:\Program Files\ToggleRoundedCornersand put that folder in your path.
Setup
- Run
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem' -Name 'LongPathsEnabled' -Value 1in PowerShellCore as an admin. - Open control panel and go to the "Ease of Access Center" then "Make the computer easier to see" - enable "Turn off all unnecessary animations (when possible)".
- Press Windows + I and search
taskbar, go to taskbar settings and turn on "Automatically hide the taskbar" under the taskbar behaviours. - Search
multitaskingand turn off "Snap windows". - Paste
komorebiinto your config. Inkomorebi.jsonensure that the correct amount of monitors are configured. - Paste
yasbinto your config. Add the directory containingyasbc.exeto your path (C:\Program Files\YASBby default). - Paste
ahkinto your config. Right clickwm.ahkand create a shortcut, then rename that shortcut to justwmand create a copy of it, one should be moved toC:\ProgramData\Microsoft\Windows\Start Menu\Programsand the other to that folder's sub-directoryStart-up(orStartup). Now it will be run at startup and is accessible from the start menu in case you need to restart the manager, and all three processes can be killed from the task manager. - Restart your PC.
[!TIP] Keybinds and commands to run on startup can be configured in
wm.ahk, the status bar can be configured in the Yasbconfig.yamlandstyles.cssfiles, and the window manager can be configured by Komorebi'skomorebi.json,applications.jsonand any.jsonfiles for custom layouts.
Terminal
Dependencies
- NerdFont → Download from here (I use CaskaydiaCove), then in
explorer select all
.ttffiles and right click them, now select "Install". After that you can delete the files. - Windows Terminal → Run
winget install --id Microsoft.WindowsTerminal. - PowerShellCore → Run
winget install --id Microsoft.Powershell --source winget. - Git → Run
winget install --id Git.Git --source winget. - Github CLI → Run
winget install --id GitHub.cli. - fd → Run
winget install --id sharkdp.fd --source winget. - bat → Run
winget install sharkdp.batand add the environment variableBAT_THEME->Visual Studio Dark+. You can choose any of the themes frombat --list-themes. - fzf → Run
winget install junegunn.fzf.
Setup
- Paste
terminalinto your config and change the font settings account for whatever NerdFont you installed. Also, make sure you add whatever profiles you want to use other than the three that i have set up. Each new profile needs a unique guid - you can generate one by running[guid]::NewGuid()in PowerShellCore. - Find the location of the windows terminal settings file (it's different per machine) - open that directory and delete
settings.json- then run this command in PowerShellCore:New-Item -ItemType SymbolicLink -Path ".\settings.json" -Target "$env:USERPROFILE\.config\terminal\settings.json". - Paste
pwshinto your config, then runnotepad $PROFILEand paste this line into the file that is opened (you may have to create the file first if it doesn't exist):. $Env:USERPROFILE"\.config\pwsh\main.ps1". - Go back to
pwsh\main.ps1and remove the line that sourcespersonal.ps1, and delete that file too as it is specific to me. Other than that, skim the rest of the files and remove anything you know you won't need - everything is commented or self-explanatory so you can be sure of what you're doing. - Run
git config --system core.longpaths trueand ensure that[PATH_TO_GIT]\binis in your path. After that you can rungit config --global user.name "[YOUR_NAME]"andgit config --global user.email "[YOUR_EMAIL]", followed bygit config --global core.autocrlf trueandgit config --global core.editor nvimif you want. - Run
gh auth loginand follow the instructions to authenticate your local machine with your GitHub account. After that you can rungh config set editor nvimif you want.
Neovim
[!IMPORTANT] This section requires completion of the terminal setup first.
Dependencies
- Microsoft Visual C++ 2015-2022 Redistributable (x64) → Download from here and run the installation wizard.
- MinGW → Download from here and put the contents in
C:\Program Files\MinGW(I recommend 64-bit with POSIX threads for general purpose use). AddC:\Program Files\MinGW\binto your path. - Make → Run
winget install --id ezwinports.make. - CMake → Run
winget install --id Kitware.CMake. - Python → Run
winget install --id Python.Python.3.10. - NodeJS → Run
winget install OpenJS.NodeJS. - ripgrep → Run
winget install BurntSushi.ripgrep.MSVC. - Neovim → Run
winget install neovim --version 0.12.0and add the environment variablesNVIM_LOG_FILE->$Env:USERPROFILE\.config\nvim-data\nvim.logandEDITOR->nvim. - Python Provider → Run
pip install pynvim --upgrade. - NodeJS Provider → Run
npm install -g neovim. - TreeSitterCLI → Run
npm install -g tree-sitter-cli.
Setup
After completing the dependencies for this section, I recommend manually recreating nvim on your machine rather than
just pasting it in, because this will allow you to single out any unexpected errors as they happen.
You should start with the top level init.lua and then lua\main\init.lua. Then you can create lua\main\util.lua,
lua\main\set.lua and lua\main\map.lua and paste the config into each. set.lua is for global settings, map.lua is
for global keybinds and util.lua is for helper functions used throughout the configuration, designed to remove the
need for visible logic in any configuration files.
Now you can create lua\main\pack.lua, and populate it with only the following lines:
vim.keymap.set("n", "<leader>pu", function() vim.pack.update() end, { desc = "Update plugins" })
After creating an empty lua\plugin\init.lua, restart neovim and there should be no error messages.
Now, call the vim.pack.add({}) function and start adding plugins, do so in the following pattern (with some exceptions below):
- Add the line to
lua\main\pack.luaand restart neovim. - If it needs one, add a
lua\plugin\[PLUGIN].luafile for the plugin and addrequire("plugin.[PLUGIN]")tolua\plugin\init.lua(order matters in this file), then restart neovim. - Customize the file to your liking.
- Test the plugin.
The following plugins require some extra or different steps:
- Helpers → Some plugins are only here to help other plugins and files which you can remove if you don't need, these are:
Related Skills
node-connect
346.8kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
107.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
346.8kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
346.8kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
