From bde550449375a9f5f6dbc652cce2e017de9df835 Mon Sep 17 00:00:00 2001 From: JSDurand Date: Wed, 12 Jan 2022 19:23:39 +0800 Subject: Use the package "keycast" Now I can conveniently display my key-bindings in the mode line. --- keycast-conf.el | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 keycast-conf.el (limited to 'keycast-conf.el') diff --git a/keycast-conf.el b/keycast-conf.el new file mode 100644 index 0000000..b71f9c9 --- /dev/null +++ b/keycast-conf.el @@ -0,0 +1,59 @@ +;;; keycast-conf.el --- Configuration of keycast mode -*- lexical-binding: t; -*- + +;; Copyright (C) 2022 李俊緯 + +;; Author: 李俊緯 +;; Keywords: emulations, help, tools + +;; This program is free software; you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;; Configuring the mode to my liking. + +;;; Code: + +;;; The original minor mode tries to insert an element to the +;;; `mode-line-format'. But my mode line format consists of one +;;; custom element only, so it is not going to work that way. Rather, +;;; I shall define my own minor mode to just skip this part. + +(autoload 'use-package "basic") + +(use-package "keycast" 'keycast) + +(require 'keycast) + +(setq keycast-separator-width 0) + +(setq keycast-substitute-alist + (list (list #'self-insert-command (string #x2e) "Typing..."))) + +(define-minor-mode durand-keycast-mode + "Show current command and its key binding in the mode line." + :global t + :group 'keycast + :lighter "K" + (cond + (durand-keycast-mode + (add-hook 'pre-command-hook #'keycast--update t)) + (keycast-log-mode) + ((remove-hook 'pre-command-hook #'keycast--update)))) + +(defvar durand-view-map) + +(define-key durand-view-map (vector ?k) #'durand-keycast-mode) + +(provide 'keycast-conf) +;;; keycast-conf.el ends here -- cgit v1.2.3-18-g5258