;;; 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