Skip to content

nicolasaigner/gethomepage-intellisense

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

10 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

GetHomepage

GetHomepage IntelliSense

YAML IntelliSense, autocompletion, validation and snippets for GetHomepage configuration files.

Version Installs License


Features

  • Schema Validation โ€” Real-time error highlighting for invalid properties, wrong types, and missing required fields
  • Autocompletion โ€” Smart suggestions for all configuration properties, widget types, themes, colors, and more
  • Hover Documentation โ€” Hover over any property to see its description and allowed values
  • Snippets โ€” Ready-to-use templates for services, bookmarks, widgets, layouts, and more
  • 151 Widget Types โ€” Full support for all GetHomepage service widgets
  • Custom Language ID โ€” Scoped yaml-homepage language so IntelliSense only activates on your homepage config files

Supported Files

File Description
settings.yaml Application settings (theme, layout, language, etc.)
services.yaml Dashboard services and widgets
widgets.yaml Global info widgets (weather, search, resources)
bookmarks.yaml Bookmark links
docker.yaml Docker server configuration
kubernetes.yaml Kubernetes configuration
proxmox.yaml Proxmox node configuration

Installation

From VS Code Marketplace

  1. Open VS Code
  2. Go to Extensions (Ctrl+Shift+X)
  3. Search for "GetHomepage IntelliSense"
  4. Click Install

From .vsix (Local)

# Clone and build
git clone https://github.com/nicolasaigner/gethomepage-intellisense.git
cd gethomepage-intellisense
npm install
npm run package

# Install the generated .vsix file
code --install-extension gethomepage-intellisense-*.vsix

Setup

After installing, add the following to your workspace's .vscode/settings.json to associate your GetHomepage config files with the extension:

{
  "files.associations": {
    // Adjust the path to match your project structure
    "config/*.yaml": "yaml-homepage",
  },
}

Tip: You can be more specific if you have other YAML files in the same folder:

{
  "files.associations": {
    "config/settings.yaml": "yaml-homepage",
    "config/services.yaml": "yaml-homepage",
    "config/widgets.yaml": "yaml-homepage",
    "config/bookmarks.yaml": "yaml-homepage",
    "config/docker.yaml": "yaml-homepage",
    "config/kubernetes.yaml": "yaml-homepage",
    "config/proxmox.yaml": "yaml-homepage",
  },
}

That's it! Open any associated file and start getting IntelliSense.

Snippets

Type the snippet prefix and press Tab or Enter to expand:

Prefix Description
service New service with widget
service-simple New service without widget
service-proxmox Service with Proxmox integration
service-docker Service with Docker integration
group New service group
bookmark New bookmark
bookmark-group New bookmark group
glances Glances monitoring widget
resources Local resources widget (CPU, RAM, disk)
search Search widget
datetime Date/time widget
greeting Greeting widget
weather OpenWeatherMap widget
openmeteo Open-Meteo widget (no API key needed)
customapi Custom API widget
iframe Embedded iFrame widget
layout Group layout configuration
docker Docker server configuration
proxmox Proxmox node configuration
logo Logo widget
stocks Stocks widget (Finnhub)
background Background image configuration
quicklaunch Quick Launch configuration
providers Shared providers configuration

Supported Widget Types

All 151 service widget types are recognized and validated:

Click to expand full list

adguard ยท apcups ยท argocd ยท audiobookshelf ยท authentik ยท autobrr ยท bazarr ยท caddy ยท calendar ยท calibreweb ยท changedetectionio ยท cloudflared ยท customapi ยท deluge ยท dockhand ยท emby ยท esphome ยท evcc ยท filebrowser ยท firefly ยท flood ยท freshrss ยท frigate ยท fritzbox ยท gamedig ยท gatus ยท ghostfolio ยท gitea ยท gitlab ยท glances ยท gluetun ยท gotify ยท grafana ยท hdhomerun ยท headscale ยท healthchecks ยท homeassistant ยท homebox ยท homebridge ยท immich ยท jackett ยท jdownloader ยท jellyfin ยท jellystat ยท kavita ยท komga ยท komodo ยท kopia ยท lidarr ยท linkwarden ยท lubelogger ยท mailcow ยท mastodon ยท mealie ยท medusa ยท mikrotik ยท minecraft ยท miniflux ยท moonraker ยท mylar ยท myspeed ยท navidrome ยท netalertx ยท netdata ยท nextcloud ยท nextdns ยท npm ยท nzbget ยท octoprint ยท omada ยท ombi ยท opendtu ยท openmediavault ยท openwrt ยท opnsense ยท overseerr ยท paperlessngx ยท peanut ยท pfsense ยท photoprism ยท pihole ยท plantit ยท plex ยท portainer ยท prometheus ยท prowlarr ยท proxmox ยท proxmoxbackupserver ยท pterodactyl ยท pyload ยท qbittorrent ยท qnap ยท radarr ยท readarr ยท romm ยท rutorrent ยท sabnzbd ยท scrutiny ยท seerr ยท slskd ยท sonarr ยท speedtest ยท spoolman ยท stash ยท strelaysrv ยท suwayomi ยท tailscale ยท tandoor ยท tautulli ยท tdarr ยท technitium ยท traefik ยท transmission ยท trilium ยท truenas ยท tubearchivist ยท unifi ยท unmanic ยท unraid ยท uptimekuma ยท uptimerobot ยท urbackup ยท vikunja ยท wallos ยท watchtower ยท wgeasy ยท whatsupdocker ยท xteve ยท zabbix

Requirements

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'feat: add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Related

License

This project is licensed under the MIT License โ€” see the LICENSE file for details.


Made with โค๏ธ for the GetHomepage community

About

๐Ÿ  VS Code extension โ€” YAML IntelliSense, autocompletion, validation and snippets for GetHomepage configuration files

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors