diff options
author | 2021-01-20 16:25:25 -0800 | |
---|---|---|
committer | 2021-01-20 16:33:44 -0800 | |
commit | 624b9916d7680278a96d7c638a6420bad1edec21 (patch) | |
tree | 3a3dbfa193e34670d553a8e9aa06b1c81274742d /oni-hydra.el | |
parent | 86afae7567f3dbafdb46835c5750620f8637eaa9 (diff) | |
download | emacs-config-624b9916d7680278a96d7c638a6420bad1edec21.tar.gz emacs-config-624b9916d7680278a96d7c638a6420bad1edec21.zip |
Add fallback for hydra display
In case posframe can’t be used, when working from a non-graphical client for
example, fall back to the default ‘lv’.
Diffstat (limited to 'oni-hydra.el')
-rw-r--r-- | oni-hydra.el | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/oni-hydra.el b/oni-hydra.el index 7960d4c..6c95ca8 100644 --- a/oni-hydra.el +++ b/oni-hydra.el @@ -4,7 +4,7 @@ ;; Author: Tom Willemse <tom@ryuslash.org> ;; Keywords: local -;; Version: 2020.0306.225035 +;; Version: 2021.0120.162336 ;; Package-Requires: (hydra posframe) ;; This program is free software; you can redistribute it and/or modify @@ -27,8 +27,26 @@ ;;; Code: (require 'hydra) - -(setq hydra-hint-display-type 'posframe) +(require 'lv) +(require 'posframe) + +(defun oni-hydra-custom-show (&rest args) + "Use ‘hydra-posframe-show’ when possible, fall back to ‘lv-message’. +ARGS are passed on without modification." + (if (posframe-workable-p) + (apply #'hydra-posframe-show args) + (apply #'lv-message args))) + +(defun oni-hydra-custom-hide (&rest args) + "Use ‘hydra-posframe-hide’ when possible, fall back to ‘lv-delete-window’. +ARGS are passed on without modification." + (if (posframe-workable-p) + (apply #'hydra-posframe-hide args) + (apply #'lv-delete-window args))) + +(add-to-list 'hydra-hint-display-alist '(custom oni-hydra-custom-show oni-hydra-custom-hide)) + +(setq hydra-hint-display-type 'custom) ;;;###autoload(with-eval-after-load 'hydra (require 'oni-hydra)) |