From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Emanuel Berg via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: Swap windows in a frame Date: Mon, 10 Jan 2022 14:51:23 +0100 Message-ID: <87pmozsnqc.fsf@zoho.eu> References: <87y23ojlog.fsf@codeisgreat.org> <87o84kjebn.fsf@codeisgreat.org> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31627"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:qSRhXvREWDO2dKzWw1MFeUcr9uI= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Mon Jan 10 15:08:42 2022 Return-path: Envelope-to: geh-help-gnu-emacs@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 1n6vLl-0007zW-Ln for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 10 Jan 2022 15:08:41 +0100 Original-Received: from localhost ([::1]:50226 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1n6vLj-00005C-Is for geh-help-gnu-emacs@m.gmane-mx.org; Mon, 10 Jan 2022 09:08:39 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:40222) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6v5B-00013Y-Ty for help-gnu-emacs@gnu.org; Mon, 10 Jan 2022 08:51:34 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:37838) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1n6v5A-0008CK-D4 for help-gnu-emacs@gnu.org; Mon, 10 Jan 2022 08:51:33 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1n6v58-0005j1-QX for help-gnu-emacs@gnu.org; Mon, 10 Jan 2022 14:51:30 +0100 X-Injected-Via-Gmane: http://gmane.org/ Mail-Followup-To: help-gnu-emacs@gnu.org Mail-Copies-To: never Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.248, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:135179 Archived-At: Pankaj Jangid wrote: >>> I have two windows in a frame. Is there a command to swap >>> their location? >> >> I use buffer-up-swap (and buffer-{down,right,left}-swap) from the >> windcycle[1] package. >> >> [1]: https://github.com/troydm/emacs-stuff/blob/master/windcycle.el > > Nice readymade package. Thanks for sharing. (defun swap-windows () (interactive) (let ((buffer (current-buffer))) (other-window 1) (switch-to-buffer-other-window (current-buffer)) (other-window 1) (switch-to-buffer buffer) )) I think that works by itself but if not the whole source is ... ;;; -*- lexical-binding: t -*- ;;; ;;; this file: ;;; http://user.it.uu.se/~embe8573/emacs-init/window-incal.el ;;; https://dataswamp.org/~incal/emacs-init/window-incal.el ;; same window for new things (setq display-buffer-alist '((".*" display-buffer-same-window))) (defun beginning-of-line-at-top () "Position point at `beginning-of-line'. Then put that line at the top of the window." (beginning-of-line) (recenter 0) ) (defun doodle-buffer () (interactive) (let ((doodle-buffer "~/ooa/doodle.el")) (if (one-window-p) (progn (split-window-below) (other-window 1) (find-file doodle-buffer) ) (find-file doodle-buffer) ))) ;; the two-window solution (defun other-window-or-split () (interactive) (when (one-window-p) (split-window-below) ) (other-window 1) ) (defun swap-windows () (interactive) (let ((buffer (current-buffer))) (other-window 1) (switch-to-buffer-other-window (current-buffer)) (other-window 1) (switch-to-buffer buffer) )) ;; window size shorthands (defun window-increase-size (lines) (interactive "p") (window-resize nil lines) ) ; the current WINDOW (defun window-decrease-size (lines) (interactive "p") (window-resize nil (* -1 lines) )) (provide 'window-incal) -- underground experts united https://dataswamp.org/~incal