Coming next to donnatella...
A couple of weeks ago was the first public release of donnatella, and for
those of you trying it out, you don't have to wait for the next release. The
branch next
on github
already contains a few things.
For Arch Linux users, you can use donnatella-git in the AUR to easilly get it.
An event for log messages
Firstly, donna now has an event log
for some of its log messages, specifically
those at levels MESSAGE, INFO, WARNING and CRITICAL. (The others ones are for
debugging purposes, and you should run donna from a terminal then, really.)
Alongside a new source (:app
) for the statusbar, this will allow to have some
feedback for such messages, even when running donna without a terminal, as most
people would.
This new source will show the last log message, for as long as specified via
option timeout
(in seconds). Of course it can be set to 0 for unlimited, but
you can also have it time out after a bit, and then use option format
to
specify what (if anything) should be shown.
The same variables are available as for the window title, so that includes
active list, current location, etc
Having those messages shown in the UI will become more and more useful in time, because in addition to warnings whenever something not quite right happens, donna will use INFO messages to provide non essential feedback; For example, right now it happens when you set/add nodes to a register, or when loading/saving a treeview from/to a file. Of course over time, more will be added.
Dealing with options & config
Some changes were also done regarding options & configuration. By default in donna so far, changing treeview/column options would only have the new value set in memory, nothing was saved to the configuration.
A new treeview option (which applies to all its options, i.e. including column options) allows to set the default save location: in memory, in current location, or ask.
So now you can be asked, when changing an option, where and if it should be saved to configuration.
Now, there are still a few things that can only be changed in memory, e.g. the sort order or the column layout - that is, which columns are visible & in what order. Also about that, new commands are available to toggle columns or set a new column layout.
Which is why a new command was introduced, to save a few things to configuration: treeview options, column options, column layout and (second) sort order. You can of course chose which of those to save (including which column to save options of), and where.
Updating your config to benefit from all of this
Now, there's still work to do when it comes to upgrades in donna. Specifically,
there isn't currently a way to update/import new defaults, so that is a manual
operation. Archers, think of this as some king of .pacnew
handling! ;)
Here's the patch to update your donnatella.conf :
- diff --git a/misc/donnatella.conf b/misc/donnatella.conf
- index 57f69b1..39ac154 100644
- --- a/misc/donnatella.conf
- +++ b/misc/donnatella.conf
- @@ -78,7 +78,7 @@ replacement=exec:<pacman -Qlq
- #
- [statusbar]
- -areas=tasks,active,keys,focus
- +areas=tasks,active,log,keys,focus
- [statusbar/tasks]
- source=:task
- @@ -87,9 +87,16 @@ expand=false
- [statusbar/active]
- source=:active
- +expand=false
- format=%v/%a files (%V) %N
- size_format=%R
- +[statusbar/log]
- +source=:app
- +format=%d
- +format_tooltip=donnatella v%v
- +timeout=5
- +
- [statusbar/keys]
- source=:focused
- format=%k
- @@ -155,12 +162,13 @@ notify=exec:¬ify-send "Donnatella: A task just failed" %N
- [defaults/trees]
- click_mode=tree
- key_mode=donna
- +default_save_location:save-location=ask
- node_types:node-type=containers
- show_hidden=false
- sort_groups:sg=first
- select_highlight:highlight=column
- context_menu_menus=context
- -context_menu=add_root,:move_root:up<:move_root:first>,:move_root:down<:move_root:last>,:remove_row,-,goto<goto_fs,marks>,-,save_tree<save_tree_as>,load_tree<load_tree_from>,-,tree_visuals<@tree_visuals>,-,tv_options<!tv_options>,-,@register,-,:register:+<@register:+>,-,:refresh<@refresh>
- +context_menu=add_root,:move_root:up<:move_root:first>,:move_root:down<:move_root:last>,:remove_row,-,goto<goto_fs,marks>,-,save_tree<save_tree_as>,load_tree<load_tree_from>,-,tree_visuals<@tree_visuals>,-,tv_options<!tv_options,-,save_tree_to_config>,-,@register,-,:register:+<@register:+>,-,:refresh<@refresh>
- [defaults/trees/arrangement]
- columns=name
- @@ -172,6 +180,7 @@ sort_column=name
- [defaults/lists]
- click_mode=list
- key_mode=donna
- +default_save_location:save-location=ask
- show_hidden=true
- node_types:node-type=all
- sort_groups:sg=first
- @@ -183,7 +192,7 @@ context_menu_menus=context
- context_menu=@go:tree,marks,-,add_to_tree<add_as_root>,-,!new_nodes,-,@register,-,@selection,-,column_edit<!column_edit>,-,:refresh<@refresh>
- context_menu_fs=@go:tree,marks,-,add_to_tree<add_as_root>,-,!new_nodes,new_items,-,@register,-,:register:+<@register:+>,-,@selection,-,column_edit<!column_edit,-,@touch>,-,:refresh<@refresh>
- context_menu_task=@selection,-,:refresh<@refresh>,-,@tasks
- -context_menu_colheader=columns<!columns>,-,:sort_order<!sort_order>,:second_sort_order<!second_sort_order>,-,options<column_options<!column_options>,list_options<!tv_options>>
- +context_menu_colheader=columns<!columns>,-,:sort_order<!sort_order>,:second_sort_order<!second_sort_order>,-,options<column_options<!column_options>,list_options<!tv_options>>,-,save_list_to_config
- # some color filters
- @@ -299,7 +308,7 @@ format_tooltip=%p (%o)
- color_user=green
- color_group=blue
- color_mixed=#00aaaa
- -sort=1
- +sort:sort-perms=myperms
- # COLUMNS
- @@ -335,7 +344,7 @@ title=Own
- width=70
- format=%V:%H
- format_tooltip=
- -sort=3
- +sort:sort-perms=user
- [defaults/lists/columns/desc]
- type:ct=text
- @@ -909,6 +918,10 @@ name=Tree Options
- icon=preferences-desktop
- submenu:enabled=enabled
- +[context_menus/tree_views/save_tree_to_config]
- +name=Save all options to configuration
- +trigger=command:tv_save_to_config (%o,:options)
- +
- # LIST-SPECIFIC
- @@ -963,6 +976,10 @@ type:context-type=empty
- name=List Options
- submenus:enabled=enabled
- +[context_menus/tree_views/save_list_to_config]
- +name=Save to configuration...
- +trigger=command:tv_save_to_config (%o)
- +
- # Selection
- [context_menus/tree_views/selection_select]
And of course there were a few bugfixes here and there, for a complete list please refer to the git log. With that, I go back to coding, with idea being that next time, hopefully we'll talk inline terminal...
In case you read all that and are wondering what donnatella is, or are looking for more information, download links, etc please refer to donnatella.
As always, bug reports, suggestions or any other form of constructive criticism is very much welcome. You can open issues on github, use the thread on Arch Linux forums, or simply email me.