summaryrefslogtreecommitdiff
path: root/emacs/inits/NO-07-tinymenu.el
blob: 1e734ab8711c20b83ab5d3f46c799986c59de98e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
;; Time-stamp: <2020-08-12 22:15:01 (user@hobbies)>

(use-package tiny-menu
  :ensure t)

;; (eval-after-load "tiny-menu"
;;   (progn
;;     (defun hexl-input-smart ()
;;       (hexl-insert-char (0xc-string-to-number (read-string "Input: ")) 1))

;;     (setq tiny-menu-forever t
;;           tiny-menu-items '(("hexl-menu"
;;                              ("hexl"
;;                               ((?i "Insert" hexl-input-smart)
;;                                (?b "Byte" hexl-forward-char)
;;                                (?e "bytE" hexl-backward-char)
;;                                (?s "Short" hexl-forward-short)
;;                                (?t "shorT" hexl-backward-short))))
;;                             ))))

;; (add-hook 'hexl-mode-hook
;;           (lambda ()
;;             (require '0xc)
;;             (require 'tiny-menu)
;;             (define-key hexl-mode-map (kbd "M-l")
;;               (lambda () (interactive) (tiny-menu "hexl-menu")))))


(use-package pulseaudio-control
  :ensure t
  :bind ("C-x /" . (lambda () (interactive) (tiny-menu "pulseaudio-control-menu")))
  :config
  (defun pulseaudio-control-tinymenu-header ()
    (let ((words (split-string (pulseaudio-control--get-current-volume)))
          (mute (if (string-equal "yes" (cadr (split-string (pulseaudio-control--get-current-mute))))
                    "[mute]" "")))
      (concat "PulseAudio " mute "(" (nth 4 words) " / "  (nth 11 words) ")")))
  (add-to-list 'tiny-menu-items
               '("pulseaudio-control-menu"
                 (pulseaudio-control-tinymenu-header
                  ((?+ "Vol+" pulseaudio-control-increase-volume "pulseaudio-control-menu")
                   (?- "Vol-" pulseaudio-control-decrease-volume "pulseaudio-control-menu")
                   (?? "Vol?" pulseaudio-control-display-volume)
                   (?m "Mute" pulseaudio-control-toggle-current-sink-mute)
                   (?e "Mute sink" pulseaudio-control-toggle-sink-mute-by-name)
                   (?d "Use @DEF" pulseaudio-control-toggle-use-of-default-sink "pulseaudio-control-menu")
                   (?n "Sink" pulseaudio-control-select-sink-by-name "pulseaudio-control-menu")
                   (?p "Vol%" pulseaudio-control-set-volume))))))