From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED.blaine.gmane.org!not-for-mail From: Gregor Zattler Newsgroups: gmane.emacs.bugs Subject: bug#38624: 27.0.50; [wish] tab navigation via keyboard should mimic buffer navigation Date: Wed, 18 Dec 2019 00:53:24 +0100 Message-ID: <877e2ucxvv.fsf@len.workgroup> References: <874ky1twb4.fsf@len.workgroup> <87mubt5gtt.fsf@mail.linkov.net> <87y2vcmy8q.fsf@len.workgroup> <87immgjd2p.fsf@mail.linkov.net> Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Injection-Info: blaine.gmane.org; posting-host="blaine.gmane.org:195.159.176.226"; logging-data="196904"; mail-complaints-to="usenet@blaine.gmane.org" Cc: 38624@debbugs.gnu.org To: Juri Linkov Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Wed Dec 18 00:54:29 2019 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([209.51.188.17]) by blaine.gmane.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.89) (envelope-from ) id 1ihMfd-000p6p-AU for geb-bug-gnu-emacs@m.gmane.org; Wed, 18 Dec 2019 00:54:29 +0100 Original-Received: from localhost ([::1]:47406 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ihMfb-0006EZ-RV for geb-bug-gnu-emacs@m.gmane.org; Tue, 17 Dec 2019 18:54:28 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:57774) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ihMfE-0006EP-Pm for bug-gnu-emacs@gnu.org; Tue, 17 Dec 2019 18:54:06 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ihMfC-0004ZL-2T for bug-gnu-emacs@gnu.org; Tue, 17 Dec 2019 18:54:03 -0500 Original-Received: from debbugs.gnu.org ([209.51.188.43]:36547) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ihMfB-0004Yz-R0 for bug-gnu-emacs@gnu.org; Tue, 17 Dec 2019 18:54:02 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ihMfB-0008BZ-Pj for bug-gnu-emacs@gnu.org; Tue, 17 Dec 2019 18:54:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Gregor Zattler Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Tue, 17 Dec 2019 23:54:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 38624 X-GNU-PR-Package: emacs Original-Received: via spool by 38624-submit@debbugs.gnu.org id=B38624.157662682131380 (code B ref 38624); Tue, 17 Dec 2019 23:54:01 +0000 Original-Received: (at 38624) by debbugs.gnu.org; 17 Dec 2019 23:53:41 +0000 Original-Received: from localhost ([127.0.0.1]:42520 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ihMeq-0008A1-T5 for submit@debbugs.gnu.org; Tue, 17 Dec 2019 18:53:41 -0500 Original-Received: from mout.gmx.net ([212.227.15.19]:57505) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ihMeo-00089S-NH for 38624@debbugs.gnu.org; Tue, 17 Dec 2019 18:53:39 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1576626809; bh=+3NZCm3pNl4u2saXvYEvBuKP5ZY9YA4RtWd8GMRFvpk=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date; b=j36Cls0IolsraJBBXN8eHeL1soX81Hu+z2pVqgTN3z+0GjI0boxUhh7hAsRNlWTmn GcAxDyAI0Gao6Pkjf3KRySUZ1BgcpChTvW5TcjqjTDgTL5wHfJN35qRmmfPHxGETnR +/OIu23ZduuNn05UbE0k4wXwE/cYYSrHFZ+quxk4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Original-Received: from len.workgroup ([84.185.108.19]) by mail.gmx.com (mrgmx005 [212.227.17.190]) with ESMTPSA (Nemesis) id 1N2E1M-1hhFLC3gI2-013aUs; Wed, 18 Dec 2019 00:53:28 +0100 In-Reply-To: <87immgjd2p.fsf@mail.linkov.net> X-Provags-ID: V03:K1:NexbltFm1ARbEgLf+WZ3A6FvsmBziNlHH89fnd8nBj7jax2YvTc G+LIAHTzzMVzr9qwnSyXNuyLBsC6dEeNpxV/xYfd9STcZr9CYnkNMBH6lZpEgS2I/Rp6/E6 TINsXgRbMDasMK0k+BVMUn9FaxBtyiUKLe+yc+RKEz/lEMUHvkKy5kvqZVtz7v3oIiQ/CI7 32QsSimkXswXqcKO082pw== X-UI-Out-Filterresults: notjunk:1;V03:K0:OImYKx8Ogm0=:0RGgLSYf/S7adnuRsmOoJj cdkgK7cPsNEhPfkw2MLQlJ6b2jCmR7+0Ott7/HiJaMeIoHdOjvREQub7RFZohcOtN6ZFwNny+ +PmYKOiD3MpSf+bDze8SYkVjqhRVFGAhKGijpdsnO7H7s75nyYUu85kq/giZqvbBfzmr9l/l7 QgQnOcl7V/B/vX3I28oyLwVp9mCi97m6eQ5vfMEWcZKB9/sJBa+V2bjL0F2et9e07X4ZlCpMA 7KaurWRmpNMUzqIX/ANah2tiRpD8b5IQtAk1qm6KYSW69Rv1TAYwUDA10dnUI6Uh8IGk2F0F7 qTehE7QDJT+sum8pdNc5VQ60jproICTJSPUWNBRbKSov58aTd6fMO8vQMXFigB8InQ9YaMzeo Z0HdmCm/DS6BowEDiyelLmznP+91YYUxIbgSAEI+RCR5afyqk3/XXRtnnSItsErF05r4u189B Gclh11qfcoMPze4wzNM5pNx7ILO86WktPnkPVHjdfAZ4tmMmZ/4EW+aAEwHm5I8HZ7F7FgHSe MGDK20XYUFijfCQcKc+xGBRF023Aat2NkRWYXNOhwBaY4NFQsseuV+SvFfxBiVGwheye1UruY fZs3h8eAYK+SS5sl9Ho0JoxPvA1wNJU2WBvfR8AdxdSsacTwv59kN13mk7WLD2qUAjNoCZ4vM xrz1IkPqjcEHQrmkKBcBmMtfE2KMO3+bTxtmaATCseavnOuoYmNoX0dWuiGvk+iUYJJSbYdMt cH4pL0xOQUTdqGJQFhEDc5nhLaXuhB0Z+rPyoM3texNp69irLxQ66fsg91vgkRmMGn6eOr0I X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:173504 Archived-At: Hi Juri, * Juri Linkov [2019-12-16; 23:46]: >>> So you propose to bind it >>> to the key 'C-x t t'? This key is the most convenient to type, >>> so it should be used for the most frequently used tab command. >>> Do you think 'tab-bar-switch-to-tab' would be the most frequently >>> used command? >> >> I do not have used tabs much, but would assume the most frequent >> action would switching tabs. I modeled this key stroke after >> switch-to-buffer. And the other one (see below) after buffer-list. > > The key sequence for switching tabs doesn't need to be the easiest > to type, because after running it, the user still needs to type > the tab name to switch to, that requires more key strokes anyway. I would assume to use tab switching much more often than creation or deletion. Since one has to create a window configuration with many key strokes before using it, it seems natural to use them for a relative long time, hence the support in desktop session saving. And while one needs to type the name, this will be easier to type and to remember since the name will presumably a simple word without the need for modifier keys (e.g. "mail"). Perhaps switching by index is better -- for this I have to figure out how to use desktop-save-mode along with notmuch (for email). >>> Actually, tab-list was designed to not destroy the window configuratio= n. >>> Unlike ibuffer or list-buffers that split the window, tab-list can't d= o >>> the same. If tab-list will split the window, then after selecting >>> another tab in the list and later going back to the same tab, will >>> still display the window with tab-list, and the same window will be >>> presented in every tab that would be annoying. Thus tab-list >>> takes care to not break user's window configurations. >> >> Perhaps this window could be buried before switching tabs (see below). > > Maybe using quit-window before switching tabs, although this might > cause other problems. > > Another problem is what to do when the user uses the tab list to delete > the current window configuration (i.e. where the tab list is shown), > this might have unexpected effect. For me that would be the logical consequence from closing the window configuration. > Neither there is no "*Buffer List*" buffer in the list of buffers > displayed by 'list-buffers', nor there is no "*Ibuffer*" buffer in > the list of buffers displayed by 'ibuffer'. You're right and I never noticed this. > That's because they > don't allow killing the same buffer where the buffer list is shown. > Should the tab list allow deleting the tab where the tab list is shown? Yup. >>> Or do you want to use tab-list for other purposes, >>> not for selecting a tab from the list? >> >> I assumed that tab list shows a buffer for managing tabs. >> Create, delete, perhaps regroup them. And perhaps users would >> like to have a dedicated tab (leftmost?) for that. I personally >> will use this feater via keyboard and therefore it is not >> important for me to have a dedicated tab list tab. > > Thanks for your explanation, now it's clear what you expected from this, > so you want an ibuffer-like buffer for managing tabs. > > Currently tab-bar.el contains commands for switching tabs, > not for managing tabs like ibuffer manages buffers. > > Since current commands are designed to work like a so-called > "task switcher" that is used in window managers to switch windows, > tab-list was a misnomer. To reduce confusion I will rename > tab-list to tab-switcher in tab-bar.el. > > Then later will create a new ELPA package tab-list.el > that could be developed and used even after Emacs 27 is released, > so its development won't delay the pretest of Emacs 27. > > I expect many ibuffer-like features will be implemented in this package, > so it will have the same size as currently the whole tab-bar.el has. > > The tab-list.el package could display the tab list using outlines. > For example: > > - Frame 1 > - Tab 1.1 > - Buffer 1.1.1 Size Mode Filename > - Buffer 1.1.2 Size Mode Filename > - Tab 1.2 > - Buffer 1.2.1 Size Mode Filename > - Buffer 1.2.2 Size Mode Filename > - Buffer 1.2.3 Size Mode Filename > D - Frame 2 > D - Tab 2.1 > - Buffer 2.1.1 Size Mode Filename > D - Buffer 2.1.2 Size Mode Filename > - Tab 2.2 > *% - Buffer 2.2.1 Size Mode Filename > *% - Buffer 2.2.2 Size Mode Filename >>*% - Buffer 2.2.3 Size Mode Filename > > where typing > > RET on the frame line will select that frame; > RET on the tab line will switch to that tab; > RET on the buffer line will switch to that tab > and select window with that buffer; the last one seems especially interesting to me. > D x on the frame line will delete that frame; > D x on the tab line will close that tab; > D x on the buffer line will kill that buffer; > > C-k or M-w will put the tab into the kill-ring; > C-y would yank the killed tab to another frame > (when point is moved to another frame line) wow, sounds great. For now I play with desktop-save-mode Thanks for your answer, Gregor =2D- -... --- .-. . -.. ..--.. ...-.-