dot-emacs/packages/tab-bar-helpers.el

75 lines
1.9 KiB
EmacsLisp
Raw Normal View History

2022-02-10 23:18:47 +01:00
;;; tab-bar-helpers.el -*- lexical-binding: t; -*-
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-new-tab (name func)
(when (eq nil tab-bar-mode)
(tab-bar-mode))
(tab-bar-new-tab)
(tab-bar-rename-tab name)
2022-02-10 23:18:47 +01:00
(funcall func))
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-tab-exists (name)
(member name
(mapcar #'(lambda (tab) (alist-get 'name tab))
(tab-bar-tabs))))
(defun mmk2410/tab-bar-switch-or-create (name func)
2022-02-12 22:51:26 +01:00
(if (mmk2410/tab-bar-tab-exists name)
2022-02-10 23:11:20 +01:00
(tab-bar-switch-to-tab name)
2022-02-12 22:51:26 +01:00
(mmk2410/tab-bar-new-tab name func)))
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-run-elfeed ()
(interactive)
(mmk2410/tab-bar-switch-or-create "RSS" #'elfeed))
(defun mmk2410/tab-bar-run-mail ()
(interactive)
2022-02-10 23:18:47 +01:00
(mmk2410/tab-bar-switch-or-create
"Mail"
#'(lambda ()
(mu4e-context-switch :name "Private")
(mu4e))))
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-run-irc ()
(interactive)
2022-02-10 23:18:47 +01:00
(mmk2410/tab-bar-switch-or-create
"IRC"
#'(lambda ()
(mmk2410/erc-connect)
(sit-for 1)
(switch-to-buffer "Libera.Chat"))))
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-run-agenda ()
(interactive)
2022-02-10 23:18:47 +01:00
(mmk2410/tab-bar-switch-or-create
"Agenda"
#'(lambda ()
(org-agenda nil "a"))))
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-run-journal ()
(interactive)
2022-02-10 23:18:47 +01:00
(mmk2410/tab-bar-switch-or-create
"Journal"
#'org-journal-open-current-journal-file))
2022-02-10 23:11:20 +01:00
(defun mmk2410/tab-bar-run-projects ()
(interactive)
2022-02-10 23:18:47 +01:00
(mmk2410/tab-bar-switch-or-create
"Projects"
#'(lambda ()
(find-file "~/org/work.projects.org"))))
2022-02-10 23:11:20 +01:00
(defhydra mmk2410/tab-bar (:color teal)
"My tab-bar helpers"
("a" mmk2410/tab-bar-run-agenda "Agenda")
("e" mmk2410/tab-bar-run-elfeed "RSS (Elfeed)")
("i" mmk2410/tab-bar-run-irc "IRC (erc)")
("j" mmk2410/tab-bar-run-journal "Journal")
("m" mmk2410/tab-bar-run-mail "Mail")
("p" mmk2410/tab-bar-run-projects "Projects"))
(global-set-key (kbd "C-c f") 'mmk2410/tab-bar/body)
(provide mmk2410/tab-bar-helpers)
2022-02-10 23:18:47 +01:00
;;; tab-bar-helpers.el ends here