WinHome supports a powerful plugin system that allows for first-class configuration of tools like
Vim and VSCode. These can be defined in their own top-level sections in config.yaml.
The vim section allows you to manage plugins and settings for Neovim (init.lua).
vim:
extensions:
- 'tpope/vim-commentary'
- 'nvim-treesitter/nvim-treesitter'
settings:
number: true
relativenumber: true
theme: 'gruvbox'extensions: A list of GitHub repositories (user/repo) to install.settings: A dictionary of Lua settings to apply toinit.lua.theme: Translates tovim.cmd('colorscheme <value>').key: value: Translates tovim.opt.<key> = <value>.
The vscode section allows you to manage extensions and user settings for both the default profile
and named profiles.
vscode:
# Default Profile
extensions:
- 'dbaeumer.vscode-eslint'
- 'esbenp.prettier-vscode'
settings:
'editor.tabSize': 2
'files.autoSave': 'afterDelay'
# Named Profiles
profiles:
'Work':
extensions:
- 'ms-dotnettools.csdevkit'
settings:
'editor.fontSize': 14
'Personal':
settings:
'workbench.colorTheme': 'Default Dark Modern'extensions: A list of VSCode extension IDs to install in the default profile.settings: A dictionary of settings to merge into the defaultsettings.json.profiles: A dictionary of named profiles to manage.<profile-name>:extensions: Extensions specific to this profile.settings: Settings specific to this profile.
Note: WinHome will automatically create the profile in VSCode if it doesn't exist by adding it to
storage.json.
The obsidian section allows you to manage community plugins and settings across your Obsidian
vaults.
obsidian:
vaults:
- path: "C:\\Users\\test\\Documents\\TestVault"
settings:
spellcheck: true
accentColor: '#002aff'
plugins:
- 'obsidian-git'vaults: A list of Obsidian vaults to configure.path: The absolute path to the vault directory.settings: A dictionary of settings to merge into.obsidian/app.jsonor.obsidian/appearance.json. Supports keys likespellcheck,accentColor,theme,vimMode, etc.plugins: A list of community plugin IDs to download, install, and enable in the vault.
Configure the powertoys plugin under extensions to manage PowerToys settings stored in
%LOCALAPPDATA%\Microsoft\PowerToys.
extensions:
powertoys:
general:
settings:
theme: 0
modules:
fancyzones:
enabled: true
settings:
shiftDrag: true
awake:
enabled: true
settings:
keepAwake: true
keepAwakeTimeInMinutes: 30
powerrename:
enabled: true
settings:
isEnabled: truegeneral: Merge into%LOCALAPPDATA%\Microsoft\PowerToys\settings.json.settings: Dictionary merged at the top level.raw: Dictionary merged at the top level (advanced).
modules: Dictionary of module configs.fancyzones,awake,powerrename: Supported modules.enabled: Sets the module's top-levelenabledflag.settings: Merged into the module'spropertiesblock.properties: Alias forsettings.raw: Merge into the module's top-level JSON (advanced).
The ohmyposh plugin allows you to customize the PowerShell terminal prompt using Oh My Posh
themes.
ohmyposh:
profile: "C:\\Users\\test\\Documents\\PowerShell\\Microsoft.PowerShell_profile.ps1"
settings:
theme: 'tokyonight'profile: Optional. The absolute path to the PowerShell profile script file. If not specified, WinHome will automatically detect your profile path.settings:theme: The name or configuration path of the theme to apply.
For other plugins that do not have a dedicated top-level section, use the extensions block.
extensions:
test-echo:
message: 'Hello from Python Plugin!'