new-term

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | LICENSE

commit 812caeb3143a2c4e413c060425518a28df17b2ab
Author: Erik Oosting <crazazy@tilde.cafe>
Date:   Tue, 20 Sep 2022 10:00:35 +0200

initial commit

Diffstat:
ALICENSE | 21+++++++++++++++++++++
Anew-term.el | 35+++++++++++++++++++++++++++++++++++
2 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/LICENSE b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Erik Oosting + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/new-term.el b/new-term.el @@ -0,0 +1,35 @@ +;;; new-term.el --- A way to spawn multiple emacs terminals -*- lexical-binding: t; -*- + +;; Copyright © 2022 Erik Oosting + +;; Author: Erik Oosting <crazazy@tilde.cafe> +;; Keywords: application-launcher, misc +;; URL: https://crazazy.tilde.cafe/emenu.git/log.html + +;;; License: +;; This file comes with the MIT license, and without any warranty whatsoever +;; You can do with this stuff whatever you want to, but just remember +;; to put me in the footnote :D. Would be nice at least + +;;; Commentary: +;; A simple way to have multiple terminals in emacs. just type "M-x new-term" +;; to start a new session + +;;; Code: + +;;;###autoload +(defun new-term (program) + "start a new terminal emulator in a new buffer" + (interactive (list (read-from-minibuffer "Run program: " + (or explicit-shell-file-name + (getenv "ESHELL") + shell-file-name)))) + (let* ((term-list (seq-filter + (lambda (s) (string-match-p "terminal" (buffer-name s))) + (buffer-list))) + (term-num (number-to-string (length term-list)))) + (set-buffer (make-term (concat "terminal-" term-num) program)) + (term-mode) + (term-char-mode) + (switch-to-buffer (concat "*terminal-" term-num "*")))) +;;; new-term.el ends here