This repository collects community contributed use-package
configuration examples, covering from
Emacs built-in packages to 3rt party packages.
Set environment variables:
(use-package env
:ensure nil
:config
(setenv "PYTHONIOENCODING" "utf-8"))
Set default input method and coding system:
(use-package mule
:ensure nil
:init
(setq default-input-method 'MacOSX)
:config
(set-terminal-coding-system 'utf-8)
(set-keyboard-coding-system 'utf-8))
(use-package mule-cmds
:preface (provide 'mule-cmds)
:config
(set-language-environment 'UTF-8))
Set Mac modifiers:
(use-package ns-win
:ensure nil
:init
(setq mac-command-modifier 'meta
mac-option-modifier 'super))
Set keybinding to M-/
and customize the list of expansion functions:
(use-package hippie-exp
:ensure nil
:bind ("M-/" . hippie-expand)
:init
(setq hippie-expand-try-functions-list
'(try-expand-dabbrev
try-expand-dabbrev-visible
try-expand-dabbrev-all-buffers
try-expand-dabbrev-from-kill
try-complete-file-name-partially
try-complete-file-name
try-expand-all-abbrevs
try-expand-list
try-expand-line
try-complete-lisp-symbol-partially
try-complete-lisp-symbol)))
Move up mouse when cursor comes:
(use-package avoid
:ensure nil
:config
(mouse-avoidance-mode 'animate))
Disable all of them:
(use-package tool-bar
:ensure nil
:config
(tool-bar-mode -1))
(use-package scroll-bar
:ensure nil
:config
(scroll-bar-mode -1))
(use-package menu-bar
:unless (eq system-type 'darwin)
:ensure nil
:config
(menu-bar-mode -1))
(use-package time
:ensure nil
:init
(setq display-time-day-and-date t
display-time-24hr-format t
display-time-use-mail-icon t
display-time-interval 10)
:config
(display-time))
Kill shell buffer when shell exits:
(use-package shell
:ensure nil
:hook (shell-mode . my-shell-mode-hook-func)
:config
(defun my-shell-mode-hook-func ()
(set-process-sentinel (get-buffer-process (current-buffer))
'my-shell-mode-kill-buffer-on-exit))
(defun my-shell-mode-kill-buffer-on-exit (process state)
(message "%s" state)
(if (or
(string-match "exited abnormally with code.*" state)
(string-match "finished" state))
(kill-buffer (current-buffer)))))
(use-package paren
:ensure nil
:init
(setq show-paren-style 'parentheses)
:config
(show-paren-mode t))
Copy specified environment variables:
(use-package exec-path-from-shell
:if (memq window-system '(mac ns x))
:ensure t
:init
(setq exec-path-from-shell-variables '("PATH" "MANPATH" "GOPATH", "PYTHONPATH))
:config
(exec-path-from-shell-initialize))
(use-package doom-themes
:ensure t
:init
;; Global settings (defaults)
(setq doom-themes-enable-bold t ; if nil, bold is universally disabled
doom-themes-enable-italic t) ; if nil, italics is universally disabled
:config
(load-theme 'doom-one t)
;; Enable flashing mode-line on errors
(doom-themes-visual-bell-config)
(use-package doom-themes-ext-treemacs
:init
(setq doom-themes-treemacs-theme "doom-colors")) ; use the colorful treemacs theme)
(doom-themes-treemacs-config)
;; Corrects (and improves) org-mode's native fontification.
(doom-themes-org-config))
(use-package doom-modeline
:ensure t
:init
(setq doom-modeline-minor-modes t
doom-modeline-vcs-max-length 20)
:config
(doom-modeline-mode 1))
(use-package highlight-indent-guides
:ensure t
:delight highlight-indent-guides-mode
:init
(setq highlight-indent-guides-method 'character
;; default is \x2502 but it is very slow on Mac
highlight-indent-guides-character ?\xFFE8
highlight-indent-guides-responsive 'top))
Hook to prog-mode
:
(use-package rainbow-delimiters
:ensure t)
(use-package prog-mode
:ensure nil
:hook ((prog-mode . rainbow-delimiters-mode)))
(use-package projectile
:ensure t
:bind-keymap ("s-p" . projectile-command-map)
:init
(setq projectile-mode-line-function '(lambda () (format " [%s]" (projectile-project-name))))
:config
(projectile-mode +1))
(use-package company
:ensure t
:delight company-mode
:demand t
:init
(setq company-idle-delay 0.1
company-minimum-prefix-length 1)
:bind (:map company-active-map
("C-n" . company-select-next)
("C-p". company-select-previous))
:config
(global-company-mode))