I have a working implementation of this at http://repo.or.cz/w/conkeror/arlinius.git
To use it, bind keys to buffer-move-forward and buffer-move-backward.
Please test and comment.
From the commit log for commit 5559d7e138f24155ea1575e4779ebff835520d2d:
added support for re-ordering buffers and tabs
Tabs no longer have closures on their buffers. Instead, a tab's
buffer is now stored as a property of the tab. Also fixed some
whitespace in tab.addEventListener calls.
The buffer container now has a buffer_ordering list which
specifies the order of the buffers used for buffer_next, rather
than using the order of the buffer vbox elements in the
buffer-container deck directly.
A new function, buffer_move_forward, has been added. This
function moves a buffer forward in its window's buffer
container. The interactive commands buffer-move-forward and
buffer-move-backward have also been added. There is a new hook,
move_buffer_hook, which is run every time the order of buffers is
changed. Its argument is the buffer that was moved.
new-tabs.js uses move_buffer_hook to update the index numbers
shown on the tabs as well as the ordering of the tabs. Tab
ordering is controlled by setting the ordinal attribute on the
tab. |