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: input methods for mathematical glyphs Date: Wed, 08 Dec 2021 19:43:32 +0100 Message-ID: <87a6hbx7hn.fsf@zoho.eu> References: <87czm76of1.fsf@t14.reltub.ca> <87ilvzx7z6.fsf@zoho.eu> Reply-To: Emanuel Berg Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="34061"; 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:AgNaoP9i5i7QhMxp4tfAHpp5XgQ= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Wed Dec 08 19:46:40 2021 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 1mv1xf-0008Yh-9W for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 08 Dec 2021 19:46:39 +0100 Original-Received: from localhost ([::1]:33594 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mv1xd-0005KN-Tm for geh-help-gnu-emacs@m.gmane-mx.org; Wed, 08 Dec 2021 13:46:37 -0500 Original-Received: from eggs.gnu.org ([209.51.188.92]:53398) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mv1up-0004JW-Mt for help-gnu-emacs@gnu.org; Wed, 08 Dec 2021 13:43:43 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]:41694) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mv1un-0005mH-O8 for help-gnu-emacs@gnu.org; Wed, 08 Dec 2021 13:43:42 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mv1ul-0004mK-UB for help-gnu-emacs@gnu.org; Wed, 08 Dec 2021 19:43:39 +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: -15 X-Spam_score: -1.6 X-Spam_bar: - X-Spam_report: (-1.6 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.25, 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:134897 Archived-At: > My second thought is a virtual keyboard and a shortcut to > enable it (say `C-h g' for "CHange to Greek" :)), that > keyboard will then take over the normal keyboard so if you > press 'd' a downcase delta will be inserted (and so on), and > either it will automatically go back to the normal keyboard > at that point after insertion, _or_ you'd have to do `C-h g' > again for it to return ... If you like this idea, it can be done easily (I think) based on this: ;;; caps-back.el --- one-keystroke word pre-capitalizer -*- lexical-binding: t -*- ;;; ;;; Commentary: ;;; ;;; Author: Emanuel Berg (incal) ;;; Created: 2021-05-23 ;;; Keywords: caps lock key ;;; License: GPL3+ ;;; URL: https://dataswamp.org/~incal/emacs-init/caps-back.el ;;; Version: 2.0.0 ;;; ;;; This minor mode capitalizes the entire next word that is ;;; typed, at the same time as it is typed, then quietly ;;; disables itself at the word boundary. ;;; ;;; For this to work efficiently, a short and close keystroke, ;;; optimally a single key, should be assigned to invoke the ;;; minor mode, which happens with the ;;; `toggle-caps-mode' function. ;;; ;;; Setup a shortcut like this: ;;; ;;; (global-set-key KEY #'toggle-caps-mode) ;;; ;;; Then, hit \\[toggle-caps-mode] and type one and only one ;;; WORD in caps. ;;; ;;; Code: (defun char-alphanum-or-dash (c) "True if C is a character, a number, or a dash." (or (eq c ?-) (member c '(?å ?Å ?ä ?Ä ?ö ?Ö)) (and (>= c ?1) (<= c ?9)) (and (>= c ?A) (<= c ?Z)) (and (>= c ?a) (<= c ?z)) )) (defun caps-mode-self-insert-command (n) "Insert the `last-command-event' char N times. Uppercase unless something else than an alphanum or a dash." (interactive "p") (let*((the-char last-command-event) (alphanum-or-dash (char-alphanum-or-dash the-char))) (if alphanum-or-dash (insert-char (upcase the-char) n) (caps-mode 0) (insert-char the-char n) ))) (defvar caps-mode-map (let ((map (make-keymap))) (substitute-key-definition #'self-insert-command #'caps-mode-self-insert-command map global-map) map) ) (define-minor-mode caps-mode "Caps on you." :init-value nil :lighter " Caps") (defun toggle-caps-mode () "Toggle Caps mode." (interactive) (caps-mode 'toggle) ) (provide 'caps-back) ;;; caps-back.el ends here -- underground experts united https://dataswamp.org/~incal