From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Psionic K Newsgroups: gmane.emacs.devel Subject: Introducing Master of Ceremonies, a package for presentations Date: Wed, 4 Dec 2024 01:01:09 +0900 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="9454"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Psionic K To: Emacs developers Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Tue Dec 03 17:02:17 2024 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 1tIVLt-0002LP-BX for ged-emacs-devel@m.gmane-mx.org; Tue, 03 Dec 2024 17:02:17 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tIVL4-0006QX-C6; Tue, 03 Dec 2024 11:01:26 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1tIVL2-0006Q5-A5 for emacs-devel@gnu.org; Tue, 03 Dec 2024 11:01:24 -0500 Original-Received: from mail-yb1-xb30.google.com ([2607:f8b0:4864:20::b30]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tIVL0-00042O-I7 for emacs-devel@gnu.org; Tue, 03 Dec 2024 11:01:24 -0500 Original-Received: by mail-yb1-xb30.google.com with SMTP id 3f1490d57ef6-e398823d6aaso3697550276.0 for ; Tue, 03 Dec 2024 08:01:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=positron.solutions; s=google; t=1733241680; x=1733846480; darn=gnu.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=3epZL6y2s1aJ1lb+aBJUJ51MDdFd1oFlKlIKqrrDc2A=; b=DbsUPTnK+wVwIv0vkDnoIK54zD2Tk5I6wc1QCw4ElCQu93yV25DPCBouWzsbA3DQgi tCvAZEu232I4ZJjc8R6EONJvCGPdZNjjPxMlhgXC+pN8uY5mZMDRlro3deJWEAVjAZ2H AcTQTRzXIQbbtsxWe5nfp5xSBBypclrDycI2Xw6nSULkp3PWII9SzaPh0qWX+S+HDL+6 jrNsg/n3AQcBhvHfvR9lhOWpTzcIDq+5bcLQJFOYnj1D84wpgTqnhX3GRYacLEjWxvTq Ya2U783oIoLNuj+cQ5J3ZrB6o9stR/TNW3yCNqP25KRG4+HEkf9eui+3GkAT/K+wHoYc hbwA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1733241680; x=1733846480; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=3epZL6y2s1aJ1lb+aBJUJ51MDdFd1oFlKlIKqrrDc2A=; b=ndQHyg+8hLnGHISrFTgOipmKEqZ+pTzyLHfk+yNc4bQb44c36QMmm57QE9dTS5o0DQ mGJmg+2p8D2vqeLHE8+pIyabxPtsXe26zFE7FtT4/C6x8osk57nwsbebXvn2Fp/NK9RU 9N698MRAXCW+TwFkwPGq72HwuBJzBbzdPpZXGCOJfRVfkCjgzKf+NB0RlmrjNV4FiWpR 9OBQcPckiEumZ9l/00YiyM5urP52xc5w3F5EH65lincuOOPNj3e9iooHl2Jp6kgD6Ulp jaibVT5Wo1IzHmGEvzayPSr4TKnFZFaJtJT4KtcKACAE6uukXL+pNJCBE2QunxnAuLo+ oCDw== X-Gm-Message-State: AOJu0YxoLBuYQZ8lMhmg+HKTpkgR8uATCL1nWk1M3Cn2ZRDIXIJH79Cq kVwkKpeXK2UdYBsmgMQ6Or3pgJYvgnoTvWfl0cd1OWaBcXNDASuv/txLOX7SY/CVoFEt58BsPWF IzDy8ZBrJEoQfHFMzw9t3exf//n6mmOlcVPZVD05ehNJsBLIxG4o= X-Gm-Gg: ASbGncs/n5dQSAxZAcqMtJ6cgAo/ahuuEVej5WnyHraXGbbGxhIy7+oNt4cBJWKZ3AO PgXSqPitAb/6uP1vSQI/VwBBOx+YddpTC/Q== X-Google-Smtp-Source: AGHT+IFyTOIDxuKl2zJsDVnQNnsdhqT6k3D4ZS/Rr1J32xw/XGqe1cb9v7hgTtqZNSu92U2Dc5aLFRYn0plKkzpAgso= X-Received: by 2002:a25:c104:0:b0:e38:86ea:eff8 with SMTP id 3f1490d57ef6-e3971426a43mr20642714276.0.1733241680046; Tue, 03 Dec 2024 08:01:20 -0800 (PST) Received-SPF: pass client-ip=2607:f8b0:4864:20::b30; envelope-from=exec@positron.solutions; helo=mail-yb1-xb30.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 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-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:325992 Archived-At: I use this package for making videos and presentations. It's almost ready for archives. https://github.com/positron-solutions/master-of-ceremonies https://github.com/positron-solutions/master-of-ceremonies.git `mc-focus' is one of the most useful commands. Select a region, call it, and that region will be displayed full screen with appropriate scaling. You can highlight multiple regions by selecting and using the "l" key. The "." key will activate a "subtle" cursor that goes away after a short number of blinks to assist highlighting without needing to hide the cursor all the time. There is a magit-style interface for learning the rest of the modal bindings, available under "h". The `mc-kill-ring-save` command will save an expression that can play back this display, making it rather easy to step through sequences of highlights. This produces high quality illustrations of code that line up well with explanation. When combined with dslide (on non-GNU ELPA and MELPA), the two packages can create effective presentations about code that are missing almost nothing from dedicated presentation software. Many of the tools for accomplishing this were valuable as standalone modes for presentation - `mc-quiet-mode' suppresses messages - `mc-subtle-cursor-mode' is great for using the cursor like a transient laser pointer - `mc-face-remap' will remap many faces from presets. I use this to tweak faces for MC Focus screenshots. - `mc-fixed-frame' sets to preset resolutions for recording videos and corrects the size when minor actions like resizing buffer text change the size of the frame Bindings for built-in Emacs behaviors like hiding the mode line are provided. I only need to add support for modifying the transient to allow myself to add keycast toggling. These tools have been combined into a one-stop interface, `mc-dispatch'. The core code for `mc-focus' acquired numerous behaviors I was using personally and so the code is rather off. It needs to be re-architectured for smoothly supporting rectangle selection, whitespace trimming, and playback. I have experimented with translating overlays from the source into the text properties of the display. Numerous things work in numerous settings, so I have made it available ahead of publishing on package archives. Emacs conf participants may find it of use for some last minute embellishment. PRs and issues will be attended to.