donnatella 0.2.0 released
A new version of donnatella, your GTK3 file manager, is available. A few things
have happened since the last push to branch next
(and obviously even more
since v0.1.1).
Let's have a go over the main changes; First of all, since the last push to
next
there were a few fixes & optimizations, as well as some
fixes/adjustements done regarding the latest GTK+ release (3.12.0), although
some dialogs (e.g. error messages, etc) might still not look too good, I'll have
to work on that.
Then, command terminal_add_tab()
got a new argument to specify the working
directory of the new (embedded) terminal. And in the same spirit, one can now
define the working directory when using provider exec.
This is done simply by prefixing the command line (works in all modes but
desktop file) with either WORKDIR=
or simply WD=
followed by the directory
to use, quoted if needed.
As a simple example of this, a couple new items in the tree's default context menu allow to "Open Terminal Here" (one as embedded terminal, the other as external one).
Changes since 0.1.1
Quick recap over the different changes since last version :
- New event "log" to process some log events in donna; Messages are sent on different occasions, e.g. loading/saving a treeview from/to a file, adding nodes to a register, dropping a register, etc See this post for more
- New source ":app" for statusbar, supporting messages from event "log"
- Command
tv_column_set_option()
: Fix setting "width" not working - treeview: Add option
default_save_location
- Add command
tv_set_columns()
to change which columns are visible - Command
tv_set_option()
&tv_column_set_option()
: Allow no value to set in-memory values to configuration - Command
tv_set_option()
: Fix setting "title" not always working - Add command
tv_save_to_config()
to save group of options (treeview options, columns (layout), column options, main/second sort order) to configuration at once. See this post for more - ColumnType time: Fix getting "42m ago" on inline editing
- Fix Enter/Esc not working to set/cancel on a few windows
- Provider exec: Add options for prefixes: you can define which prefixes to use for each supported modes, as well as the default mode. See this post for more
- treeview: Fix handling key before last key has been fully processed
- ColumnTypes: Place floating windows on center of parent
- Command
focus_set()
: Allow ":active" as treeview name - Add embedded terminal support (via XEMBED); See this post for more
- Provider exec: Add mode for embedded terminal
- Patterns: Add support of different modes: pattern, search, begin, end, case sensitive & case insensitive matches, and Perl-compatible regex. See this post for more
- list: Fix reload possibly not doing anything
- list: Add visual filters (commands
tv_{g,s}et_visual_filter
); See this post for more - treeview: status: Add
%f
for name of focused row - treeview: status: Add
%F
(current VF) and colors - treeview: status: Add
%h
/%H
for nb/size of hidden rows - treeview: status: "avhsF" now support an extra w/ recursion; See this post for more
- Command
tv_set_visual_filter()
: Add parameter toggle; and treat empty filter as if unspecified - Commands
config_set_{boolean,int,string}
: Return set value - Add commands
config_try_get_{boolean,int,string}
: Doesn't fail if option doesn't exist, but returns specified default - list: Fix status not refreshed after change of location
- treeview: status: Add tooltip support (
format_tooltip
) - ColumnType name: Add filtering by node type (See this post for more)
- list: Add option
vf_items_only
- Alias: Fix option
replacement_no_args
not working - Alias: Add options
include_space
&suffix
- Provider exec: Fix output possibly truncated
- Command
terminal_add_tab()
: Add param workdir - Provider exec: Add setting working directory on command line
- Add "Open Terminal Here/...in new window" in tree context menu
- Many other fixes & optimizations; see git log for details
Configuration updates
As you might know if you've read the posts about changes pushed in next
alongside changes in the code, were changes in the (default) configuration as
well. And since almost everything in donna is configurable, you might wanna use
an updated config as well.
There are, however, no automatic process for this. You can use your favorite tool to handle the merging, even do a 3-way merge using the original .conf file if you want.
And in case it might help, here are the changes done between 0.1.1 and 0.2.0 :
- diff --git a/misc/donnatella.conf b/misc/donnatella.conf
- index 57f69b1..b6b2a03 100644
- --- a/misc/donnatella.conf
- +++ b/misc/donnatella.conf
- @@ -5,7 +5,7 @@
- #
- [layouts]
- -std=paneH(!treeview:tree@230,treeview:list)
- +std=paneH(!treeview:tree@230,paneV(treeview:list@230,terminal:term))
- dp=paneH(!treeview:tree@230,paneV(treeview:foo,treeview:list))
- tm=paneV(paneH(!treeview:tree@230,paneV(treeview:list,treeview:list2))@300,!treeview:tm)
- @@ -38,6 +38,10 @@ prefix=~
- is_home_dir=true
- [donna/prefixes/]
- +prefix=:
- +replacement=exec::
- +
- +[donna/prefixes/]
- prefix=>
- replacement=exec:>
- @@ -61,10 +65,10 @@ replacement=command:
- # ALIASES
- [donna/aliases/g]
- -replacement=exec:>git
- +replacement=exec:!git
- [donna/aliases/m]
- -replacement=exec:>man
- +replacement=exec:!man
- [donna/aliases/f]
- replacement=exec:<find
- @@ -78,7 +82,7 @@ replacement=exec:<pacman -Qlq
- #
- [statusbar]
- -areas=tasks,active,keys,focus
- +areas=tasks,active,log,keys,focus
- [statusbar/tasks]
- source=:task
- @@ -87,8 +91,18 @@ expand=false
- [statusbar/active]
- source=:active
- -format=%v/%a files (%V) %N
- +expand=false
- +{% raw %}format=%{%s/}s%{no rows,1 row,%v rows}v (%{%S / }s%V)%{ %h hidden (%H)}h
- +{% endraw %}format_tooltip=%{Current VF: %F}F
- size_format=%R
- +colors:tree-st-colors=vf
- +foreground=blue
- +
- +[statusbar/log]
- +source=:app
- +format=%d
- +format_tooltip=donnatella v%v
- +timeout=5
- [statusbar/keys]
- source=:focused
- @@ -101,7 +115,7 @@ source=:focused
- format=%o %K
- width=100
- expand=false
- -key_modes_colors=true
- +colors:tree-st-colors=keys
- key_mode_select_background-rgba=rgba(0,42,200,0.8)
- key_mode_select_foreground=white
- @@ -155,12 +169,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>,terminal<terminal_nw>,-,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,23 +187,25 @@ 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
- select_highlight:highlight=column-underline
- focusing_click=true
- goto_item_set:tree-set=scroll,focus
- +vf_items_only=false
- history_max=100
- 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
- [defaults/lists/arrangement/color_filters/]
- -filter=*.tar.*|*.tgz|*.zip|*.rar
- +filter=|*.tar.*|*.tgz|*.zip|*.rar
- column=name
- foreground=green
- @@ -299,7 +316,7 @@ format_tooltip=%p (%o)
- color_user=green
- color_group=blue
- color_mixed=#00aaaa
- -sort=1
- +sort:sort-perms=myperms
- # COLUMNS
- @@ -335,7 +352,7 @@ title=Own
- width=70
- format=%V:%H
- format_tooltip=
- -sort=3
- +sort:sort-perms=user
- [defaults/lists/columns/desc]
- type:ct=text
- @@ -762,12 +779,51 @@ trigger=command:node_trigger(@ask_text(Enter FL to trigger))
- [key_modes/donna/key_slash]
- trigger=command:tv_start_interactive_search (%o)
- +# Visual Filters
- +[key_modes/donna/key_f]
- +type:key=spec
- +spec:spec=lower,upper
- +trigger=command:tv_set_visual_filter (%o, @config_get_string (filters/%k), 1)
- +[key_modes/donna/key_F]
- +type:key=spec
- +spec:spec=lower,upper
- +trigger=command:tv_set_visual_filter (%o, @config_set_string (filters/%k, @ask_text (Enter filter %k,,@config_try_get_string (filters/%k, @tv_get_visual_filter (%o)))), 1)
- +
- +# VF: by age
- +[key_modes/donna/key_ampersand]
- +type:key=combine
- +spec:spec=custom
- +custom_chars=HMSdmVY
- +combine=age_unit
- +[key_modes/donna/key_q]
- +combine=age_unit
- +trigger=command:tv_set_visual_filter (%o, time:A%m%c)
- +[key_modes/donna/key_Q]
- +combine=age_unit
- +trigger=command:tv_set_visual_filter (%o, time:A<=%m%c)
- +
- +# VF: by size
- +[key_modes/donna/key_less]
- +trigger=command:tv_set_visual_filter (%o, size:<=%mM)
- +[key_modes/donna/key_greater]
- +trigger=command:tv_set_visual_filter (%o, size:>=%mM)
- +
- +
- +# F2 to rename
- +[key_modes/donna/key_F2]
- +trigger=command:tv_column_edit (%o, %n, name)
- # F6 to edit focused item (vim in a terminal)
- [key_modes/donna/key_F6]
- -trigger=exec:>vim %:n
- +trigger=exec:!vim %:n
- # F9 to view focused item (less in a terminal)
- [key_modes/donna/key_F9]
- -trigger=exec:>less %:n
- +trigger=exec:!less %:n
- +
- +# Terminals
- +[key_modes/donna/key_t]
- +trigger=exec:!bash
- +[key_modes/donna/key_T]
- +trigger=exec:>bash
- # selection stuff -- note that this required a patched GTK (to invert range)
- [key_modes/donna/key_v]
- @@ -897,6 +953,17 @@ trigger=command:tv_save_tree_file (%o, %o, all)
- name=Save Tree As...
- trigger=command:tv_save_tree_file (%o, @ask_text (Save Tree As...,Enter the name of the file), all)
- +[context_menus/tree_views/terminal]
- +name=Open Terminal Here
- +icon=terminal
- +is_sensitive=has_ref
- +trigger=exec:!WORKDIR=%:n bash
- +
- +[context_menus/tree_views/terminal_nw]
- +name=...In New Window
- +is_sensitive=has_ref
- +trigger=>WD=%:n bash
- +
- [context_menus/tree_views/tree_visuals]
- type:context-type=empty
- is_sensitive=has_ref
- @@ -909,6 +976,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 +1034,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]
- @@ -1088,7 +1163,33 @@ not_active_list=true
- #
- [providers/exec]
- -terminal=urxvt -hold -e
- +default_mode:exec-mode=exec
- +prefix_exec=&
- +prefix_exec_and_wait=:
- +prefix_terminal=>
- +prefix_embedded_terminal=!
- +prefix_parse_output=<
- +prefix_desktop_file==
- +[providers/exec/terminal]
- +cmdline=urxvt -e
- +[providers/exec/terminal/]
- +prefix=>
- +cmdline=urxvt -hold -e
- +[providers/exec/embedded_terminal]
- +terminal=term
- +[providers/exec/embedded_terminal/]
- +prefix=!
- +terminal=term
- +terminal_cmdline=:hold
- +
- +
- +#
- +# TERMINALS
- +#
- +
- +[terminals/term]
- +cmdline=urxvt -embed %w -e
- +cmdline_hold=urxvt -embed %w -hold -e
- #
- @@ -1100,4 +1201,25 @@ node=config:/
- box=box-orange
- +#
- +# FILTERS
- +#
- +
- +[filters]
- +# used to unset current VF (via ff)
- +f=
- +# today
- +t=time:A0
- +# yesterday
- +y=time:A1d
- +# this week
- +w=time:A0V
- +# videos
- +v=desc:* video
- +# images
- +i=desc:* image
- +# archives
- +a=desc:* archive*
- +
- +
- # EOF
Downloads and whatnot
See donnatella for longer descriptions & all the links you should need.
And of course, as always, new bug reports, suggestions or any other form of constructive criticism is very much welcome.