ご主人様
not manx 4 years ago
parent 4b7fd0bfd8
commit 4accec9268
Signed by: C-xC-c
GPG Key ID: F52ED472284EF2F4

@ -1,26 +1,139 @@
(use-package benchmark-init
:ensure t
:config
(add-hook 'after-init-hook 'benchmark-init/deactivate))
(defmacro definteractive (name &rest body)
`(defun ,name ,(car body)
(interactive)
,@(cdr body)))
`(defun ,name ,(car body)
(interactive)
,@(cdr body)))
(defmacro lambdainteractive (&rest body)
`(lambda ,(car body) (interactive) ,@(cdr body)))
`(lambda ,(car body) (interactive) ,@(cdr body)))
(defmacro local-keybind (key value)
`(lambda () (local-set-key (kbd ,key) (quote ,value))))
`(lambda () (local-set-key (kbd ,key) (quote ,value))))
(setq use-package-always-ensure t
use-package-verbose t)
(use-package diminish)
(use-package company
:diminish 'company-mode
:bind (:map company-mode-map
("C-c /" . 'yas-expand))
:custom
(company-idle-delay 0)
(company-minimum-prefix-length 3)
:init (add-hook 'after-init-hook 'global-company-mode))
(use-package csharp-mode
:defer t
:config
(use-package omnisharp
:defer t
:config
(add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-to-list 'company-backends 'company-omnisharp)))
(use-package elixir-mode
:defer t
:config (use-package alchemist))
(use-package nginx-mode
:custom
(nginx-indent-tabs-mode t)
(nginx-indent-level 2)
:config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)))
(use-package slime
:defer t
:custom
(slime-lisp-implementations
'((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env ("SBCL_HOME=/usr/lib64/sbcl/"))))
:diminish 'slime-mode
:init
(use-package slime-company)
(add-hook 'lisp-mode-hook 'slime-mode)
(slime-setup '(slime-fancy slime-company)))
(use-package keychain-environment
:bind ("C-c r e" . 'keychain-refresh-environment)
:init (keychain-refresh-environment))
(use-package htmlize)
(use-package spaceline
:custom (powerline-default-seperator (quote arrow))
:init
(require 'spaceline-config)
(spaceline-spacemacs-theme)
:config (spaceline-toggle-buffer-size-off))
(use-package dashboard
:diminish (dashboard-mode page-break-lines-mode)
:custom
(dashboard-center-content t)
(dashboard-banner-logo-title "Komacs")
(dashboard-set-init-info t)
(dashboard-startup-banner "~/.emacs.d/Komacs.png")
(dashboard-show-shortcuts nil)
(dashboard-items '((recents . 5)))
:config (dashboard-setup-startup-hook))
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
(use-package switch-window
:custom
(switch-window-input-style 'minibuffer)
(switch-window-increase 4)
(switch-window-threshold 2)
:bind ([remap other-window] . switch-window))
(use-package yasnippet
:diminish 'yas-minor-mode
:hook ((html-mode
LaTeX-mode
emacs-lisp-mode
lisp-mode)
. yas-minor-mode)
:init ;; These are computationally expensive, so init.
(use-package yasnippet-snippets)
(yas-reload-all))
(use-package hungry-delete
:diminish 'hungry-delete-mode
:config (global-hungry-delete-mode 1))
(use-package which-key
:diminish 'which-key-mode
:config (which-key-mode))
(use-package avy
:bind ("M-s" . avy-goto-char))
(use-package beacon
:diminish 'beacon-mode
:config (beacon-mode 1))
(use-package popup-kill-ring
:bind ("M-y" . popup-kill-ring))
(setq ido-enable-flex-matching t
ido-create-new-buffer 'always
ido-everywhere 1)
(use-package ido-vertical-mode
:bind ("C-l" . 'ido-reread-directory)
:custom (ido-vertical-define-keys 'C-n-and-C-p-only)
:config
(ido-vertical-mode 1)
(ido-mode 1))
(definteractive manx/config-reload ()
(when (get-buffer "config.org")
(with-current-buffer "config.org" (save-buffer)))
(org-babel-load-file (expand-file-name "~/.emacs.d/config.org")))
(when (get-buffer "config.org")
(with-current-buffer "config.org" (save-buffer)))
(org-babel-load-file (concat user-emacs-directory "config.org")))
(global-set-key (kbd "C-c x r") 'manx/config-reload)
(global-set-key (kbd "C-c x e") (lambdainteractive ()(find-file "~/.emacs.d/config.org")))
(global-set-key (kbd "C-c x e") (lambdainteractive () (find-file (concat user-emacs-directory "config.org"))))
(setq org-src-window-setup 'current-window)
@ -30,71 +143,50 @@
;; Don't indent whole file with org-mode
(eval-after-load "org-mode" (local-set-key (kbd "s-i") nil))
(setq org-structure-template-alist
(append
'(("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC")
("js" "#+BEGIN_SRC javascript\n?\n#+END_SRC"))
org-structure-template-alist))
(add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"))
(setq org-html-doctype "html5")
(definteractive manx/save-org-to-html()
(when (equal major-mode 'org-mode)
(save-buffer)
(org-html-export-to-html)))
(when (equal major-mode 'org-mode)
(save-buffer)
(org-html-export-to-html)))
(add-hook 'org-mode-hook
(local-keybind "C-c s h" manx/save-org-to-html))
(local-keybind "C-c s h" manx/save-org-to-html))
(definteractive manx/delete-org-link ()
(if (org-in-regexp org-bracket-link-regexp 1)
(apply 'delete-region (list (match-beginning 0) (match-end 0)))))
(if (org-in-regexp org-bracket-link-regexp 1)
(apply 'delete-region (list (match-beginning 0) (match-end 0)))))
(add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link))
(setq org-image-actual-width 150)
(definteractive manx/org-insert-link ()
(org-insert-link)
(org-redisplay-inline-images))
(org-insert-link)
(org-redisplay-inline-images))
(add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link))
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
(line-number-mode 1)
(column-number-mode 1)
(display-battery-mode 1)
(global-unset-key (kbd "C-z"))
(definteractive manx/kill-word ()
(backward-word)
(kill-word 1))
(definteractive manx/kill-whole-word ()
(backward-word)
(kill-word 1))
(global-set-key (kbd "C-c k w") 'manx/kill-whole-word)
(definteractive manx/kill-whole-line()
(move-beginning-of-line nil)
(kill-whole-line))
(global-set-key (kbd "C-c k l") 'manx/kill-whole-line)
(global-set-key (kbd "C-c r b") 'revert-buffer)
(definteractive manx/kill-line()
(move-beginning-of-line nil)
(kill-whole-line))
(definteractive manx/format-whole-buffer()
(save-excursion
(indent-region (point-min) (point-max) nil)))
(save-excursion
(indent-region (point-min) (point-max) nil)))
(global-set-key (kbd "<M-right>") 'forward-whitespace)
(global-set-key (kbd "C-c r b") 'revert-buffer)
(global-set-key (kbd "C-c k w") 'manx/kill-word)
(global-set-key (kbd "C-c k l") 'manx/kill-line)
(global-set-key (kbd "s-i") 'manx/format-whole-buffer)
(defun what-face (pos)
(interactive "d")
(let ((face (or (get-char-property (pos) 'read-face-name)
(get-char-property (pos) 'face))))
(if face (message "Face: %s" face) (message "No face at %d" pos))))
(global-set-key (kbd "C-x k") (lambdainteractive () (kill-buffer (current-buffer))))
(global-set-key (kbd "C-M-s-k") (lambdainteractive () (mapc 'kill-buffer (buffer-list))))
@ -108,143 +200,18 @@
(global-set-key (kbd "C-c f o") 'flop-frame)
(defmacro manx/split-and-follow (direction)
`(progn
,direction
(balance-windows)
(other-window 1)))
`(progn
,direction
(balance-windows)
(other-window 1)))
(global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below))))
(global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally))))
(setq use-package-always-ensure t
use-package-verbose t)
(use-package diminish)
(use-package keychain-environment
:bind ("C-c r e" . 'keychain-refresh-environment)
:init (keychain-refresh-environment))
(unless (display-graphic-p)
(use-package exwm
:bind ("s-k" . 'exwm-workspace-delete)
:config
(require 'exwm-config)
(require 'exwm-systemtray)
(exwm-systemtray-enable)))
(use-package nginx-mode
:custom
(nginx-indent-tabs-mode t)
(nginx-indent-level 2)
:config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)))
(use-package company
:diminish 'company-mode
:bind (:map company-mode-map
("C-c /" . 'yas-expand))
:custom
(company-idle-delay 0)
(company-minimum-prefix-length 3)
:init (add-hook 'after-init-hook 'global-company-mode))
(use-package csharp-mode
:defer t
:config
(use-package omnisharp
:defer t
:config
(add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-to-list 'company-backends 'company-omnisharp)))
(use-package spaceline
:init
(require 'spaceline-config)
(setq powerline-default-seperator (quote arrow))
(spaceline-spacemacs-theme)
:config (spaceline-toggle-buffer-size-off))
(use-package dashboard
:diminish (dashboard-mode page-break-lines-mode)
:custom
(dashboard-center-content t)
(dashboard-banner-logo-title "Komacs")
(dashboard-set-init-info t)
(dashboard-startup-banner "~/.emacs.d/Komacs.png")
(dashboard-show-shortcuts nil)
(dashboard-items '((recents . 5)))
:config (dashboard-setup-startup-hook))
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
(use-package slime
:defer t
:custom
(slime-lisp-implementations
'((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env ("SBCL_HOME=/usr/lib64/sbcl/"))))
:diminish 'slime-mode
:init
(use-package slime-company)
(add-hook 'lisp-mode-hook 'slime-mode)
(slime-setup '(slime-fancy slime-company)))
(use-package switch-window
:custom
(switch-window-input-style 'minibuffer)
(switch-window-increase 4)
(switch-window-threshold 2)
:bind ([remap other-window] . switch-window))
(use-package elixir-mode
:defer t
:config (use-package alchemist))
(use-package yasnippet
:diminish 'yas-minor-mode
:hook ((html-mode
LaTeX-mode
emacs-lisp-mode
lisp-mode)
. yas-minor-mode)
:init
(use-package yasnippet-snippets)
(yas-reload-all))
(use-package hungry-delete
:diminish 'hungry-delete-mode
:config (global-hungry-delete-mode 1))
(use-package which-key
:diminish 'which-key-mode
:config (which-key-mode))
(use-package avy
:bind ("M-s" . avy-goto-char))
(use-package beacon
:diminish 'beacon-mode
:config (beacon-mode 1))
(use-package popup-kill-ring
:bind ("M-y" . popup-kill-ring))
(setq ido-enable-flex-matching t
ido-create-new-buffer 'always
ido-everywhere 1)
(use-package ido-vertical-mode
:bind ("C-l" . 'ido-reread-directory)
:custom
(ido-vertical-define-keys 'C-n-and-C-p-only)
:config
(ido-vertical-mode 1)
(ido-mode 1))
(defun unix-line-ends ()
(let ((coding-str (symbol-name buffer-file-coding-system)))
(when (string-match "-\\(?:dos\\|mac\\)$" coding-str)
(set-buffer-file-coding-system 'unix))))
(let ((coding-str (symbol-name buffer-file-coding-system)))
(when (string-match "-\\(?:dos\\|mac\\)$" coding-str)
(set-buffer-file-coding-system 'unix))))
(add-hook 'find-file-hooks 'unix-line-ends)
@ -255,32 +222,39 @@
(prefer-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
(defvar my-term-shell "/bin/bash")
(defadvice ansi-term (before force-bash)
(interactive (list my-term-shell)))
(ad-activate 'ansi-term)
(global-set-key (kbd "<s-return>") 'ansi-term)
(line-number-mode 1)
(column-number-mode 1)
(display-battery-mode 1)
(show-paren-mode 1)
(electric-pair-mode t)
(global-hl-line-mode t)
(global-prettify-symbols-mode t)
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
(defalias 'yes-or-no-p 'y-or-n-p)
(setq scroll-conservatively 100
x-select-enable-clipboard t
vc-follow-symlinks t)
select-enable-clipboard t
vc-follow-symlinks t)
(setq backup-directory-alist
`(("." . ,(concat user-emacs-directory "autosaves"))))
`(("." . ,(concat user-emacs-directory "autosaves"))))
(add-hook 'doc-view-mode-hook 'auto-revert-mode)
(global-unset-key (kbd "C-z")) ;; Fuck unix
(setq-default tab-width 2
indent-tabs-mode t)
(defvaralias 'css-indent-offset 'tab-width)
(defvaralias 'js-indent-level 'tab-width)
(global-prettify-symbols-mode t)
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(push
'("lambdainteractive" . )
prettify-symbols-alist)))
(defvar auto-minor-mode-alist ()
"Alist of filename patterns vs correpsonding minor mode functions, see `auto-mode-alist'
@ -291,47 +265,42 @@ All elements of this alist are checked, meaning you can enable multiple minor mo
the checking happens for all pairs in auto-minor-mode-alist"
(when buffer-file-name
(let ((name (file-name-sans-versions buffer-file-name))
(remote-id (file-remote-p buffer-file-name))
(case-fold-search auto-mode-case-fold)
(alist auto-minor-mode-alist))
(remote-id (file-remote-p buffer-file-name))
(case-fold-search auto-mode-case-fold)
(alist auto-minor-mode-alist))
;; Remove remote file name identification.
(when (and (stringp remote-id)
(string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0))))
(string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0))))
(while (and alist (caar alist) (cdar alist))
(if (string-match-p (caar alist) name)
(funcall (cdar alist) 1))
(setq alist (cdr alist))))))
(if (string-match-p (caar alist) name)
(funcall (cdar alist) 1))
(setq alist (cdr alist))))))
(add-hook 'find-file-hook #'enable-minor-mode-based-on-extension)
(define-minor-mode sensitive-minor-mode
"For sensitive files like password lists.
"For sensitive files like password lists.
It disables backup creation and auto saving.
With no argument, this command toggles the mode.
Non-null prefix argument turns on the mode.
Null prefix argument turns off the mode."
nil ;; Initial
"Sensitive" ;; Modeline
nil ;; Bindings
(if (symbol-value sensitive-minor-mode)
(progn
(setq make-backup-files nil)
(auto-save-mode -1))
(setq-local make-backup-files t)
(auto-save-mode 1)))
:init-value nil
:lighter " Sensitive"
:keymap nil
(if (symbol-value sensitive-minor-mode)
(progn
(setq make-backup-files nil)
(auto-save-mode -1))
(setq-local make-backup-files t)
(auto-save-mode 1)))
;; Regexps of sensitive files.
(setq auto-minor-mode-alist
(append
'(("stream/manifest/.*\\.json$" . sensitive-minor-mode)
(".emacs.d/snippets/\\*$" . sensitive-minor-mode)
("nginx/sites-(enabled|available)/*" . sensitive-minor-mode))
auto-minor-mode-alist))
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(push
'("lambdainteractive" . ) prettify-symbols-alist)))
(append
'(("stream/manifest/.*\\.json$" . sensitive-minor-mode)
(".emacs.d/snippets/\\*$" . sensitive-minor-mode)
("nginx/sites-(enabled|available)/*" . sensitive-minor-mode))
auto-minor-mode-alist))

@ -1,14 +1,9 @@
* Benchmark
#+BEGIN_SRC emacs-lisp
(use-package benchmark-init
:ensure t
:config
(add-hook 'after-init-hook 'benchmark-init/deactivate))
#+END_SRC
* macros
** definteractive
Wrappers around functions and lambdas so I don't have to type
(interactive) all the damn time
I have ~prettify-symbols-mode~ set ~lambdainteractive~ to Λ (capital lambda) because it's cute.
#+BEGIN_SRC emacs-lisp
(defmacro definteractive (name &rest body)
`(defun ,name ,(car body)
@ -19,179 +14,53 @@ Wrappers around functions and lambdas so I don't have to type
`(lambda ,(car body) (interactive) ,@(cdr body)))
#+END_SRC
** local-keybind
Hide unecessary lambda when calling (local-set-key) for
org-modefunctions
Hide unecessary lambda when calling (local-set-key) for org-mode
functions
#+BEGIN_SRC emacs-lisp
(defmacro local-keybind (key value)
`(lambda () (local-set-key (kbd ,key) (quote ,value))))
#+END_SRC
* org
** edit/reload config.org
Saves config.org if it's open then reloads the file.
#+BEGIN_SRC emacs-lisp
(definteractive manx/config-reload ()
(when (get-buffer "config.org")
(with-current-buffer "config.org" (save-buffer)))
(org-babel-load-file (expand-file-name "~/.emacs.d/config.org")))
(global-set-key (kbd "C-c x r") 'manx/config-reload)
(global-set-key (kbd "C-c x e") (lambdainteractive ()(find-file "~/.emacs.d/config.org")))
#+END_SRC
** misc
#+BEGIN_SRC emacs-lisp
(setq org-src-window-setup 'current-window)
;; I read somewhere that Company breaks things?
(add-hook 'org-mode-hook 'company-mode)
;; Don't indent whole file with org-mode
(eval-after-load "org-mode" (local-set-key (kbd "s-i") nil))
#+END_SRC
** Snippets
#+BEGIN_SRC emacs-lisp
(setq org-structure-template-alist
(append
'(("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC")
("js" "#+BEGIN_SRC javascript\n?\n#+END_SRC"))
org-structure-template-alist))
#+END_SRC
** html export
#+BEGIN_SRC emacs-lisp
(setq org-html-doctype "html5")
(definteractive manx/save-org-to-html()
(when (equal major-mode 'org-mode)
(save-buffer)
(org-html-export-to-html)))
(add-hook 'org-mode-hook
(local-keybind "C-c s h" manx/save-org-to-html))
#+END_SRC
** Links
#+BEGIN_SRC emacs-lisp
(definteractive manx/delete-org-link ()
(if (org-in-regexp org-bracket-link-regexp 1)
(apply 'delete-region (list (match-beginning 0) (match-end 0)))))
(add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link))
#+END_SRC
*** Inline Images
#+BEGIN_SRC emacs-lisp
(setq org-image-actual-width 150)
(definteractive manx/org-insert-link ()
(org-insert-link)
(org-redisplay-inline-images))
(add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link))
#+END_SRC
* emacs gui
#+BEGIN_SRC emacs-lisp
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
(line-number-mode 1)
(column-number-mode 1)
(display-battery-mode 1)
(global-unset-key (kbd "C-z"))
#+END_SRC
* functions
** text
*** forward whitespace
#+BEGIN_SRC emacs-lisp
(global-set-k'ey (kbd "<M-right>") 'forward-whitespace)
#+END_SRC
*** kill whole word
#+BEGIN_SRC emacs-lisp
(definteractive manx/kill-whole-word ()
(backward-word)
(kill-word 1))
(global-set-key (kbd "C-c k w") 'manx/kill-whole-word)
#+END_SRC
*** kill whole line
#+BEGIN_SRC emacs-lisp
(definteractive manx/kill-whole-line()
(move-beginning-of-line nil)
(kill-whole-line))
(global-set-key (kbd "C-c k l") 'manx/kill-whole-line)
#+END_SRC
*** revert buffer
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-c r b") 'revert-buffer)
#+END_SRC
*** Format whole file
#+BEGIN_SRC emacs-lisp
(definteractive manx/format-whole-buffer()
(save-excursion
(indent-region (point-min) (point-max) nil)))
(global-set-key (kbd "s-i") 'manx/format-whole-buffer)
#+END_SRC
*** colour under cursor
#+BEGIN_SRC emacs-lisp
(defun what-face (pos)
(interactive "d")
(let ((face (or (get-char-property (pos) 'read-face-name)
(get-char-property (pos) 'face))))
(if face (message "Face: %s" face) (message "No face at %d" pos))))
#+END_SRC
** buffers
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-x k") (lambdainteractive () (kill-buffer (current-buffer))))
(global-set-key (kbd "C-M-s-k") (lambdainteractive () (mapc 'kill-buffer (buffer-list))))
#+END_SRC
** frames
*** transpose-frame
#+BEGIN_SRC emacs-lisp
;; This is only used here for now but we should still more it some
;; time
(add-to-list 'load-path "~/.emacs.d/scripts/")
(require 'transpose-frame)
(global-set-key (kbd "C-c f t") 'transpose-frame)
(global-set-key (kbd "C-c f i") 'flip-frame)
(global-set-key (kbd "C-c f o") 'flop-frame)
#+END_SRC
*** split and follow
#+BEGIN_SRC emacs-lisp
(defmacro manx/split-and-follow (direction)
`(progn
,direction
(balance-windows)
(other-window 1)))
(global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below))))
(global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally))))
#+END_SRC
* use-package
** use-package config
Always ensure packages are installed. Log to ~*Messages*~.
#+BEGIN_SRC emacs-lisp
(setq use-package-always-ensure t
use-package-verbose t)
(setq use-package-always-ensure t
use-package-verbose t)
#+END_SRC
** diminish
#+BEGIN_SRC emacs-lisp
(use-package diminish)
#+END_SRC
** keychain-environment
** company
#+BEGIN_SRC emacs-lisp
(use-package keychain-environment
:bind ("C-c r e" . 'keychain-refresh-environment)
:init (keychain-refresh-environment))
(use-package company
:diminish 'company-mode
:bind (:map company-mode-map
("C-c /" . 'yas-expand))
:custom
(company-idle-delay 0)
(company-minimum-prefix-length 3)
:init (add-hook 'after-init-hook 'global-company-mode))
#+END_SRC
** exwm
** prog
*** c#
#+BEGIN_SRC emacs-lisp
(unless (display-graphic-p)
(use-package exwm
:bind ("s-k" . 'exwm-workspace-delete)
:config
(require 'exwm-config)
(require 'exwm-systemtray)
(exwm-systemtray-enable)))
(use-package csharp-mode
:defer t
:config
(use-package omnisharp
:defer t
:config
(add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-to-list 'company-backends 'company-omnisharp)))
#+END_SRC
** nginx
*** elixir
#+BEGIN_SRC emacs-lisp
(use-package elixir-mode
:defer t
:config (use-package alchemist))
#+END_SRC
*** nginx
#+BEGIN_SRC emacs-lisp
(use-package nginx-mode
:custom
@ -199,35 +68,37 @@ Saves config.org if it's open then reloads the file.
(nginx-indent-level 2)
:config (add-to-list 'auto-mode-alist '("/nginx/sites-\\(?:available\\|enabled\\)/" . nginx-mode)))
#+END_SRC
** company
*** slime
sbcl is in a werid place on Gentoo.
#+BEGIN_SRC emacs-lisp
(use-package company
:diminish 'company-mode
:bind (:map company-mode-map
("C-c /" . 'yas-expand))
(use-package slime
:defer t
:custom
(company-idle-delay 0)
(company-minimum-prefix-length 3)
:init (add-hook 'after-init-hook 'global-company-mode))
(slime-lisp-implementations
'((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env ("SBCL_HOME=/usr/lib64/sbcl/"))))
:diminish 'slime-mode
:init
(use-package slime-company)
(add-hook 'lisp-mode-hook 'slime-mode)
(slime-setup '(slime-fancy slime-company)))
#+END_SRC
** c#
** keychain-environment
#+BEGIN_SRC emacs-lisp
(use-package csharp-mode
:defer t
:config
(use-package omnisharp
:defer t
:config
(add-hook 'csharp-mode-hook 'omnisharp-mode)
(add-to-list 'company-backends 'company-omnisharp)))
(use-package keychain-environment
:bind ("C-c r e" . 'keychain-refresh-environment)
:init (keychain-refresh-environment))
#+END_SRC
** htmlize
#+BEGIN_SRC emacs-lisp
(use-package htmlize)
#+END_SRC
** spaceline
#+BEGIN_SRC emacs-lisp
(use-package spaceline
:custom (powerline-default-seperator (quote arrow))
:init
(require 'spaceline-config)
(setq powerline-default-seperator (quote arrow))
(spaceline-spacemacs-theme)
:config (spaceline-toggle-buffer-size-off))
#+END_SRC
@ -246,20 +117,6 @@ Saves config.org if it's open then reloads the file.
(setq initial-buffer-choice (lambda () (get-buffer "*dashboard*")))
#+END_SRC
** slime
#+BEGIN_SRC emacs-lisp
(use-package slime
:defer t
:custom
(slime-lisp-implementations
'((sbcl ("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env ("SBCL_HOME=/usr/lib64/sbcl/"))))
:diminish 'slime-mode
:init
(use-package slime-company)
(add-hook 'lisp-mode-hook 'slime-mode)
(slime-setup '(slime-fancy slime-company)))
#+END_SRC
** switch window
#+BEGIN_SRC emacs-lisp
(use-package switch-window
@ -269,37 +126,31 @@ Saves config.org if it's open then reloads the file.
(switch-window-threshold 2)
:bind ([remap other-window] . switch-window))
#+END_SRC
** elixir
#+BEGIN_SRC emacs-lisp
(use-package elixir-mode
:defer t
:config (use-package alchemist))
#+END_SRC
** yasnippet
#+BEGIN_SRC emacs-lisp
(use-package yasnippet
:diminish 'yas-minor-mode
:hook ((html-mode
LaTeX-mode
emacs-lisp-mode
lisp-mode)
. yas-minor-mode)
:init
(use-package yasnippet-snippets)
(yas-reload-all))
(use-package yasnippet
:diminish 'yas-minor-mode
:hook ((html-mode
LaTeX-mode
emacs-lisp-mode
lisp-mode)
. yas-minor-mode)
:init ;; These are computationally expensive, so init.
(use-package yasnippet-snippets)
(yas-reload-all))
#+END_SRC
** minor modes
*** hungry delete
#+BEGIN_SRC emacs-lisp
(use-package hungry-delete
:diminish 'hungry-delete-mode
:config (global-hungry-delete-mode 1))
(use-package hungry-delete
:diminish 'hungry-delete-mode
:config (global-hungry-delete-mode 1))
#+END_SRC
*** which key
#+BEGIN_SRC emacs-lisp
(use-package which-key
:diminish 'which-key-mode
:config (which-key-mode))
(use-package which-key
:diminish 'which-key-mode
:config (which-key-mode))
#+END_SRC
*** avy
#+BEGIN_SRC emacs-lisp
@ -317,20 +168,122 @@ Saves config.org if it's open then reloads the file.
(use-package popup-kill-ring
:bind ("M-y" . popup-kill-ring))
#+END_SRC
* ido
** ido
#+BEGIN_SRC emacs-lisp
(setq ido-enable-flex-matching t
ido-create-new-buffer 'always
ido-everywhere 1)
ido-create-new-buffer 'always
ido-everywhere 1)
(use-package ido-vertical-mode
:bind ("C-l" . 'ido-reread-directory)
:custom
(ido-vertical-define-keys 'C-n-and-C-p-only)
:custom (ido-vertical-define-keys 'C-n-and-C-p-only)
:config
(ido-vertical-mode 1)
(ido-mode 1))
#+END_SRC
* org
** edit/reload config
Also saves config if open.
#+BEGIN_SRC emacs-lisp
(definteractive manx/config-reload ()
(when (get-buffer "config.org")
(with-current-buffer "config.org" (save-buffer)))
(org-babel-load-file (concat user-emacs-directory "config.org")))
(global-set-key (kbd "C-c x r") 'manx/config-reload)
(global-set-key (kbd "C-c x e") (lambdainteractive () (find-file (concat user-emacs-directory "config.org"))))
#+END_SRC
** misc
#+BEGIN_SRC emacs-lisp
(setq org-src-window-setup 'current-window)
;; I read somewhere that Company breaks things?
(add-hook 'org-mode-hook 'company-mode)
;; Don't indent whole file with org-mode
(eval-after-load "org-mode" (local-set-key (kbd "s-i") nil))
(add-to-list 'org-structure-template-alist '("el" "#+BEGIN_SRC emacs-lisp\n?\n#+END_SRC"))
#+END_SRC
** html export
#+BEGIN_SRC emacs-lisp
(setq org-html-doctype "html5")
(definteractive manx/save-org-to-html()
(when (equal major-mode 'org-mode)
(save-buffer)
(org-html-export-to-html)))
(add-hook 'org-mode-hook
(local-keybind "C-c s h" manx/save-org-to-html))
#+END_SRC
** Links
#+BEGIN_SRC emacs-lisp
(definteractive manx/delete-org-link ()
(if (org-in-regexp org-bracket-link-regexp 1)
(apply 'delete-region (list (match-beginning 0) (match-end 0)))))
(add-hook 'org-mode-hook (local-keybind "C-c o l" manx/delete-org-link))
#+END_SRC
*** Inline Images
#+BEGIN_SRC emacs-lisp
(setq org-image-actual-width 150)
(definteractive manx/org-insert-link ()
(org-insert-link)
(org-redisplay-inline-images))
(add-hook 'org-mode-hook (local-keybind "C-c C-l" manx/org-insert-link))
#+END_SRC
* functions
** text
#+BEGIN_SRC emacs-lisp
(definteractive manx/kill-word ()
(backward-word)
(kill-word 1))
(definteractive manx/kill-line()
(move-beginning-of-line nil)
(kill-whole-line))
(definteractive manx/format-whole-buffer()
(save-excursion
(indent-region (point-min) (point-max) nil)))
(global-set-key (kbd "<M-right>") 'forward-whitespace)
(global-set-key (kbd "C-c r b") 'revert-buffer)
(global-set-key (kbd "C-c k w") 'manx/kill-word)
(global-set-key (kbd "C-c k l") 'manx/kill-line)
(global-set-key (kbd "s-i") 'manx/format-whole-buffer)
#+END_SRC
** buffers
#+BEGIN_SRC emacs-lisp
(global-set-key (kbd "C-x k") (lambdainteractive () (kill-buffer (current-buffer))))
(global-set-key (kbd "C-M-s-k") (lambdainteractive () (mapc 'kill-buffer (buffer-list))))
#+END_SRC
** frames
*** transpose-frame
#+BEGIN_SRC emacs-lisp
;; This is only used here for now but we should still more it some
;; time
(add-to-list 'load-path "~/.emacs.d/scripts/")
(require 'transpose-frame)
(global-set-key (kbd "C-c f t") 'transpose-frame)
(global-set-key (kbd "C-c f i") 'flip-frame)
(global-set-key (kbd "C-c f o") 'flop-frame)
#+END_SRC
*** split and follow
#+BEGIN_SRC emacs-lisp
(defmacro manx/split-and-follow (direction)
`(progn
,direction
(balance-windows)
(other-window 1)))
(global-set-key (kbd "C-x 3") (lambdainteractive () (manx/split-and-follow (split-window-below))))
(global-set-key (kbd "C-x 2") (lambdainteractive () (manx/split-and-follow (split-window-horizontally))))
#+END_SRC
* misc
** unix line endings
#+BEGIN_SRC emacs-lisp
@ -350,41 +303,48 @@ Saves config.org if it's open then reloads the file.
(prefer-coding-system 'utf-8)
(setq x-select-request-type '(UTF8_STRING COMPOUND_TEXT TEXT STRING))
#+END_SRC
** terminal
*** Make bash implicit terminal
#+BEGIN_SRC emacs-lisp
(defvar my-term-shell "/bin/bash")
(defadvice ansi-term (before force-bash)
(interactive (list my-term-shell)))
(ad-activate 'ansi-term)
(global-set-key (kbd "<s-return>") 'ansi-term)
#+END_SRC
** minor things
Things for GUI and basic config, like electric pairs and highlighting
parens.
#+BEGIN_SRC emacs-lisp
(line-number-mode 1)
(column-number-mode 1)
(display-battery-mode 1)
(show-paren-mode 1)
(electric-pair-mode t)
(global-hl-line-mode t)
(global-prettify-symbols-mode t)
(tool-bar-mode -1)
(menu-bar-mode -1)
(scroll-bar-mode -1)
(defalias 'yes-or-no-p 'y-or-n-p)
(setq scroll-conservatively 100
x-select-enable-clipboard t
vc-follow-symlinks t)
select-enable-clipboard t
vc-follow-symlinks t)
(setq backup-directory-alist
`(("." . ,(concat user-emacs-directory "autosaves"))))
#+END_SRC
** docView auto reload
#+BEGIN_SRC emacs-lisp
(add-hook 'doc-view-mode-hook 'auto-revert-mode)
`(("." . ,(concat user-emacs-directory "autosaves"))))
(global-unset-key (kbd "C-z")) ;; Fuck unix
#+END_SRC
** indentation
tabs > spaces.
#+BEGIN_SRC emacs-lisp
(setq-default tab-width 2
indent-tabs-mode t)
(defvaralias 'css-indent-offset 'tab-width)
(defvaralias 'js-indent-level 'tab-width)
#+END_SRC
** Prettify symbols
#+BEGIN_SRC emacs-lisp
(global-prettify-symbols-mode t)
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(push
'("lambdainteractive" . ?Λ)
prettify-symbols-alist)))
#+END_SRC
* auto-minor-mode
auto-mode-alist for minor modes.
@ -401,52 +361,45 @@ For example, used with sensitive-mode to not create backups
the checking happens for all pairs in auto-minor-mode-alist"
(when buffer-file-name
(let ((name (file-name-sans-versions buffer-file-name))
(remote-id (file-remote-p buffer-file-name))
(case-fold-search auto-mode-case-fold)
(alist auto-minor-mode-alist))
(remote-id (file-remote-p buffer-file-name))
(case-fold-search auto-mode-case-fold)
(alist auto-minor-mode-alist))
;; Remove remote file name identification.
(when (and (stringp remote-id)
(string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0))))
(string-match-p (regexp-quote remote-id) name))
(setq name (substring name (match-end 0))))
(while (and alist (caar alist) (cdar alist))
(if (string-match-p (caar alist) name)
(funcall (cdar alist) 1))
(setq alist (cdr alist))))))
(if (string-match-p (caar alist) name)
(funcall (cdar alist) 1))
(setq alist (cdr alist))))))
(add-hook 'find-file-hook #'enable-minor-mode-based-on-extension)
#+END_SRC
* sensitive-minor-mode
#+BEGIN_SRC emacs-lisp
(define-minor-mode sensitive-minor-mode
"For sensitive files like password lists.
It disables backup creation and auto saving.
(define-minor-mode sensitive-minor-mode
"For sensitive files like password lists.
It disables backup creation and auto saving.
With no argument, this command toggles the mode.
Non-null prefix argument turns on the mode.
Null prefix argument turns off the mode."
nil ;; Initial
"Sensitive" ;; Modeline
nil ;; Bindings
(if (symbol-value sensitive-minor-mode)
(progn
(setq make-backup-files nil)
(auto-save-mode -1))
(setq-local make-backup-files t)
(auto-save-mode 1)))
With no argument, this command toggles the mode.
Non-null prefix argument turns on the mode.
Null prefix argument turns off the mode."
:init-value nil
:lighter " Sensitive"
:keymap nil
(if (symbol-value sensitive-minor-mode)
(progn
(setq make-backup-files nil)
(auto-save-mode -1))
(setq-local make-backup-files t)
(auto-save-mode 1)))
;; Regexps of sensitive files.
(setq auto-minor-mode-alist
(append
'(("stream/manifest/.*\\.json$" . sensitive-minor-mode)
(".emacs.d/snippets/\\*$" . sensitive-minor-mode)
("nginx/sites-(enabled|available)/*" . sensitive-minor-mode))
auto-minor-mode-alist))
#+END_SRC
* Prettify symbols
#+BEGIN_SRC emacs-lisp
(add-hook 'emacs-lisp-mode-hook
(lambda ()
(push
'("lambdainteractive" . ?Λ) prettify-symbols-alist)))
;; Regexps of sensitive files.
(setq auto-minor-mode-alist
(append
'(("stream/manifest/.*\\.json$" . sensitive-minor-mode)
(".emacs.d/snippets/\\*$" . sensitive-minor-mode)
("nginx/sites-(enabled|available)/*" . sensitive-minor-mode))
auto-minor-mode-alist))
#+END_SRC

@ -9,8 +9,8 @@
'(company-minimum-prefix-length 3)
'(custom-enabled-themes (quote (spacemacs-dark)))
'(custom-safe-themes
(quote
("bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476" default)))
(quote
("bffa9739ce0752a37d9b1eee78fc00ba159748f50dc328af4be661484848e476" default)))
'(dashboard-banner-logo-title "Komacs")
'(dashboard-center-content t)
'(dashboard-items (quote ((recents . 5))))
@ -21,14 +21,14 @@
'(nginx-indent-level 2)
'(nginx-indent-tabs-mode t)
'(package-selected-packages
(quote
(benchmark-init alchemist elixir-mode nginx-mode yasnippet-snippets which-key use-package switch-window spacemacs-theme spaceline slime-company popup-kill-ring omnisharp keychain-environment ido-vertical-mode hungry-delete exwm diminish dashboard company-auctex beacon avy)))
(quote
(htmlize benchmark-init alchemist elixir-mode nginx-mode yasnippet-snippets which-key use-package switch-window spacemacs-theme spaceline slime-company popup-kill-ring omnisharp keychain-environment ido-vertical-mode hungry-delete exwm diminish dashboard company-auctex beacon avy)))
'(slime-lisp-implementations
(quote
((sbcl
("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env
("SBCL_HOME=/usr/lib64/sbcl/")))) t)
(quote
((sbcl
("sbcl" "--core" "/usr/lib64/sbcl/sbcl.core")
:env
("SBCL_HOME=/usr/lib64/sbcl/")))) t)
'(switch-window-increase 4 t)
'(switch-window-input-style (quote minibuffer))
'(switch-window-threshold 2))

@ -23,14 +23,14 @@
;; Files we care about loading
(setq custom-file (in-emacs-home "custom.el"))
(defconst emacs-config (in-emacs-home "config.el"))
(defconst emacs-org (in-emacs-home "config.org"))
(defconst emacs-email (in-emacs-home "email.el"))
(defconst manx/emacs-el (in-emacs-home "config.el"))
(defconst manx/emacs-org (in-emacs-home "config.org"))
(defconst manx/emacs-email (in-emacs-home "email.el"))
;; If everything exists then execute files
(unless (member nil '(custom-file emacs-config emacs-org emacs-email))
(if (file-newer-than-file-p emacs-org emacs-config)
(org-babel-load-file emacs-org)
(load emacs-config))
(unless (member nil '(custom-file manx/emacs-el manx/emacs-org manx/emacs-email))
(if (file-newer-than-file-p manx/emacs-org manx/emacs-el)
(org-babel-load-file manx/emacs-org)
(load manx/emacs-el 'noerror))
(load custom-file 'noerrror)
(load emacs-email 'noerror))
(load manx/emacs-email 'noerror))

@ -0,0 +1,14 @@
# -*- mode: snippet -*-
# name: defsystem
# key: defs
# contributor: Manx <boku@plum.moe>
# --
(asdf:defsystem #:${1:system-name}
:description "${2:none}"
:author "Manx (boku@plum.moe)"
:license ${3:"X11/MIT"}
:version "0.0.1"
:serial t
:depends-on ${4:}
:Components ${5:})
$0
Loading…
Cancel
Save