Skip to content

dabeastnet/SolarPVE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Header (Generated with PixelPoSH)

SolarPVE

A Solarized-inspired light & dark CSS theme for Proxmox VE’s web UI.
Automatically switches to dark mode whenever Proxmox’s theme-proxmox-dark.css is loaded.


Screenshots

Lightmode: Lightmode

Darkmode: Darkmode

Features

  • Light (Solarized Light) by default
  • Dark (Solarized Dark) when Proxmox’s dark stylesheet is present
  • No JS-framework dependencies—just vanilla CSS & a tiny inline script
  • Easy to install and override via Proxmox’s index.html.tpl

Installation

Manual installation

  1. Copy the CSS
    Place solarized.css into your Proxmox server’s static‐assets folder.
    By default this is:

/usr/share/pve-manager/images/solarized.css

  1. Patch the Proxmox template
    Edit (or better: override) Proxmox’s index.html.tpl—usually at:

/usr/share/pve-manager/index.html.tpl

and add before the existing </head> the following snippet:

<script>
  document.addEventListener('DOMContentLoaded', () => {
    // Detect if Proxmox’s dark stylesheet is loaded
    const darkLink = document.querySelector(
      'link[href*="theme-proxmox-dark.css"]'
    );
    if (darkLink) {
      document.body.classList.add('proxmox-theme-dark');
    }
  });
</script>

<link rel="stylesheet" href="/pve2/images/solarized.css">

(An example index.html.tpl ships in this repo, see the Example folder)

  1. Clear browser cache After restarting the PVE manager service, do a hard-refresh (Ctrl+F5) so your new CSS and script take effect.

  2. Restart Proxmox GUI

    systemctl restart pveproxy

Ansible playbook (auto installer)

See the ansible subfolder

🛠️ Prerequisites

  • Ansible 2.9+ installed on your control machine
  • SSH access (with become/sudo rights) to one or more Proxmox hosts
  • A copy of your solarized.css in files/solarized.css

⚙️ Usage

  1. Add your custom CSS:

    # Copy your tailored Solarized stylesheet into the files/ directory
    cp ./solarized.css ./ansible/playbooks/files
  2. Run the playbook against your Proxmox inventory:

    ansible-playbook -i hosts solarized-theme.yml --limit proxmox

    This will:

    • Copy solarized.css to /usr/share/pve-manager/images/solarized.css
    • Patch Proxmox’s index.html.tpl to include light & dark-mode logic
    • Restart pveproxy to serve your new theme

🔧 Configuration

  • Playbook file: solarized-theme.yml

  • Key variables (override via -e or group_vars if desired):

    Variable Default path
    css_src files/solarized.css
    css_dest /usr/share/pve-manager/images/solarized.css
    tpl_path /usr/share/pve-manager/templates/index.html.tpl

How It Works

  • Light mode All rules scoped under body:not(.proxmox-theme-dark) apply Solarized Light defaults.

  • Dark mode When Proxmox itself loads its theme-proxmox-dark.css, our small <script> adds .proxmox-theme-dark to <body> and you can write complementary CSS rules (e.g. under body.proxmox-theme-dark) for Solarized Dark.


Customization

  • Feel free to edit any of the --baseXX or --accent variables at the top of solarized.css to tweak colors.

  • To add new dark-mode overrides, target:

    body.proxmox-theme-dark .your-selector {
      /* dark-mode styles here */
    }

Contributing

  1. Fork this repo
  2. Create a feature branch (git checkout -b my-tweak)
  3. Commit your changes (git commit -am 'Add foo')
  4. Push and open a Pull Request

Bug reports and PRs for improved selectors, additional components, or accessibility tweaks are very welcome!


License

This repo is licensed under CC BY-NC 4.0.

  • ✅ Free to use, modify & share for non-commercial purposes (with attribution).
  • ❗️ For commercial use please see the license file

Enjoy a Solarized-themed Proxmox UI! 🚀

About

Solarized Proxmox VE theme

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published