Dashboard로 부팅 화면을 멋지게 만들자 ✨

9032 단어 Emacs
이 기사는 Emacs Advent Calendar 2018의 20 일째 기사입니다.

안녕하세요🤗
첫 Emacs Advent Calendar입니다.

오늘은 기동 화면에 다양한 정보를 할 수 있는 Emacs Dashboard를 소개합니다.

Emacs Dashboard란?



작년의 어드벤트 캘린더에서 @kiwanami 님으로부터도 소개 되었습니다만,
Emacs 기동시의 초기 화면에 로고나 Recent files, Bookmarks등 편리한 정보를 표시해 주는 패키지입니다.



GitHub - rakanalh/emacs-dashboard: An extensible emacs dashboard

패키지를 넣은 후, dashboard-items 에 값을 setq 해 주는 것으로, 다음의 정보를 표시할 수 있습니다.
  • Recent files
  • Bookmarks list
  • Recent projectile projects list (Depends on `projectile` package)
  • Org mode agenda
  • Register list
  • (setq dashboard-items '((recents  . 5)
                            (bookmarks . 5)
                            (projects . 5)
                            (agenda . 5)
                            (registers . 5)))
    

    아무 것도 설정하지 않으면 Recent files, Bookmarks list, Org mode Agenda가 표시됩니다.

    대시보드에 표시 정보를 추가하려면



    Dashboard에는 상기 이외에,
    표시 기능을 제공하고 dashboard-item-generators 목록에 추가하여 자신의 정보를 볼 수 있습니다.

    아래 샘플이됩니다.

    dashboard-item-editors
    ;; dashboard-item-generatorにエディタ名を表示する関数を追加する
    (add-to-list 'dashboard-item-generators
                 '(editor . (lambda (list-size)
                              (dashboard-insert-heading "Text Editors:")
                              (mapc (lambda (el) (insert "\n" el))
                                    '("Emacs" "Vim" "VSCode" "Atom")))))
    ;; dashbord-item(表示する項目)のリストに上記で定義した情報を設定する
    (setq dashboard-items '((editor . nil)))
    



    다양한 정보를 표시


    dashboard-item-generators 와 고유 함수를 결합하여 다양한 정보를 표시할 수 있습니다.

    예를 들어, Qiita API를 호출하고 기사를 표시! 같은 것이 가능합니다.

    dashboard-item-qiita
    ;; APIコールにrequest.elを利用
    (require 'request)
    
    ;; アイテム表示用関数
    (defun dashboard-qiita-insert-list (list-display-name list)
      "Render LIST-DISPLAY-NAME and items of LIST."
      (dashboard-insert-heading list-display-name)
      (mapc (lambda (el)
              (insert "\n    ")
              (widget-create 'push-button
                             :action `(lambda (&rest ignore)
                                        (browse-url ,(cdr (assoc 'url el))))
                             :mouse-face 'highlight
                             :follow-link "\C-m"
                             :button-prefix ""
                             :button-suffix ""
                             :format "%[%t%]"
                             (decode-coding-string (cdr (assoc 'title el)) 'utf-8))) list))
    
    ;; 記事を取得し、表示する関数
    (defun dashboard-qiita-insert (list-size)
      "Add the list of LIST-SIZE items from qiita."
      (request
       (format "https://qiita.com/api/v2/items?page=1&per_page=%s" list-size)
       :sync t
       :parser 'json-read
       :success (cl-function
                 (lambda (&key data &allow-other-keys)
                   (dashboard-qiita-insert-list "Qiita:" data)))))
    
    
    ;; dashboardに記事を追加
    (add-to-list 'dashboard-item-generators '(qiita . dashboard-qiita-insert))
    (setq dashboard-items '((qiita . 20)))
    



    요약



    쉬웠지만,
    간단하게 궤도 화면을 커스터마이즈 할 수 있는 Emacs Dashboard를 소개했습니다.
    Dashboard로 원하는 시작 화면에 코디 해 봅시다!

    내일은 conao3 씨의 "use-package에서의 마이그레이션의 스즈메 - leaf.el로 버전 안전한 init.el을 쓴다"입니다!

    좋은 웹페이지 즐겨찾기