johnpapa/vscode-peacock

Allow workspace theming at user-level, instead of workspace level (Kind of like `remote.SSH.remotePlatform`)

Opened this issue · 4 comments

Is your feature request related to a problem? Please describe.
I really like peacock for theming workspaces so I can tell my VSCode instances apart, but I don't necessarily want to check peacock theming into workspace settings.

I'd like an option to configure peacock profiles at the user level, and configure which workspaces should use those.

Describe the solution you'd like

I think a good way to do this might resemble `remote.SSH.remotePlatform", ie:

    "remote.SSH.remotePlatform": {
        "windows": "windows",
        "server": "linux",
        "work": "linux",
        "work-externeal": "linux"
    },

By the above config, the remote SSH extension configures the platform for each of its hosts. An equivalent in peacock might be something like:

{
    "peacock.workspaces.profiles": {
        "workspace-1-path-or-name?": "theme1",
        "workspace-2-path-or-name": "theme2",
       // etc
    }
    "peacock.profiles" : {
      "theme1": {
        "activityBar.activeBackground": "#0057b3",
        "activityBar.activeBorder": "#ff409d",
        "activityBar.background": "#0057b3",
        "activityBar.foreground": "#e7e7e7",
        "activityBar.inactiveForeground": "#e7e7e799",
        "activityBarBadge.background": "#ff409d",
        "activityBarBadge.foreground": "#15202b",
        "sash.hoverBorder": "#0057b3",
        "statusBar.background": "#003e80",
        "statusBar.foreground": "#e7e7e7",
        "statusBarItem.hoverBackground": "#0057b3",
        "statusBarItem.remoteBackground": "#003e80",
        "statusBarItem.remoteForeground": "#e7e7e7",
        "titleBar.activeBackground": "#003e80",
        "titleBar.activeForeground": "#e7e7e7",
        "titleBar.inactiveBackground": "#003e8099",
        "titleBar.inactiveForeground": "#e7e7e799"
    },
}  

Describe alternatives you've considered

  • Possibly using something like .peacockrc could work, as that can be ignored / not checked in separately to settings

I'm not sure about the best way to specify a workspace, there are a few options for pattern matching.

Maybe follow some precedence based on explictness, eg,

  1. look for peacockrc,
  2. look for workspace setting peacock.name
  3. match on folder base name
  4. idk

Thank you @matthewstrasiotto for creating this issue!

This would be fantastic and a huge upgrade to this extension. I'd love to use Peacock but the fact that it writes to my workspace .vscode/settings.json is just too much hassle. Most of my projects have that file already included in the git repo. So, I can't ignore the changes with .gitignore and have to manually ignore and filter out the Peacock settings.

This seems like a duplicate of #7

+1 to @tbenthompson - this looks like a duplicate of #7