dylanaraps / pywal

🎨 Generate and change color-schemes on the fly.
MIT License
8.34k stars 325 forks source link

[Feature Request] Tinting foreground and background colours #254

Open davepinto opened 6 years ago

davepinto commented 6 years ago

I'd like to request a feature that allows the tinting of the background color, and using the tints in a template file. This could be used for example, to darken, or lighten the cursorline in vim, easing visibility whilst keeping good aesthetics.

dylanaraps commented 6 years ago

By tinting do you mean changing the brightness values of both?

davepinto commented 6 years ago

I guess brightness would be enough. But both would be better. Just enough to get a range of tints and shades of the foreground and background color.

dylanaraps commented 6 years ago

Would a command-line flag suffice? Something like wal -i img.jpg --bg-tint '20%' --fg-tint '20%'.

davepinto commented 6 years ago

I don't think so, because in order for this to work, I need the normal background color, and then a tinted background color together. Here's a screenshot of what I mean: https://imgur.com/a/zK6tExu On the left is how it usually shows up when I set ctermbg to 0, on the right is what I want. For example I want to be able to do something like this: *color8: {background20} Which would give me something like the background color but 30 percent darker (assuming background50 is default).

dylanaraps commented 6 years ago

I see, I'll work on this. :+1:

dylanaraps commented 6 years ago

I don't think you can set the value of properties from the format strings ({color0.lighten(20)}). We could dynamically generate 100 properties for the Color object at runtime to get around this but it's kinda ugly.

I'll continue working on this.

dylanaraps commented 6 years ago

An alternative is looking into a more powerful templating method which will break backwards compatibility.

davepinto commented 6 years ago

I can work on this if you'd like. I feel like the current templating method is a little too rigid. For example, another problem I ran into was trying to use the alpha value to change the transparency of the polybar. Polybar takes an ARGB hex value for the colour, but the template files only provide the var.xrgba value, forcing me to create my own argb function in util.py.

dylanaraps commented 6 years ago

I don’t want to add a dependency for this. Is it possible for it to be implemented with a custom string formatter and .format()?

I’ll consider an external templating engine if it’s widely available.

Cheers for taking this up :+1:

On Tue, 5 Jun 2018 at 2:15 pm, David Pinto notifications@github.com wrote:

I can work on this if you'd like. I feel like the current templating method is a little too rigid. For example, another problem I ran into was trying to use the alpha value to change the transparency of the polybar. Polybar takes an ARGB hex value for the colour, but the template files only provide the var.xrgba value, forcing me to create my own argb function in util.py.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dylanaraps/pywal/issues/254#issuecomment-394575981, or mute the thread https://github.com/notifications/unsubscribe-auth/AGfAayDdYbS696-7pjPLSUpDqcePGxkhks5t5gXggaJpZM4UZ6OQ .

davepinto commented 6 years ago

258

I've done a thing. Sorry I've taken so long, I haven't had much time to work on extra projects lately. Too much study. Also, I'm still very new to github, so I'm not sure if I've done everything right. If there's anything I've messed up, or you need me to change, please tell me.

dylanaraps commented 6 years ago

I’ll take a look at this when I get home. Cheers for working on it. 👍

On Sun, 10 Jun 2018 at 1:12 pm, David Pinto notifications@github.com wrote:

258 https://github.com/dylanaraps/pywal/pull/258

I've done a thing. Sorry I've taken so long, I haven't had much time to work on extra projects lately. Too much study. Also, I'm still very new to github, so I'm not sure if I've done everything right. If there's anything I've messed up, or you need me to change, please tell me.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/dylanaraps/pywal/issues/254#issuecomment-396016609, or mute the thread https://github.com/notifications/unsubscribe-auth/AGfAa6gxiFkftS4XFh33fh5yKVZHW__jks5t7I6IgaJpZM4UZ6OQ .

dustinlacewell commented 5 years ago

I strongly believe we should adopt Jinja2 which would allow for extremely expressive templates. Passing values to functions and so on would be a breeze.