taffybar / taffybar

A gtk based status bar for tiling window managers such as XMonad
BSD 3-Clause "New" or "Revised" License
696 stars 136 forks source link

Transparent colors #110

Closed tusj closed 6 years ago

tusj commented 9 years ago

I wanted to set some transparent colors for taffybar through its taffybar.rc. But I don't find any documentation on the correct format for specifying transparencent colors, nor can I find any examples for gtkrc's in /usr/share/themes which uses transparency. I do however see gtk css files with transparency set.

Is it not possible? Could you use a css file to configure taffybar?

travitch commented 9 years ago

What kind of transparency are you looking for? To see the bar through a widget? Or do you want to see the desktop through the bar? I believe CSS themes were introduced in gtk3, while taffybar is still using gtk2.

It might be time for a gtk3 transition, now that gtk3 is more common.

weskerfoot commented 9 years ago

I actually just "ported" taffybar and gtk-traymanager to gtk3 but am still working out the various bugs that arose, but it's running under gtk3 now (you can go look at the changes I made if you want, I'm sure it could use a lot more work). It was for the same reason as tusj. I wanted to make it semi-transparent but that is only supported under gtk3 with css rgba ;)

travitch commented 9 years ago

@nisstyre56 interesting - how many changes are required? I wouldn't be opposed to switching over, or possibly supporting both.

I've also had some issues pop up with using gtkrc files to color the bar, and I imagine the css approach can't be worse.

weskerfoot commented 9 years ago

@travitch not that many, the changes to the C code are quite straightforward and mostly involve changing stuff that uses the -> syntax to accessors, some headers that are no longer required, and a compatibility fix for constants. See: https://developer.gnome.org/gtk3/stable/gtk-migrating-2-to-3.html

The Haskell code is also mostly straightforward, but a lot of functions were removed involving drawing, and I'm not sure if I got it right, and also not quite sure how to handle switching to the css format yet. Also it's crashing seemingly at random while trying to use openDisplay (at some point it will just start failing by returning a NULL pointer), but I think that may be because of multiple monitors, still investigating.

tusj commented 9 years ago

@travitch Initiallly, I was thinking about setting the background color of the panel transparent, rendering the desktop background visible.

@nisstyre56 Cool! I am looking at your code now.

travitch commented 9 years ago

@tusj That would require both the ARGB support from gtk3 and running a separate composite manager, I believe. I am interested in supporting or switching to gtk3, so this might become possible.

tusj commented 9 years ago

@travitch I have been using some terminals with a transparent background, without running a composite manager, but then the transparency happens between the terminal and the desktop paper, and not on any windows in a layer between the terminal and the desktop. So I believe it would work without a composite manager, but I don't know the internals.

travitch commented 9 years ago

Those terminals are implementing fake transparency manually - they capture the root window pixmap and use it as their background (with suitable filtering). That is why they can't show windows between the terminal and the desktop.

djvs commented 8 years ago

+1

sakshamsharma commented 8 years ago

What is the status of this now?

colonelpanic8 commented 7 years ago

@nisstyre56 How close is your port to gtk3.

Have you done anything other than https://github.com/nisstyre56/taffybar/commit/b621cc20805c3d724a934373394565e03f6b029c?

PierreR commented 7 years ago

@nisstyre56 Do you want someone to take over ?

weskerfoot commented 7 years ago

@PierreR @IvanMalison hey, as I recall, I ended up running into a lot of issues porting to gtk3. Considering that the Gtk project is undergoing a lot of changes, maybe it's worth taking a look at rewriting parts of this to support newer versions of Gtk?

Specifically I'm referring to https://blog.gtk.org/2016/09/01/versioning-and-long-term-stability-promise-in-gtk/

colonelpanic8 commented 7 years ago

@nisstyre56 Yeah that sounds like a good idea, I have some time to take a shot at it right now