The current devel version (r2429) brings more changes to the config, sorry.
The first, thing is an addition to the icons: Before, only X BitMaps were allowed, but it's possible to use X PixMaps now, too. subtle can detect the file type and handle it accordingly. This doesn't sound like a big improvement and generally besides colors there isn't a big difference between bitmaps and pixmaps at all, icons can just be colorful.
In case you just updated and the current active client (title) is black on black, this is caused by another color change:
Old color names
*> *> *> => =>
New color names
Welcome back, old and controversial feature - views can be dynamic again:
It's now possible to set the padding of the panel, additionally to the font size. This new option is named padding, the former padding option to reserve screenspace for e.g. additional panels was renamed to strut.
The order of padding values is: left, right, top, bottom
Also view buttons can now contain a pixmap icon, it basically uses the rendering of sublets and has therefore only a tiny overhead for users that don't need it. Views with icons can be defined in a similar way like properties in tags:
The color names in subtle were a bit messy and without further explanation probably difficult to understand. r2260 comes with renamed color names, different border colors for every panel item and a new color for occupied views.
Occupied views are views with at least one visible client.
Here are the changes of the colors of the default color scheme:
Old color names
=> => *> => => *> *> *> *> => => *> => => *> => => => => <= == ==
New color names
After a rewrite (r2204) of the ruby handling inside of subtle, sublets can now use grabs too. The syntax is almost the same as for grabs inside of the config. Please be aware that there is no checking for duplicates, the last one wins.
Here is a short example:
subtle finally has a proper screen handling, instead of using a screen placement via tag properties, subtle displays a view per screen now. This also requires a more decent way to configure panel, because there are two panel per screen. The new config option comes in the usual DSL style:
Numbers: on /off
1 screen 1 do 2 stipple false 3 top [ :views, :title, :spacer, :tray, :sublets ] 4 bottom [ ] 5 end
Due the changes in the handling of screens, the :WindowScreen grab and the screen property of tags are now obsolete.
The panel wiki page has been updated accordingly.
Dynamic views have been removed from subtle, because the use of them is questionable and the overhead in the code just not acceptable.
The tagging wiki page has been updated accordingly.
SubtletsReload and SubtleReload¶
Normally we would just add grabs with chains like grab "A-b", "urxvt" to get something that responds to a press of Alt-b. The drawback of this is that we need many different modifiers like using control, super etc. and we are probably limiting or even disturbing other programs and allows the usage of easier binds.
1 grab "C-y", :SubtleEscape 2 grab "Return", "urxvt" 3 grab "n", :ViewNext 4 grab "b", :ViewPrev
This is and per default commented out, the docs of the wiki and the default config have been updated accordingly.
Until now configuring a sublet was a silly task, you had to open the sublet itself and update the code. This changes with r2148: I've added a new DSL command that allows configuring of a sublet from the main config of subtle.
1 sublet :clock do 2 interval 30 3 format_string "%H:%S" 4 end
Currently there are only two sublets that support this new mechanism, but I will update my sublets asap. I will also add some more details in the notes section of the sublet to make it a b it easier to find what can be changed.
Started as a side project sur evolved to be really useful over the time. There is no reason for sur to be a standalone package, only subtle users will install it anyway. I merged both packages in r2142 and updated some minor things that were of concern.
Over the time the complexity of tag properties steadily increased, it was time for a change. The new format combines regex and match properties and also adds the possibility to add more than one match to a tag.
Old configs are still useable, if there is a regex property found it will be used and a deprecation warning yielded.
Also it is now possible to set window types to tags, so subtle will treat this window as a window of specific type, e.g. as a desktop type window.
Here is a brief overview of the changes:
And finally the type works like this:
1 tag "type" do 2 type :desktop 3 end
A complete list and updated docs can be found here.
Let's talk about the config in subtle:
Currently there are hashes, almost everything is a hash. This brings some benefits, especially for Ruby experts but also can be annoying for more complex things like a tag definition - even for me. On the contrary we have sublets with a fancy DSL so why not adding a DSL for the config too?
In fact there was a longer discussion about this topic in #subtle, there were votes for and votes against it but overall all agreed that there must be something new. After some thinking and talking there was and a consent and here is a comparison of the old and the new config:
The advantage of the new way should be clear, it's easy and even more readable. Another thing is the new DSL isn't limited to the config, it can also be used in sublets. So what about sublets that bring some own bindings?
Ok, but what does this mean for you?
It means migration from your old config to a new or using the new default config. This can be a annoying task, but to ease this there is a migration script that comes with subtle. It will be installed to
/usr/share/subtle/scripts/migrate.rb and can be run like:
This will automatically migrate your config, please make sure with subtle -k that the new config is fine before starting subtle. This script should cover most of the trivial things and create a backup of the older config typically
Also available in: Atom