akinomyoga / blesh-contrib

Source of settings for Bash Line Editor https://github.com/akinomyoga/ble.sh (for ble-0.4+)
BSD 3-Clause "New" or "Revised" License
37 stars 11 forks source link

Transparent theme no longer transparent #25

Open alexalekseyenko opened 1 month ago

alexalekseyenko commented 1 month ago

The last commit: https://github.com/akinomyoga/blesh-contrib/commit/35defda82b6ebbf0a731adee20552a7b2866bb79 seems to break the airline/transparent.bash theme in dark mode:

Screenshot 2024-09-26 at 12 37 34
akinomyoga commented 1 month ago

Sorry for the late reply.

This change was intentional one; after https://github.com/akinomyoga/ble.sh/issues/478, I started to specify the background color explicitly so that the characters in the foreground color are visible. The problem is that the background color intended for each theme is unclear. White and black are typical background colors in light and dark backgrounds, respectively, so I assigned white or black to the background color so the foreground characters are visible for each segment. This means that users with the terminals of the opposite background would be affected.

In the transparent theme case, what is non-trivial is that it contains both foreground colors that are invisible in dark and white background colors. I'm not sure whether "transparent" in the transparent theme means the terminal's background color (white or black), or whether the transparent theme is intended to be used with terminals of transparent windows (showing the background windows behind the terminal window). I need more time to think about how I should fix this (including the possibility of reverting to the unspecified background colors).

alexalekseyenko commented 1 month ago

Late reply? You're bringing this excellent tool to us for free --- thanks for working on it at all!

You've clearly spent time thinking about the ramifications of these decisions, so please consider this as an uninformed [and weakly held] opinion at best, but in case it's useful: It seems to me that some amount of indeterminacy is going to be unavoidable with any sort of transparency feature, since the user's settings are being passed through. My experience was that the background of my terminal was what would be passed through, but I don't use transparent windows, so I'm not sure if/how those things might interact. Personally, I found it to work quite well, but when I switch between light and dark mode in my terminal, I'm using base16 themes, so that might not be representative of ble.sh users in general.

If it isn't too much trouble, do you think it would make sense to put this feature behind a setting? I can understand if the default behavior should be to set the colors explicitly, but if there are others who had a good experience with transparency, it might be nice to keep that functionality. In any case, thanks again for all of the thought and effort you've put into this project --- it's great and I appreciate it on a daily basis 🙏