From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Theodor Thornhill Newsgroups: gmane.emacs.devel Subject: [ELPA] package proposal: fannypack.el Date: Tue, 22 Feb 2022 14:24:32 +0100 Message-ID: <871qzvqbjj.fsf@thornhill.no> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="13648"; mail-complaints-to="usenet@ciao.gmane.io" To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Feb 22 14:28:18 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nMVDE-0003KF-Bx for ged-emacs-devel@m.gmane-mx.org; Tue, 22 Feb 2022 14:28:16 +0100 Original-Received: from localhost ([::1]:36180 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1nMVDD-00069G-2l for ged-emacs-devel@m.gmane-mx.org; Tue, 22 Feb 2022 08:28:15 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:47308) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMV9o-0003vN-Vt for emacs-devel@gnu.org; Tue, 22 Feb 2022 08:24:45 -0500 Original-Received: from out1.migadu.com ([91.121.223.63]:62320) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1nMV9k-0006Tz-1P for emacs-devel@gnu.org; Tue, 22 Feb 2022 08:24:44 -0500 X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thornhill.no; s=key1; t=1645536273; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type; bh=ImYpLJrppPoq3LTXYqOIGuzMUYBFptvB1/BYFXLFI2k=; b=X9+GTEGb4iirSlB6DE3ESjmdMaW1YPNCVJ31r1xI2bZ5EYOmic0Qp2jWM+7tM2bJrHorGf MOHaUUTyW3gsudmjerez2HnkCnWKIhKpwO4BdfpGbG5nWjaQntQzGjR4+5Jg9y+fvTbvoj jhKLP5Szyby2vjlWiVdwGjMMyCZBwGm2CWsqTtp4Vc+KqpHIlLliH/5ghNfmwBPKd/a9JU EsHl4O/BWneRbS7zkF74erBJW58wFDuCuFGHqlSrH9oth/c7L9BkTkd3x0bujc+DZl37f2 FQaGf6vd2MuNLlf8LJk0kOdUOtmPhIoeYCiZc6ZYAPm4LwgIw86CGEQovUpMdw== X-Migadu-Flow: FLOW_OUT X-Migadu-Auth-User: thornhill.no Received-SPF: pass client-ip=91.121.223.63; envelope-from=theo@thornhill.no; helo=out1.migadu.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:286595 Archived-At: Hi there! I've been using a small utility for some time that might be useful for others. It's called fannypack.el, and is a file management/file navigation helper. So, what does it do? When working on some feature, I usually checkout a branch, then start working. After a while, some files reveal themselves as more relevant to the ongoing work than others, and I want to be able to jump to them quickly, without them getting lost in the sea of buffers. In addition, I want it to be persisted, so that when I restart my emacs session, I still can jump to things quickly. This demotes the general switch-to-buffer mechanism to store the bulk of buffers, and the fannypack provides some clarity. When changing branches, or projects, the fannypacks are automatically updated to the relevant ones. So to sum it up: * Keep different subsets of project files easily accessible, delimited by branch * Automatically update what sets of files are shown * Persist the data between sessions The keybinds I use at the moment for this are: ``` (global-set-key (kbd "s-f") 'fannypack-pick) (global-set-key (kbd "s-k") 'fannypack-drop) (global-set-key (kbd "s-m") 'fannypack-place) (global-set-key (kbd "s-+") 'fannypack-promote) (global-set-key (kbd "s--") 'fannypack-demote) (global-set-key (kbd "s-n") 'fannypack-feeling-lucky) (global-set-key (kbd "s-d") 'fannypack-default-directory) ``` I'm not sure if this is wanted in ELPA or anywhere else, but I find it very useful, and others might too. Source can be found at https://git.sr.ht/~theo/fannypack All the best, Theodor Thornhil