Emacs 시작 화면을 트윈 크로 만들기

11945 단어 대시보드Emacs
100분의 1초라도 emacs의 기동을 빨리 하려고 시도 착오하고 있는 한편, 기동할 때마다 진검색의 Scratch 화면과 향하고 있으면 기분도 어두워져 온다. 적어도 초기 화면 정도는, 핫 하는 것과 같이 하고 싶다…라고 하는 것으로, dashbord.el를 도입해 보았다.



dashboard.el 넣기


M-x package install dashbord.el

설정은 다음과 같습니다.
제 경우에는 MacOS와 Linux 모두에서 구성 파일을 공유하므로 Tile 설정은 두 가지를 작성합니다.
(use-package dashboard
  :bind (("<f10>" . open-dashboard)
     :map dashboard-mode-map
     ("c" . browse-calendar)
     ("w" . browse-tenki)
     ("m" . browse-gmail)
     ("t" . browse-tweetdeck)
     ("s" . browse-slack)
     ("h" . browse-homepage)
     ("l" . line-app-open)
     ("<f10>" . quit-dashboard))
  :hook (after-init . dashboard-setup-startup-hook)
  :config
  ;; Set the title
  (when (eq system-type 'darwin)
    (setq dashboard-banner-logo-title
      (concat "GNU Emacs " emacs-version " kernel "
          (car (split-string (shell-command-to-string "uname -r")))  " x86_64 Mac OS X "
          (car(split-string (shell-command-to-string "sw_vers -productVersion") "-")))))
  (when (eq system-type 'gnu/linux)
    (setq dashboard-banner-logo-title
      (concat "GNU Emacs " emacs-version " kernel "
          (car (split-string (shell-command-to-string "uname -r")))  " x86_64 Debian GNU/Linux "
          (car (split-string (shell-command-to-string "cat /etc/debian_version") "_")))))
  ;; Set the banner
  (setq dashboard-startup-banner "~/Dropbox/emacs.d/emacs.png")

  ;; Use icons
  (setq dashboard-set-heading-icons t)
  (setq dashboard-set-file-icons t)

  ;; Set the footer
  (setq dashboard-footer "Always be joyful. Never stop praying. Be thankful in all circumstances!")
  (setq dashboard-footer-icon
    (all-the-icons-octicon "dashboard" :height 1.1 :v-adjust -0.05 :face 'font-lock-keyword-face))
  (when (eq system-type 'darwin)
    (setq dashboard-items '((recents  . 10))))
  (when (eq system-type 'gnu/linux)
    (setq dashboard-items '((recents  . 8))))

  ;; Insert custom item
  (defun dashboard-insert-custom (list-size)
    (insert (if (display-graphic-p)
        (all-the-icons-faicon "google" :height 1.2 :v-adjust -0.05 :face 'error) " "))
    (insert "   Calendar: (c)    Weather: (w)    Mail: (m)    Twitter: (t)    LINE: (l)    Slack: (s)    GH: (h)"))
  (add-to-list 'dashboard-item-generators  '(custom . dashboard-insert-custom))
  (add-to-list 'dashboard-items '(custom) t)

  (defun open-dashboard ()
    "Open the *dashboard* buffer and jump to the first widget."
    (interactive)
    (delete-other-windows)
    ;; Refresh dashboard buffer
    (if (get-buffer dashboard-buffer-name)
    (kill-buffer dashboard-buffer-name))
    (dashboard-insert-startupify-lists)
    (switch-to-buffer dashboard-buffer-name)
    ;; Jump to the first section
    (goto-char (point-min))
    (dashboard-goto-recent-files))

  (defun quit-dashboard ()
    "Quit dashboard window."
    (interactive)
    (quit-window t)
    (when (and dashboard-recover-layout-p
           (bound-and-true-p winner-mode))
      (winner-undo)
      (setq dashboard-recover-layout-p nil)))

  (defun dashboard-goto-recent-files ()
    "Go to recent files."
    (interactive)
    (funcall (local-key-binding "r"))))


  • Recent list는 Tab(Shift+Tab) 키를 눌러서 선택할 수 있다.
  • F10에서 Dashboard의 Open/quit을 toggle합니다. Quit하면 한 번 전의 Buffer로 전환되어 Open시에는 del-other-windows 후 Dashboard 화면을 Refresh합니다.
  • Dashboard 화면에서 즐겨찾는 웹 페이지를 한 번의 키로 엽니다. (hydra 사용)
  • Banner의 emacs.png는 자작입니다. 필요한 분은 부디 사용해 주세요.



  • PS:
    2019.09.11 Hydra에서 Quick Menu 기능을 붙였습니다.
    2019.08.30 icon 대응으로 퀵 메뉴 기능을 추가했습니다.

    좋은 웹페이지 즐겨찾기