subtle: subtle isn't dead yet! (1 comment)
if anyone noticed, I couldn't make it to this year's FrOSCon, I rather spent the time sick in bed, so I hope you enjoyed it even without a [[subtle]] booth.
I took quite a long break from development, toying around with some Android ideas and dealing with some nasty project deadlines. Nevertheless, the project isn't dead yet, I actively use it daily and I am still very pleased and still want to go on.
There are some features that currently aren't pushed like virtual screen splitting, but I am eager to make them available once I finished the styling thing I have in my mind.
So be patient with me.
Previously the .spawn method belonged to Subtlext::Subtle, which was fine until I changed it to return a valid [[clients|client]] object that is backed with some light event caching to make it useful for e.g. the launcher. Since it returns a real object I think it should belong to Subtlext::Client, end of story.
Edit: This change also breaks the [[snippets#Scratchpad|scratchpad]] snippet, so make sure to change Subtlext::Subtle.spawn to Subtlext::Client.spawn in your config.
Sometimes it can be pretty nasty to add [[tagging|tags]], when you just need something stupid to move a certain window to a [[views|view]]. That can be done with a loop, but that also adds lots of [[tagging|tags]] and there cannot be more than 32 of them.
An easy way to bypass this is to add logic to [[tagging|tags]] and act differently for certain [[clients]]. The latest version of [[subtle]] extends the [[tagging#Properties|properties]] with [[tagging#On_match|on_match]]. This can be used to add a Ruby proc to a [[tagging|tag]] that is called whenever the [[tagging|tag]] is applied.
The [[tagging#On_match|tagging page]] already contains a simple example, here is a more complex one that I use in my config to [[tagging|tag]] GIMP windows:
Both basically just sets the [[gravity]] of the matching [[clients|client]].
When you are located in Germany, live close to Oberhausen and have some spare time this weekend (12/13.11) visit us at our booth at the OpenRheinRuhr.
subtle: Finder in subtlext (1 comment)
Finder in [[subtlext]] are used to select different kind of objects like one [[Clients|client]] or more [[clients]] based on different matching options. With the changes in r3104, #find and # always return an array regardless whether an object was found or not. If you need just one result use #first instead.
subtle: Separator and styles revamped (3 comments)
According to my plan, to combine styling options ultimately in the [[styles]] it is now time to move the separator. A nice side effect, is that this allows different separators for [[Styles#Views|views]], [[Styles#Sublets|sublets]] and the [[panel]] in case you ever wanted to do that.
Another change is the removal of the unoccupied style, it made no sense at all, TBH. Unoccupied [[views]] are just [[views]] and this is probably not worth a special state. Just make sure to think twice what values are inherited now and which one you need to overwrite. (Joy of inheritance)
TL;DR: You need to update your config, again. Move the separator config option to the [[Styles#Separator|separator style]] like this:
Move the properties from the unoccupied [[styles|style]] to the [[Styles#Views|views style]]:
During my time at the FrOSCon I had problems with [[multihead]] and [[views]], because I couldn't see both [[Multihead|screens]] at the same time.
Therefore, r3023 adds a new optional style to highlight visible [[views]]. This [[Styles|style]] defines additional values, that are assigned on top of the current [[Styles|style]] values like [[Styles#Occupied|:occupied]]. I also changed the [[Styles#Urgent|:urgent]] [[Styles|style]] to behave similar.
This year we are going to have a [[subtle]] booth at the FrOSCon. I am not actually sure what I want to present there or what I want to talk about, but we have a booth.
So if you are around - visit us.
In case you haven't noticed yet, I rewrote the [[Clients#Stacking|stacking]] code of [[subtle]] in r2986. It now keeps the windows on their stacking level and raise/lower just modifies the position on that layer.
[[Clients#Stacking|Read more about stacking here.]]
And the second probably unoticed change is the addition of a more flexbile way to enable [[Gravity#Tiling|gravity tiling]]. Instead of just enabling it globally this can be a) done per [[gravity]] now and b) either horizontally or vertically.
[[Gravity#Tiling|Read more about gravity tiling here.]]
I did it again, [[Styles]] have changed slightly. This time without any breakage of existing configs, just expect some deprecation warnings and adopt your configs over the next weeks.
Why more changes?¶
The [[Styles|styles]] are a bit odd, there are some real classes and some other are mere states of a existing class. Yes, I am talking about the view styles. We have :focus, :occupied, :unoccupied and :urgent: Each inherits from :views and :views from :all and makes no sense as standalone [[Styles|style]]. So what we really need is a way to define nested [[Styles|styles]].
Also the foreground, background, text_fg and icon_fg config option mess requires a sane solution with [[Styles|styles]].
What has changed?¶
[[Styles]] can contain [[Styles#Substyles|substyles]] and have a new property now, the [[Styles#Icon|icon]] property to set the color of icons in [[Panel|panel]] items using this specific [[Styles|style]].
When there is a matching [[Styles|style]] with the name of the [[Sublets]] it uses the [[Styles|style]] and allows to style each [[Sublets|sublet]] individually.
Subtlext::Sublet have a #style= method to set these [[Styles|styles]].
Long story short¶
Overall the extended use of [[Styles|styles]] may look more complex but allows the usage of all [[Styles#Properties|properties]].
|Styles for [[Sublets|sublets]]||
|Update [[Sublets|sublet]] colors||
Also available in: Atom