> With "moving" I really meant "copying" or "cloning" with the > additional possibility of deleting the original. So there should be > only one question: Can we simply make a copy of a tab using its window > state (window configurations can't be used because we cannot clone > windows). If not, what is the problem? Implemented in the patch below that deletes the window-configuration from the copied tab, but leaves its window-state. >> An additional question to consider is how to interactively select >> an another frame: by frame name, or using other-frame with a numeric >> prefix argument? > > How is this question related to tabs? Easier to implement than to explain :) The same patch uses its ARG the same way as it's used in 'other-frame' to find ARGth frame where to copy the tab. >> (push '("test1" . >> (display-buffer-reuse-window >> (reusable-frames . visible) >> (use-tabs . t))) >> display-buffer-alist) > > There is one thing I apparently do not understand yet: When you enable > 'tab-bar-mode' it is global Do you think we should have 'global-tab-bar-mode' for all frames, and 'tab-bar-mode' to enable/disable the tab-bar in every frame separately? > - that is any window ever shown on any frame is also in at least one > of that frame's tabs. Is that right? So what would 'use-tabs' mean > here when every window is in a tab already? These windows in tabs are in window-configurations and window-states. Now I installed tab-bar-get-buffer-tab that can be used in display-buffer-reuse-window to search the buffer in window-states of tabs when use-tabs is non-nil. >>> By default, a new tab starts with the current buffer that was current >>> before calling the command that adds a new tab. >>> >>> That's confusing, at least. >> >> Maybe this is better? >> >> By default, a new tab starts with the buffer that was current >> before calling the command that adds a new tab. > > The current buffer is IMHO a much too obscure object to consider here. > Don't you mean the buffer of the selected window? The manual refers to the default value of tab-bar-new-tab-choice with its docstring: If t, start a new tab with the current buffer, i.e. the buffer that was current before calling the command that adds a new tab (this is the same what `make-frame' does by default).