Dashboard로 부팅 화면을 멋지게 만들자 ✨
                                            
                                                
                                                
                                                
                                                
                                                
                                                 9032 단어  Emacs
                    
안녕하세요🤗
첫 Emacs Advent Calendar입니다.
오늘은 기동 화면에 다양한 정보를 할 수 있는 Emacs Dashboard를 소개합니다.
Emacs Dashboard란?
작년의 어드벤트 캘린더에서 @kiwanami 님으로부터도 소개 되었습니다만,
Emacs 기동시의 초기 화면에 로고나 Recent files, Bookmarks등 편리한 정보를 표시해 주는 패키지입니다.
 
 GitHub - rakanalh/emacs-dashboard: An extensible emacs dashboard
패키지를 넣은 후, dashboard-items 에 값을 setq 해 주는 것으로, 다음의 정보를 표시할 수 있습니다.
(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을 쓴다"입니다!
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Dashboard로 부팅 화면을 멋지게 만들자 ✨), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/hyakt/items/f4468facec0478e06f7a
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
;; 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을 쓴다"입니다!
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(Dashboard로 부팅 화면을 멋지게 만들자 ✨), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/hyakt/items/f4468facec0478e06f7a
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
Reference
이 문제에 관하여(Dashboard로 부팅 화면을 멋지게 만들자 ✨), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hyakt/items/f4468facec0478e06f7a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)